미래산업예측, 제4차산업혁명, 트랜드 관련 보고서에 블록체인이란 단어가 자주 등장한다. 자연스럽게 관심을 갖게되었다. 새로운 지식을 공부하고 싶을 때 습관처럼 서점을 향했다. 벌써 1년이 지난 이야기이다. 블록체인 관련 서적은 정말 많았다. 하지만 블록체인 관련 기술 서적은 찾을 수 없었다. 미래에 매우 중요한 기술이라는데 배워두지 않으면 뒤쳐지지 않을까? 란 조바심도 있었다. 서점에서 블록체인 기술 관련 책을 찾지 못한 후 인터넷 서점을 검색했다. 역시 블록체인의 가능성에 관한 책들이 대부분이었다. 몽테뉴의 말이 생각나지 않을 수 없었다.
우리는 사물을 해석하는 것보다도 해석을 해석하는데 바쁘고 어떤 주제에 관한 책보다도 책에 관한 책을 더 많이 가지고 있다. 즉, 우리는 주해를 다는 짓만 하고 있다. 주해자는 우글우글하지만 저자는 극히 드물다.
-미셀 드 몽테뉴, (수상록)
결국 인터넷을 뒤지기 시작했다. 많은 기술이 그렇듯 대부분의 내용은 외국어로 되어 있었다. 생소한 내용이었고 이해하기 어려웠다. 주체할 수 없는 호기심을 잠시 접을 수 밖에 없었다. 그런던 중 작년(2017년) 여름에 기술 서적이라고 말할 수 있는 책이 한 권 나왔다. 판권을 살펴보니 2016년에 일본인이 쓴 내용을 번역한 책이었다. 책 내용은 블록체인에 관한 이해를 돕는 데 충분했다. 많은 사람의 관심을 받아서 블록체인에 관한 설명은 많으니 이 글에서는 이론적 내용은 생략하려고 한다.
책에서는 비트코인은 블록체인의 일부에 지나지 않는다는 것을 강조한다. 나도 비트코인에는 특별히 관심을 두지 않았다. 블록체인 기반으로 스마트 컨트랙(Smart Contract)를 구현해보는 것이 목표였다. 그 과정을 간단하게 소개하려고 한다.
호기심으로 해봤다는 사실을 다시 한 번 이야기하고 싶다.
먼저 이더리움 환경을 구축하기 위해서 우분투(Linux) 서버를 설치했다. 다음 단계로 응용프로그램으로 배포되는 go-ethereum을 설치하면 된다. (책에서는 구 버젼의 예시로 했다. 버젼 1.3.6를 설치했다.)
우분투에서 아래와 같은 명령어를 입력하면 geth 소스가 다운로드 된다.
git clone -b release/1.3.6 https://github/ethereum/go-etherem.git
이후 몇 가지 명령어를 더 입력하면 geth(이더리움)가 설치된다. 이더리움에는 로컬 환경에 테스트가 가능하다. 따라서 테스트용 블록체인 네트워크를 구축했다. 그리고 이더리움 콘솔을 띄웠다.
이더리움 명령어를 실행할 수 있는 프롬프트(>)가 표시되었다.
아래 명령어를 통해 계좌를 생성했다.
personal.newAccount("username01")
테스트를 위해 4개의 계좌를 생성했다. 아래는 생성된 계좌를 확인하는 화면이다.
은행에서 보던 계좌와는 다른 모습이란 사실을 알 수 있다. 거래를 위해서는 암호화폐가 필요한데 테스트 네트워크에서 채굴작업을 시작한다.(채굴이란 단어를 이런식으로 사용할지는 몰랐다) 채굴 명령어는 정말 간단하다.
miner.start()
많은 사람이 궁금해하는 채굴 화면은 아래와 같다.
사실 저 화면에서 무슨 일이 일어나는지 난 잘 알지 못한다. 다만 저런 걸 채굴이라고 부를 수 있다는 사실이 놀랍기만 하다.
miner.stop()
위와 같은 채굴을 멈추란 명령어를 통해서 채굴을 중지 시켰다. 그리고 계좌에 잔고를 확인해봤다.
(잔고는 Wei로 표시 된다. 따라서 1/1018으로 계산해야 한다. 2675이더가 생겼다.
이렇게 생성한 이더를 다른 계좌에 보내봤다.
다시 채굴이 시작되었고, 마냥 기다릴 수 없어서 miner.stop()을 이용하여 채굴을 중지했다. 그리고 확정되지 않은 트랜잭션이 남아 있는지 확인 했다.
null값으로 미확정 트랜잭션을 확인할 수 있었다. 거래가 완료되어야 하는데, 다시 계좌를 확인하는 명령어에서는 계좌에 남아있는 이더는 0 이었다.
내 호기심은 여기에서 끝났다. 왜냐하면 이런 현상이 발생하는 이유를 알 수 없었고, 무엇보다 물어볼 사람도 없었다. 예제를 따라하는 수준으로 내가 알 수 있는 것은 별로 없었다. 물론 스마트 컨트랙도 도전해봤다. 스마트 컨트랙을 하기 위해서는 아래처럼 프로그램 언어를 다룰 줄 알아야 했다.
[How To Create An Ethereum Smart Contract]
크롬의 부가기능인 메타마스크를 설치하고, 스마트 컨트랙 정보도 확인했다.
아래는 구글 크롬의 부가기능인 메타마스크를 실행한 화면이다.
아래는 확정된 스마트컨트랙에 관한 기록이다.
위와 같이 해본 후 난 블록체인에 관한 호기심이 사라졌다. 유시민 작가와 정재승 교수의 블록체인에 관한 토론은 블록체인에 관한 내 호기심을 떠오르게 했다. 나도 중앙정부의 기능을 하지 못하는 국가에서는 블록체인 기반의 암호화폐가 유용하게 사용될 수 있을 거란 생각을 했다. 국가의 기능이 정상적을 작동하고 있으면 굳이 암호화폐가 필요할지 의문이다. 현재 암호화폐가 주로 사용되는 곳을 알아보면 그렇게 긍정적인 이야기가 나오지 않는다. 정재승 교수의 탈중앙화와 블록체인 기반의 기술에 꼭 암호화폐가 전제되어야 한다는 이야기에는 너무 많은 경우의 수가 존재하기때문에 이 글에서는 언급하지 않는 것이 좋을 것 같다. 다만 이야기하고 싶은 것은 어떤 기술이라도 '인간의 행위'를 전제해야 한다. 기술이나 알고리즘을 논하는 것으로 인간의 행위를 이야기할 수 없다.
새로운 알고리즘은 새로운 질서를 만들 수 있다.
버스를 예를 들어보자. 버스가 생기고 사람들은 요금을 내고 단거리 혹은 장거리를 이동한다. 여기에서 인간의 행위는 버스에 탑승한다. 요금을 낸다. 버스에서 내린다. 이 세 가지이다. 버스 차로가 중앙으로 가고, 돈 대신 토큰이나 회수권을 내고, 신용카드를 이용해서 요금을 내고, GPS를 통해서 버스가 언제 올지 예측하더라도 인간이 버스에 탑승하고, 요금을 내고, 버스에서 내리는 것은 변하지 않는다. 유시민 작가가 제안했듯이 저작권 사용료를 블록체인에 기록하면 좋을 것 같다. 하지만 그게 꼭 블록체인일 이유는 없다. 클라우드 기반의 시스템이 안 될 이유는 무엇인가? 중요한 문제는 어떤 기술을 이용하는가 하는 문제가 아니다. 우리가 기술에 현혹되기 전에 고민해야 할 부분이 있다. 작가의 책을 공공도서관에서 빌려서 보는데에 저작권자에게 저작권료를 주려면 인간이 책을 빌리는 행위와 이를 기록하는 행위 자체가 필요하다. 그 정보가 중앙서버든, 클라우드 서버든, 블록체인이든 무슨 상관이란 말인가.
최근의 논쟁은 기술적인 측면보다 노동에 관한 가치를 위협받는 것에 관한 문제가 더욱 심각하다고 느낀다. 블록체인 기술이 어떻게 변할 지 모르지만 기술과 함께 인간의 행위에 관한 논의가 함께 이루어지길 바란다.
유병천.