얼마전에 ICO를 마친 LISK 기본개념과 개발 도구들을 살펴보았습니다.
스마트 컨트랙을 실행하기 위한 플랫폼이라는 측면에서 특별히 더 경쟁력이 있는 부분들은 잘 보지를 못했는데,
이더리움과 비교해서 두가지 점에서 생각해 볼 이슈가 있는 것 같습니다.
개별 앱을 위한 사이드체인(Side Chain) 기능과 개발언어로 자바스크립을 사용한다는 점입니다.
우선 자바스크립을 사용하고 있다는 점에서, 기존의 많은 웹개발자들이 새로운 언어와 툴들을 배우지 않고 바로 dapp 개발에 참여하기 쉽다는 장점이 있을 것 같습니다. 하지만 아직까지는 예제들에서 보여주는 클래스나 api 사용방식이 그렇게 참신하게 심플하지는 않은 것 같습니다. 이제 막 출시된 것이니 이해는 하지만, 그냥 자바스크립 베이스라는 막연한 인상을 넘어서서, 개발시간을 단축시켜주는 그런 구체적인 툴들은 아직 미약한 것 같습니다.
이더리움의 solidity 와 비교했을 때 별로 심플해보이지 않는다는 것이죠. 자비스크립을 다룰 줄 아는 프로그래머가 solidity 를 익히는게 빠를지, 아니면 LISK 의 api 구조를 익히는게 빠를지 잘 모르겠습니다.
그래서 저 한테는 자바스크립이라는 간판보다는 사이드체인에 더 눈길이 갑니다.
블럭체인 기술이 모든 노드가 모든 데이타를 같이 공유하게 하다보니, 스케일링이 매우 어려운 문제로 등장합니다. 당장 비트코인의 블럭사이즈 문제만해도 이런 문제이죠. 비트코인은 매우 단순한 트랜잭션 정보만 저장하고 블럭타임도 10분에 한개인데도 벌써 블럭체인 데이타량이 이렇게 늘어났는데, 온갖 dapp 들의 데이타를 다 담아야 하는 스마트 컨트랙의 블럭체인에게는 스케일링의 문제가 더욱 심각한 주제입니다.
이더리움의 경우에도 이더리움 2.0을 준비하면서 이 스케일링에 가장 큰 포커스가 맞추어져 있다고 해도 과언이 아닐 겁니다. 가장 대표적인 솔루션이 sharding 이라고 하는, 즉 전체 블럭체인 데이타를 모든 노드가 다 카피하는 것이 아니라, 나누어서 보관하면서도 전체 인테그러티를 유지하는 것이죠. 데이타베이스 아키택쳐에서는 이미 많이 이용되고 있는 기술입니다.
리스크는 하나의 메인 체인위에 여러 dapp 의 데이타를 다 올리는 대신, 어플리케이션별로 별도의 사이드체인을 만들어서 커스터마이징할 수 있게 해준다는 것입니다. 그러면서도 이 사이드체인의 블럭해시값은 다시 메인체인에 연결되기 때문에, 전체 체인이 인테그레이션도 유지한다는 것이구요. 이러한 사이드체인 개념은 이전에 비트코인의 제한된 리소스를 극복하기 위해 제안된 개념이고, 지금도 개발중입니다.
물론 이더리움에서도 사이드체인을 만드는 것이 불가능한 것은 아니지만, 리스크만큼 쉽게 만들 수 있도록 개념적 구현이 된 것은 아닙니다. 오히려 이더리움쪽에서는 이러한 사이드체인 중심의 dapp 개발에 대해 비판적이기도 합니다.
양쪽에서 주장하는 사이드체인 장단점은 이렇게 정리될 듯 합니다.
사이드체인의 장점:
1. 메인체인의 데이타를 최소화 --> 빠르고 스케일링에 용이
2. 필요에 따른 사이드체인 설계 --> 어플리케이션의 용도에 따라 사이드체인의 여러속성들을 커스마이징 할 수 있음
3. 리스크분산 --> 하나의 어플리케이션이 잘못설계되어 체인에 과부하를 일으키거나 보안상의 문제를 일으켜도 사이드체인 하나에 국한됨
4. 트랜잭션 코스트 분산 --> 각 사이드체인별로 코인이나 토큰을 발행해서 트랜잭션 코스트를 관리할 수 있음.
사이드체인의 단점:
1. 어플리케이션들의 직접적인 상호호환에 따른 시너지 효과 작음 - 이더리움 메인 체인위의 dapp 들은 다른 dapp 들을 직접 호출해서 사용할 수 있고 각각의 기능이 상호보완을 함으로써 전체 네트워크의 시너지 효과를 기하급수적으로 증가시킬 수 있음.
2. 사이드체인 블럭생성을 위한 추가적인 리소스 경비 - LISK 의 사이드체인은 101개까지의 DPOS 노드에 의해 유지되어야 하는데, 각 어플리케이션 마다 이 dpos 노드가 있어야 하고, 여기에 리소스 들어감.
3. 보안상 약화 --> 블럭검증에 들어간 노드들이 각각의 체인블럭에만 리소스를 들이게 됨으로써 전체 메인체인의 보안에는 기여를 못함.
4. 어플리케이션 개발의 복잡성 증가 --> 각체인별 특성에 따라 앱의 설계가 틀려지고 이들간의 호환성도 약화. 이에 반해 이더리움의 dapp 개발환경은 표준화되어 있고 상호호환됨.
=====================
몇일전 이더리움 소셜미디어 프로젝인 아캬샤에서 개스가격문제로 글을 쓴게 있습니다.
이더리움 가격이 갑자기 오르면 당장에 개스가격이 같이 올라서, 결국은 트랜잭션이 매우 많은 dapp 들의 활성화가 어려워진다는 이야기입니다.
개스가격을 좀 더 다이나믹하게 조정되게 하고, pos 로 전환이 많은 도움이 되리라 보지만, 싱글체인, 사이드체인과 관련해서 시사점이 있는 주제입니다.
http://blog.akasha.world/2016/06/03/thoughts-from-the-machine-room/
비트쉐어의 steem 처럼 완전히 독자적인 체인으로 가면, 트랜잭션 코스트를 완전히 독자적으로 결정해서 운용할 수 있는 메카니즘을 쉽게 구현할 수 있는 반면, 기존의 체인(예를 들어 비트쉐어 메인체인, 또는 관련 체인들)과 단절이 되어서, 거기서 생기는 시너지 효과는 없어지는 단점이 생깁니다. 반면 이더리움의 단일 체인위에 있으면 다른 dapp들의 사용자베이스를 바로 공유하면서 여러가지 기술적, 마켓팅적 시너지 효과를 누리지만, 공유하는 체인의 코스트가 부담스러워질 수도 있습니다. LISK가 얼마나 메인체인 <--> 사이드체인, 사이드체인 <--> 사이드체인 간의 연결고리를 효과적으로 잘 구현해낼지 지켜볼만한 대목입니다.
lisk 가 그냥 펌프덤프 코인이 아니었군요;;;