이더리움 캐스퍼(Casper)에 대한 생각

in #coinkorea7 years ago

안녕하세요. @genemk입니다.

며칠 전에 이더리움 POS 프로젝트인 캐스퍼에 대해 설명을 들을 수 있는 좋은 행사가 있어 다녀왔습니다.
그 이전부터도 캐스퍼에 대해서는 여러가지 내용을 접할 수 있었는데 좀더 자세히 이해하고 논의해 볼 수 있어 매우 좋았습니다.

저는 이 캐스퍼가 어떻게 동작하는지 등과 같은 기술적인 이야기를 하려는 것은 아니고 제가 생각하는 것을 좀 나눠보고 또 더 토론할 수 있기를 바라면서 이 글을 작성합니다.

보통 이더리움 POS전환에 대해서 사람들이 POS로 전환되고 나면 트랜잭션들이 더 빨리 처리될 것으로 기대하면서 기다리고 있는 분들이 많은 것 같습니다. 이와 관련된 내용은 좀 더 자세히 들여다보면 블록체인 시스템 상에서 무언가 작업이 발생하면 (보통은 이것을 트랜잭션이 발생했다고 표현합니다) 메모리 상에 쌓여 있다가 블록이 생성되는 순간에 이 작업들이 블록 안에 포함되면서 작업이 확정 됩니다. (물론 블록에 포함되었다고 바로 확정되는 것은 아니지만 편의상 이렇게 표현 하겠습니다) 따라서 만은 작업들이 빠르게 확정 되기 위해서는 2가지 방법이 있습니다. 1) 블록이 빨리빠리 만들어지거나 2) 블록이 매우 커서 한번에 더 많은 작업들이 포함되거나 입니다.

비트코인의 경우 블록크기는 1메가바이트 크기로 정해져 있고 블록 생성 주기는 10분입니다. 최근에 논란이 되었던 segwit2x의 경우 아주 쉽게 이야기하면 저장해야하는 작업의 크기를 줄여서 전보다 저 많은 작업들을 블록에 넣을 수 있게 하고, 블록의 크기를 1메가에서 2메가로 증가 시켜서 한번에 보다 많은 작업들을 확정할 수 있게 하는 방안입니다.

이더리움의 경우는 블록생성 주기가 12초정도(? 제가 정확한 주기가 생각나지 않네요 ^^)이고 블록크기는 제한이 없지만 사실상 가스제한이 있어서 작업들이 무제한으로 담기지는 않습니다.

블록의 생성주기가 10분, 12초 등 시간이 걸리는 이유는 POW 방식의 합의 알고리즘 때문인데 어려운 문제를 풀고 그 해답과 풀은 방식을 제출함으로써 블록을 생성하는 권한과 블록 생성에 대한 내용을 모두에게 인정받게 되며 이 문제를 푸는게 소요되는 평균 시간이 블록생성 주기라고 생각하시면 됩니다.

위와 같이 블록을 생성하고 합의하기 위해서는 1)누가 블록을 생성할 권한을 가져갈지(블록을 생성하면 그 댓가로 비트코인이나 이더리움을 얻게 되고 이 작업을 마이너들이 수행합니다) 와 2)그 생성된 블록을 다같이 인정하고 기존 블록체인에 연결하는 작업이 수행되어야 합니다.

여기서 작업들이 확정되는 성능은 위의 1번 작업, 누가 권한을 얻어서 블록을 생성할 지와 연관이 있습니다. POW의 경우 블록생성 권한을 위해 전기를 소모하고 전산자원을 투입하여 어려운 문제를 풀게 되는데 POS의 경우에는 어려운 문제를 풀어서 증명하는 것이 아닌 자신들이 보유하고 있는 코인의 양을 기준으로 증명하기 때문에 많은 자원을 투입하지 않아도 되고 시간도 오래 걸리지 않게 되면서 블록 생성 주기를 매우 빠르게 할 수 있으며 따라서 더 많은 작업들을 빠르게 확정할 수 있다고 기대하게 됩니다.

