2014년 서울이더리움밋업을 처음 조직한 정우현(atomrigs)씨가 지난 3~5일 캐나다 토론토에서 열린 이더리움 개발 컨퍼런스 에드콘(EDCON) 참관기를 보내왔다. 미국 텍사스에 거주하는 사업가인 정씨는 지금도 일년에 한 두 차례 한국에 와 서울이더리움밋업에 직접 참석하곤 한다. 서울대 언론정보학과를 졸업했지만, 30대 후반의 나이에 프로그래밍 공부를 시작했다.

_______________________________________________


 

지금까지 이더리움의 가장 성공적인 킬러앱은 ICO 토큰이었다. 이더리움 네트워크에서 작동시킬 프로젝트도 아니면서 대부분의 팀들은 이더리움의 ERC20 토큰을 사용해 ICO를 진행해왔고, 이에 따라 전체 코인시총의 상당히 큰 비중이 이들 이더리움 토큰에 들어가 있다.

하지만 이렇게 쉽게 만들어서 배포한 각종 ICO 토큰들이 과연 전체 블록체인 생태계의 발전에 얼마나 기여하고 있을까?

 

불필요한 토큰이 혁신을 막는다


 

제프 콜맨(Jeff Coleman)은 한번에 막대한 자금을 개발팀에 쥐어주고 그 이후 아무런 컨트롤 메카니즘도 없이 진행되는 ICO 프로젝들의 문제를 지적하면서 시작한다.

본인이 주변의 성공한 ICO 팀 멤버들로부터 들은 이야기란다. “이 프로젝트는 실패할 게 분명해. 하지만 최소한 나는 이걸 만들면서 막대한 돈을 벌 수 있으니 뭐...” 지난 1년 동안 이런 이야기들을 많이 들었다는 것이다.



이런 이야기도 있다. “우리 ICO로 엄청난 돈을 벌었고, 우리 토큰은 지금 인기가 높아서 엄청나게 거래되고 있어…. 그런데 네가 자꾸 말하는 “실제 이용자”란 대체 뭐지?”



전혀 불필요한 토큰을 프로젝트에 삽입시키고 나면, 이 프로젝트를 믿지 않는 파운더들과 직원들, 그리고 투자자들이 이 프로젝트에 참여하게 될 것이고, 이 토큰의 사용에 관심없는 사용자들도 끌어모으게 될 것이다. 그리고 이들이 당신 조차도 믿지 않는 이 프로젝트를 지속하게끔 강제하기 될 것이다. 이런 그림을 정말 바라는 것인가? 쓸데없는 토큰을 프로젝트에 집어 넣지 마라. 인센티브를 고쳐야 한다.

가치를 창조하는 데 별 관심이 없다면, 그냥 피라미드 작전을 시작해라. 만일 정말 가치를 창조하는 데 신경을 쓴다면, 토큰을 추가할 때 매우 신중해야 한다.

많은 ICO 들이 제프가 말하는 불필요한 토큰 발행으로 떼돈을 모았다. 갑자기 떼돈을 모은 개발팀들의 도덕적 해이 문제뿐만 아니라, 이들 잘못된 토큰 인센티브가 앞으로의 시스템 발전에도 장애가 될 것이 분명하다. 어떤 프로젝트에서 토큰의 발행은 이 프로젝트가 해결하고자 하는 문제와 그 해결에서 비롯되는 새로운 가치창출과 내적으로 연결되어 있어야 하고, 이 토큰을 둘러싼 인센티브 구조가 이 가치의 생산, 분배, 소비를 더욱 촉진하고 확대할 수 있도록 설계되어야 한다.

ICO를 통해 확보된 자금의 운용에 대한 투명성 제고와 이 자금에 대한 지속적인 커뮤니티와 투자자들의 컨트롤을 어떻게 확립해야 될지도 앞으로 해결해야 할 중요한 과제이다

패러티 개발 현황


패러티사의 쥬타 스타이너가 패러티의 역사와 얼마 전 있었던 패러티 멀티 시그지갑 버그에 의해 잠겨진 이더의 복구를 둘러싸고 벌어진 논쟁에 대한 입장을 발표했다. 조금 딱딱한 내용인 데다 가지고 온 노트를 읽는 바람에 좀 흥이 빠지는 느낌이다. 패러티사는 이더리움 커뮤니티에 여전히 충실하고 있고, 앞으로도 더 잘해보자는 논조이다.

패러티가 얼마전에 내놓은 브리지 솔루션 이야기가 좀 귀에 솔깃하다.  이더리움 클론체인에 메인체인과의 양방향 이더 전송을 당장에 가능케 해서, 스케일링 문제로 고민하고 있던 여러 팀들이 이걸 가지고 당장 필요한 스케일링을 검토하는 경우가 많다.

