이더리움 레이어2인 State Channel을 이용한 토큰 디자인
목차
- 시작하기 전에
- State Channel, Generalized State Channel이란?
- Celer Network 아키텍쳐
- State Channel의 과제
- 토큰을 이용한 게임이론에서 레이어2의 확장성/유동성을 위한 토큰설계
- CLER토큰배포
- 파트너쉽
- 결론
시작하기 전에
이 글에서는 State Channel을 설명하기 위해 Celer Network로 설명합니다. Celer Network는 이더리움 레이어2(Ethereum Layer2)인 Generalized State Channel을 이용한 프로젝트입니다. 지금까지 많은 팀들이 연구개발해온 이더리움 레이어2기술이 생산수준까지 올라왔습니다. 이더리움 레이어2는 넓은 의미로 온체인이 해야 했던 부분 트랜잭션을 생성하고 빠른 트랜잭션을 순조롭게 응용프로그램 사용자경험을 제공하는 기술입니다.
레이어2는 Raien, Plasma등의 다양한 기술이 있지만, 그중에서 State Channel이 분야로 이를 사용한 프로젝트 중 하나가 Celer Network입니다.
Celer Network는 자신의 프로젝트 자체를 Layer-2 Scaling Platform이라고 표현합니다. Celer Network는 State Channel을 사용하여 오프체인의 개발과 그 오프체인을 응용프로그램 공급업체가 쉽게 사용할 수 있는 SDK를 개발하고 있습니다. 최종 사용자는 CelerX는 레이어2 응용프로그램을 사용할 수 있는 포털 응용프로그램을 준비하고 있으며, iOS/Android용으로 다운로드할 수 있게 할 예정이라고 합니다. Celer Network는 2019 2분기에 메인넷에서 공개될 예정입니다. 또한, Celer Network는 조만간에 이더리움 레이어2에서 사용되는 것으로 예상되지만, 다양한 블록체인에 적용할 수 있다고 합니다.
- Celer Network: https://www.celer.network/
- 백서: https://www.celer.network/doc/CelerNetwork-Whitepaper.pdf
- Github: https://github.com/celer-network
- CelerX: https://celerx.app/
State Channel, Generalized State Channel이란?
이번에는 State Channel, Generalized State Channel에 대해서 알아봅시다. Celer Network를 기반으로 하는 기술 아키텍쳐는 Generalized State Channel입니다.
첫번째, State Channel은 특정 참가자간에 채널을 열고 오프체인에서 상태전이를 하고 있는 시점에서 온체인에 기록하는 것입니다. 이 기술도 지불채널을 응용한 것입니다.
온채널으로 되돌릴 때, 부정이 되지 않도록 오프채널에서 일어난 트랜잭션이 올바르게 기록되도록 다양한 방법이 논의 및 구현되어 있습니다. Plasma뿐만 아니라, 레이어2라는 것이지만, Plasma는 2way peg를 바탕으로 사이드채널을 구축하는 것에 대해 State Channel아이디어는 결제 채널의 아이디어를 방탕으로 하고 있습니다.
라이트닝 네트워크(Lightning Network)도 지불채널을 응용한 것이지만, State Channel도 지불채널을 응용하여 단순한 지불뿐만 아니라, State(계정상태)도 오프체인에 있는 것이 특징입니다. 이는 스마트계약을 이용한 응용프로그램 실행이 오프체인에 있습니다.
Plasma가 우선 백서가 나와서 많은 구현수단(Plasma MVP, Plasma Prime, Plamas Cash등)이 제안되어 있고, State Channel도 다양한 구현 프레임웍이 제안되어 있는데 그 중 하나가 Generalized State Channel입니다.
Generalized State Channel은 특정 응용프로그램에 의존하지 않는 채널입니다. 새 응용프로그램을 도입함에 있어, 온체인의 상태가 옮겨갈 필요없다라고 정의할 수 있습니다. 좀더 쉽게 설명하면, 응용프로그램을 위해 열린 채널을 다른 응용프로그램에서도 그대로 사용할 수 있다는 것입니다.
Generalized State Channel은 2018년 4월에 Counterfactual은 L4가 주도하는 팀에서 백서가 출시되었습니다. 이 구조는 오프체인 채널 및 블록체인이 의사소통하는 opcode가 필요하며 코어 블록체인 업데이트도 필요했지만, 이는 EIP 1014, Skinny CREATE2로 2019년 2월 Constantinople하드포크에 포함되었습니다.
Plasma와 State Channel등 모든 레이엍2에 해당하는 과제이지만, 이 레이어에서 유효성검사/오퍼레이터에 의한 부정이 발생할 경우, 그것을 어떻게 감지하고 사용자 자산을 보호를 구현할것인지가 과제입니다. 더 간결하게 설명하자면, 레이어2를 어떻게 트러스트레스(trustless) 또는 트러스트미니마이즈(trust-minimized)디자인을 하는가에 대한 관점입니다.
또한, State Channel은 라이트닝 네트워크와 마찬가지로 채널에 보증금이 있는데 이를 대체하고 있습니다. 네트워크 참가자에 의해 용량이 결정됩니다. Generalized State Channel도 예외없이 그 과제를 가지고 있으며, 동시에 레이어2에서 가장 중요한 포인트중 하나입니다.
Celer Network에서는 토큰 인센티브 설계에서 문제를 해결하려고 하고 있고 이 글에도 설명을 합니다.
Celer Network 아키텍쳐
Celer Network 아키텍쳐는 cStack이라는 레이어3에 계층화되어 있습니다. cStack은 다시 cChannel, cRoute, cOS로 나뉩니다.
각 계층으로 나누어 각각 다른 기능으로 나뉘는 것이 앞으로의 확장 및 다양한 종류의 블록체인에 적용을 할 수 있게 하려고 합니다.
cChannel
cChannel은 Celer Network의 가장 하위계층에 위치하며 첫번째 레이어의 블록체인과 의사소통을 하는 부분입니다. 상위 레이어인 첫번째 레이어 블록체인 State를 전달하고 오프체인의 State전환을 관리하는 부분입니다. Celer Network의 State Channel에서는 DAG형식으로 채널간 퍼져서 Genneric Dependency DAG라고 합니다.
cRoute
cRoute는 다른 경로에서 열린 채널 라우팅 계층에서 cStack 중간레이어를 담당합니다. Celer Network는 다양한 DApps를 구축할 예정입니다. 게임A, 게임B, 금융관련 응용프로그램C가 개발되는 경우도 있습니다. 이들은 각각 이용하면 게임A 프로그램 채널을 닫고 금융계 응용프로그램C 채널을 열어 온채널 동작하는 것을 방지할 수 있는 Generalized State Channel의 목적입니다.
실제로 이를 가능하게 하기 위해서는 각 채널과 연결되어 있는 노드를 통해 원하는 채널에 도달하기 위한 라우팅이 필요합니다.
라이트닝 네트워크에서는 최단 경로 라우팅이 검색되지만, State채널에서는 성질이 다르고, Distributed Balanced Routing(DBR)는 라우팅 검색 알고리즘이 이용되고 있습니다.
이 알고리즘을 채용하여 채널간 State의 균형을 가능하게 하고 동시에 라우팅 경로가 집중하는 것도 막고 있으며, 라이트닝 네트워크도 우려되는 허브의 중앙 집중화 및 개인정보 보호 문제도 해결될 수 있다고 합니다.
cOS
cStack의 상위 레이어에 있는 cOS는 응용프로그램 개발 프레임웍입니다. 레이어2에서 응용프로그램을 개발하는 것은 첫번째 레이어의 블록체인에서 개발을 하는 것과는 성격이 다르고, 그것을 활성화하기 위한 프레임웍입니다.
State Channel의 과제
State Channel의 과제는 다음과 같은 내용이 있습니다.
확장성 VS 유동성
오프체인의 응용프로그램에서 사용할 수 있는 자산의 금액은 그 오프체인에 입금되어 있는 자산의 양(이를 유동성이라고 함)에 따라 달라집니다.
레이어2의 응용프로그램이 글로벌 매스 어뎁션(Global Mass Adoption)하려면, 이에 따라 유동성이 필요합니다. 이 유동성 공급자는 어느정도 정리된 금액이 있는 암호화자산(Crypto Assets) 보유자인것으로 예상되지만, 어떤 것이라도 메리트가 없으면 보증금은 넣지 않습니다.
반대로 유동성을 제공하지 않지만, 오프체인의 응용프로그램을 개발하고자, 이용하고 싶은 사람이 있어도 그 응용프로그램을 확장성을 가지지 않습니다.
확장성 VS 이용성
일체의 타협을 하지 않고 트러스트설정을 두지 않는 경우, State Channel은 항상 오프채널을 사용할 수 있는지에 대한 여부에 대한 보증이 없습니다. 라우팅 노드와 허브 역할을 하고 있는 노드가 오프라인 상태가 되었을 경우, 최신 State가 공유할 수 없는 위험이 잇스빈다.
트러스트 설정을 두고 그런 부족한 자체로도 해당 트러스트 설정이 가지는 State를 옳다고 한다면, 이 문제는 해결되지만, 해당 설정을 어느정도 믿을 필요가 있을 필요가 있습니다. (이 부분은 신용을 최소화하기 위한 구조로 구현별로 다양한 제안이 되어 있습니다)
Celer Network는 이 두가지를 해결하기 위해 토큰을 이용한 cryto economics해결을 같이하고 있습니다.
토큰을 이용한 게임이론에서 레이어2의 확장성/유동성을 위한 토큰설계
Celer Network의 crypto economics에서 매체가 되는 토큰인 CELR(Celer Network’s Protocol Token)입니다. 이를 요약하면 크게 세가지로 설명할 수 있습니다.
PoLC(Proof of Liquidity Commitment)
유동성 공급자는 ETH와 ERC20토큰 등과 같이 CELR토큰을 잠급니다. 제공하는유동성양과 CELR토큰 스테이킹양을 변수로 하여 일정기간마다 CELR토큰을 보상받을 수 있습니다.
LiBA(Liquidity Backing Auction)
LiBA는 오프체인의 서비스 공급자를 위한 유동성을 제공하는 클라우드 블렌딩입니다. 블렌딩을 하는 측(대출)은 임의의 이자 유동성의 준비량, CELR스테이킹량에 따라 결정됩니다. Happiness Score라는 점수에 의해 순위가 만들어집니다. Happiness Score가 높은 것이 우선적으로 유동성을 공급할 수 있어 결과보다 높은 이자를 얻을 수 있는 것으로 기대되고 있습니다.
SGN(State Guardian Network)
State Channel간의 노드가 오프라인 상태일 때 대응책으로 State Channel에 연결되는 사이드체인이 준비되어 있습니다. 이는 백업적인 의미로 준비되어 있으며, State Channel의 안전성을 담보하는 것입니다.
이 사이드체인을 유효성검사하는 존재가 SGN이며 이를 위해 토큰이 필요합니다. State Channel의 사용자나 서비스가 오프라인되기 전에 SGN 소액이 지불되는 것으로 당시에 State를 보호해줄 수 있는 구조입니다.
모든 토큰의 스테이킹양에 따른 보상결정이나 채점기준은 백서에서 수식으로 나와 있습니다.
CLER토큰배포
CLER 토큰 배포는 아래와 같습니다.
- 런처패드(Binance IEO) 6%
- 비공개 라운드 15.5%
- 시드 라운드 11.5%
- 팀 18.3%
- 고문(어드바이저) 1.7%
- 마케팅 및 에코시스템 (PoLC) 5%
- 마이닝 리워드 25%
- 파운데이션 17%
이 프로젝트의 자금조달에 대해서는 2018년 8월 시드라운드에서 $2천3백5만불(약 284억원)을 조달하였습니다. 또한, 2019년 3월 IEO에서는 $4백만불(약 48억원)을 조달했습니다.
여기서 궁금했던 부분은 IEO할 때 토큰 거래액이 시드라운드에서 했던 금액의 반이 진행되었다는 것입니다. 주요 투자자는 FBG Capital, DHVC(Danhus Capital), Pantera Capital등이 포함되어 있습니다.
파트너쉽
Celer Network는 우선 이더리움 레이어2에 적용될 예정이지만, 차후에 Dfinity, Nervos Network, Qtum등에 통합될 예정이라고 합니다.
또한, Celer Network는 Binance의 TrustWallet제휴도 발표되었습니다.
TrustWallet는 여러 블록체인에 대응한 지갑서비스이지만, 이를 원활하게 레이어2의 응용프로그램에 연결해 우선 지불 및 DApps를 레이어2에서 구현하고 이 지갑에서 접근할 수 있도록 하는 것을 목표로 하고 있습니다.
같은 Generalized State Channel의 Counterfactual을 개발하는 L4모두 제휴를 발표하였습니다. 여기서는 Generalized State Channel표준을 목표로 하고 있어 경쟁 프로젝트라고 볼 수 있습니다.
결론
필자가 CLER토큰을 분석해보면서 우려되는 부분이 있어 나름대로 설명해보면 다음과 같습니다. 우선 CLER토큰 유틸리티는 여러가지가 있지만 유동성 공급자가 되기 위한 엘리트역할(PoLC)이 가능 큰 유틸리티라고 말할 수 있습니다.
기본적으로 프로토콜의 발전과 같이 스테이킹량이 증가하면 토큰값도 오른다는 설계로 되어 있다고 봅니다. 그렇지만, 유동성 공급자는 CLER이외의 임의의 토큰을 구입해야 보상을 얻지만, ETH 및 주요 ERC20토큰은 다른 블렌딩 사업자와 DeFI프로토콜로 입금하고 이자를 얻을 수 있습니다. 즉 여기서는 유동성 쟁탈을 위한 경쟁이 발생합니다.
또한, Celer Network 레이어2 응용프로그램 수가 많아지면 유동성 수요가 높아져 LiBA에서 얻을 수 있는 금리도 커질 것입니다. 그러나 유동성이 충분하지 않으면, Cerler Network의 유용성에 영향을 주기 때문에 기존 응용프로그램이 증가할지도 모릅니다. (사실 어떻게 될지는 예측하기 어렵습니다.)
동시에 그외에도 Generalized State Channel을 개발하는 프로젝트는 존재하고 그것과 호환성을 가질수 있는지와 State Channel표준과 같은 위치를 얻을수 있을지가 관건입니다.
전세게 응용프로그램 개발자 리소스는 제한적이기 때문에 State Channel만으로 여러가지 규격이 남아있을 가능성이 큽니다.
아마도 2019년내에 사용자들이 사용할 수 있는 목업수준의 응용프로그램이 여러가지 나올 것으로 예상됩니다. 또한, 더 먼 미래에는 오프체인과 온체인의 차이를 느끼지 못하고 사용자는 그냥 사용할 수 있을 것으로 보여지고 그렇게 발전될 것이라고 생각됩니다.