토큰발행과 스마트 컨트랙트

현재 블록체인 최고의 킬러 어플리케이션은 ICO다. 특히 새로운 코인을 설계하지 않고 기존 이더리움 같은 블록체인을 이용하는 경우가 더욱 그러하다. 스마트 컨트랙을 통하여 토큰을 사는 사람에게 어떤 조건을 제시할지 미리 프로그램하고 확정 지을 수 있다.

예를들어 몇년 몇월까지 모인 ETH를 락업 하겠다고 했다면 그렇게 프로그램을 만들어야 한다. 환불이 가능하다면 환불에 관한 코드도 있어야 한다. 그렇게 편리하지는 않지만 MyEtherWallet같은 서비스가 있어서 일반인도 설명을 잘 보면 충분히 스마트컨트랙의 함수를 실행할 수 있다.

그런데 대부분의 ICO를 보면 이런 프로그램이 없이 진행된다. 프로그램이 있어도 코드가 공개되지 않아 계약서도 못보고 계약을 하는 꼴이다. 블록체인 생태계를 말하면서 프로그램으로 말하지 않고 블로그와 공지문으로 모든것을 대신한다.

블록체인위에 기록되는 코드는 강력하다. 작성자 조차도 프로그램이 실행되면 미리 정해진 코드 외에는 추가도 불가능하고 수정도 안된다. 오류가 발생해도 그냥 쳐다 보는것 외에 할 수 있는 일이 없다. 그러한 코드를 작성하는 것은 매우 어렵고 고통스러운 일이다. 그럼에도 불구하고 이러한 불변성(immutability) 때문에 블록체인이 새로운 기술로 인정 받는 것이 아닌가?

지금까지 모든 문서는 누가 만든 것이든 문제가 발생하면 항상 그 문서의 진위가 큰 논쟁이 된다. 조작 못하는 문서는 없다는 것이 이제까지 정설이 이었다면 블록체인 그 원칙을 바꿀 수 있는 새로운 기술이다. 제대로만 사용된다면 얼마나 많은 소모적인 분쟁을 줄 일 수 있겠는가?

불변성과 투명성을 담보하는 검증된 코드는 확실한 실행을 보장한다. 그러므로 당사자들간에 코드로된 계약의 명확성만 확인하면 실행은 보장된다. 이 보장성은 이제까지의 그 어떤 집행기관 보다도 강력할 수 있다.

이러한 블록체인 최고의 장점을 뽐낼 수 있는 ICO에서 이런 기술이 사용되지 않는 다는 것은 안타까운 일이다.

문제는 법정화폐로 바꾸는데 있다.

가상화폐는 그 생태계 안에서 움직일 때 안정적이다. 블록체인을 운영하고, 채굴자, 풀노드 운영자를 지원하며, 다앙한 DApp을 구동하게 해주는 에너지다. 그런데 이러한 본연의 기능이 법정화폐로 바꾸는 거래소의 활성화로 인해 법정화폐를 벌게 해주는 수단으로 인식되는 부분은 아쉬운 부분이다.

이것은 본질적으로 다양한 DApp이 부재하고 실질적으로 가상화폐를 소비하기 어려운 상황이다 보니 법정화폐로 바꾸어 소비해야 하는 실질적인 문제와 급격한 가격상승으로 인한 투기심리 확산으로 거래소 또는 환전소가 지나치게 많고 과열된 것이 사실이다.

가상화폐 세계에서 가장 강력한 어플리케이션인 ICO마저 토큰을 팔아서 들어온 가상화폐를 회사 운영에 사용하기 위해 법정화폐로 바꾸고 있는데 이 또한 간단히 생각할 문제는 아니다. ICO에 대한 모든 부정적 이미지는 가상화폐 투자를 받는다기 보다 가상화폐를 투자 받아 다시 법정화폐로 바꾸어 사용하는 행태에 있다. 이러한 행태에서는 사실상 가상화폐를 투자 받는 것이 아니라 법정화폐를 투자 받는 것이나 마찬가지라 할 것이다.