모바일 사이너(signer),  이것도 관심이 가는 내용이다. 모바일폰을 일종의 하드웨어 월렛처럼 활용하기 위한 방안인데, 금액이 크지 않은 트랜잭션에 활용하면 좋을 듯 하다.

웹어셈블리로 스마트컨트랙트를 돌려보려는 시도가 이더리움뿐만 아니라 다른 여러 프로젝트들에서도 많이 시도되고 있다. 이더리움에도 eWasm 프로젝트가 이미 있지만, 패러티는 Rust 언어를 사용해 스마컨트랙트를 만들 수 있는 p-Wasm 라이브러리를 만들고 있다고 한다.

프라이빗 트랜잭션 지원도 이야기를 한다. 인크립트된 컨트랙트인데, 이것의 코드와 스테이트를 오직 허가된 밸리데이터만 볼 수 있게 한다는 것이다. 컨소시엄 체인에 활용되기 좋은 주제인 것 같다.

 

캐스퍼와 샤딩 리서치 개관


이더리움의 베이스 레이어에서의 스케일 솔루션에서 늘 빠지지  않는 주제가 캐스퍼 PoS와 샤딩이다. 꽤 오랜 시간 연구되고 있고 많은 글에서 언급하지만, 전체 논의 내용을 완전히 이해하기란 쉽지 않은 주제이기는 하다. 캐스퍼의 주연구자인 블라드의 프리제션테이션을 통해 한번 더 주요 컨셉을 정리해보자.

블라드는 암호경제학의 가장 큰 특징 중 하나가 블록체인을 시큐어(secure)하기 위해 경제적 인센티브를 활용한다는 것이다. 전통적인 컴퓨팅 시큐리티 모델에는 보기 힘든 개념이다. 한편 흔히 당연한 것으로 생각하는 비트코인의 인센티브 시스템이 그냥 잘 작동한다고 믿지 않는다는 것이다.

분산 프로토콜의 경제적 시큐리티라는 개념을 개발해왔고, 여기에 균형(Equilibrium)이라든가 적대자에 대한 매수 등과 같은 개념도 도입해왔다.

이런 개념들에 비추어 볼 때,  비트코인의 PoW 채굴 프로토콜은 내쉬균형(Nash Equilibrium)을 이루지 못한다는 것이고, 결국 비트코인의 시큐리티 모델이 그냥 잘 작동하는 것이 아니라는 것이다. 이것은 이기적 채굴자들의 행위가 반드시 네트워크의 시큐리티를 보장하는 것이 아닐 수 있다는 것이다. 중앙화된 채굴풀의 이기적 행동이 네트워크의 안정성을 해치는 방향으로 나갈 수도 있는 것이다.



그러나 다른 한편으로는 기존의 단순한  PoS 프로토콜 역시 잘 작동하지 않는다. PoS에는 장기 공격(long-range attack)과 무위험 스테이킹(nothing-at-stake) 문제들이 있다. 우선 무위험 스테이킹이란 PoS에서 체인 공격등으로 두개의 체인으로 분기되었을 경우, PoS 채굴자들은 양 쪽 체인에 모두 지분을 가지고 있기 때문에 두 쪽 체인 모두에서 채굴을 하게 됨으로써 더 긴 체인을 결정하는 데 문제가 생긴다는 이야기다. PoW 체인일 경우 채굴자들은 양쪽에서 동시적으로 채굴을 할 수가 없기 때문에, 어느 쪽이 올바른 체인인지 확인을 해서 긴 쪽에 베팅을 하게 됨으로써 해시파워가 한 쪽으로 모이기 쉽다. 하지만 PoS 채굴자는 양쪽 체인에서 모두 채굴하는 데 추가 비용이 발생하지 않기 때문에, 무조건 양쪽 체인에서 다 채굴하는 게 가장 안전한 방법이 된다. 이렇게 되었을 때, 전체 지분의 1% 만을 가진 공격자도 두 체인의 경쟁에서 자기 체인을 가장 긴 체인으로 쉽게 만들 수 있다. 나머지 99%가 모두 양쪽에서 다 채굴하고 있기 때문에, 자신이 선택한 체인이 항상 1% 더 많은 코인의 지지를 받게 될 것이고, 따라서 1%의 지분만으로 공격을 성공시킬 수 있는 약점이 존재하게 된다. PoS의 경우에는 둘 중에 하나에 베팅할 필요가 없는, 하나를 골라야 되는 경제적 이해관계가 없기 때문에 이런 문제가 발생하게 되는 것이다. 장기공격이란 기본적으로 PoW의 51% 공격과 유사한데, 다른 점은 PoW의 경우 일정수의 블록이상을 재구성하는게 쉽지 않지만, PoS의 경우에는 51%보다 작은 지분을 가진 경우에도 오래된 블록부터, 심지어는 제네시스 블록부터 다시 재구성해서 현재의 다른 블록넘버까지 따라오는 것이 매우 쉽다는 점이다. 왜냐하면 체인이 분리되고 나면 신규 블록은 공격자만 생산하게 되고, 이 때 주어지는 보상을 다시 합할 수 있기 때문에, 급속히 지분율이 높아지고, 메인체인의 블록넘버까지 따라오는 시간을  빠르게 단축할 수 있기 때문이다.