(서론이 매우 길었네요 ;;;)

이번에 이더리움에 적용되는 캐스퍼의 경우 POS이긴 하지만 전체 합의과정에서 1번)블록을 생성하는 권한 획득에 관여하는 것이 아닌 2)생성된 블록을 다같이 합의하고 인정하여 블록체인에 잘 연결하는 부분에 적용되게 되며, 권한 획득 및 블록 생성은 기존과 마찬가지로 POW에 의해 처리됩니다. 따라서 제 생각에는 캐스퍼가 적용되었다고 해서 바로 블록 생성 주기가 빨라지거나 더 많은 작업들을 빠르게 확정하는 것은 안된다고 생각됩니다.

다만 블록 생성 주기를 더 빠르게 하는 것은 풀어야 하는 문제의 난이도를 낮추어서 보다 쉬운 문제를 만들면 떠 빨리 문제를 풀 수 있으므로 생성 주기를 단축할 수는 있지만 이렇게 되면 중복되는 블록도 많이 생길 수 있고 가짜 블록도 쉽게 만들 수 있어서 보안성이 떨어지기 때문에 못하는 것인데, 캐스퍼가 올바른 블록을 합의하는 (그래서 나쁜 의도를 가진 블록이 연결되지 못하게 하는) 부분에 보완이 가능하므로 POS투표 주기를 점차 줄이면서 (현재 1epoch = POS 투표주기 = 100개의 블록 생성마다) 블록 생성 난이도를 낮춰서 블록생성 주기를 더 빠르게 만들 수는 있을 것 같습니다.

현재 이더리움 진영에서 블록생성은 POW로 확정은 POS(엄밀히 말하면 POW+POS)로 적용하는 것은 전체 POS 전환의 과도기이기 때문인것으로 생각되고 이 과정을 통해 POS 시스템을 테스팅하고 보다 정밀하게 만들 수 있는 시간이 확보될 것으로 기대됩니다.

향 후 언제 이더리움이 완전히 POS로 전향될 지 그리고 그 모습이 어떨지 상당히 궁금해집니다. ^^

아 그렇다고 "아 그럼 이더리움의 성능 문제는 그때까지 해결이 안되는건가??" 하면서 걱정하실 필요는 없습니다. POS전환으로 인해 얻을 수 있는 성능효과(사실 POS의 전환이 주된 목적은 성능문제 해결이 아닙니다. 이는 부수적인 효과일뿐~)보다 훨~씬~ 더 큰 성능 효과를 얻을 수 있는 라이덴네트워크, 플라즈마, 샤딩과 같은 프로젝들이 열심히 진행되고 있기 때문에 성능 문제는 이쪽에서 해결할 수 있을 것으로 기대하고 있습니다. (물론 이것들도 아직 완성품은 아니고 만들어가는 과정이긴 하지만요 ;;;)

다음에는 또 다른 합의알고리즘(?합의방식?)인 DPOS에 대해 알 수 있는 자리가 있었으면 좋겠습니다. ^^

긴 글 읽어주셔서 감사합니다.

Sort:  

Cheer Up!

  • from Clean STEEM activity supporter

정리를 잘 해주셨네요. 감사합니다. 라이덴, 샤딩도 기대가 많이 됩니다. 2018년이 지나기 전에 성능 확장성 문제가 모두 해결이 되었으면 좋겠네요.

Congratulations @genemk! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

You got your First payout
Award for the total payout received
Award for the number of upvotes
Award for the number of upvotes received

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

뉴비는 언제나 환영!이에요.
팁! : 스팀파워가 50%일때보다 100%일때 보팅파워가 더 세단 걸 알고 계신가요?
30.00% 보팅
현재 보상량 : [ 평균 - 1.02 / 1개 / 합계 : 1.02 ]

  • kr-newbie 보안관 봇! (beta 0.8.0 - 2017/08/29)