가상화폐 생태계는 많은 가능성이 있다. ICO를 통해서 가상화폐를 모으고 이를 기반으로 블록체인을 활성화 하는 앱이 개발되고 유용한 블록체인이 개발되어야 한다. ICO를 통해 모은 가상화폐를 이 가상화폐 생태계를 구축하는데 대부분 사용되어야 할 것이다. 회사 운영이나 개발비등은 성공한 ICO를 기반으로 기존 금융권에서도 조달이 가능할 것이다.

블록체인의 최대 강점이자 약점 – 수정불가

블록체인의 특성중에서 투명성 다음으로 많이 이야기 되는 것이 수정불가능이다. 한번 기록되면 수정이 안된다. 그래서 믿을 수 있는 것이다. 쌍방간에 몇날 몇시에 무엇을 하기로 하고 기록을 남기다 라고 써 놓으면 블록체인이 존재하는한 해당 기록은 인정될 수 있다. 그런데 작성해 놓고 나중에 보니 쌍방이 인정하는 오류가 있다해도 수정은 안된다. 계약을 다시 해야한다. 기존의 계약 시스템도 그러하다. 도장찍은 계약서를 고치기는 어렵고 새로 추가로 작성하는 것이 일반적이다.

그럼에도 불구하고 블록체인상의 프로그램이 수정불가능하다는 것은 참으로 두려운일이다. 프로그램은 복잡하다. 일반 계약서 처럼 여러번 검토하면 본질적인 내용은 거의 맞는것과는 차원이 다르다. 단순한 오타 하나가 시스템을 망가 뜨릴수 있다.

이더리움이 이더리움클래식으로 원래것을 버리면서 하드포크 할 수 밖에 없었던 이유도 DApp의 오류 때문이었고 많은 사람들이 오랫동안 정교하게 작업했음에도 치명적 결함이 있었고 플랫폼 자체를 수정하는 방법외에 오류로 인한 피해를 막을 방법이 없었다.

원천적으로 DApp의 소유자는 DApp을 파기할 수 있는 권위를 주면 최악의 사태는 피할수 있으나 그렇게 하면  컨트랙트 자체의 신뢰가 떨어진다.

프로그램의 무결성을 검증하는 것은 매우매우 어렵다. 그러므로 블록체인상의 프로그램은 매우 제한적으로 검증된 코드만을 쓸 수 밖에 없으므로 블록체인상에는 핵심적인 불가역적인 로직만을 배치하고 나머지 소소한 부분들은 블록체인 밖에서 일반 어플리케이션으로 처리하는 디자인이 필요하다.

보유증명(Proof of Ownership)은 어디에 쓰나?

SILC 에코시스템의 커뮤니티인 COC의 핵심은 보유증명과 DApp 배포, 운영인데, 보유증명은 가상화폐 이전부터 오랫동안 고민했던 부분이다. 일화가 있다.

부동산 시장에는 가끔 재미있는 분들이 나타 나는데 은행 잔고 증명서를 들고 다니는 분들이다. 부동산 소개소라는 곳들이 대부분 돈 있는 분들에게 만 열심히 하고 잘 모르는 사람들에게 홀대하니 나타난 현상이다. 실제로 30억 잔고증명을 들고 다니는 분을 만난적이 있는데 그냥 보기에는 돈이 많아 보이지 않았다. 그리고 그까짓 종이로된 은행 잔고증명 초등학생도 조작할 수 있는거 아닌가?

그럼에도 불구하고 부동산 사장님은 그분을 몇달간 극진히 대접을 하는 것을 본적이 있다.

잔고증명 처럼 흔하지 않은 경우지만 비싼차에 기사를 대동하고 다니시는 분들도 있다. 이런분도 직접 본적이 있는데 나중에 알고보니 빌린차에 기사도 대리기사였다.

부동산 소개소 분들의 고충이 무엇일까? 정작 살 마음도 자금도 없는 사람들에게 시간 뺏기지 않고 싶은 것이다. 부동산 보러 다니는 사람의 고충이 무엇이겠는가? 충분히 살 의사가 있고 돈도 있는데 나를 홀대 하는거 아니겠는가?

그러면 누구나 믿을 수 있는 잔고 증명이 있다면 어떨까? 은행에서 주는 종이말고 진짜 믿을 수 있는거… 오랫동안 고민을 했지만 별 방법이 없어서 그냥 잊었는데…