PoS가 PoW에 비해 에너지 소모 비용도 매우 작고, 더 빠른 블록주기를 만드는 데도 훨씬 유리하고, 51% 공격에 드는 비용도 상대적으로 더 높을 수도 있지만, 위의 장기공격과 무위험 스테이킹 문제 때문에 일반적인 PoS를 그냥 사용할 수는 없다.

이런 근본적인 문제가 있음에도 불구하고 현재 많은 코인들이 이런 나이브한 PoS 프로토콜을 그대로 사용하고 있다. 블라드가 이름을 밝히지는 않았지만, 속도문제 개선을 위해 무분별하게 PoS를 그냥 사용한 대표적인 경우가 퀀텀 프로젝이지 않을까 싶다. 위의 문제를 뻔히 알고 있으면서도 몇년 전 개발된 블랙코인 PoS를 카피해서 그 위에 이더리움 EVM을 올려놓고 3세대 코인이라고 부르는 것 자체가 참으로 우스운 일이지만, 제대로 된 캐스퍼 PoS가 나오고 나면 이런 솔루션들이 설자리가 없어질 것이라 전망한다.

캐스퍼의 출발점은 무위험 스테이킹(nothing at stake)문제를 해결하기 위해 PoS에 패널티 개념을 더하는 슬래셔(Slasher)라는 개념이다.

이것은 시큐리티 담보(security deposits)개념으로 확장되는데, 경제적 시큐리티를 제공하는 데 사용할 수 있는 일반적 인센티브 메카니즘이다. “네가 만일 X 를 하게 되면 너의 담보는 없어진다” 식의 개념이다. 경제적 시큐리티에 있어서, 보상뿐만 아니라 패널티도 매우 중요하다는 것이다. 즉 앞에서 이야기한 무위험 스테이킹을 방지하기 위해, 만일 PoS 채굴자가 분기된 두 체인 모두에서 채굴할 경우 담보로 잡아 놓은 코인을 양쪽에서 모두 태워버린다.



그래서 이더리움 블록체인을 시큐어하기 위해 시큐리티 담보와 이것을 슬래싱하는 조건들을 사용하기 시작한 것이고, 이것이 캐스퍼 연구의 시작이다.

장기공격에 대한 방어에도 시큐리티 담보가 사용된다. 이전에 보유한 코인을 이용해 블록을 재구성하려할 때, 현재 담보를 가진 노드들의 정보를 이용함으로써 이를 막을 수 있다는 것이다.

그렇다면 이러한 시큐리티 담보와 슬래싱 조건들을 이용해 어떤 프로토콜을 시큐어하게 만들겠다는 것인가? 캐스퍼의 관심은 합의(Consensus)다.

합의 프로토콜을 구성하는 가장 기본적인 두가지의 정의는 일관성(Consistency)과 라이브니스(Liveness)이다. 일관성이라는 것은 프로토콜을 따르는 노드들간에 이루어진 결정이 상호적으로 일관성이 있다는 것이고, 라이브니스란 이러한 프로토콜을 따르는 노드들이 궁극적으로 결정을 하게 된다는 것이다. 즉 합의되었다고 생각했는데, 노드간에 서로 다른 결정 내용을 가지고 있다면 이것은 합의가 실패한 것이다. 또는 서로 다른 노드 간에 동일한 내용의 합의에 결국 이르지 못할 경우 이것도 합의 실패다.

캐스퍼 PoS 프로토콜은  일관성과 라이브니스가 가장 근본적인 요소이고, 특정한 전제하에서 이를 만족시킨다.

