다음 글은 http://www.chaintalk.io/archive/study/1217 의 비디오와 슬라이드를 제 나름대로 해석해서 써 보았습니다. PoS에서는 합의가 어떻게 이루어지는지 간략하게 알 수 있습니다.
이더리움은 메트로폴리스 이후에 PoW에서 PoS로 전환된다. PoW는 채굴을 하는 마이너의 투표로 인해 합의(consensus)가 이뤄진다. PoS는 이더를 묶어놓은 주주(Validator)들에 의해 합의가 이루어진다. PoS가 사용되는 방식은 다음과 같다 : 사용자는 validator 가 되기위해 일정양의 이더를 입금한다. Validator들은 합의를 위한 투표가 가능하며 투표의 힘은 입금한 이더의 양에 비례하다. 쉽게 주식의 주주와 기능이 비슷하다고 생각하면 될 것 같다. Validator는 일정시간이 지난 후에 출금이 가능하며 그들의 역할은 간단하다. 하나의 블록체인을 만들거나 잇는다면 돈을 벌 수 있고 두개 이상의 블록체인을 만들거나 잇지 않는다면 돈을 잃게된다.
이더리움은 PoW에서 PoS로 전환시 한번에 전환되지 않으며 Hybrid 형식으로 처음에는 공존하게 된다. 한번에 전환되지 않는 이유는 복잡성을 줄이기 위해서다. 만약 한번에 바뀌게 된다면 마이너들은 그들의 체인을 사용하려 할 것이고 이더 사용자들은 그들의 체인을 사용할 것이기 때문에 이더리움을 두 갈래로 나눠질 수 있다. Hybrid 형식으로 마이너들에게 보상을 계속 돌아가지만 마이너의 보상은 계속해서 줄어들고 PoS의 보상은 계속해서 늘어나게 만들어 PoS로 서서히 변환시키기 위함이다.
PoS가 필요한 이유로는 여러가지가 있겠지만 저평가 되어있는 이유로는 Finality 이다. Finality는 히스토리가 절대 변하지 않음을 보장하는것을 말한다. PoW에서 마이너들이 조직화되어서 히스토리를 바꿀 수 있지만 마이너들은 어떠한 페널티도 받지 않는다. 예를 들면 비트코인의 UASF가 있다. 슬라이드에 있는 그림을 이용해서 설명하면,
그림에서 보면 마이너의 블록체인과 사용자의 블록체인이 있다. 사용자의 블록체인은 무조건 본인의 블록체인만 승인하지만 마이너의 블록체인은 가장 긴 체인을 따라가기 때문에 사용자의 마이닝이 더 빨라 오른쪽의 그림처럼 마이너의 블록체인보다 긴 체인이 된다면 초록색 원의 마이너 블록들은 빨간색 원의 사용자 블록들로 대체(reverted)된다. 대체된 기간에 거래는 소멸되어 질 수 있으므로 UASF가 나올시 거래를 하지말라고 하는 이유가 이것이다. 이런식으로 마이너의 블록체인은 지워질 수있지만 이것을 행하는 페널티는 주어지지 않는다.
Hybrid 형식의 전환에서 Casper의 출시는 PoW를 제거하는것이 아니라 공존한다. 마이너들이 지금처럼 계속해서 블록을 생성하면 Validator들이 100 블록마다 앞에서 말한 Finality를 실행한다. Validator들이 Finality를 한것은 절대 히스토리를 바꿀 수 없다. 100 블록을 1 epoch 이라고 부르며 1 epoch 마다 Validator들은 finality를 합의한다. 만약 Validator들이 다른 체인으로 대체하려면 입금시킨 이더양의 1/3이 없어지게 된다. 어떻게 없어지는지의 설명은 비디오나 슬라이드에서 자세하지 못해 완벽하게 이해하지 못했으므로 추후에 다시 설명해야겠다. 아무튼 Validator들이 손해를 보면서 다른 체인으로 대체시키려 하지않기 때문에 좀 더 안전함을 보증한다.
윗 그림과 같은 방식으로 마이너들이 블록을 생성하면 Validator들이 100개의 블록마다 이것이 메인체인임을 승인하는 역할을 하게된다. 메인체인으로 승인이 된다면 UASF처럼 대체될 수 없다.
내용이 어려운면이 많고 거기다가 너무나 길면 가독성이 떨어지는 이유가 있으니 3번에 나눠서 올릴 계획입니다. 시간이 되는데로 빨리 올리겠습니다. 만약 바로 알고싶은 분들은 http://www.chaintalk.io/archive/study/1217 에서 공부하시면 됩니다.
PoS의 단점은 해쉬 경쟁이 아니라, 코인의 지분 경쟁이라서 "nothing at stake"라는 문제가 생깁니다.
https://steemit.com/kr/@loum/nothing-at-stake
즉, 공격자가 블럭 생성 권한을 가지고 포크를 만드면 체인이 갈라지는데요.. 이런 때가 문제 였습니다.
이것은 PoW는 전기료 등의 부담을 해야 하기 때문에 가장 긴 체인을 따라가는 전략이 효과적으로 동작하지만, PoS에서는 마이너가 나쁜짓을 해도 처벌할 수 없어서 포크 문제를 해결하지 못했습니다.
이것을 막기 위해서, 예치금을 두고 거기다가 캐스퍼는 포크시 주체인에 투표를 안하면 손해를 보는 알고리즘을 도입하였습니다.
블럭체인은 포크가 생길 때만 이중지출 문제가 생깁니다. 거래는 기본적으로 디지털 서명을 해서 보내므로, 거래에서는 이 문제가 발생하지 않습니다.
따라서 블럭을 확정짓는 finality가 굉장히 중요합니다. 이를 위해서 정해진 수의 검증인을 두어, 투표를 해서 블럭을 바꾸지 못하게 하는 것입니다. 이 경우 블럭이 투표로 확정이 되면, 포크가 절대 발생되지 않습니다. 이것을 위해서 투표를 하는 것이고요..
비잔틴 장군 문제 때문에 전체 중 1/3 미만이 공격자이면 합의 알고리즘은 안전하다고 알려져 있습니다.
자세한 설명 감사합니다.
좋은 하루 보내세요.
하민님 글에 덧대어 이해하는데 도움이 되었습니다 감사합니다.
자세한 설명 감사드립니다
이중지출이 포크때만 생기는건지도 첨알았고
그냥 다 첨알았네요 ㄷㄷ
제 부족한 글에 보완을 잘 해주셔서 감사합니다.
잘 봤습니다. 다음 글도 기대되네요!
읽어주셔서 감사합니다 !
어렵지만 잘 공부하고 갑니다 ^^ 감사합니다
읽어주셔서 감사합니다 !
어....어렵네요....퇴근하고 다시한번 읽어봐야겠어요
좋은글 감사합니다!!!
어려운것은 한번 더 답글 주시면 설명해볼게요 ㅎㅎ
상당히 좋은 글이네요. 꼼꼼히 읽고 제데로 알고있는지 확인하고 갑니다. 앞으로도 좋은글 많이 기대할게요 ^^
감사합니다 :)
기가 맥히네요. 크하
과찬이세요 ㅎㅎ
하이브리드 방식이 결국 진짜 적용되네요. 좋은 글 감사합니다.
읽어주셔서 감사합니다 !
아직도 알아야 할 내용 투성이군요...ㅋㅋㅋ
끊임없이 나오는것 같습니다 ㅋㅋ
리스팀 후 다시 읽어봐야겠습니다. 좋은정보 감사합니다.
리스팀 감사합니다 !
감사합니다. 이해가 잘 되는군요.
리스팀 하고 갑니다. 다음편 기대하께요 ^^
다행입니다 ㅎㅎ 읽어주셔서 감사합니다 !
그동안 pos와 pow간의 하이브리드형식으로의 진행이 이번 DEV때도 이해가 잘 가지 않았는데 덕분에 좀더 이해하게 되었습니다. 헌데 조금 더 이해 안가는 것이 이번에 난이도폭탄을 뒤로 미룬다는 것과 비탈릭이 그것 때문에 어떤 조치를 한다고 했는데 그게 뭔소린지 이해가 안되는데 저처럼 이해가 안되는 유저들이 많을겁니다 언제 하민님이 쉽게 풀어서 설명해주시면 ;;;;;다들 두손반겨 하민님을 더욱더 존경....;;;;아닙니다 무리한 부탁이었습니다 ㅠㅜ
이번회의에서 나온것이 메트로폴리스 하드포크에 대한 이야기인데요. 두가지 안이 이야기가 나왔는데요. 어떤 안을 따를지는 2주간 테스트넷에서 돌려본 후에 결과에 따라 다를것 같습니다. 첫번째 안은 만약 테스트 결과가 좋게 나온다면 한번의 하드포크로 메트로폴리스로 넘어갑니다. 그렇다면 난이도 폭탄을 뒤로 미루지 않아도 되구요. 두번째 안은 결과가 완벽하지 않을 경우 좀 더 안전하게 난이도 폭탄을 뒤로 한번 미루는 하드포크와 메트로 폴리스의 하드포크 두번에 나눠서 넘어갑니다. 지금의 난이도 폭탄을 미루지 않으면 두번째 메트로 폴리스까지 블록생성이 너무 느려지기 때문에 생성되는 시간을 당기는 하드포크입니다. 저도 줏어들은 정보를 공유하는 입장이라 전혀 무리한 부탁이 아니십니다. 존경도 너무 간것;; 같습니다. 읽어주셔서 감사합니다 !
좋은 글 감사합니다.
캐스퍼에 대해 궁금했었는데 조금씩 풀리고 있는것 같습니다.
읽어주셔서 감사합니다 !
잘봤습니다~
감사합니다.