블록체인을 보다 보니 예전 일화가 딱 생각났다. 블록체인이면 되는구나.

블록체인에서는 그냥 자기 지갑 주소를 부동산에 보여주면 끝이다. 그 지갑이 본인것인지 물어 본다고? 그러면 1원 정도 보내주든지, 디지털 사인으로 검증하든지 하면 된다. 이렇게 쉬운 시스템을 왜 이제까지는 만들지 못했을까?

지금까지 금융시스템은 숨기는데 주력해 왔기 때문이다. 잔고증명은 본인만 뗼 수 있다. 법이 그렇다. 그러니 무슨수로 다른 사람을 믿게 할 수 있겠는가? 이렇게 다들 숨기니 숨긴것을 찾아서 모으고 조사해 주는 신용정보 회사가 생겨 났다. 이제는 본인이 어떻게 평가 받는지 알기 위해 신용정보 회사에 돈내고 내 정보를 봐야 한다. 남의 정보를 모아다 본인한테 남들한테 팔아먹는 기가막힌 장사다.

블록체인은 드러내는 것에 주력한다. 숨기면 안전하게 지키기 어렵기 때문이다. 사람들이 항상 많이 다니는 곳에 있는 공공 시설물 보다 안보이는데 있는것이 관리가 어렵다. 블록체인은 모두다 들여다 보고 있어서 지키기 쉬운 것이다.

모두다 들여다 볼수 있으니 소유증명은 그냥 따라 오는 덤이다.

더이상 내가 원하는 물건을 가지고 있는지 없는지도 모르는 사람과 물건 값을 흥정할 필요가 없는 것이다.

주식공모제도도 있는데 왜 ICO를?

주식을 공모하는 방법은 많이 있다. 인터넷에서 전문으로 소액 공모를 해주는 업체들도 다수가 있다. 그런데 왜 ICO를 택할까? 그만큼 가상화폐를 가진 사람들이 투자에 적극적이라는 이야기다. 가상화폐의 장점은 투자를 해서 가상화폐를 받으면 어떻게든 거래를 할 수 있다는 것이다. 이에 비해서 작은 회사의 주식은 정말 사고 팔기가 어렵다. 투자자들은 이부분에 주목하는 것 같다.

정부는 이부분을 두려워 하는 것 같고.(왜지?)

작년 같은경우 수십배, 수백배 값이 오르는것이 이상하지도 않았으니 당연히 그렇다. 투자자들의 기대도 어느때 보다 높다. 그런데 올해 들어오면서 가상화폐는 하향 안정세(?)로 돌아서고, 주식이나 별반 다름없는 변동이다. 최근에 주식시장이 활황이라는데 가상화폐 떄문에 주식에 관심가진 사람들이 많아지지 않았나 싶다.

그러니 아이디어가 있다. 정부가 나서든지, 거래소가 나서든지, 아니면 민간기업이라도 나서서 블록체인을 이용한 비상장 거래시스템을 만들면 좋겠다. 비상장 주식을 현재의 가상화폐 거래소에서 자유롭게 거래하게 해주는 것이다. 법을 조금 손질해야 겠지만 지금처럼 개인간 거래만 되더라도 이게 훨씬 낳고 투자자들에게 투자의욕을 가지게 할 것이다.

현재의 비상장주식 거래는 38커뮤니티가 가장 활발한데, 이사이트를 한번 가보시라 깜짝 놀란다.

일부러 전화번호 부분을 잘라서 캡춰 했는데 사이트에 가면 그냥 다 노출이다. 로그인도 안하고 그냥 다 보인다. 현행법은 비상장 주식거래를 개인간 면대면으로 하게 되어 있다보니 사이트가 중개하지 못하고 저렇게 전화번호를 남기고 연락하고 하는 것이다.(저거 개인 정보보호법인지에 안걸리나 모르겠다.)

비상장주식을 블록체인상의 토큰으로 지급하면(물론 주식이므로 실명 등록한 지갑을 통해서 관리가 되어야 하겠다.) 저렇게 할 필요없이 P2P거래라 할지라도 훨씬 활발하고 쉽게 될수 있을 것이다. 거래가 활발하면 기업도 좋고, 정부도 거래세 걷어서 좋고, 블록체인 기술 활성화하고 얼마나 좋은가?