캐스퍼의 첫번째 버전은 캐스퍼 FFG(Friendly Finality Gadget)이다. PoW 채굴자와 PoS의 밸리데이터가 같이(Hybrid) 네트워크를 시큐어하는 모델이다.  PoW 채굴자들에 의해 블록이 생성되고, 이 블록들의 최종적인 확정성(Finality)을 PoS 밸리데이터들이 결정한다. 에포크(epochs)라고 불리는 라운드마다 밸리데이터가 바뀌게 되고, 이상행동을 일으키는 비잔틴 오류(Byzantine faults)가 전체 노드수의 1/3을 넘지 않는다면 안정성과 라이브니스가 보장된다. FFG 버전은 곧 적용될 예정이다.

블라드가 프로덕션이 가까와졌다는 말을 하자마자, 관중석에서 박소와 환호가 나온다. 도대체 언제부터 기다려 왔던 것인가? 이더리움이 처음 런칭할 때부터 캐스퍼 PoS로의 전환계획이 발표되었지만, 몇 차례 일정이 미루어져 왔던 것이 사실이다. 비록 캐스퍼 FFG가 바로 블록 생성 속도를 단축시킨다거나 트랜잭션 속도를 올리는 것은 아니지만, 밸리데이터 풀이 구성되고 움직이기 시작한다는 것과 기존 블록체인의 난제중의 하나인 블록 확정성(finality) 문제가 효과적으로 해결된다는 점에서 큰 전환점이 될 것이다.

캐스퍼 CBC(Correct by Construction)의 프로토콜의 하나인 캐스퍼 프렌들리 고스트는 PoW를 기반으로 하지 않는 100% PoS 기반 프로토콜이다. PoS 밸리데이터가 직접 블록을 생성하며, 라운드 개념이 필요치 않다. 안정성과 라이브니스 조건도 달라진다. 아직 출시상태가 아니지만 열심히 준비를 하고 있다.

캐스퍼 두 버전 모두의 공통점은 4가지로 요약된다고 한다. 다른 웨이트(결정력)를 가진 노드들을 관리할 수 있고, 비잔틴 폴트(이상 상황)를 프로토콜 스테이트 차원에서 감지할 수 있으며, 비동기적 안전 확정성을 제공하고, 3가지의 상호 대립적 트레이드오프 상황을 검토해 볼 수 있게 한다는 것이다.

3가지의 트레이드오프(trade-off)라는 것은 확정성 대기 시간(Latency Finality), 비용(Overhead), 그리고 노드 숫자(Number of Nodes)이다. 노드숫자가 줄면, 확정성도 빨라지고 비용도 줄어든다. 반면 노드수가 늘면, 대기 확정성은 여전히 낮게 갈 수 있지만, 비용이 많이 든다. 만일 노드수가 많은데 오버헤드를 줄이려면 확정성 대기시간을 늘려야 한다. 결국 이 3가지 모두를 다 만족할 수는 없고, 두 가지를 선택하면 한 가지가 약화될 수 밖에 없음을 말한다. 캐스퍼의 포지션은 이 삼각형 중간 어디라고 보면 되지만, 블록체인마다 해결하는 특수한 상황에 따라 다른 포지션을 갖는 게 가능하다.

다음 주제는 스케일링의 메인 솔루션으로 회자되고 있는 샤딩이다.



이더리움 샤딩의 기본 목표는 베이스체인의 트랜잭션 처리를 많은 서브밸리데이터 그룹(샤드)들에 나누어서 할당함으로써 처리용량을 확장하려는 것인데, 베이스 레이어에서뿐만 아니라 레이어 2에서 먼저 실험되고 있다. 별도의 샤드체인을 만들고, 이것을 메인체인의 밸리데이션 컨트랙트와 밸리데이터들을 연결해서 구현하려는 것이다. 메인체인의 프로토콜을 바꾸지 않은 상태에서 기본적인 샤딩 컨셉을 미리 테스트해볼 수 있다는 장점이 있다.

Cbc-캐스퍼 샤딩은 체인이 100% PoS에 유지되는 상황에서 베이스 레이어에서의 샤딩문제를 본격적으로 다루고 있다.


PoS와 샤딩은 서로 밀접하게 연결되어 있고, 이것의 베이스는 시큐리티 담보를 사용해 경제적으로 시큐어한 분산 시스템을 만드는 것이다. 매우 어려운 문제이고, 인센티브 메카니즘 디자인에 있어 해결해야 할 과제가 많지만, 프로덕션 시스템에 사용할 수 있도록 완성하겠다는 것이 블라드 발표의 결론이다.

샤딩에 대해서는 다음편에 추가적인 발표들이 더 이어진다. 캐스퍼만으로도 머리가 복잡한데 여기에 샤딩을 다시 합하려니 뇌가 오버플로우(overflow) 상태다.

<4편에서 계속>

제보, 보도자료는 contact@coindeskkorea.com
저작권자 © 코인데스크코리아 무단전재 및 재배포 금지