블록체인 확장성 문제란? (부제 : 확장성 문제 솔루션은 알지만 정작 확장성 문제가 뭔지 모르는 사람들을 위해)

in blockchain •  6 years ago 

안녕하세요, 오로라입니다.
오늘은 블록체인 확장성 문제에 대해서 적어보려고 합니다.

최근에 디사이퍼 리크루팅 면접 심사를 하면서 '확장성 문제가 뭔지 정의해주세요'라고 질문을 던졌을때 다들 당황하는 걸 볼 수 있었습니다. 다들 Sharding, Plasma 같이 확장성 문제 솔루션에 대해서는 대충 알고있지만, 정작 그 솔루션이 왜 나오게 되었는지에 대한 정보가 없다는 걸 알 수 있었습니다.

그렇다면 확장성 문제는 무엇인지 한 번 알아보도록 하겠습니다.

확장성 문제

확장성 문제는 더 많은 자원(마이닝 노드, 코어 수)을 투입하더라도 트랜잭션의 처리 속도(TPS)가 증가하지 않는 문제를 말한다. TPS가 고정되어있기 때문에 트랜잭션이 증가하는 경우 트랜잭션이 블록에 담기기까지의 대기시간이 길어진다. 이더리움의 확장성 문제는 다음의 2가지 요인에 기인한다.

1) 블록생성 속도와 블록크기의 제한
PoW에서는 블록 채굴 난이도를 낮추어 블록 생성 속도를 증가시킬 수 있는데, 이는 엉클 블록을 많이 생성하게 하고 그로 인해 네트워크의 보안이 낮아진다. 엉클블록이란 동시에 블록이 생성되었을때 유효성은 검증되었더라도 메인 체인에 연결되지 못한 블록이다. 블록 채굴 난이도를 낮출 경우 해시 파워가 고정된 상태에서 한 블록 생성에 더 많은 마이너들이 참여한다. 이는 블록 생성 시 마이너간의 경쟁을 심화시키며, 엉클 블록이 늘어난다. 엉클 블록의 증가로 인해 마이너의 기대 수익이 낮아지고 해시 파워가 높은 마이닝 풀이 유리해진다. 그 결과 마이닝의 중앙화가 심화되고 네트워크의 보안이 낮아지는 현상이 초래된다.

이에 대한 대안으로 블록의 크기나 블록 가스 limit을 증가시키는 것을 제안할 수 있다. 하지만 이 역시 채굴의 중앙화를 야기하고 네트워크 참여에 높은 장벽으로 작용할 수 있다.

블록 크기가 증가하면 네트워크 상에서 전송 시에 보내야하는 데이터의 양이 늘어난다. 이 경우 더 큰 컴퓨팅 리소스를 필요로 하기 때문에 컴퓨팅 파워가 큰 일부 큰 마이닝 풀들이 대부분의 보상을 가져가며 중앙화될 수 있다. 심지어는 블록 크기가 커지면 그만큼 네트워크 상에서 전파되는 속도가 저하되고, 높이가 같은 블록이 생길 확률(=포크가 생길 확률)이 높아진다.

또한, 블록 가스 limit이 늘어날 경우 더 많은 트랜잭션을 하나의 블록에서 담을 수 있으므로 TPS를 올릴 수 있지만 앞서 설명한바와 같은 문제(중앙화 or 엉클블록 생성 가능성 증가)가 발생한다. 결과적으로 단순히 블록의 크기나 가스 limit을 증가시키는 것은 이더리움 확장성 문제에 대한 해결책이 될 수 없다.

2) 병렬성의 부재
현재 이더리움 네트워크는 트랜잭션을 병렬적으로 처리할 수 없다. 왜냐하면 하나의 트랜잭션을 처리하는데 모든 노드가 참여하기 때문이다. 이러한 설계의 목적은 최대한 많은 풀노드가 검증에 참여하도록 함으로써 51% 공격을 방지하고, 네트워크의 보안을 높이는 것이다.

궁극적으로 블록체인 기술을 사회 전반에 도입하기 위해서는 사용자의 증가에 대처해야하므로 확장성 문제를 해결해야만 한다. 최근에는 Sharding, Casper, Plasma 등이 이러한 문제에 대한 해결책으로 제시되었다.

짧게나마 확장성 문제에 대해 적어보았습니다!
이더리움에서 확장성 문제는 반드시 해결되어야하는 문제인만큼, 확장성 문제는 무엇인지를 잘 알아보고 확장성 솔루션에 대해 연구해보면 좋을 것 같습니다 :)

피드백은 언제나 환영입니다. 부족한 내용인만큼 많은 코멘트 부탁드립니다.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!