얼마전에 블록체인을 이용한 비상장주식 거래 개발했다고 해서 들어가 봤다. 뭘 했다는 건지 알수가 없다. 그냥 38커뮤니케이션이 낫겠다 싶은 생각. 누가 또 정부돈 받아서 프로젝트 하는 시늉했구나 정도. 그렇게 따로 만들지 말고 기존 가상화폐 거래소에서 거래 될수 있도록 하면 되지 않겠나? 참 답답하다.

투명성과 관련된 일화

어떤집에서 토큰 세일을 하는데 세일 중에 돈 받던 지갑에서 돈이 빠져나갔다. 한화로 해서 1억원 정도, 채팅방에서 한사람이 물어 봤다. 그돈 어디다 썼어요? 세일하는 집에서는 운영비에 썼단다. 음… 뭐 그럴수도 있는데 아직 파는 중이고 토큰은 지급도 안했는데 운영비 부터 빼쓰냐고 항의…

이게 만약 그냥 일반 은행통장으로 했다면 당연히 알수도 없으니 물어볼 일도 없는 것이다. 가상화폐 사용자들이 똑똑한 분들이 많다. 위 저 일화는 그 채팅방에 우연히 있어서 실제로 봤는데 돈 빼쓴거 물어본것이 돈 빠진지 한시간도 안돼서 였다.

그리고나서 일주일 정도 지나서 또 돈이 빠져 나갔다. 이번에도 1억 정도 같은 사용자가 이번에는 좀 화가 났던지 빠져나간 돈이 어디로 갔는지 다 조사해서 물어본다. 거래소로 간건 팔아서 썼냐? 개인 지갑으로 보이는곳으로도 갔던데 그건 뭐냐? 회사가 운영비로 쓰는거면 정해진 회사 운영 지갑을 통해서 관리해야 하는거 아니냐? 하나같이 다 맞는 말이다 보니 판매자는 묵묵 부답…

모금을 하든, 물건을 판든 뭔가를 약속하고 가상화폐를 모으는 분들은 가상화폐의 이런 본질을 잘 알아야 한다. 지갑의 주인은 본인이 밝히지 않는한 익명성이 유지 되지만 일단 지갑의 주소를 보여주고 가상화폐를 받으면 그때 부터 그 돈이 어디로 가는지 돈 보낸사람들은 다 본다는 사실을. 그러니 이런저런 잔소리 듣기 싫으면 가상화폐로 자금 마련할 생각은 안하는 것이 좋다.

주식공모도 20억까지는 별다른 조건이 필요하지 않다. 주식을 발행할 수 있는 회사면 다 할 수 있다. 차라리 이 주식공모가 사후 관리는 더 쉬울수 있다. 주주들이 매일 회사통장을 들여다 보지는 않으니까.

가상화폐로 자금을 모으면 돈 쓰기 전에 미리미리 어디다 썼는지 공지를 하는 것이 좋다. 물어볼때 까지 기다리면 의심 받기 시작한다.

공인인증서와 암호화폐

이름만들어도 싫어하는 분이 많은 공인인증서, 신기술로 각광받는 암호화폐 둘 사이에 공통점이 있으니 보안을 위해서 개인키-공개키 방식을 사용한다는 것입니다. 공인인증서는 자신이 행위를 했다는 행위를 증명하기 위해서 사용하고 암호화폐는 지갑으로 돈을 전송하기 위해서 상대방의 공개키 만으로 전송이 가능하도록 한 것이죠. 그러므로 암호화폐 지갑들도 대부분 개인키 사인 기능을 제공하는데 본인 증명을 위해서 사용합니다.

상대방에서 특정한 단어를 주고 사인을 해달라고 해서 그 사람의 공개키(즉 지갑주소)와 사인된 값을 잘 버무리면(?) 해당 단어가 사인되어 있는지 알수 있습니다. 제대로 사인이 되었으면 해당 지갑 주소의 소유자인지 알 수 있는 거죠. 보통은 작은량의 금액을 송금요청해서 확인 하는데 사인을 이용하면 돈 안들이고 본인 확인이 가능합니다.

이해할 수 없는 해외 ICO

