dAPP 플랫폼 성공의 두 가지 주요 요인
2018-03-24 글 게시
dAPP 플랫폼이란?
dAPP는 블록체인 위에 올라가서 돌아가는 애플리케이션이고 이 dAPP를 만들 수 있는 블록체인을 나는 dapp 플랫폼이라고 정의하고 있다. 물론 엄밀하지 않은 표현이다. 현재 존재하는 모든 코인 프로젝트들은 각자의 프로토콜을 제시하고 dAPP를 만들 수 있게 해준다. 하지만 나는 고유의 Language가 존재해 그것을 프로그래밍 형태로 짜서 블록체인에 올릴 수 있게 만든 것들만을 dAPP 플랫폼이라고 정의한다. 이더리움은 Solidity를 이용한 알려진 최초의 dAPP 플랫폼이라 볼 수 있고, 그 외 주목할 만한 가치가 있는 것은 현재 대략 10개가 넘지 않는 것으로 보인다. 내가 현재 인지하고 있는 리스트는 NEO, ARDR, QTUM, EOS, ADA, LSK, ETH를 뒷받침하는 프로젝트들이다.
이 dAPP 플랫폼이 중요한 이유는 모든 알트코인 프로젝트나 그 외 비즈니스들이 올라간 생태계이기 때문이다. 비트코인이 언젠가는 코인들의 기축통화 자리를 내어줄 것이 분명한 지금, dAPP 플랫폼들이 대신 가치판단의 기준이 될 거라 예상 할 수 있고 어떤 프로젝트에 투자하더라도 해당 플랫폼을 잘 고려해야 할 것이다. 그 플랫폼이 망하면 같이 망하기 때문이다.
현재 투자자들, 특히 거의 대부분의 한국인 투자자들은 dAPP 플랫폼들의 존재만 알고 있을 뿐 이들이 뭐가 다른지 잘 모르고 있다. 아무리 많이 알아도 각 플랫폼의 특징들을 훑어보았을 따름이다. 그리고 현재의 시장을 그들 간의 경쟁시장으로 인식하며 어느 것이 가장 '센 지' 측정하고 싶어한다.
하지만 지금까지 나타난 몇가지 커다란 플랫폼은 그렇게 하나의 척도로 전투력이 갈릴 만큼 단순하지 않다. 그리고 경쟁은 있을지언정 아주 다양한 요인에 의해서 승자가 결정될 것이며 어떤 경우에는 승자가 여럿 있을 것이다. 예를 들어 LSK의 경우 아주 독특한 독자적 생태계를 구축할 것으로 보이며 다른 플랫폼 중 그 무엇도 LSK의 프로젝트들을 뺏어오지 못하며 거꾸로 LSK가 다른 플랫폼을 위협할 확률도 별로 없어보인다.
현재 dAPP 플랫폼에 대한 평가
투자자로서 그리고 동시에 개발자로서 우리는 당연히 각 플랫폼을 평가하고 미래가치를 알고 싶다. 투자자라면 이왕이면 유망한 플랫폼 위의 ICO 및 프로젝트들에 투자하고 싶을 것이다. 개발자는 좋은 플랫폼이 지원하는 언어를 공부하고 싶을 것이다.
그런데 현재 투자자들이 평가하는 척도는 단 두가지 - 성능과 안정성이다. 성능이라 함은 해당 블록체인이 얼마나 많은 양의 트랜잭션을 처리해서(TPS) 결과적으로 수수료를 낮추게 될 지를 말하며, 안정성은 해당 블록체인의 합의(consensus)를 만드는 과정이 얼마나 해킹으로부터 자유로울지를 말한다. 그 외 '프로젝트 팀이 유명한가', '커뮤니티가 활성화 되어있는가', '로드맵 대로 오픈소스를 런칭하고 있는가' 등등의 요인들은 모두 성능과 안정성이라는 목표로 훌륭하게 나아가는 지 판단하기 위한 부가적인 척도일 뿐이다.
하지만 이 타이밍에서 language를 이용하는 모든 dAPP 블록체인의 본질을 살펴봐야 한다. 그것은 모든 dAPP 블록체인이 turing-completeness를 이미 구현한다는 것이다. 즉, 이론상 현재 PC에서 할 수 있는 모든 일들은 플랫폼들을 이용해서 모두 구현할 수 있다. 지구상에 나온 애플리케이션 전체를 이더리움의 Solidity를 이용해서 구현할 수 있다. 컴퓨터의 부팅 시스템을 조작하면 심지어 Windows 10을 구현할 수도 있을 것이다. 물론 할 이유도 없고 한다해도 더럽게 느려서 30년 전 컴퓨터 수준으로 돌아갈 것이다. 중요한 것은 이더리움 이후 세대로 나타날 블록체인이 할 수 있다는 모든 일은 서로서로 똑같이 구현할 수 있다는 것이다. NEO에서 할 수 있는 것은 Solidity로 100% 구현할 수 있다.
그렇다면 과연 이더리움 이후 차세대 주자로 나타나는 블록체인들은 무엇이 이점이 될 수 있을까? 물론 단순히 성능이 좋아진 것도 있다. 그렇지만 차세대 블록체인들이 모두 성능은 초당 몇천개 이상의 트랜잭션을 처리한다고 주장하고 있고 이더리움도 계속해서 tps를 발전시키고 있다. 그 와중에 다들 똑같이 turing-completeness를 성립시키고 있으면 본질적으로 그들끼리는 어떻게 나눌 수 있을까?
내가 현재 생각하고 있는 것은 바로 다음과 같이 두 개의 기준이 도출된다는 것이다.
1. 그 블록체인 자체의 지속가능성
첫번째 요인은 블록체인 자체가 고유하게 가지는 기능들을 기준으로 하겠다. 그 기준에는 (1) 성능, (2) 안정성이 당연히 포함된다. 하지만 아이러니하게도 일반 투자자는 그것을 신경 쓸 이유는 없다고 생각한다. 왜냐면 dAPP 플랫폼은 천재적인 공돌이들이 모든 역량을 쏟아부어 발전시키고 있는 것인데 일반투자자의 능력으로 어느 것이 더 나은지 파악할 수 있을 확률은 0%이기 때문이다. 성능과 안정성에 대한 구체적 수치만 확인해보고 비교 체크 해보면 된다. 그리고 진짜로 목표대로 작품이 나오는지만 확인하면 된다.
하지만 (3) 거버넌스 (governance)와 같은 것에는 신경을 많이 써야할 것이다. 왜 수많은 블록체인 프로젝트에 거버넌스라는 단어가 그토록 많이 나올까? 그것은 원래 블록체인이 주목받는 이유이기도 하고, 비트코인이 망하게 될 결정적인 요인이 '분산화의 실패'에 있기 때문이다. 비트코인은 어느 정부에 소속된 화폐/자산이 아니라는 점에서 '탈중앙화'는 성공한 것 같지만 중국의 채굴집단에 의해 가격을 마음대로 조종 당하고 자금 세탁에 적극 활용되면서 진정한 의미의 '분산화'를 실패한 것이다. 결국 같은 무정부주의를 펼치더라도 아예 모든 사람이 함께 야생으로 돌아가 마음대로 살자는 것은 안되며, 규칙이 존재하되 그 규칙을 정하는 주체가 없도록 하자는 케케묵은 얘기가 다시 나올 수 밖에 없다.
그런데 규칙이 있으면 그것을 정하는 자가 있을진대, 다시 정하는 주체가 없다고 하는 것은 모순이 아닌가? 나는 그렇다고 생각한다. 블록체인을 발전시켜가면서 나오는 구호들이 모순을 갖고있다. 현재 나오는 플랫폼 프로젝트들은 그 모순을 은근슬쩍 포장해서 추진하면서 그래도 현실적으로 우리가 만족할 만하게 문제를 해결해줄 것이라고 얘기하고 있다. 어쨌든 블록체인이 가져다줄 부가가치를 획득하기 위해서 플랫폼은 나타나서 돌아가야 하기 때문이라고 예상한다.
하지만 여기서 조심해야할 것이 있다. 현재의 블록체인은 개발자들 위주, 공돌이들 위주로 발전하고 있다. dAPP 플랫폼 팀에 사회과학 학자가 한 명이라도 껴있는 경우가 있을까? 그런 와중에 도출해낸 거버넌스가 얼마나 미래를 잘 고려한 것일까? 현재 정부나 NGO, 각국 의회 등등에서 고도로 발전되어 나타난 거버넌스는 엄청나게 치열한 고민과 시행착오 끝에 얻어진 것이다. 아무리 기술적으로 새로운 것에 의해 파생해 나타나는 것일지라도 한낱 공돌이들이 생각해내는 거버넌스 구조는 필연적으로 예상치 못한 결과를 내보일 수 있다. 공돌이들은 기본적으로 인간에게 관심이 크게 없기 때문이다. 그러므로 그 어떤 프로젝트일지라도 그 프로젝트가 제시한 거버넌스 발전 방식을 리뷰하고 계속해서 다각도로 잘 살펴보아야 한다.
마지막으로 (4) 커뮤니티 (community) 또한 고려해야 할 요소이다. 이 또한 인간에 관련된 것이니, 대중이 한번 가지게 된 이미지는 바꾸기 어렵다. 그것이 QTUM 프로젝트에서 로켓을 쓰는 등의 뻘짓을 하는 이유일 것이다. QTUM 프로젝트의 백서를 읽어보면 비트코인과 이더리움의 성과들을 짜깁기해서 만들어놓았을 뿐, 전에 제시하지 못한 새로운 가치 창출 가능성은 전무하다시피 하지만 대중은 그런 거 상관 없이 이 미래지향적인 이미지를 좋아할 수 있을 것이다.
그래도 블록체인의 지속 가능성은 분명 투자자들이 어느 정도 신경쓰고 있는 부분이라 볼 수 있다. 하지만 나머지 또하나의 특성은 장담컨대 한국에서 0.01%도 안되는 투자자들이 인식하고 있을 것으로 보인다.
2. 비즈니스 구현 방식의 특성
앞서서 '어차피 똑같이 turing-completeness를 성립하는 블록체인들이 서로 구분될 수 있는지'에 대해 물었다. 답은 명확하다. 바로 비즈니스의 구현 방식을 어떻게 지원할 것이냐에 의해 각 플랫폼은 가치를 얻으며 자기 특색을 살릴 수 있다는 것이다. 다수의 사람들이 마치 블록체인이 새로운 사업을 만들어 줄 것이라고 착각하곤 한다. 블록체인은 마치 3d 프린터 기술과 같이 전혀 새로운 산업의 분야를 열어주지 않는다. 아주 소수의 개발자만 블록체인이라는 산업 그 자체를 연구할 것이며, 나머지 사람들은 기존에 존재하는 비즈니스를 얼마나 효과적으로 탈바꿈시키는 지에 집중하게 된다.
비즈니스를 구현한다는 것이 무엇을 의미할까?
한마디로 말하면 '어떻게 하면 그 사업의 프로세스를 자동화시켜 사람을 조금이라도 더 자르게 될 것인가' 를 의미한다. 새로운 기술이 더 가치가 있다는 것은 얼마나 더 실업자를 많이 만들어내느냐에 의해 결정된다. 그럴려면 수작업으로(manually) 이루어지는 비즈니스 프로세스를 최대한 자동화 시켜야 한다. 블록체인이 대체 어떤 수작업을 없애는 것일까?
블록체인은 'app과 database를 네트워크에 공개시키는데, app은 반드시 그렇게 동작할 것이고 db에는 한번 저장되면 변할 일 없을 것이다' 라는 내용을 담고 있다. 그러므로 "이 app은 이렇게 동작합니다!" 라고 설득하거나 "이 db에 저장된 데이터는 바꾸지 않겠습니다!"라고 설득해야하는 사람 및 서비스가 사라질 거라는 뜻이다.
예를 들어 블록체인이 은행 간 거래에 응용된다고 한다 함은 거래 수수료를 낮춘다는 뜻이다. 그리고 기존에 은행 간 신뢰를 위해 계약서를 만들던 로스쿨 출신 변호사들을 몇명 자를 수 있게 될 것이다. 블록체인이 Supply chain에 이용될 때는 각 물품이 어디 있는지를 사업자간 합의 없이도 조회할 수 있게 될 것이다. 그렇다면 각 사업장에서 물품 연동을 위해 계약 협의하던 사람들과 그 고유의 연결 프로토콜을 만드는 개발자들을 대부분 해고할 수 있다. 에너지 산업에서는 재생 에너지를 p2p로 거래할 수 있는 플랫폼 코인들이 나타나고 있는데, 그렇다면 각 지역 간의 재생 에너지 관리 회사 간의 계약 과정을 축소시키거나 없애버려서 잠재적인 실업자를 효과적으로 만들 수 있다.
IT 분야에서 일을 하지 않는 사람들은 갸우뚱 할 수도 있을 것이다. 아무리 자동화가 잘 이루어져도 사람이 필요한 경우도 있을 것이며, 또 모두가 공유하는 정보를 주는 서비스는 지금도 비슷한 게 많아보이기 때문이다. 그것은 합리적인 의심이고 블록체인이 모든 산업에 영향을 끼치지는 않을 거라는 전망이 나오는 이유이다. 하지만 IT에 있어서 자동화의 중요성을 알아야 한다.
내가 일을 할 때에도 몇번 반복적인 작업을 하다보면 그 규칙을 도출하고 자동화할 수 있는 코드를 생각해 짜게 되어있다. 모든 개발자들이 적든 많든 그런 식의 응용을 하곤 한다. 그리고 자동화를 성공할 시, 인간이 하루를 소모하던 일을 1시간 안에 해결하게 된다. 구글에서 주도하는 cloud service 등등을 이용하면 5분으로 줄어들 수도 있다. 이는 직접 경험하지 않고는 느낄 수 없는 특유의 공포감을 준다. 내가 잘하면 잘할 수록 옆에 있는 사람이 해고될 것이라는 것을 말이다.
어떤 dAPP 플랫폼이 성공하기 위한 요건은 명확히 도출된다. 현재 존재하는 비즈니스를 해석하고, 그 로직을 블록체인 위에 올려 기존 사업에 들던 비용을 줄일 수 있도록 하는 것. 이것을 얼마나 잘하느냐가 아주 중요한 핵심이다. '왜 c보다는 c#/java가 현재 여러 산업 비즈니스에서 많이 쓰이는 지'와 같은 이유에 의해서, 이더리움 킬러가 나타날 가능성을 갖고 있다. 똑같은 문제를 해결할 수 있을지라도 더 사업의 규칙을 쉽게 받아들일 수 있는 구조가 중요하기 때문이다.
c#/java를 c보다 high-level language라고 말한다. 더욱 인간이 이해할 수 있는 형태로 쓰여질 수록 더 high-level이라고 한다. 비트코인은 private/public key 쌍으로 트랜잭션의 signiture를 구성하게 만들었다. 하지만 이더리움 이후의 플랫폼들에서는 key라는 용어가 훨씬 덜 나타나고 있다. 기술은 똑같은 데서 파생되었지만, public key라는 것을 high-level로 끌어올려서 자기네만의 컨셉을 입혔기 때문이다.
이것을 정리하면 다음과 같다.
- 비트코인 : UTXO의 signiture. key는 비트코인을 전송할 때의 서명 기능을 한다.
- 이더리움 : key는 일종의 계좌로 인식된다. 개발자는 해당 계좌에 'balance'라는 속성값을 인식할 수 있다. 이를
account-based 컨셉을 가진다고 한다. - NEO : 자산으로 인식한다. Asset이라는 개념으로 접근하고 그러므로 그 asset끼리 주고받는 기능을 쉽게 만드는 것에 집중했다.
- EOS : Message handler라고 인식한다. 이는 기술적인 용어로, 관련되어서 이 글에서 다뤄보았다. scalable하고 비즈니스 프로세스를 더 쉽게 구현하기 위해서 제시하는 방식이다.
- ADA : 아직 공부해보지 않았다.
- LSK : 아직 정확히 공부해보지 않았다. 하지만 Node.js로 짜인 웹 프로그램을 실행할 수 있는 권한으로서 key가 역할을 할 것이라고 예상한다.
위의 각 컨셉들은 개발자가 개발하는 과정에서 '염두에 두는' 요소가 되고, 그 컨셉이 각 비즈니스에 딱 맞아떨어질 수록 더 쉽고 빠르게 개발할 것이다. 즉, 각 플랫폼은 어떻게 개발하도록 돕느냐에 차이가 있기 때문에, 자기네 플랫폼 위에서 잘 돌아가는 비즈니스가 서로 다를 것이다. 그런 점에서 이더리움은 꼭 어느 플랫폼에게 죽임을 당할 운명이라고 예상하지 않는다. 또 플랫폼들은 서로 배타적으로 이겨먹어야 하는 관계가 되리란 보장이 없다. 그리고 투자자나 개발자 입장에서는 어떤 프로젝트가 플랫폼 위에서 진행될 때, 그것이 꼭 그 플랫폼 위에서 이루어져야 적합한 지에 대해서 살펴야한다.
결론
dAPP 플랫폼을 language를 이용해 smart contract를 만들 수 있는 것으로 정의한다고 했을 때 1. 그 블록체인 자체의 지속 가능성과 2. 얼마나 비즈니스를 잘 구현해줄 수 있느냐에 의해 경쟁력이 결정될 것이다.
p.s. 앞으로 이 글에 링크를 더 첨부하거나 수정을 하는 방식으로 계속해서 발전시키겠다.