안녕하세요. 블록체인을 통한 탈중화 된 미래를 꿈꾸는 @bigthumbsup 입니다. 오늘은 이더리움의 캐스퍼에 대해서 알아보겠습니다.
지난 주 이더리움 재단 측은 이더리움 네트워크 합의 도출 방식을 변경하는 새로운 코드가 검토 준비에 있다고 밝혔는데요. 개선 제안서 1011, 또는 하이브리드 캐스퍼 FFG (Friendly Finality Gadget)를 보면 마이닝(mining) 과정에서 마인팅(minting) 과정으로의 전환 첫 단계가 실행 될 것으로 보입니다. 개선 제안서 1011이 실행되면 POW와 POS를 합친 하이브리드 시스템이 도입되어 궁극적으로 POS로의 완전한 이행으로의 발걸음을 내딛게 됩니다.
VMware의 보안 전문가 Dahlia Malkhi는 3월에 캐스퍼의 근본적인 취약성을 제기 하였지만 EIP 1011의 저자 대니 라이언(Danny Ryan)과 치쳉리안(Chih-Cheng Liang)은 제안된 코드가 커뮤니티에서 충분히 논의가 될 것이라고 밝혔는데요. 현재 이더리움 깃허브에 초안 형태의 코드는 다양한 평가와 검토가 이루어질 것으로 보입니다. 그러면서도 EIP 1011 저자들은 POS로의 변경 과정에서 이더리움 네트워크의 하드포크가 불가피하다는 의견을 내놓았습니다.
POW에서 POS 전환은 왜 이루어지는가?
비탈릭 부테린은 근본적으로 POW가 에너지 낭비 및 마이닝 중앙 집권화 등 POW는 문제가 많은 합의 프로토콜이라고 생각하는데요. POS는 Sunny King과 Scott Nadal이 2012년 논문을 통해 첫 선보였습니다.
POW 비교 시 POS 이점
1. 블록을 검증하는 속도가 빠르다. POW에서는 마이너가 수학적 계산을 풀어야 하지만 POS에서는 검증인들이 블록에 배팅 하는 방식이다.
2. 보안성이 뛰어나다. 51%의 해싱파워를 가진 집단이 이중지불 문제 등을 통해 네트워크를 교란할 수 있다. 반면 캐스퍼 POS에서는 검증인들은 잘못된 행동을 하게 되면 자신의 지분을 몰수 당할 수 있다.
캐스퍼가 기존의 POS와 다른 점은?
캐스퍼(Casper) POS 작동 방식의 핵심 중 하나가 악한 행위를 하는 검증인들을 처벌하는 것입니다.
1. 검증인들은 블록을 검증 전에 자신의 이더 지분을 맡겨야 합니다 (테스트넷에서는 최소 1,500 이더 필요)
2. 검증인들은 체인의 연결 될 것이라고 믿는 블록에 원하는 만큼 베팅을 합니다.
3. 만약 자신이 베팅한 블록이 체인의 연결이 되면 검증인들은 베팅한 만큼 보상을 받게 됩니다.
4. 그러나 검증인들이 Nothing-at-stake 문제와 같이 체인을 어지럽히는 악한 행위를 하면 처벌을 받게 됩니다. 여기서 처벌이란 검증인들은 자신이 걸어 놓았던 지분을 몰수당하는 걸 의미합니다.
처벌이란 제도를 통해 비잔티움 장군 문제 및 nothing-at-stake를 해결합니다. 뿐만 아니라 검증인들의 부주의로 생겨난 각종 문제(offline 상태 전환)에 대해서도 책임을 지게 합니다.
캐스퍼(Casper)단계에서는 두 가지의 프로젝트(FFG,CBC)로 진행 중입니다.
1. FFG (Friendly finality gadget)
비탈릭 부테린이 주도하는 Casper 구현 방식입니다. 기존 POW에서 POS로 안정적인 전환을 위한 hybrid pow+pos 합의 메커니즘을 사용합니다. 블록 생성은 POW의 마이너들이 만들고, 매 50블록마다 네트워크에서 검증인들이 완결성(Finanlity)을 하는 POS 검사 지점이(Check Points) 있습니다. 완결성(Finality)이란 이미 결정 나버린 블록체인이 다시는 바뀌지 않는 것을 의미합니다.
위에서 말한 배팅이란 검증자가 어떤 포크가 정당한지 투표하는 것을 의미하는데요. 전체 지분의 2/3 이상이 투표한 포크에 투표를 하게 되면 보상을 받게 되고, 반대로 네트워크를 교란시키는 투표 행위를 하면 검증자는 자격을 박탈당하고 예치금을 몰수 당합니다. 이때 위법 행위를 발견한 검증자들은 일정 포상금을 받게됩니다. 언제든지 검증자들이 예치금을 인출하면(withdraw)하면 검증자 자격이 상실
현재는 테스트넷에서 진행 중이고 메인넷은 2018년 후반기에 선보일 것으로 보입니다. 아직 다양한 파라미터(보상금, 이자율, 몰수 비율, 체크 포인트, 신고 포상금) 등은 여전히 실험 중이기 때문에 향후에 변경된 내용들을 업데이트 하겠습니다.
Github으로 보는 이더리움 캐스퍼
깃헙에 들어가면 캐스퍼 컨트렉트(Casper contracts)가 538줄로 구성되어 있습니다. 코드는 아주 간단하게 Deposit, Vote, Logout, Withdraw, Slash, Epoch 등으로 나눠볼 수 있는데요.
1. Deposit(예치금): 검증인이 검증 작업을 하기 위해서는 예치금(자신의 지분)을 걸어 두어야 한다. (5월 1일 현재 1,500 이더 기준)
2. Logout(탈퇴): 검증인이 검증 작업을 멈추고 탈퇴하고자 할 때를 지칭한다.
3. Withdraw(출금): 검증인들이 본인이 예치해 두었던 예치금을 인출하고자 할 때를 지칭한다.
4. Vote(투표): 검증인들이 특정 체크포인트에서 투표 메시지를 보낼 때를 지칭한다.
5. Slash(몰수): 검증인들이 네트워크를 교란시키는 행위를 하면 예치금이 몰수당할 때를 지칭한다.
6. Epoch(체크 포인트 간격): 검증인들이 검증 작업을 하는 체크포인트의 블록 간격을 지칭한다. (현재 매 50블록)
2. CBC (Correct-By-Construction)
캐스퍼 CBC (Correct by construction)는 블라드 잠퍼(Vlad Zamfir)가 주도하여 개발하고 있습니다. 현재 활발한 연구가 진행 중에 있으며 단순히 POS를 레이아웃하는 것이 아니라 합의 프로토콜을 전체적으로 재고려하는 문제라서 다양한 실험이 필요합니다. 제 생각에는 2018년 중으로 실행 되기는 어려울 것으로 보입니다.
캐스퍼 CBC란 무엇인가?
캐스퍼 CBC는 합의 프로토콜을 “도출"하는 방법입니다. CBC를 사용하면 전통적인 합의 프로토콜에 비해 다양한 이점을 누릴 수 있습니다.
1. 비교적 간단한 합의 안정증명
2. "in-protocol" 완결성(Finality) 부재 (완결성이란 이미 결정된 블록체인은 바뀌지 않는다는 것을 의미)
3.네트워크 오버헤드(network overhead)가 아닌 검증인들을 사용하여 지연시간을 완결성으로 바꿀 수 있음
4. 특정 경우 이론적으로 최적의 네트워크 오버헤드 가
캐스퍼 CBC는 단순 POS 합의 프로토콜인가?
CBC 캐스퍼 연구는 퍼블릭 블록 체인에 대한 POS 합의 프로토콜의 연구로 시작했지만 더욱 일반적인 형태의 연구로 변화했습니다. 현재는 CBC 계열에 존재하는 6개의 합의 프로토콜이 있습니다.
1. 캐스퍼 TFBC (the Friendly Binary Consensus Protocol): 0과 1 중 하나를 선택 동의
2. 캐스퍼 TFOC (the Friendly Ordinal Consensus Protocol): 정수에 동의
3. 캐스퍼 TFLO (the Friendly List Ordering Protocol) : 리스트 순서에 동의
4. 캐스퍼 TFG (the Friednly GHOST Protocol): 블록체인상 동의
5. 캐스퍼 TFCSR (the Friendly Concurrent Schedule Replication Protocol) :병행 스케줄상 동의
6. 캐스퍼 TFSB (the Friendly Sharded Blockchain): 여러 개의 샤드가 있는 블록체인상 동의
Casper the Friendly Ghost (Casper TFG)는 퍼블릭 블록 체인 POS 합의 프로토콜로 설계되었지만 위에 나열된 다른 합의 프로토콜들은 다른 상황에 적합 할 수 있습니다.
블라드 잠퍼(Vlad Zamfir)의 목표는 합의 안전성을 높일 수 있는 프로토콜을 설계 하는 것입니다. FFG는 POS도입 시 여러 절차를 거치면서 POS의 비중을 점진적으로 높이는 방식입니다. 반면에 CBC는 건축을 설계하는 방식처럼 하나하나 안정성을 담보하는 방법들에 초점을 맞추게 됩니다. 결국에 최종 캐스퍼(Casper)의 모습은 FFG와 CBC의 장점들을 갖춘 모습일 것이라고 전망하고 있습니다.
이더리움 캐스퍼의 장점
1. 탈중앙화 목표 달성
2. 에너지 효율성
3. 경제적 안정성
4. 스케일링 문제 해결
1. 탈중앙화 목표 달성
이더리움 킬러라고 불리우는 EOS는 이더리움이 중앙집권화되어 있다고 합니다. 그렇기 때문에 EOS는 DPOS 합의 알고리즘을 통해 21명의 BP를 투표로 선발합니다. 사실 이더리움은 작년까지만 해도 이더리움의 해시 마이닝 풀을 보면 ethpool/thermine과 f2pool이 마이닝 풀의 50%이상을 차지할 정도로 탈중앙화와는 거리가 있는 모습이었습니다. 특정 풀이 다수의 해시레이트를 장악 하고 블록을 캐면 보상을 받을 확률이 그 누구보다 높게 됩니다. 결국 특정 마이너는 더 많은 자원을 얻게 되어 성능이 우수한 하드웨어(ASICs)를 추가 구입할 수 있게 됩니다. 즉 마이닝 풀에서의 빈익빈 부익부 현상이 뚜렷해지게 되
하지만 최근 모습을 보면 Ethermine(24.9%),f2pool2(16.1%),Nanopool(15%),ethfans.org2(15%),miningpoolhub1(9.8%),bitclubpool(3.2%) 등 마이닝 풀의 분포도가 다양해졌습니다. 향후 하이브리드 시스템에서는 중앙화 된 마이닝 풀이 더욱 분산 될 것으로 기대해봅니다.
2. 에너지 효율성
작업증명(POW)의 최대 단점은 에너지 낭비입니다. POW는 많은 개발자들이 에너지 먹는 하마(energy guzzlers)라고 비판을 합니다. 밑에 표를 보면 2017년 2월에 비트코인 에너지 사용량은 10TWh이었지만 2018년 4월 현재 60TWh로 6배 상승하였습니다.
60TWh가 얼마나 큰 규모인지 알아보기 위해 국가별 에너지 소비량을 비교해보겠습니다. 비트코인의 연간 에너지 소비량은 44위 콜롬비아와 42위 스위스와 맘먹는 수치입니다.
3.경제적 안정성
Casper의 특징 중 하나가 선순환 네트워크 구조를 지향한다는 것이다. 검증인들은 일정 양의 지분(stake)을 보증금의 형태로 걸어 두기 때문에 만약 네트워크를 어지럽히는 행위를 하는 경우 자신의 지분을 빼앗기게 됩니다. 이는 경제적인 안정성이 보장되는 네트워크 유지가 가능해집니다.
4. 스케일링(확장성)
이더리움 뿐만 아니라 모든 블록체인이 현재 가장 관심을 두는 것이 바로 스케일링 문제 해결입니다. 스케일링, 즉 확장성 문제가 해결이 되지 않으면 실생활에 필요한 Dapp 개발 및 사용 불가, 거래 지연에 따른 거래비용 증대, 탈중앙 지향 가상화폐의 중앙화 현상 심화 등 수 많은 도전과제에 직면 하게 됩니다. 최근 가격이 또 폭등했던 EOS의 경우도 POS가 아닌 DPOS 방식을 선택한 이유도 21명의 BP를 통해 네트워크 효율성을 극대하고자 합
확장성 문제 해결에는 라이덴 네트워크(Raiden Network), 샤딩(Sharding), 플라즈마(Plasma) 등 다양한 시도가 이루어지고 있죠. 라이덴 네트워크는 Off-chain 방식으로 사용자간 처음과 마지막 거래만 기록합니다. 중간 거래는 Off-chain의 채널에서 사인 된 거래로 교환하는 방식입니다. 플라즈마도 Off-chain 방식으로 트리 구조의 다중 블록체인을 구축을 합니다. 또 최근에는 라이트닝 네트워크를 개선한 페룬(Peron) 솔루션이 소개되기도 했습니다. 자세한 페룬 분석은 @cryptodreamers님의 글을 참조하면 되겠습니다.
이더리움은 샤딩(Sharding)을 통해 확장성 문제를 해결하려 합니다. 샤딩은 간단히 말해 엄청난 크기의 한 데이터를 분할시키는 방식입니다. 네트워크를 수천 또는 수백 개의 미니 블록체인으로 쪼개면서 모두 독립적인 형태로 실행할 수 있습니다. 현재 연구가 활발히 진행 중이며 실제 도입은 2019년쯤으로 예상됩니다. (샤딩의 관한 자세한 아티클은 개발 진척이 좀 더 진행되면 풀버젼으로 업로드 하겠습니다.)
글을 마치며
저는 이더리움이 캐스퍼를 성공적으로 이끌어 낼 수 있고 또 그렇게 해야 한다고 생각합니다. 비탈릭은 Deconomy 2018에서 이더리움은 ‘소수를 위한 블록체인’이 아닌 ‘모두를 위한 블록체인’을 목표로 한다고 밝혔을 때 가슴이 뭉클했습니다.
세상을 바꾸기 위한 노력은 그 어떤 금전적 가치와는 비교할 수가 없습니다. 비탈릭이 더 나은 세상을 만들기 위한 노력에 다시 한 번 찬사를 보내며 글을 마치겠습니다.
여러분의 팔로우와 보팅은 저에게 큰 힘이 됩니다.
감사합니다. @bigthumbsup 이었습니다.
References
Incentive in Casper the FFG
https://github.com/ethereum/research/blob/master/papers/casper-economics/casper_economics_basic.pdf
캐스퍼 연구자료
Casper 101 by Jonchoi
https://medium.com/@jonchoi/ethereum-casper-101-7a851a4f1eb0
이더체인 (Etherchain)
https://www.etherchain.org/ https://www.slideshare.net/cubrid/database-sharding-the-right-way-easy-reliable-and-open-source-highload-2012
Github of Casper contract https://github.com/ethereum/casper/blob/master/casper/contracts/simple_casper.v.py
The new EIP 1011 specifications
http://eips.ethereum.org/EIPS/eip-1011
Seeing Ghosts: Vitalik Is Finally Formalizing Ethereum's Casper Upgrade https://www.coindesk.com/ethereum-seeing-ghosts-vitalik-buterin-is-finally-formalizing-ethereums-casper-upgrade/
캐스퍼 CBC-FAQ
일교차가 큰 날씨에요 감기조심하세요^^
오늘은 비가 온다고 합니다 우산챙기세요
오치님도 좋은 하루 되세요~!
캐스퍼 잘 정리해주셨네요.
캐스퍼가 어떤 방식으로 적용될지 궁금하면서도 기대가 됩니다.
샤딩 정리해주실 때, chain cross-linking도 포함되나요? ㅎ
@홍보해
감사합니다 ㅎㅎ 캐스퍼의 발전을 목도하는 건 정말 흥미로운 것 같습니다.
메인체인에서 샤딩으로 그리고 샤딩에서 메인체인으로 연결되는 chain-cross-links는미니멀샤딩을 실행하는데 중요함으로 꼭 다루겠습니다.
오~! 관심있었는데 정리해주신다니 좋네요. 기대할께요
절대 제가 귀찮아서 미루고 있었던건 아닙니다.@feelsogood 님감사하다는 말씀 꼭 전하고 싶네요.
써니님도 신경써주셔서 감사합니다
유용한 글로 보답하겠습니다~!
복잡한걸 상당히 잘표현하신것 같네요.
엄지척! 캐스퍼의 악의적 행동을 저지하는 방식인 몰수가 인상적이네요.
캐스퍼의 몰수 방식도 점진적으로 발전해 나갈 것으로 생각합니다. ㅎㅎ
이더리움이 향후적용될 기술 대해 자세한 설명 감사합니다~! ^^
감사합니다. ㅎㅎ 업데이트 되는 내용도 계속 올리겠습니다. 관심있게 봐주세요~!
캐스퍼의 필요성부터 원리까지 잘 정리해주셨네요^^ 잘 보고 갑니다!
감사합니다.
많이 부족하지만 읽는 사람들이 쉽게 이해할 수 있는 포스팅을 앞으로도 하겠습니다 ~!
하위 호환 유지하면서 개발하는게 만만치 않을텐데 더군다나 수정불가능인 블록체인을 포크하는 작업이니;;;;
네 맞습니다. 절대 쉽지 않은 작업이죠. 앞으로 pos로의 전환이 성공적이기 위해서는 커뮤니티에서 충분한 논의와 토론이 수반되어야 될꺼 같아요 ㅎㅎㅎ
DDos같은 형태의 공격이 언제나 문제네요....DDos는 해킹된 좀비컴퓨터를 이용하겠지만
자본으로 수많은서버를 사서 공격하는 방법도 있을것인데...