작년 9월 국내에서는 모든 ICO를 전면 금지한다고 정부가 발표한 이후 국내 기업의 해외 원정 ICO가 유행하고 있다. 정부가 ICO를 금지한 가장 큰 이유는 투자자 보호의 목적으로 생각되는데 정작 해외에 나가서 ICO하는 업체들을 보면 한국인을 대상으로 모집하는 경우가 대부분이다. 정부가 개인투자자들의 투자에 대해서는 이런 저런 이야기를 하지 않았기 때문에 개인들은 ICO에 참가해도 되는 것으로 시장도 개인들도 이해하고 있다. 그러면 투자자 보호를 위해 금지한 목적을 전혀 달성하지 못하고 괜히 해외 에서 ICO한다고 외화만 낭비하는 꼴 아닌가? (개인투자자들의 투자도 금지했다는 이야기도 있고 아니다도 있고 시장은 혼란 그자체다)

정부는 국내에서 해서 사고가 나면 큰일이고 외국 나가서 해서 사고가 나면 그냥 둘 생각인가? 한국은 도박이 불법이라 해외나가서 합법 도박장에서 도박을 해도 불법을 저지르는 것이다.(형법 속인주의) 그러므로 ICO가 국내에서 불법이라면 해외가서 해도 불법이다. 그런데 다들 해외가서 하고 있다. 정부는 이에 대해서 뭐라고 말이 없다.

아무리 생각해 봐도 정부가 원하는게 뭔지 모르겠다.

금지할 수 없는 것을 급한김에 금지는 했는데 다들 하고 있으니 그냥 꿀먹은 벙어리가 된건가? 도데체 뭐가 그렇게 급했을까? 중국이 하니까 그냥 따라 한건가?

아직 클라이언트가 없는 블록체인 생태계

수많은 블록체인이 개발되고 있다. 코인갯수가 천단위 갯수이니 적어도 몇백개 블록체인이 있겠다. 블록체인 네트웍은 장부를 보관하고 프로그램을 실행해주는 서버의 역할이다. 그렇다면 클라이언트는? 아직은 없다. 서버에 프로그램을 올려두고 웹이나 기타 방법으로 인터페이스를 만드는 수준이다. 즉 클라이언트 프로그램을 개발할 환경이 없는 것이다.

블록체인이든 뭐든 서버만 좋아서는 아무런 역할을 못한다. 많은 사람들이 사용하려면 블록체인이 뭔지 지갑이 뭔지 몰라도 그냥 무슨 앱을 다운 받아서 사용하면 블록체인을 사용하는 식이어야 한다. 물론 지금도 노력에 노력을 하면 비슷하게 만들수는 있지만 매번 바퀴를 발명하는 식의 노가다가 필요하다.

예를들어 회비를 걷는다고 생각해보다. 많은 총무들은 회비를 걷느라 고생이 많다. 누가 돈을 넣었는지 안 넣었는지 매번 확인하고 메일을 보내거나 전화해서 내라고 독려도 해야 한다. 은행들은 이런 서비스를 제공하지 않는다. 사용자들에게 API를 제공하는데 매우 인색하다. 요즘은 그래도 은행권 공동API가 있어서 개발은 가능은 하지만 먼 길이다.

블록체인은 이런것을 하기 쉽도록 애초에 설계가 되었다. 스마트컨트랙트 같은 것이 그런것이다. 그렇지만 실제 스마트컨트랙을 만들어서 배포해 보면 아… 이건 아직 갈길이 멀구나를 금방 알 수 있다. 그냥 된다는 것이지 편리하게 되는 것과는 거리가 멀다. 게다가 스마트컨트랙트를 배포 했다고 해도 그것과 연동하는것이 쉽지 않다. 복잡한 코딩이 또 필요하다. 오죽하면 블록체인 기술을 핵심으로 ICO를 하면서 이더리움을 받는 창구가 스마트컨트랙이 아니라 일반 이더리움 지갑주소인 곳이 대부분 이다. 그만큼 해보면 쉽지가 않다.

여기까지도 괜찮다. 그런데 어떤 사람은 회비를 비트코인으로 내고, 어떤 사람은 이더리움으로 내고 이런 상황을 생각해 보자. 블록체인끼로 공통 인터페이스가 없는 상황에서 블록체인에 올리는 말하자면 서버 프로그램으로는 할 수도 없는 일이다.

사용자는 당연히 원하는걸 현재 블록체인은 못한다. 그래서 블록체인들에 공통으로 사용할 수 있는 클라이언트 개발용 SDK 또는 플랫폼이 필요하다. 그래야 좋은 앱들이 나오고 블록체인 생태계가 사람들 곁으로 올 것이다.

지금의 블록체인은 일반인들에게 그냥 가상화폐 거래소다. 가상화폐 거래소는 블록체인과 큰 관련이 없다. 실제돈과 가상화폐를 교환해주는 환전소 일 뿐이다. 블록체인내 가상화폐는 블록체인 생태계 내애서 사용되는 것이 주가 되어야 한다. 실제 돈과 연동하는 것이 주가 되어서는 안된다. 현재 발생하는 블록체인 또는 가상화폐와 관련된 모든 우려들은 실제 화폐와의 연동 때문이다. 가상화폐는 블록체인을 움직이는 도구이지 실제 돈과 교환을 목표로 만들어진 것이 아니다.

이렇게 된 이유는 현재 존재하는 블록체인 생태계의 킬러 어플리케이션이 환전소, 즉 가상화폐 거래소 이기 때문이다. 두번째 킬러 어플리케이션은 ICO다. 이 두가지 모두 실제돈과 관련이 있는 부분이라 기대도 많지만 우려도 많다. 이 보다는 가상화폐 생태계 안에서 움직이는 킬러 어플리케이션이 절실하다.

모바일 지갑을 사용하면 어떤 문제가 생길 수 있나?

블록체인은 지갑을 기반으로 한다. 지갑이 돈을 넣어두는 곳이기는 한데 블록체인에서는 네트웍을 구성하는 하나의 노드다. 즉 P2P의 그 Peer에 해당한다. 수많은 지갑이 모여서 블록체인 네트웍을 만드는 것이다. 누군가 돈을 보내면 그 내용이 내 지갑에도 전달되고 기록되고 확인해 준다.

그런데 요즘은 모바일 지갑을 쓰는 사람들이 많다. 모바일에서는 원래 지갑이 해야할 일을 못한다. 장부의 크기가 커서 기본적으로 모바일에 담는데 무리가 있다. 전력소모도 문제도 네트웍도 문제다. 그래서 모바일 지갑은 네트웍 노드 어딘가에 연결해서 잔고를 보고 돈을 보내고 하는 일만 한다.

그렇다면 다들 모바일만 사용하면 블록체인 노드는 누가 운영할까? 채굴자만 남을 것이다. 채굴자는 돈을 버니까 계속할 것이다. 그런데 채굴자는 기업화 되어 몇몇사람의 손에 움직일 수있다. 이렇게 되면 블록체인 본연의 분산 컴퓨팅에 의한 안전성에 위협을 받게 될 것이다. 현재도 이러한 우려들은 계속 제기 되고 있다.

채굴자 뿐만 아니라 그냥 풀노드를 운영하는 사람들도 보상을 받는 것이 적절한 보완책이라고 생각한다.  채굴자의 몫을 나눌지 전송비용을 더 낼지까지는 생각해 보지 않았다. 그렇지만 필요하다고 느낀다.

현재 비트코인 풀 노드는 10,000개가 안된다. 비트코인을 가진 사람들은 몇백만, 몇천만이 될지도 모르겠다.  하루에 사용되는 지갑의 주소만 수십만인데 풀 노드는 10,000이 안된다는 것은 대부분 모바일 지갑이나 웹 지갑을 사용하고 있다는 뜻이다. 최근에 풀 노드의 숫자가 줄고 있는 추세다.

아래는 풀노드를 국가별로 분류한 것이다. 한국은 12위로 대략 경제규모와 일치하는 위치다.

아래 그래프는 최근 2년간 풀노드 갯수 변화인데 최근에 줄고 있는 경향을 볼 수 있다.

집에 늘 켜두는 컴퓨터, 서버가 있다면 가상화폐 풀노드를 한번 설치해보면 어떨까. 당장에 보상은 없지만 블록체인 생태계에 큰 역할을 하는 것이다.