2022. 3. 11. 04:39

대통령 선거 보다가 스트레스 오지게 받은건 넘어가고, 요즘 블록체인 시장에 대한 생각이 좀 들어서 글을 끄적인다.

 

  1년 전만해도 핫콜은 존재도 안했고, 동종 업계 전략적 소액 시드 투자만 걸렸는데, 요즘은 그냥 VC들, 특히 큰 펀드들에게서 연락이 종종 온다. 그렇게 많이 오지는 않지만, 몇 대형 업체 오딧팅, 특정 프로젝트 개발사로 조인 등 몇몇 호재 덕분에 좀 인지도도 쌓이고, 사실 프로덕이 없는 이 상황에서 그냥 이 기나긴 업력 무시하고 시드 다시 해주겠다는 업체까지 등장할 정도로 이 업계는 변해버렸다.

 

  밸리 쪽에서 전략적으로 VC들이 생겨서 엄청 돈을 뿌리는 것도 있지만, 크립토의 주요한 특성이 지금의 공격적인 투자를 하게 해주는 원동력이 되는 듯 하다. 지금까지 비-블록체인 기업들에 대한 투자가 5년 동안 묵혀두면 10개 중에 1개 성공하는 포폴이었다면, 크립토 쪽은 확률 자체도 높고 (점점 낮아지는 추세이다), 5년이 아니라 6개월 정도에 모든 승부가 나는 동네이기 때문일 것이다. 심지어 그 프로덕이라는게, 이더리움에서 잘 나가는 DeFi를 포크해서, 딴 체인에 포팅하는 수준에 불과할지라도.. TVL (Total Volume Locked, 서비스의 총 예치금액) 이나 Floor Price (NFT 플젝에서 해당 컬렉션 최저가) 가 엄청나게 높다면 어떻게든 다른 사람들이 또 서비스를 이용하고, 또 이용하고... 무한 반복으로 빠르게 투자 손익 분기를 해결해 나갈 수 있다는 점이 매력일 것이다.

 

  다만 이런 부분들에 있어서는 사실 할 말이 많은데, 대표적으로 이런 DeFi나 NFT 서비스들이 실질적인 실체를 지니지 않은 수학적으로 움직이거나, 투기 심리에 움직이는 거대한 사기극에 가까운 모델을 지니고 있다는 것이다. 평생 돌아갈 거라고 주장하던 DeFi 2.0의 선봉장 올림푸스 다오같은 서비스나, 이미지에 글자만 적어놓고 가치가 있다고 주장했던 Loot나(아직은 잘 나간다)... 사실 많은 부분들은 기술적인 부분의 성장보다는 사용자가 얼마나 돈을 빠르게 쳐넣고, 돈을 불리고, 그리고 엑싯을 하느냐에 대해서 모델을 짜고, 그 과정에서 개발자가 얼마나 많은 돈을 챙겨가는지에 대한 고민을 하는 것이 더 클 것이다

 

  이런 면에서, DeFi는 "회사채에 대한 평가를 회사 스스로가 하고, 스스로 발행으로 하고, 스스로 소각하는 금산분리가 되지 않은 시장"이기에 이런 폰지 사기 시스템이 돌아간다는 말을 종종하곤 그랬다. NFT의 경우, FOMO 등의 단어로 표현할 수 있겠지만, 사실 여기서 핵심은 덤핑을 칠 때, 코인과 달리 1만개 10만개씩 덤핑을 칠 수 없고 모두가 동일하게, 1장씩 수고를 들여서 팔아야하는, 즉 가격 하락이 순식간에 올 수 없는, 구매자-판매자가 계속 존재해야하는 바톤달리기의 형태이기 때문에 각광을 받는다고 보고 있다. 뭐, 그러니까 예를 들자면, BAYC NFT의 가격이 붕괴하려면 9999장이 순차적으로 가격 덤핑을 받도록 팔려야하는데, 그렇다면 누가 그 9999장의 물량을 다 받아서 구매를 할 수 있는 것도 아니니, 거품이 꺼지는 속도가 상당히 늦어지거나, 가격 가치가 -아무도 구매를 하지 않게 되기 떄문에- 0으로 즉시 수렴하는 구조를 띌 수 밖에 없다. 즉, 지연된 가격 하락을 유도하여, 급작스러운 상승과 달리 하락에 대한 베팅에 대한 유인을 덜 주는 형태로 시스템이 구성되어있는 것이다.

 

그래서 뭘 말하고 싶냐고? 사실 대기업이 NFT 시장이나 DeFi 시장에 들어오려고 해도 못 들어오는 이유가 그것이다. 대기업은 장기간 쌓여진 이미지와 서플라이 체인에 기반해서 움직이는데, DeFi/NFT 모두 철저하게 고속 성장과 고속 엑싯을 통한 "수요 고갈"에 오면 서비스를 바로 접고 딴 서비스로 도망가는 구조를 띄기에, 사실 회사로 마지막 한 탕을 하기 위해서 회사 모든 리소스를 쏟아붓지 않는 이상 유지와 개발 자체를 할 수 없는 것이다. 

 

정말 많은 다단계나 사기꾼들이 끼어있는 구조를 지닐 수 밖에 없는 부분이 DeFi와 NFT가 갖고 있는 부분이고, 이 부분은 이전의 사기 유형과 달리 개발자가 사기의 주체가 된다는 것이 상당히 중요하다. 금융 공학 모델들 일부를 가져와서 적용하는 것 하나만으로 떼 돈을 벌고, 거기에 폰지 요소만 섞으면 신으로 추앙받는게 이 동네 아닌데 여기서 일을 안 하고 싶겠는가.

 

그리고, 그 끝은 좀 슬프게도 자신이 운영하던 DeFi의 모든 토큰과 가상자산을 싹 다 매각을 때리고, 트위터 계정을 폭파한 Fantom 창시자 안드레가 아닐까 싶다.

 

DeFi나 NFT에는 다른 출구가 있을까? 아마 있긴하곘지만 지금 구조로는 성장하지 못 할 것이다.


Comments


  1. 지나가는나그네 2022.06.11 23:14

    글 잘 읽었습니다. 많은 부분 공감합니다


2021. 2. 12. 17:00

결론만 말하자면, 가능하다. 블록체인은 그러라고 만들어진 시스템이니까.

하지만, 기술적으로는 복잡하다. 블록체인은 아직도 개판5분전이니.

 

테슬라에서 15억 달러에 달하는 비트코인을 구입하였다는 뉴스가 나오자 암호화폐 시장이 다시 들썩이기 시작했다. 3천까지 내려갔던 비트코인은 5천만원의 문턱을 넘을 것인지 못 넘을 것인지를 고민하는 수준까지 가 버렸고, 사실 1억 이상을 찍을 거라는 예측까지 나오는 마당이다. 테슬라의 연관 업체라고 할 수 있는 스페이스X 덕분에 테슬라의 비트코인 매집 떡밥은 더 심각한 음모론(?)으로 진행되게 되었는데, 알만한 사람들은 다 알듯이 테슬라와 스페이스X의 최대주주는 아직 일론 머스크이고, CEO도 일론 머스크이기 때문일 것이다.

 

화성 공용 화폐 (...) 비트코인설이 트위터에서 엄청 화제가 되고, 업계에서도 화성 코인 비트코인 이런 말도안되는 라임이 퍼진 것은 뭐 거의 필연일 것이다. 사실 테슬라가 비트코인을 사는 행위와 스페이스X가 화성에 식민지를 세우는 일은 좀 다른 일이긴 하지만, 스페이스X가 발사체 관련 시연을 할 때 테슬라 로드스터를 우주로 쏘아보낸 전적이 있는 등 사실 테슬라와 스페이스X는 좀 떼어놓고 보기 어려운 감이 있지 않나 싶다.

 

여튼, 일론의 꿈이 화성에서 비트코인을 쓸 수 있게하는 것이 맞다면, 그것은 이루어질 수 있는 것일까?

 

사실 비트코인 그 자체를 쓰는 건 상당히 골치아플 일이다. 하지만, 화성에서 채굴이라는 작업을 하지 않아도 비트코인 트랜젝션을 전송만 할 수 있다면, 어쨌든 인터넷이 연결만 될 수 있다면, 비트코인을 쓸 수 있지 않은가에 대한 일말의 희망이 보이지 않는 것인가 싶은 것이다. 그렇다면 그게 가능한지, 이제 채굴과 트랜젝션, 그리고 암호학이 어떻게 블록체인을 지탱하는지 알아보자.

 

일반적으로 비트코인은 채굴이라는 과정을 거치는데, 채굴, 특히 PoW라고 불리는 연산력 싸움(Hashcash)을 하는 이유는 블록체인 네트워크는 악인들만으로 구성되어있고, 이 때문에 lose-lose 전략이 발생하더라고 게임이론을 통해서 유지가 되도록 구축이 되었기 때문이다. 원래 비트코인에 쓰이는 Hashcash는 스펨 메일을 차단하기 위해서 도입된 WWW 초창기 시절 솔루션인데, 스펨 메일을 필터링하기 위해서 특정 조건을 만족하는 Hash를 만들어서 보내지 않는다면, 그 이메일을 스팸처리해서 받지 않는다. 즉, 일종의 문제를 풀어서, 그 문제에 대한 해답을 내 놓지 않는다면 그것을 스팸처리한다는 것인데, 받는 이가 제공한 문제를 푸는데 5~6초가 걸린다면 스팸 발송자들은 수 만 건의 스팸 메일을 뿌리는 데 수 십 만 초 (대략 100시간 이상)의 시간을 쓰게 된다는 뜻이기도 한다. 즉, 일반 유저들이 이메일을 주고 받을 때 5~6초의 컴퓨팅 파워를 쓰는 것은 아무 일도 아니지만, 스팸 메일 발송자 입장에서는 실제로 어마무시한 비용이 들게 하여 스팸 발송을 최소화하겠다는 전략이다.

 

비트코인의 경우에도 비슷하다. 대략 전 세계 컴퓨팅 파워로 10분 마다 풀 수 있는 Hashcash 문제를 내고, 이에 맞춰서 전 세계 컴퓨터들은 Hashcash의 정답을 찾기 위해서 경쟁을 하게 된다. 비트코인의 경우 블록의 Hash 값에 0이 앞에서 n개 부터 있는 블록 데이터 값(nonce)을 찾게 된다면 그것을 비트코인의 다음 블록으로 인정하게 된다는 것이다. 그리고, 이러한 컴퓨팅 파워를 써서 블록을 찾아낸 (채굴한) 사람에게는 비트코인을 보상으로 주는 인센티브를 제공한다. 즉, 블록체인 시스템을 유지하는데 컴퓨팅 파워를 쓰고, 그 컴퓨팅 파워에 대한 보상을 줌으로써 채굴자들이 경쟁하게 만들어, 지속적으로 잘못된 블록을 만들어서 네트워크에 전송하거나, 담합하거나, 일부 거래를 누락하거나, 아니면 돈이 안 되서 컴퓨팅 파워를 채굴에 안 쓰는 상황이 발생하지 않도록 반강제적으로 상호 견제를 하도록 만든 것이다.

 

하지만, 블록이 안정적으로 생성되고 이것이 경쟁을 통해서 생성되기에 문제가 덜 발생한다는 것과 거래가 제대로 된다는 것은 좀 다른 문제이다. 예를 들어 자기 돈이 1000원 밖에 없는데, 1만원을 전송하는 거래를 발생 시킨다던지 하는 경우가 그것일텐데, 이는 다른 암호화폐 노드들이 이를 검증하기에 해결이 된다. 일반적으로 1만 대의 비트코인 노드가 현재 돌아가고 있고, 이 노드들은 채굴된 신규 블록을 검증하여, 이것이 제대로 된 거래들인지 확인하고, 맞으면 이웃 노드에게 넘이고, 아니면 misbehave(잘못) 수치를 높여, 어느 이상 네트워크의 잘못된 행동을 한 노드를 밴을 시키게 된다. 즉, 네트워크에서 가라 블록이나 가라 거래를 포함한 블록을 생성해서 전달을 하려고 하면, 그에 연관된 이웃 노드들이 그것을 거부하고, 최종적으로 네트워크에서 추방을 시킴으로써 네트워크가 유지되는 것이다.

 

뭐 그렇다면, 블록 데이터는 뭐 그렇다고 치자. 뭐 여튼 블록 생성에 있어서 1만 대의 노드가 상호 검증을 하니 뭐 잘 돌아가지 않겠는가?

 

사실 여기서 핵심은 그러면 블록에 쌓이는 거래 기록(트랜젝션)은 어디서 생기느냐 이것이다. 여기서부터 암호학이 등장한다. 사실 비트코인은 거대한 공인인증서 기반 인증 시스템이다. 아니... 잠시만 공인인증서요? 네, 그렇다, 공인인증서다! PKI와 Hash는 전자서명을 위해서 정말 많이 쓰이는 녀석이다. 일종의 디지털 지문이라고 불리는 녀석인데, 거대한 파일 데이터에 대한 서명으로 사용되고, 이 서명과 원본 파일을 갖고서 파일의 진위성이나 거래의 부인방지를 하게 된다. 비트코인도 똑같은 방식을 취한다.

 

비트코인의 경우 UTXO라는 방식을 써서 전체 데이터를 관리를 한다. 뭐 UTXO라는 단어는 몰라도 되고, 사실 복식부기 방식을 통해서 장부를 관리한다고 보면 된다. 한 트랜젝션(거래)는 다수 개의 Input과 다수 개의 Output을 지니고 있다. 그리고, 모든 Input에는 전송자의 전자 서명이 붙어있는데, 이 전자 서명을 통해서 거래가 진짜인지 거짓인지를 확인하게 된다. 그냥 간단히 1 Input, 2 Output 형태의 트랜젝션부터 이야기를 해보자. A라는 주소에서 B라는 주소로 보내는 거래가 일반적으로 1 Input, 2 Output 거래이다. A라는 주소에서 1 BTC를 B에게 보낸다면, 다음과 같은 형태로 작동이 될 것이다

0. A 주소로 이전에 0.5 BTC(트랜젝션 #a100)와 3 BTC(트랜젝션  #a101)와 5 BTC(트랜젝션  #a102)를 받은 트랜젝션(장부/거래기록)이 있다.

1. A가 3 BTC를 받았다는 #a101 트랜젝션(장부/거래기록)을 쓰기로 마음을 먹는다.

2. A는 3 BTC를 받았다는 거래 기록(#a101)을 참조하여 (Credit을 Debt으로 받는), B에게 1 BTC를 보내고, 나머지 1.75 BTC는 다시 A에게 보낸다는 트랜젝션(이 경우 나머지 0.25 BTC는 채굴자가 갖게 된다)을 만들고 이 장부 거래에 전자 서명을 한다. 그렇게 트랜젝션 #b001 이 생겨난다.

3. Input ( #a100 Ouput( 주소 A, 3BTC)  ) + A 주소로 서명된 서명 -> Output ( 주소 B, 1 BTC) , Output ( 주소 A, 1.75 BTC) 라는  #b001 트랜젝션을 비트코인 노드에 전송 시킨다.

4. 비트코인 노드(편의상 노드1)는 이것을 블록체인 장부에 뒤져서 모두 존재하는 트랜젝션인지 확인하고, 서명이 정상적인지, 금액이 정상적인지 판단하고, 정상적인 트랜젝션이라면 그것을 다른 노드에게 전달한다.

5. 다른 노드들을 이 트랜젝션들을 받아서 또 검증하고 다른 노드들에게 전달한다. (5번 무한 반복)

6. 채굴을 하는 노드까지 도달하고, 채굴을 하는 노드를 이를 포함시켜서 블록을 생성 시킨다.

7. 채굴 노드는 생성된 블록을 옆 노드에게 전달하고, 옆 노드는 이것이 맞는지 검증하고 맞으면 자기 옆 노드에게 또 전달한다.

8. 노드간 블록 전달 릴레이가 끝이 나면, 노드1은 자신의 트랜젝션 #b001이 블록에 포함되어, 채굴자의 서명까지 들어가 있는 것을 확인한다. 즉, 다른 노드들이 이 트랜젝션을 인정하고 블록에 넣었고, 블록도 인정 받아 다시 되돌아온 것을 확인한 것이다.

 

좀 복잡한가? 복잡하긴 하지만, 그냥 바톤 이어 달리기를 생각하면 편하다. 거래에 대한 메세지를 넣고 메세지를 계속 전달해서, 전 세계의 당신의 거래 기록을 전달하는 것이다. 그리고 사람들이 이것이 맞다고 판단하면, 다시 맞으니까 내가 확인했음이라는 결과(블록)을 다시 바톤 달리기로 전달해주는 것이다.

 

여기서 눈치를 챘겠지만, 그렇다면 모든 비트코인 노드들이 채굴이라는 활동을 안 하는게 아닌 것인가? 라는 것이다. 그렇다. 모든 비트코인 노드는 채굴을 하지 않는다. 그러기에는 세상이 너무 바뀌었고, 일반적인 PC나 심지어 중고성능 서버도 채굴이라는 행위를 할 수가 없는 세상이 와 버렸다. 90년대의 Hashcash 논문과 2010년대 비트코인 개발자들이 간과한 것이 있으니 범용 컴퓨터인 노트북이랑 PC와 달리, Hash만 전문적으로 생성해서 Hashcash 값을 알아내는 ASIC(전용반도체)가 나와버렸고, 전 세계의 거의 대부분의 비트코인 블록은 GPU도 아니라 7nm 반도체 공정으로 생산된 ASIC 채굴기에 의해서 생성되고 있다.

 

즉, 전 세계 비트코인 노드들은 채굴장(...)에서 생성된 블록을 갖고서 검증을 하고, 대충 컴퓨팅 파워도 쎄게 들어갔으니 일단 블록의 정합성은 맞겠지하고, 이제 세부 트랜젝션 내역의 암호학적, 회계적 정합성을 확인하고, 10분마다 블록을 서로 동기화하는 것이다. 그리고, 최종 사용자들은 비트코인 노드를 직접 굴리거나, 거래소를 쓰거나, 비트코인 노드 API (JSON-RPC)를 이용하여 외부의 비트코인 노드에 내 트랜젝션이 블록에 포함되었는가를 확인만 하면 끝인 것이다.

 

즉, 비트코인의 경우 노드에서 채굴을 안 해도 거래(트래젝션)을 생성해서 전달할 수 있고, 또한 사용자들은 비트코인 노드에게 그걸 어떻게든 찔러 넣기만 하면 전 우주(!)의 비트코인 노드에게 전파를 할 수 있다는 것이다. 이는 타원곡선암호(ECDSA) 기반 비대칭키 서명과, Hash Function을 이용한 현대 암호학을 이용했기 때문에 가능한 일이다.

이렇다면, 이제 동기화 문제가 남았다. 사실 비트코인에게는 그 누구도 이 정도로 거래가 발생하고, ASIC이 나와서 채굴을 할거라고 보지도 않았던 시스템이었고, 노드가 100 대 정도만 돌아가도 대박이었던 시절이 있었다. 그리고, 그 때 개발자들은 당연하게도 화성까지 통신을 하는 (...) 상황이 올 줄도 생각을 못 했을 것이다. 그렇다면, 화성-지구간 우주 비트코인이 갖게 될 문제점을 생각해보자.

1. 현재 비트코인 트랜젝션은 prune을 해도 500 GB 정도 된다.

2. 현재 비트코인 블록 사이즈는 4MB 정도 된다.

3. 일반적으로 비트코인 노드는 다른 노드와 25대 정도 P2P 연결을 한다. (즉 25대랑 각자 블록 교차검증을 하는 네트워크 트래픽이 발생한다)

4. 화성에서 채굴은 꿈도 못 꾼다.

 

일단 속도 문제부터 이야기해보자.

화성과 지구를 잇는 네트워크 라인이 여러 개가 있을 것도 아니고, 512kbps 정도짜리 네트워크가 안정적으로 운영이 된다고 낙관적으로 가정해도, 전자기파의 속도 문제 때문에 10분 이상 딜레이가 있다. 뭐, 이건 화성-지구만의 문제는 아니다. 중국이나 제3세계 채굴장의 경우에도 네트워크가 불안정하거나 국가 내 망 검열 때문에 중간중간 동기화가 깨지는 경우가 있을 정도이다. 근데 중국 채굴장이 세계 1,2위를 하고 있지 않았던가? 비트코인 동기화가 좀 깨져도 살아남도록 만들었다는 것이다.

 

비트코인은 블록 컨펌이라는게 존재한다. 눈치가 좀 빨랐으며 알겠지만, 사실 hashcash를 경쟁을 한다고 하면, 우연하게 두 채굴 노드가 hashcash 문제를 맞히는 경우가 생긴다는 것(동기화가 일시적으로 깨짐, 정답이 2개일 수는 없지 않은 가)을 알 수 있을 것이다. 이 경우 골이 아파지는데, 일반적으로 timestamp (블록 찾은 시각)과 nonce 값이 얼마나 높느냐 (얼마나 컴퓨팅 파워를 쏟아부었는가) 로 결정을 하여 노드들은 블록을 선택(블록 재 선택 후 재배열)한다. 그리고, 이 때문에 신규 블록이 생성되었고, 그 블록에 트랜젝션들이 포함되었다고 해서, 그 트랜젝션이 유효하다고 판단하지 않는다. 100번 블록이 생성되고, 이 100번 블록을 참조하는 101번, 101번을 참조하는 102번... 이렇게해서 106번까지 생성되면 (10분당 1블록이니 대략 1시간 정도 걸림) 전 세계 노드가 100번 블록에 대해서는 뭐가 맞는지 합의 했다고 판단하여 100번 블록의 거래가 6개의 후속 블록에 의해 mature(성숙) 했다고 판단하고, 이 거래를 허가한다고 땅땅땅 결론을 짓게 된다.

 

즉, 거래의 증빙에만 1시간이 걸린다는 것이다. 이는 화석 개척민들에게는 상당히 이로운 일이다. 지구인들은 1시간 동안 거래를 기다리고 이는 동안 자기들은 전자기파 속도까지 합쳐서 1시간 20분을 기다리면 되니까. (뭐?) 33%의 시간 로스는 뭐 다들 참아주지 않을까 싶은 것이지 않을까? 

 

거기다가 500기가 트랜젝션 내역이 문제라고 해봐도 화성발 스페이스X 로켓에 비트코인 동기화가 끝난 우주방사선 하드닝 되거나 차폐 된 상태의 컴퓨터 넣고 쏘고, 주기적으로 지상 스테이션이랑 통신으로 동기화를 맞추면 되는 것이고 뭐 그러면 화성에서 비트코인 노드가 돌아가는 건 시간 문제일 것이다. 실제로 우주에 비트코인 노드를 올려서 돌리는 프로젝트는 이미 2020년 기준으로 인공위성 쏘아올린 데 3곳이며, 심지어 ISS에 블록체인 노드를 돌리는 프로젝트까지 나왔다. (다들 제 정신이 아니다)

 

사실 이 문제 말고도 더 큰 문제는 있다. 512kbps 인공위성간 통신망으로 10분마다 4MB 짜리 블록 데이터를 받아오는게 문제는 없을 수는 있겠지만,  사실 지구-화성 통신망이 위변조 당하거나 아니면 국가의 주도로 망 검열을 시도 당하면 어떻게 할 것인가? 이는 앞서 말했듯이 지구권 채굴장도 자주 겪는 일이다. 대부분 이에 대한 해결책은 직접 비트코인 동기화된 노트북을 들고와서 채굴장에 연결하거나 (...) VPN이나 위성 통신 등 여튼 국가 인프라망을 우회해서 노드 동기화를 하는 수 밖에 없다.

 

화성-지구 관계가 틀어졌을 경우, 지구에서 제일 먼저 할 일은 화성-지구간 네트워크 인프라에 대한 검열이나 최악의 경우 통신을 내릴 것이다. 화성 개척지는 어떻게 이를 대응할 것인가? 지구 비트코인 노드에 거래 내역이 있고, 화성에만 그 거래 내역을 서명하여 전송을 할 수 있는 프라이빗 키가 존재한다고 가정할 경우, 사실 이건 완벽하게 망한 것이다. 지구랑 통신도 안되는데 비트코인을 전송할 수도, 그 수량이 어떻게 되었는지도, 심지어 비트코인 가격도 알 수 없는데, 이게 망한거지 안 망한 것인가?

 

이런 면에서 일론은 선구자적 아이디어를 내 놓는데, 스타링크라는 인터넷 중계 위성을 전세계 상공에 올린 것이다. 일론은 비트코인 노드가 국가에서 검열당해서 막힐 경우 스타링크로 지구권 노드에 직접 연결을 하고, 화성 비트코인 노드를 중계해서, 지구권의 검열과 방해공작을 막으려는 것이다! (어?)

 

Q: 헛소리는 그만하고, 비트코인은 화성의 기축통화가 안 되는 게 모든 사람들에게 이롭지 않을까 싶긴한 것 아닌가?

 

비트코인은 화성의 기축통화가 되기에는 글러먹은 성질들이 너무 많다. 중간 중간에 화성에서 생길 문제들은 이미 지구에서도 발생하였고, 거기다가 비트코인은 사실 전송 수수료만 지금 10만원이 넘고 있고, 컨펌 속도 생각하면 1~2시간은 기본적으로 걸린다. 거기다가 블록 사이즈는 4MB라서, 거래가 몰리면 또 처리가 밀리는데, 실제로 글쓴이가 겪었던 최악의 사례는 48시간 동안 거래가 계속 대기 상태로 놓였던 segwit 이전의 비트코인이었다. (참고로 비트코인도 계속 기능 개선을 하고 있다.) 이미 화성에서 쓰기도 전에 지구에서도 펑펑 터지고 있다는 것이다.

 

이제부터 본격적으로 비트코인 없는 암호화폐에 대한 이야기를 하려고 한다. 사실, 비트코인은 비트코인 찬양론자들이 말하듯이 좋은 시스템이 아니다. 일단, 구조적으로는 P2P관련 노하우 일체와 암호학적으로 쓸 수 있는 모든 기술을 다 때려넣어서 국가가 검열을 하고, 인터넷이 붕괴되고, 그리고 노드 간 통신이 잠시 끊겨도, 어떻게든 수단과 방법을 찾아서 다시 블록체인 네트워크를 복구하도록 만들어졌다. 이러한 이유는 정치 사상적 문제도 있겠지만, 사실 비트코인 이전의 암호화폐들은 암호학적으로 안전했을지는 모르고,거래도 잘 되었을지 모르나, 모두 정부의 형사 고소와 법적 절차를 통해서 거래가 금지되고 서비스 중단을 당했기 때문이기도 하다. 비트코인 개발자들은 이 사례들을 충분히 잘 알고 있었다. 전세계 ATM기에 연동되서 체크카드로 입출금이 가능했던 가상화폐 eGold는 테러방지법과 자금세탁법으로 무너졌고, DigiCash는 빛도 보지 못했다. 그렇기에, 비트코인은 핵전쟁 이후에도 바퀴벌레처럼 살아남아야만했다. 그래야지 월 스트리트를 붕괴 시키지.

 

하지만, 비트코인이 꿈꾸던 시스템은 이루어지지 못했다. 국가의 검열은 은행과 거래소의 KYC와 AML을 통해서 우회적으로 성공하였고, 월 스트리트는 이미 비트코인을 파생상품으로 취급하고, 비트코인 가격에 펌핑에 영향을 주고 있다. 그리고, 채굴이라는 전 세계 네트워크를 분산하는 시스템은 중국과 몇몇 국가들의 대형 채굴장들의 과점 체제로 넘어갔다.

 

그렇지만, 그 누구도 이제는 비트코인이 뭔가 가치를 갖고 있는 돌 덩어리 수준은 된다는 것을 부정을 하지는 못하고, 이제 이것을 어떻게 가치를 없게 하거나, 규제할 수 있느냐의 논의로 넘어간 건 사실이다.

 

비트코인의 핵심 아이디어인 트랜젝션을 서명을 통해서 암호학적으로 증빙 가능한 거래 장부를 만들자는 (PoW 같은 채굴 개념을 빼고) 계획들을 세운 블록체인 프로젝트들이 대세가 되고 있다. 현재, 비트코인을 거래소에 맡기거나, 아니면 비트코인-이더리움 브릿지로 사용되는 또 다른 블록체이 네트워크를 통해서, 비트코인을 이더리움에서 거래 될 수 있게 하는 여러 프로젝트들(renBTC, wBTC ...)이 나오고 있다. 일단 비트코인은 프라이빗 키에 종속된 공개키(에서 유도된 비트코인 주소)에 종속 되니, 현대 암호학을 좀 응용하면, 이를 이더리움이나 다른 블록체인 메인넷에서 거래를 할 수 있도록 하는 것도 쉬운 편(정말 쉬운건 아니고 연구가 핫한 분야)이다.

 

이를 보통 Layer 2라고 한다. 정확히는 좀 Layer 2는 광의의 의미이고, 사이드체인이나 멀티체인이라고 하기도하고, 브릿지나 셔틀이라도고 한다. 뭐 여튼, 비트코인을 다른 메인넷으로 전송한다니 그게 가능한가? 라는 질문을 할 수 있겠지만, 여기서 중요한건 비트코인은 디지털 정보로 만들어진 허상의 개념이라는 것이다. 그리고, 그건 프로그래머의 코드를 이용한다면 "옮길 수" 있다. 제일 쉬운 걸 생각해보자, 아파트 를 은행 담보 잡아서 대출을 받는 것을 말이다. 이 경우에 10억짜리 아파트에 담보요율 200%를 잡아서 5억을 대출 받으면, 이 돈은 허상의 돈인가? 진짜 돈인가? 보통 현재 브릿지나 사이드체인 형태로 돌아가는 시스템이 대부분 이런데, 중간에 담보를 잡는 중앙화 되어있거나 탈중앙화된 매게채를 이용해서, 이더리움에 n BTC 만큼 저당 잡고 n wBTC를 만들었다는 채권 증서를 발행하고, 이를 거래를 하고 있다. 즉, 비트코인이건, 이더리움이건 다 디지털 자산이고, 이들끼리 중간에 적절한 교환 규격이 있다면 이를 이용하여 서로 거래가 가능하다는 것이다

 

여기서 한발짝 더 나가면, 달러를 주조하는 것도 가능하다. 예를 들어서 비트코인이 45000달러이면, 담보비율 150%를 잡고서 30,000달러를 대출 할 수도 있을 것이다. MakerDAO에서 만든 DAI라는 토큰이 대표적인 예인데, 이더리움과 비트코인, 그리고 각종 코인들을 담보잡아서 이더리움에서 DAI를 대출 받을 수 있다. 그리고, 이를 이용하여 부동산 대출 받아서 부동산 또 사서 부동산 가격 펌핑하듯이, 레버레징을 할 수도 있다. 좀 끔찍한 이야기이긴하지만, 지금 암호화폐 시장은 이 정도까지 발전했고, 이에 응용된 옵션이나 선물 모델까지 만들어서 돌아가는 중이다. 거기다 거래소들에서 1 DAI를 1 달러로 교환할 수도 있다. (그리고 담보물의 가격이 일정 가격 이하로 떨어지면, 은행이 담보물을 청산하듯이, 담보된 비트코인을 팔아버린다.)

 

화성에서 이러지 않을 이유라는게 있을까? 화성에 자체 메인넷을 구축하거나, 지구랑 주기적으로 동기화되는 중간 메인넷을 놓거나 하는 식으로 두 개의 네트워크를 굴릴 수도 있다. 비트코인은 그냥 중앙은행 지하에 잠들어있는 금과 같은 역할을 하면 된다. 그것을 쪼개서 금 FX를 하건, 증서 거래를 하건, 그걸로 원화 대출을 받아서 쓰는 건, 현대 금융에서는 모두가 허용하는 일이다.

 

그리고, 그것은 어떤 끔찍한 결론을 내 놓는게 아닐까?

 

난 일론 머스크가 그려진 화성 달러는 죽어도 안 쓸 것이다.

 


Comments

2020. 11. 22. 23:08

1. DeFi 여름은 지나갔다. 한국에서는 디파이라는 광풍이 지나갔는지도 언론에서 제대로 조명도, 사용자의 인지도 못 없었던 거 같지만, 주간 수익률 최소 10% 보장, 최대 2~3000%/week 단위의 이익을 내는 프로젝트들이 만들어졌고, 쓰러져갔다. 다들 알만한, Yam, Sushi, Kimchi, Hotdog ... 같은 음식 이름에 기반한 서비스들의 탄생과 죽음을 목도하면서, 별 생각이 들지는 않았고, 그냥 폰지 스캠 하던 애들은 역시 폰지 스캠을 하고 있구나라는 생각이 들 뿐이다.

 

2. 별다른 이야기를 하고 싶은 건 아니고, Uniswap과 Aave의 Flash loan 관련한 공격 기법들이 고도화 되고 있다. 현재, Harvest, OUSD 등등 다양한 서비스들이 Curve Pool의 가격 결정에 기반하여 운용이 되고 있는데, 초단기 대출을 이용한 일시적인 가격 조작을 이용하여 투자금을 날려버리는 공격 기법들이 성행하고 있는 편이다. 대충 100억원 정도 빌려서, 1달러와 가격이 비슷하도록 만들어진 USDT와 USDC 스테이블 토큰의 가격을 각각 0.7달러와 1.2달러로 바꾸고(대량 구매/대량 매도), 이 가격에 따라 원래 1달러였던 (그리고 1달러여야만하는) 스테이블 코인의 순간 가격 변동을 이용하여, 서비스들에 스테이킹한 담보 자산의 평가액을 조작(1달러치가 0.7달러가 되었으니)해서 출금을 시키는 공격을 주로 하고 있다. 뭐 말이 어렵지, USDT와 USDC는 1대1로 교환되어야하는데, 0.7대 1.2로 교환되도록 셋팅을 하고, 이를 이용해서 0.5달러의 스프레드를 만들어서, 담보 대출/투자 대행 서비스에서 이 스프레드 만큼 차익을 보는 공격인데, 이런 허접한 공격에 무참히 시스템이 무너지는 거 보면 진짜 발로 코드를 짰다고 할 수 있을 것이다. 진짜 발로...

 

3. 오늘 새벽 4시경, Pickle의 경우 DAI를 보관하는 Jar를 바꿔치기하여 2000만불 정도의 DAI를 훔치는 사건이 발생했는데, Flash loan 기반 Curve 가격 조작과는 좀 다르게, Jar가 갖고 있는 취약점에 기반해서 공격을 때린 듯하다. 뭐 이러나 저러나 스마트 컨트랙트의 취약점에 기반하고 있는데, 대부분 가격 계산의 실수나, 너무 나이브하게 짜 놓은 코드들 때문에 터지는 건 동일한 증상일 것이다.

 

4. 현재 오딧팅 한다는 어떠한 회사도 이런 공격을 예상 해 내지도, 예상해서 패치를 하지고 못하고 있다. 오딧팅 업체들이 진짜 돈을 날로 벌어먹는다는 생각을 자주 했었는데, 요번에 사고 터지는 거 보면서 진짜로 날로 쳐 먹는걸 전세계에 알렸으니, 오딧팅 업계 쪽에 자정 작용이 있었으면 한다. 뭐, 보안 업계가 그렇지만, 발로 감사하고 발로 일하고 발로 패치하지만... 좀 바뀌어야 뭐가 되지 않을까 싶은 게 있다. 특히,현재 3대장이라고 할 수 있는 감사 업체들이 제일 문제다.

 

5. 탈중앙화는 정녕 민주주의적이고 자유주의적인 것일까? 국가의 해체나 금융 시스템의 독립은 정말 자유를 보장하는 것일까? 아마도 아닐 것이다.


Comments

2020. 1. 24. 02:54

「딥러닝 레볼루션이라는 책을 읽다가 빡이 좀 많이 쳐서 글을 쓰게 되었지만 서두부터 쌍욕을 날리기는 좀 뭐해서 다른 주제로 이야기를 시작한다. Bengi (혹은 필자?)의 주력 필드는 무엇이었는가에 대해 궁금한 사람들이 많을 것이다. 한 때는 NLP나 영상처리를 하고 있지를 않나, 한 때는 해킹 중에서 리버싱이랑 IoT 관련한 쪽을 하지 않나, 임베디드를 했었다고 하지 않나... 여튼 다양한 걸 하고 도대체 전공이 무엇인지에 대해서 물어본다면, 사실 나도 잘 모르는 게 사실이다. 200n년부터 블로그를 쭉 구독해왔다면 생각 없는 초중딩(...)이 해킹하겠다고 설쳤고, 게임 리버싱을 했었고, CPU를 만들겠다고 뻘짓을 했었던 흔적들을 볼 수 있을 것이다. 그리고, 으레 AI를 하고 싶어서 그 당시에는 ML인지도 모르고 ML를 하고 있었기도 했고 이런 경험들이 쌓여서, 학부를 괜찮은데를 가서 학부 2학년에 영상처리 배우고, BoB 초창기 기수에 임베디드 해킹을 주로 했었고, 그 이후에 졸업 프로젝트로 NLP 위주로 재현도 높은 논문 분류기를 만들어서 검색 및 클러스터링을 주로 했었다. 거의 검색 엔진 하나 새로 만드는 느낌이었는데, 그 때 배운게 많다.

뭐, 그래서 블록체인이라는 이름의 지옥이라는 제목은 왜 썼냐고? 사실 블록체인이 기존의 인공지능이나 컴퓨터 공학이 받았던 천대를 똑같이 받고 있다는 점과, 그리고 솔직히 블록체인 까는 인간들에 대해서 한 이야기를 하고 싶기 때문이다.

시작으로 돌아가자, 「딥러닝 레볼루션이다. 그렇게 주변 프로그래머들에게 추천을 받고, 사람들도 좋다고 하고, 필독서라고 하는데, 솔직히 읽다가 구역질이 나오는 건 둘째치고, 사실 인공지능을 공부했거나 ML을 공부했다면, 솔직히 이게 얼마나 개소리로 시작해서 개소리로 끝나는가에 대해서 생각을 할 수 있을 것이다. 아니, 사실 좀 더 이야기를 해보자면, 딥러닝과 ML은 분명히 다른 분야이며, 인공지능을 상위로 두고 있는 다른 분야라고 할 정도로 많은 차이점을 갖고 있지 않나 싶다. 실제로 많은 분야에서 딥러닝 연구자들은 기존 인공지능이나 ML 연구자들과는 다른 분야를 사는 듯한 느낌을 많이 받는데, 이 부분은 일반적으로 사용하는 툴과 공부하는 백그라운드에서 차이를 보이기 때문일 것이다.

백그라운드의 차이는 무엇인가? 딥러닝의 근본 없음.... 아니 사실 딥러닝이 갖고 있는 특이적 문제들에 대한 질문으로부터 시작될 것이다. 딥러닝의 근본은 어디서 오는 것인가에 대한 질문이다. 일반적으로 (딥러닝 레볼루션에서 언급한대로) 1957년의 퍼셉트론부터 시작이 될 것이다. 이후 70년대에? 80년대에 무엇이 있는가? 90년대에 무엇이 있는가? 라고 하면 좀 문제인게 일반적으로 이 때는 뉴럴넷 관련 연구가 개차반이었던 시절이기도하고, 선형 분류기를 여러개를 묶어서 돌리는 형태로 돌렸을 떄 은닉층이라고 불리는 중간 계층에 대한 조정 혹은 보정을 하는게 불가능했었던 시절이기 때문이다. (발견은 70년대 후반, 논문은 80년대에 나왔다지만) 다행히도, 백프로파게이션이 90년대부터 널리 쓰이기 시작하면서 CNN이 뜨기 시작했다. 하지만 이 때에도 CNN은 문제가 많았었는데, GPU라는 개념도 희박하던 시절이고, 결국 대량의 CPU나 특수 목적으로 칩셋을 만들어서 썼던 (ASIC이라는 이름이 그 때도 있었는가는 모르겠다. 그 때 태어나서 (...)) 시절이었다. 컴퓨팅 파워가 낮아서 실제로 쓸만한 수준으로 시스템을 운영하지 못한 것이다. 영상처리 가르치던 교수님이 그 때를 회상하면서 8bit로 영상처리하는 건 기적이었다고 말 하면서 요즘 컴퓨터 좋아졌다는 이야기를 할 정도였었고, 386 CPU가 뭐 대단하다고 실시간으로 영상처리를 했곘는가를 생각해보면 쉽다.

여튼, 2000년대로 오면, 코호넨 네트워크 같은 녀석이나 RNN이 본격적으로 등장한다. 그 때까지만 해도, 사실 이 때부터 ML 관련판에서는 이야기가 나오기 시작하였고 2012~2014년도에 엄청 이거 관련된 이야기를 많이 접했던 기억이 있다. LSTM이 나오고, 뭐 그런 부분은 2015년도부터 유명해진 이야기고 (기억에 의존하는 거라 틀렸을 가능성이 크다. 위키에서는 90년대로 돌아가는데... 아마 2016년 이후일 가능성도 크다) 실제로 사실 그 당시에 DNN 관련된 부분만 해도 참 최신 트랜드였다는 것을 기억한다. 인공지능, 현대적 접근」 3판이 한국에 류광체... 아니 류광님의 번역으로 나왔을 때, 인공지능 수업을 학교에서 제대로 배웠었는데, DNN은 진짜 슬라이드 10장으로 약간 공부를 했었고, RNN 백 프로파게이션 증명이 시험 문제로 나왔을 정도로 NN 쪽은 대충 배웠었다. 오히려 디씨전 트리나, SVM, 퍼셉트론 등을 더 자세하게 배웠고, 그것의 도움을 일 할 때 많이 받았었다.

근데, 인공지능 이야기를 왜 주구장창 하느냐고? 사실 딥러닝 옹호론자, 혹은 딥러닝 이전의 세계에 대해서는 뭔 실패한 사람처럼 언급을 한다는 점이 언제나 거슬린다는 거고, 특히 딥러닝 이전에 수 많은 시도들이나 시행착오들에 대해서 그렇게 짧고 간단하게 넘어갈 이야기는 아니라는 점이다. AI가 대세라고, 딥러닝과 뉴럴넷이면 세상을 바꾼다고 하는 나팔수들의 이야기들을 볼 때마다 느끼는 건 도대체 니네는 이 필드에 기여를 한게 뭔데 그렇게 자신감에 차서 나팔수 노릇을 하고 있느냐의 질문일 것이다.

인공지능은 천대받는 학문이었다. 인기도 엄청 없었고, 논문도 잘 안 나왔었고, 사실 하는 사람만 하는 학문이었고 번역서도 그렇게 많지 않았었다. 오히려 영상처리나 NLP 같은 실용적인 부분들에 있어서 많이 쓰이긴 했지만 한계는 분명한 상황이었고, 취미로 하기에는 적당하지만 업으로 삼기에는 너무 힘든 학문이었다. 50년대나 8~90년대에 받던 냉대나, 철학계의 공격이나, 인공지능 무용론에 비할바는 있겠냐만은 2000년대 중후반의 인공지능은 사실 용도 제한적인 특정 분야에서만 쓸 수 있는 기술이었고 이에 따라서 관심 갖을 사람들만 관심을 갖는 학문이었던 것도 사실이다.

결과적으로 천대 받던 시절을 지나 뉴럴넷이 세상을 바꾼다는 이야기가 나올 때부터 인공지능 말고 딴 분야를 하게 되었다. (사실 이 때 되면 노이즈나 바이럴이 더 많아지는 시기이기도 하고, 사실 싹 다 영상처리에 몰려있는 상황에서 NLP 공부하던 학부생이 뭘 더 할 것도 없었다. 그리고 NLP는 취미 생활이지 돈 벌려고 한 것도 아니고) 그리고, 아직도 뉴럴넷, 특히 딥러닝 관련해서는 정말로 싫어하는 편이다. 요즘 논문 트랜드는 다시 통계학이나 수학 베이스로 돌아가니 볼만한 것들은 보고 있지만, 솔직히 지금의 열기는 너무 과열이 되었다고 생각을 하고, 장기적으로 다시 꺼질 버블이라고 생각하고 있다. 결과적으로 다시 주기적 순환 속에서 침체기에 들어갈 것이다.

개발자나 다양한 사람들이 피상적인 형태의 무언가를 보고 호오가 갈리는 걸 정말 많이 봤다. 딥러닝 옹호론자들이 생겨났을 때, 실제로 인공지능이나 관련 학문을 배웠던 사람보다는 일단 TF깔고 뭐 돌리고, SPSS에서 툴 돌리고 뭐 할 줄 안다고 하고, 뭐 일단 잘 되는 예제들 돌리고 나는 인공지능을 잘 해! 라고 하는 사람들이 태반이었다. 그리고 그 중 대부분이 "ML 그거 망한거 아니에요 ㅎㅎ?" 라고 했었던 인간들이었었다. 기존 베이스나 기존 학문에 대해서 한 치의 존경도 없이 하이프나 인기에 따라가는 사람들인데, 솔직히 진짜 힙스터라는 말 밖에 붙여줄 수 밖에 없다. 기술 이해도가 뛰어난 것도 아니고, 뭐 맨날 얕게 배워서 얕게 쓰고 넘어가는게 기본인데, 꼭 그럴 때마다 구 기술이나 이전 세대를 무시하는 행동을 꼭 했었었고, 사실 이런 무례함이야말로 그런 사람들을 멀리하게 하는 계기가 되었다. (그러고보니 펑셔널 랭귀지 했을 때도 비슷한 경험이 있다 ㅠㅠ)

전기차건, 드론이건, 인공지능이건, 4차 산업 혁명이라고 붙은 모든 이름의 것들은 대부분 암흑기나 겨울을 지나서 대세가 되고, 주류 시스템에 편입되는 과정을 거쳤다. 드론은 쿼드롭터 날리면서 놀던 사람들이 선구자가 되었고, 전기차는 초기 개척자인 테슬라, 인공지능은 관련 연구자들이나 취미 생활을 하던 사람들이 주도적으로 업계를 끌어왔었다. 그리고, 일단 업계가 성숙하거나 시장이 커지면, 기술적 부족함이나 부실함에 대해서 기성 업체들의 기술을 접목해서 확장하는 형태로 신기술이 성숙화된다. 자세제어 기술이나 관성 제어 같은 기술들이나 모터 관련된 노하우들은 기존의 항공 관련 기업이나 로보틱스 분야의 도움을 받고, 배터리 효율이나 대량 생산의 경우 라인을 갖고 있는 공장에서 도움을 받으며, 수학과 통계학을 기반으로 모델을 해석하는 등이 그 예일 것이다. 이 때에는 기존 시장에서 낮은 기술 집적도와 넓은 연계 연구들의 도움을 받아 움직이게 된다. 그 후 다시 성숙기로 가면 레드오션이 되고, 기술적 집적, n%p 단위의 공정 개선 경쟁, 전문가들의 등장 등으로 다시 시장 혹은 기술에 대한 고도화가 이루어진다.

이런면에서 블록체인도 비슷한 하이프를 겪고 있는데, 특히 요즘 SSI/DID가 대세가 되면서 아마도 블록체인에 기반한 투명한 데이터 공유나 GPG/PGP의 대안 형태의 메시징이나, ECDSA 관련된 기술적 진보, Shnorr 관련 멀티 시그 기술 등등 여러가지 기술들이 겹치면서 나오는 안정적인 데이터 공유 등이 대세가 되면, 대중화가 될 것이고, 기술 힙스터들이 몰려올 것이다. 뭔 김치국부터 마시는 이야기냐고 할 수는 있겠지만, 지금 이 타이밍에 블록체인 기술은 이미 성숙기로 들어간 상태이고, 기존 기업들은 기술력이 있느냐 없느냐로 이미 시험을 충분히 받은 상태라는 점, 그리고 이더리움 2.0 기준으로 샤딩이나 분산 데이터 저장 등이 대세가 되어 안정기로 넘어갈 타이밍이라는 것이다. 샤딩이 중요한 것인가? 라고 물어본다면, 이게 아마도 블록체인의 PoW가 갖고 있는 문제를 해결하리라 보기 때문이다.

블록체인 기술은 섹시하다. 아니 원자력 발전소 10 기의 발전량을 쳐 먹는 수준의 PoW 시스템이 섹시한가? 라고 물어본다면, 아마도 그것은 대안 기술들 (텐더민트, RAFT, DPoS, Sharding, L2 기술, 오프체인/사이드체인 기술...) 들에 의해서 개선이 될 것이기 때문이다. 그리고, 그 개선 과정에서 많은 사람들의 도움과 기성 시스템(분산처리, 게임이론, 금융공학, 네트워크 스택, 암호학, 라이브러리 등등)에 도움을 받아서 성장을 할 것이기도 하다.

이런면에서, 나는 사실 블록체인에 대한 대중 인식이나 개발자의 인식이 싫은 편이다. 뭔 말만하면 사기 기술이라느니 -이미 기술 기반은 다져져있다- 기술적 특이점이 없다느니 이런 말을 하지만, 실제로 알게 모르게 블록체인에 연계된 기술들의 혜택을 받고 있다는 것이다. 다들 해시 함수와 비대칭키 암호화의 노예이자 토렌트의 숙주들인데, 뭐 그러면서 블록체인 기술을 욕해?!

개발자들 중에서 블록체인 디스하는 사람들의 변절을 제일 경계하게 된다. 딥러닝 때도 그랬고, ML까던 사람이 뭔 신내림을 받은 듯이 딥러닝 찬양을 하고 있지를 않나, 갑자기 전도사가 되어서 너희는 인공지능을 모른다 이런 소리를 하지를 않나, 뭔 ML 기초도 모르면서 커널이 어떻다고 말을 하지를 않나 -.-; 이런 사람들이 양산될 것은 뻔하다. 이미 이 업계는 DeFi, 커스터디, ERC-1155, 탈중앙화, DID 이딴 요상한 말들로 진저리가 날 정도인데, 더 이상한 사람들을 보게 되는 건 정말 사절인데 말이다.

그래서, 그렇다면 신내림을 받은 사람들은 이제 무엇을 이야기할 것이냐? 이것도 제일 재미있는 질문일 것이다. 사실 예상하는 부분은 이더리움의 스마트컨트랙트 개발로 세상이 평등해진다는 평등주의자, keybase.io랑 DID가 다르지 않다는 걸 깨달은 개발자들의 대거 이주(도대체 왜?), UbiKey의 secp256k1 지원으로 암호화폐 거래를 본격적으로 하면서 이게 금융의 대안이라고 주장하는 금융의 ㄱ자도 모르는 사람들, 공인인증서의 대체재가 SSI라고 주장하는 사람들, 분산컴퓨팅의 끝이라고 특정 블록체인을 밀어주는 사람, 타원곡선암호의 매력에 빠져서 curve25519 전파하듯이 secp256k1 전파하는 사람 등등 별의별 인간 군상이 예상된다.

아 나도 개발자들 다 있는 Ubikey있고. Keybase도 초창기부터 가입했고, 뭐 별의별 힙스터 물건들은 다 쓰고 있긴하다. 근데, 까놓고 말하자 keybase로 나는 스텔라루멘 거래는 해봤지만 그걸로 채팅 제대로 해 본적은 없고, Ubikey로 2FA 열심히 한다지만 이걸로 GPG/PGP 서명 제대로 한 적은 손에 꼽는다. 사실 최애 서비스는 Authy와 1Password인데, 이건 너무 레거시해서 다들 싫어하지 않나?

이미 블록체인의 버블은 다시 시작되었다. IITP도 그렇고, KISA도 그렇고, 뭐 다들 DID에 미쳐있다. 그리고 곧 DID로 여권과 주민등록증과 각종 공무원 서류들을 대체할 수 있다는 강한 믿음을 갖고 있는 사람들이 한 무더기가 되었다. 뭐 SSI Meetup 등 제대로 굴러가는데도 많지만, 사실 발로 만든 DID 서비스들이 우후죽순 생겨나고 퍼블릭 네트워크를 쓰지도 않으면서, 탈중앙화 된 신원인증이라고 설치고 있다. DID는 블록체인의 쓸모를 증명하는 서비스이자, 탈중앙화된 탈중앙집권적인 시스템이 될 것이다. 이를 기대하면서 미래의 벽돌을 쌓고는 있지만, 사실 걱정되는 건 매한가지다. 결국 이 업계도 인공지능이 겪었던 것처럼 핫한 시점이 다시 올 것이고, 기존 ML이 겪었던 고충들을 또 다시 겪을 것이다. 그리고, 난 그 때에 또 짐을 싸고 딴 곳으로 가면 갔었지, 계속 남아서 뭘 하진 않을 것 같다. :P


Comments


  1. 0xcrypto 2020.05.09 12:32

    우연히 트위터에서 검색하다 어떻게하다보니 여기까지 오게 되었네요. 전문지식이 없는 제가 느끼기에도 추상적이던 블록체인 기술들이 점점 구체화되어서 요즘에는 이더리움 메타마스크 지갑으로 web3.0 홈페이지들 로그인 하는 재미로 돌아다니고 있습니다. 잘 읽었습니다. 감사합니다.



2019. 11. 10. 02:09

그냥 요즘 삘 받아서 글을 막 쓰게 되는데, 이럴 때 열심히 글을 써 두는게 제일 좋지 않나 싶다. 일단 블록체인 기술에 대해서 이야기를 해야하나 싶은게, 실제로 다들 블록체인 기술이 뭔지에 대해서 이야기를 하는 사람이 없기 때문이다. 아니 솔직히, 블록체인 관련 글들은 쓰는데 회사 솔루션을 끼워서 이야기를 하거나, 아님 얕은 지식의 이야기를 하거나, 너무 암호학 위주로 이야기를 하거나, 아님 뭐 내 마음에 안 들게 글을 써서 그냥 블록체인에 대한 이야기를 처음부터 하려고 한다. 하지만, 이 글은 언제라도 사라질 수 있으며, 그 후 회사 블로그에 올라갈 (...) 수 있다는 부분은 양해 부탁드리는 부분이며, 솔직히 저희 회사도 먹고 살아야한다는 점을 이야기 하고 싶다. 저희 회사 기술력 보고 시리즈A 투자 좀 해 주세요. 제발.

뭐, 여튼 블록체인을 언제나 쉽게 이야기를 하면,

1. 공인인증서(비대칭키)로 거래 내역을 사이닝해서
2. 그 트랜젝션(거래 내역)을 전파를 하고,
3. 전파 받은 기록들을 해쉬 링크드 리스트에 기록을 해서
4. 그 최신 블록(혹은 노드)을 P2P로 토렌트 비슷하게 공유를 하면,

기초적인 블록체인이 나온다.

5. 거기에 PDA 같은 녀석을 추가로 넣고 스택 기반으로 VM을 만들면 비트코인이 되고
6. 인스트럭션 셋을 만들어서 인스트럭션 단위로 Gas라는 사용료를 물면 이더리움이 된다
7. 그리고 블록을 생성할 때마다 보상을 줘야한다. (경제학적 이유)
8. 블록 생성 방식에 대한 합의가 필요하다.

좀 더 복잡한 이야기를 하자면,
9. 이런 VM에 박히는 스크립트의 용량을 최소화하는 것이 목표인 상황,
10. 블록 생성 방식을 바꾸어 최소한의 시간으로 빠르게 컨펌하는 것이 목표인 상황
11. 블록체인 네트워크가 갖고 있는 한계 및 해결 방식
12. Fee를 해결하기 위한 방법
13. 기타 등등의 각종 이슈들
이 있으며, 이 부분에 대해서는 추가적인 포스팅을 하도록 할 것 같다.

라고 말을 한다. 사실 공인인증서라고는 말하지만 사실은 사설인증서이며, 개인이 직접 생성하는 비대칭키에 의존한다. (그러니 막 지갑 주소가 여러개 생성 될 수 있는 것이다!)

사실 많은 질문들, 특히 블록체인 노드와 월렛에 대한 구분을 못 하거나, 콜드 월렛과 핫 월렛이라는 요상한 단어를 쓰는 친구들을 볼 때마다 복장이 터지는 이유는 콜드와 핫은 의미도 없을 뿐더러, 콜드나 핫이나 둘 다 실제로 작동되는 원리는 비슷하기 때문이다. 아니 비슷하다고? 비슷하다. 이제 그 이야기를 길고 길게 이야기를 할 것이다.

일단, 큰 꼭지는 1번과 3번은 인터넷 없이도 처리가 되고, 2번과 4번은 네트워크랑 관계가 있다는 것을 쉽게 눈치를 챌 수 있을 것이다. 5번과 6번은 이제 심플한 컴퓨터구조론 혹은 오토마타 이야기라는 걸 이해를 바로 하면 컴퓨터 공학 정규 수업을 열심히 들었다는 것이다. 뭐 일단 이야기를 진행해보자. 1번 부터 이야기를 해보자.

1번 : 비대칭키로 거래내역의 사이닝을 한다.

비대칭키는 무엇인가? 일반적으로 프로그래머라면, 알 수 있는 부분은 "공인인증서에서 사용된다." 혹은 "SSL 같은 곳에서 사용된다." 정도일 것이다. 좀 더 궁금증을 갖고 있다면, RSA 정도를 알 것이고, 일반적으로 ssh 통신을 할 때 pem 키라고 부르는 녀석이 RSA (혹은 딴 비대칭키) 비밀키 및 공개키를 박아놓은 녀석이라는 것을 알 수 있다. 이걸 이용해서 비밀키로 사이닝을 하고, 공개키로 그것을 확인하는 (사실 반대도 가능하다) 작업을 할 수 있다. 이는 중간에 공격자가 공개키로 암호화된 메세지를 가로채도 비밀키가 없다면 해독을 못하는 상황을 만들어 낼 수 있다는 것을 의미한다. 또한 비밀키로 사이닝한 메세지를 공개키와 같이 공개를 하여, 비밀키를 갖고 있는 사람이 공개키로 이러한 메세지를 썼다는 것을 해독 시킬 수 있을 것이다. 암호화폐에서 이것이 쓰이는 이유는 명료하다. 사이닝을 통해서 주인을 식별할 수 있다는 것 때문이고, 이를 암호화폐의 전송에 사용하게 된다.

제일 간단하게 생각 할 수 있는 예는 다음과 같을 것이다. 일단 Alice는 10 Bengi 코인을 갖고 있고, 나머지는 모두 0 Bengi 코인을 갖고 있다고 가정하자. 그리고 Alice는 다음과 같은 메세지를 써서 서명을 한다.

{
    msg : "Alice는 Bob에게 10 Bengi Coin을 보낸다.",
    signature : msg의 서명 (Alice의 비밀키로 서명함)
}

 

이 메세지를 받은 사람은 Alice가 비밀키를 사용하여 Bob에게 10 Bengi Coin을 보냈다는 것을 증명할 수 있다. msg를 signature(서명)을 Alice의 공개키로 해독해 msg가 나오면, Alice가 보낸 것이 맞기 때문이다. 그렇다면, 이제 Bob은 10 Bengi 코인이 있는 것이고, 5 Bengi Coin을 Carol에게 보내고 싶다. 그러면 이제 위의 모델에서, Bob은 Carol에게 5 Bengi 코인을 보내고 싶다는 메세지를 작성해 서명해서 넘겨주면 된다! 그러면 Bob이 주인인게 확실하니! 그러면 이제 Bob은 5 Bengi 코인을 갖고 있고, Carol은 5 Bengi 코인을 갖고 있고, Alice는 0 Bengi 코인을 갖고 있을 것이다.

하지만, 여기서 드는 의문은 이제 이것이다. msg 내용이 좀 그시기하다는 것이다. 다음과 같이 바꿔보자

{
    from : "Alice",
    to : "Bob",
    amount : 10,
    signature : msg의 서명 (Alice의 비밀키로 서명함),
}

그 다음으로 드는 생각은 Alice의 Signature를 어떻게 검증하냐는 것이다. Alice의 공개키가 등록된 장부가 있거나 그에 준하는 무언가가 있어야한다. 이럴바에는 그냥 from에 Alice의 공개키를 넣는것이 어떤가? 그러면 좀 더 쉽게 전송을 할 수 있을 것이다.

{
    from : "Alice's Publickey",
    to : "Bob",
    amount : 10,
    signature : msg의 서명 (Alice의 비밀키로 서명함),
}

이제 메세지는 자가 증명을 할 수 있다. form에서 Alice의 공개키를 찾아서 signature가 맞는지 알 수 있다. 근데, 이러면 Bob의 공개키와 Bob이 어떻게 연결되어있는지를 증명할 수 없다. 즉, to에도 Bob의 공개키를 넣으면 편해질 것이다. Bob은 여기서 비밀키를 이용할 일이 없지만, Bob의 신원증명에는 사용되니 공개키를 넣는게 좋을 것이다.

{
    form : "Alice's Public key",
    to : "Bob's Public key",
    amount : 10,
    signature : msg의 서명 (Alice의 비밀키로 서명함),
}

(별로 알 필요는 없음) 비대칭키 암호화를 좀만 안다면 msg 길이 만큼 signature의 길이가 길어진다는 점이 문제라는 걸 알 수 있다. 위의 메세지를 해슁을 하고, 해슁된 데이터 값 (해식값)에 서명을 해도 동일한 효력이 나올 것이다. 그렇게 바꿔보자.

{
    form : "Alice's Public key",
    to : "Bob's Public key",
    amount : 10,
    tx_hash : msg의 hash 값,
    signature : tx_hash의 서명 (Alice의 비밀키로 서명함),
}

이제 좀 이쁜 모습이 되었다. 이제 이것을 이용하여 전송 Alice는 Bob에게 전송을 할 수 있다. Bob의 공개키는 이 트랜젝션이 블록체인 상에 허가가 나면 10 Bengi Coin을 소유하게 되는 것이고, 이에 따라서 10 Bengi Coin 이하의 값을 전송할 수 있을 것이다. 기본적인 전송 시스템을 구축할 수 있는 것이다. Bob에게 수신된 총량과 발신한 총량을 빼면 Bob의 잔고가 나올 것이다. 즉, 이걸 주기적으로 기록만 한다면 블록체인 상에서 거래를 할 수 있다! 그러니, 이런 전송이 발생할 때마다 Alice의 잔고에서 금액을 깍고, Bob의 잔고에 그 만큼의 금액을 추가하면 된다. 만약 Alice가 잔고가 없는 상황에서 돈을 보내려고 한다면 블록체인 네트워크 상에서 거부를 할 것이다. (잔고 금액을 추적하고 있으니, 하지만 동시에 각각 Bob과 Carol에게 7 Coin씩 보낸다는 트랜젝션을 생성하는 공격 같은 걸 하거나 0 Bengi Coin을 무한히 보내는 공격을 한다면 어떨까? 이후에 후술한다.)

사실, 암호화폐에서 대표적인 모델은 2가지가 있는데, UTXO 모델과 Account 모델이다. UTXO는 비트코인이 사용하는 모델이고, Account는 이더리움이 사용하는 모델이다. Account 모델의 기초를 위에서 이미 설명을 했으니 넘어가도록 하고, UTXO 모델은 복식 부기를 사용하는 모델이다. 상당히 복잡하다고 할 수 있는데 상당히 직관적이니 이야기를 한 번 하긴 해야할 부분이다. 이 이야기는 나중에 공격에 대한 저항성 이야기에 대해서 아주 중요하게 다룰 것이다.

Account 모델의 단점은 공개키-잔고 쌍을 어딘가에 기록하고 계속 추적해야한다는 점이다. 이 방식은 어쨌든 공개키 쌍이 늘어날 수록 데이터베이스 크기가 늘어난다는 점이다. 이 방법 대신에 UTXO는 복식 부기를 사용하여 이 부분을 해결한다. 복식부기 자체가 잔고 증명이 되고, 복식부기를 연속적으로 만들어냄으로써 잔고의 흐름을 추적하는 방식을 사용한다.

간단하게 1 Input, 2 Output 트랜젝션을 보자.

{
    from : [
    	tx1_hash, // to Alice 12
        ],
    to : { 
    	Alice Publick Key : 2,
        Bob Public Key : 10
        },
    tx_hash : tx_new_hash,
    signature : alice signature of tx1_hash,
}

Alice의 12 Bengi Coin을 받는 트랜젝션을 찾아서, Alice에게 2를 보내고, Bob에게 10을 보내는 새로운 트랜젝션을 만든다. 이렇게 되면 Alice는 tx1 더 이상 사용 될 수 없어지고, tx_new가 이제 Alice와 Bob의 새로운 잔고 증명 Tx가 된다. Alice와 Bob은 이 트랜젝션 해쉬를 갖고 새로운 거래를 열 수 있다. 여튼 여러개의 Alice에게 Bengi Coin을 보내는 tx들을 모아서, from에 넣고, to에 받을 사람을 적어서 트랜젝션을 생성하면 되는 구조이며, 이를 통해서 검증자는 전체 잔고의 추적을 할 필요가 없어졌다. 그냥, tx1_hash의 시그니처와 Alice의 공개키와 tx1_hash 세 개를 대조하여 맞는 사용자인지 확인을 하는 과정이 있는 것 뿐이다. 이를 P2PK 방식이라고도 불리는데, 바로 공개키를 사용하지는 않고 Address를 사용하나 전체적인 기조는 같다. 그렇다면 2개의 인풋과 3개의 아웃풋이 있을 경우 어떻게 하는가? 아웃풋은 쉽겠는데, 2개의 인풋이 Alice의 서로 다른 공개키로 보내는 것이라면 약간 골이 아플 것이다. 그래서 실제로 signature는 다음과 같은 형태를 띄고 있다.

{
    from : {
    	tx1_hash: alice signature of tx1_hash, // to Alice 10
        tx2_hash: alice signature of tx2_hash, // to Alice 5
        },
    to : { 
    	Alice Publick Key : 2,
        Bob Public Key : 10,
        Carol Public Key : 3
        },
    tx_hash : tx_new_hash,
}

 

어려운가? 그렇다면 쉽게 설명하면, 잔돈 모델로 생각하면 편하다. Alice가 1000원짜리 지폐랑 500원짜리 동전 합쳐서 1500원을 넘겨주고, 200원을 거슬러 받고, 1000원을 BoB에게 주고, 300원을 Carol에게 준  모양새가 된다.이런식으로 잔돈들을 합쳐서 큰 돈을 만들고, 큰 돈을 다시 쪼개서 분배를 하는 과정을 거치게 된다. 그래서 비트코인 트랜젝션을 보면 일반적으로 1~3개의 인풋에 2개 정도의 아웃풋이 기본적으로 있는 것이다.

2번 트랜젝션의 내역을 전파한다.

이렇게 만들어진 트랜젝션을 이쁘게 팩킹하여, 연결된 노드나 자기 자신의 노드나 여튼 블록체인 데이터를 받을 수 있는 무언가에 전송을 해 주면, 노드들끼리 이 신규 트랜젝션을 공유를 하여 네트워크에 동기화를 시켜준다. 그리고, 블록 생성자가 이 트랜젝션 데이터를 받아서 블록에 산입을 하도록 한다. 그냥 토렌트나 P2P 서비스를 생각하면 편하다. 데이터를 동기화하는 과정인 것이다. 여기서 콜드월렛 핫 월렛이 결정되는데, 블록체인 노드에 바로 연결되어서 쏘면 핫 월렛, 연결이 되어있지 않고 중간 전달자가 대신 전달해주면 콜드월렛이나, 실제로 콜드나 핫이나 트랜젝션 생성을 하는 건 변함이 없다는 것을 알 수 있다. 솔직히 네트워크에 안 붙고도 트랜젝션 생성할 방법 많은 관계로 핫이나 콜드나 별 의미가 없다. 특히 같은 비밀키를 여러군데에 저장해서 쓰는 경우라면 더더욱.

3번 해쉬드 링크드 리스트에 기록을 한다

블록체인이라는 게 여기서부터 중요해지는데, 해쉬드 링크드 리스트를 사용한다는 점과, 사실은 링크드 리스트가 아니라 DAG라는 점이다. 링크드 리스트는 트리나 그래프 형태로 만들어지면 안 되는데, 블록체인은 그렇게 되는 경우가 종종 있기에 엄밀히 말하면 링크드 리스트의 속성을 충족하지는 않는다. 그래서 더 느슨한 자료구조인 DAG의 특징을 충족하는 것인데, 이 부분에 대해서 이야기를 해보자.

이제 두번째 장벽인 해쉬 함수에 대해서 이야기를 하려고 한다. 해쉬란 무엇인가? 비가역적인 형태로 무언가를 생성시키는 함수이다. 해쉬 함수의 특징은, 같은 값이 들어가면 같은 값이 나와야하고, 두 다른 값의 결과는 같지 않아야하며, 비슷한 값의 결과는 충분히 달라야한다, 그리고 제일 중요한것은 원본의 값을 유추할 수 없어야한다는 점이다. 간단히 설명한 것이지만, 상당히 구현 난이도는 높은 편이고, 실제로 해쉬 함수가 깨진다 (취약점이 나온다) 라는 부분들이 저 전제를 못 지키기 때문이다. 두 다른 값에서 같은 결과값이 나오는 경우를 해시 콜리전 (충돌)이라고 불리고, 유추 가능성에 대해서는 제1역상 공격이라고 한다(제2는 해쉬 콜리전이다) 이를 실제로 염두를 해야하는 점은 무엇인가? 블록체인은 데이터의 위변조를 검증하는데 해쉬를 쓰고, 이 덕분에 해쉬가 덕지덕지 발라져 있다는 점이다.

해쉬 링크드 리스트는 다음과 같은 특징을 갖고 있다. 트랜젝션들을 넣은 블록을 만들고, 해쉬를 만든다. 아니... 정확히는 앞선 블록에 대한 정보를 담게 된다. 다음과 같은 구조를 띄게 되는데 일단 확인해 보자.

current_block = {
    previous_block_hash : previous_block_hash,
    tx_data : [tx1_data, tx2_data, tx3_data, tx4_data, ... ],
    txs_hash : SHA3(tx_data),
}

new_block = {
    previous_block_hash : SHA3(current_block),
    tx_data : [tx5_data, tx6_data, tx7_data, ... ],
    txs_hash : SHA3(tx_data),
}

간단해 보이지 않는가? 사실 이 데이터는 좀 말이 안 된다는 걸 나중에 이야기를 하겠지만, 이런식으로 데이터를 박아넣는다. 정확히는 tx_data는 머클트리를 사용하여 저장을 하고, 블록과 블록 헤더가 분리가 되어있는 형태이지만, 일단 간단한 형태로 설명을 하기 위해서는 이것이 편하리라 생각하여 이렇게 적는다. new_block은 current_block의 hash 값을 가리킨다. 이를 이용하여, 블록체인은 자신의 이전 블록 데이터를 찾아 넣을 수 있는데, 이 때문에 해시드 링크드 리스트라고 하는 것이다. 포인터 대신에 해시값을 사용하는 링크드 리스트인 것이다.

그리고 블록체인 클라이언트는 tx_data를 순회하면서 값들을 최신으로 업데이트를 하게 되는데, 이를 통하여 앞의 트랜젝션을 통한 전송 관련된 부분을 처리하게 된다.

4번 최신 블록을 P2P로 토렌트 비슷하게 공유를 한다.

자 이제 블록체인은 트랜젝션을 전파하듯이 전파를 하면.... 되나....? 될 것이다. 옆 사람이 새로운 블록을 만들어냈다는 걸 알기 전까지는 말이다. 실제로 블록의 경우 예측 가능한 정도로 생성되어야하며, 동시에 한 블록을 참조하는 여러 블록들이 생성되는 일은 지양해야한다. (그렇기에 DAG라는 표현을 한 것이다. 실제로는 일어나니) 이를 위해서, 블록체인 클라이언트들은 규칙을 공유한다.

첫째, PoW 방식의 생산. HashCow 같은 문제를 풀어서 해결하는 방식. Nonce 필드를 추가하고, 해쉬 값에 대해서 제약 조건을 걸어 특정 조건을 달성한 해쉬 값을 인정하는 방식이다. 일반적으로 해쉬 값에 앞에 0이 몇 자리 이상 붙어 있느냐로 제한을 두는 경우가 많다. 해쉬의 특성상 특정한 해쉬를 도출해 내는 건 상당히 힘든 일인데, 이를 이용한 트릭이다.

new_block = {
    previous_block_hash : SHA3(current_block),
    tx_data : [tx5_data, tx6_data, tx7_data, ... ],
    txs_hash : SHA3(tx_data),
    nonce : some_number
}

적절한 some_number를 넣게 된다면, 00000deadbeef..... 같은 해쉬를 얻을 수 있다. 각각 컴퓨터는 이 some_nubmer를 무작위 (혹은 순서대로) 대입하여 00000으로 시작하는 해쉬 값을 찾으면 되는 것이다. 이를 통해서 제일 먼저 0이 5개 (상황따라 난이도가 올라갈 수록 0의 갯수가 증가한다)인 some_number인 블록을 찾았다면, 이를 적합한 블록으로 인식하고 모두가 받아들이는 것이다.

아니, 이게 어떻게 보안을 유지시키냐고? 비트코인은 30분마다 블록이 생성되도록 해쉬 난이도를 조절(0의 갯수 조절)을 하는데, 총 컴퓨팅 파워로 30분 즈음에 적합한 블록을 찾아내도록 셋팅을 하는 것이다. 그것을 이용해서, 다른 유저가 (위변조한) 블록을 마구 생성하거나, 블록체인이 2개로 쪼개지거나 했을 때를 조절할 수 있다.

둘째, 제일 긴 체인을 선택한다. 제일 많은 컴퓨팅 파워가 소모된 체인이 제일 올바른 체인이라고 가정을 하는 것이다. 별다른 의미는 없지만 제일 효율적인 방식이긴 하다. 특히, 공격자가 다른 체인을 만드려고 해도, 전체 컴퓨팅 파워의 51% 이상을 장악하고 있지 않는 이상 제일 긴 체인을 택할 것이므로 공격자의 공격은 수포로 돌아가게 된다.

셋째, 깊이가 6 이상이 된 스플릿이 발견될 경우 롤백하지 않는다. 30분 단위의 블록 생성 시간을 감안하면 3시간 이상이 된 블록들은 적합한 것으로 간주하고, 신규 체인 (7번 전 블록부터 다른 해쉬 값을 갖는 더 적합한 블록들의 연속)을 받아들이지 않는다. 이렇게 함으로써 외부의 공격을 막는다.

이 두 가지를 지키는 블록들을 외부 노드로부터 받아들이면서, 블록체인의 전체 크기는 증가한다. 뭐 하지만 저런 시스템이 돌아가지만 실제로 블록 스플릿이 거하게 일어난 적도 있고 (6개 이상의 블록이 각각 생긴 두 체인으로 쪼개진 적이 있다.), 포크라는 방식으로 블록을 양분하는 방식이 있는 등 (비트코인 캐쉬, 비트코인 골드 등) 을 생각한다면, 실제로 완벽하게 안정적인 방식은 아니라는 것을 알 수 있다. 다만, 이러한 규칙을 통해서 주기적으로 블록을 생성하고, 확률적으로 동시에 블록을 생성하는 것을 막고, 충분히 네트워크에 전파될 시간을 잡아 블록체인의 신뢰성을 보장 시킬 수 있다.

자 그렇다면, 이제 노드는 어떻게 찾는 것인가? 일반적으로 P2P 클라이언트와 비슷하게 작동되나, 자기 자신이 Seeder이기도 하고, Tracker이기도 하다. 일반적으로 비트코인 클라이언트가 처음 시작된다면, 하드 코딩 된 DNS 주소에 쿼리를 날려 주변 노드들 정보를 얻고, 그것이 안 될 경우 하드 코딩 된 노드 주소에 연결을 시도한다 (참고로 최신 클라이언트에서는 폐기된 방법이다), 최종적으로 아무것도 없을 경우 UDP 브로드캐스팅을 쓰는 것으로 알고 있는데, 여기까지 가보지는 않아서 정확히 설명을 할 수는 없을 것이다. 여튼, 천하의 블록체인이 중앙화된 클라언트에 하드코딩된 주소를 의지한다니 재미있지 않은가? 이더리움도 비슷하게 bootstrap node 리스트를 따로 제공한다. 이에 대한 문제는 Tor 네트워크나 Tails가 갖고 있는 문제와 비슷한데, 일단 초반에 Tor나 Tails를 깔기 위해서 사이트에 접속하는 과정 자체가 그 사람의 신원을 노출 시킨다는데 있다. 즉, 아무리 익명성 클라이언트라고 하더라도 초반에 접속하게 되는 곳은 다 같으니 그 곳만 주기적으로 감시를 하면 된다는 문제점이 있는 것이다. 이 부분에 대한 해결 방법은 나중에 이야기하도록 하고, 이제 이렇게 접속을 하면 어떻게 되나 이야기를 하자.

이제 접속을 하게 되면, 제네시스 블록, 그리고 그 다음 블록, 그 다음 블록의 다음 블록을 쭉쭉 받아오게 된다. 블록 하나하나의 해쉬를 검증하고, 시그니처를 검증하면서 옳은 블록인지를 검증을 하면서 주변 노드들로부터 데이터를 받아오는 것이다. 그리고 어느 정도 동기화가 끝나면 Tip이라고 하는 끝 부분 (혹은 최신 블록을 받아와야하는 시점)에 도달하게 되고 이제 사용할 수 있는 상태가 된다. 왜냐하면, 모든 트랜젝션 데이터들을 다 받아서, 내 트랜젝션 데이터들의 집합을 다 찾아냈기 때문이다.

으악 너무 불편하고 시간이 걸린다고?!

그렇다면 SPV나 Light 모드로 빠르게 싱킹하는 방법이 있다. 이는 블록 전체 데이터를 받아오지 않거나, 거꾸로 (...) 받아오거나, 미리 몇 십 기가바이트 정도 되는 데이터를 P2P로 압축해서 받거나 하는 방식으로 진행된다. 이 방법에 대해서는 11장에서 이야기를 하도록 하자. 추가적인 꼭지들에 대해서 이제 이야기를 할 수 있을 정도로 내용이 진척된 거 같아서 기쁘다.

일단 1/2/3/4 장에서 진짜 기초적인 블록체인 클라이언트에 대해서 설명을 하였다. 설명이 충분하지 않다는 생각이 들지만, 일단 이 정도면 블록체인에 접목되는 암호학 기술에 대해서 약간이나마 이해를 할 수 있을 것이다. 여기까지 읽어줘서 감사하다.


Comments

2019. 11. 4. 02:54

1. 그냥 평범하게 두서를 작성하려다 말고, 직설적으로 말하기로 하였다. 아뇨. 그냥 쓸데 없고요. 특정 분야에서 아주 효과적일 뿐입니다.

2. 블록체인 한다고 하면 으레 듣는 소리 중 하나가, 블록체인 기술이 성장해야 나라가 발전한다는 70년대식 발언과 도대체 그거 쓸 데도 없는걸 왜 하는 약팔이짓 하냐는 질문일 것이다. 뭐 그렇다고 내가 블록체인 관련, 특히 이더리움 관련 일을 때려칠 생각이 있느냐 하면 그것도 아니고, 전자의 반응에는 "아 네 그러세요"로 후자의 반응도 "아 네 그렇군요"라고 반응을 할 수 밖에 없다. 뭐 생각하기는 자유롭고 실제 지금의 트랜드와 기술 관련된 부분들은 아예 블록체인 초창기와는 완벽하게 달라졌기 때문일 것이다.

이더리움 메인넷에 1200원 정도만 투자해서 스마트컨트랙트를 하나 배포하고, 그걸 거래소에 상장시키거나 ICO라는 이름을 대량의 돈을 벌던 시대는 지나갔다. 블록체인에 대해서 부정적인 시각이 생기게 된 이유도 아마 이 시기에 너무 강렬한 인상을 받았기 때문이라고 생각을 하는데, 8토막 정도 난 자신의 총 자산을 바라보면서 알고 보니 암호화폐가 상폐 직전의 주식 쪼가리와 별반 다를게 없다는 것을 몸으로 겪으니 다들 그런게 아닌가 싶다.

하지만 그것을 넘어서 공부를 계속 하고 암호화폐와 블록체인에 대해서 어느 정도 이해를 하게 된다면, 둘 중 하나가 될 것이 분명하다. 지금도 암호화폐 투자를 미친듯이 하고 있거나, 아니면 절대로 암호화폐는 건드리지 않으면서 블록체인만 하고 있거나.

3. 나는 후자의 사람이 되어버렸다. 보유 암호화폐 총 자산은 10만원도 넘어가지 않고, 그 10만원도 이더리움이나 개발 할 때 필요한 수준의 암호화폐 뿐이다. 손을 거쳐간 암호화폐는 많지만 (트론, 퀀텀, 비트코인, 이더리움 등등 거래소에 상장된 모든 걸 만져봤으니) 손을 거쳐서 남게 된 것은 결과적으로 하나 뿐이다. 토큰 이코노미나 여러 암호화폐의 난입 없는 용도와 목적이 분명한 암호화폐들의 생존과 소수의 메인넷만이 살아남아 시스템을 견고하게 유지하는 것, 그리고 가능하다면 인터체인이나 안정적인 시스템을 구축할 수 있는 프레임워크가 많이 나오는 것 뿐이 블록체인 기술이 살아남는 답이라고 생각한다.

4. 많은 한국 기업들이 메인넷을 개발하려고 하고 있지만, 사실상 제대로 된 메인넷은 비트코인과 이더리움을 제외하고 없다고 봐도 무방하고, 그 외는 대부분의 기술들을 이더리움과 비트코인에서 가져오거나 개선하는 수준에서 그치는 경우가 많다. PoS를 선구적으로 시도한 EOS나 QTUM 등은 좀 지켜볼만하지만, 실제로 시스템이나 어플리케이션이 제대로 돌아가는 시스템을 만드는 것은 세 가지에 종속되게 된다. 1. 이더리움의 EVM과 얼마나 잘 호환되는가. 2. 이더리움처럼 얼마나 생태계가 풍부한가 (e.g. 개발자의 수, 오픈소스 프로젝트의 수) 3. 거래소에 잘 상장되고 있는가 가 그것인데, 실제로 이 3가지 기준을 다 지키는 암호화폐는 극소수이다.

QTUM은 생태계 구축에 실패했고, EOS는 자체 VM으로 실질적으로 개발 관련해서 도움을 받을 데가 너무 적다. Tron의 경우 수수료 무료라는 장점이 있다지만, 그 장점을 상쇄하는 Java 기반의 클라이언트를 생각해보면 별로라는 걸 알 수 있고, 지갑 조차 제대로 작동 안 하는 ADA나 관리가 제대로 안 되는 IOTA 등등... 거의 영구히 ERC-20 토큰으로만 남아있는 대부분의 프로젝트들을 생각한다면, 사실 블록체인 서비스 중에서 믿을 만한 것은 탑 10코인 정도 밖에 안 된다는 결론만 나오게 된다. 그리고 그것들은 비트코인의 포크이거나 이더리움의 아류작들 뿐이다.

5. 이런 상황에서 왜 이더리움에 대한 집착이나, 이더리움에 의한 블록체인 체제 개편이 되어가고 있는가에 대한 질문에 대한 대답이 나오는 것이다. 몇 주 전에 이더리움 관련 발표를 했을 때, "왜 이더리움을 포크한 프로젝트가 그렇게 많느냐?"라는 질문이 나왔었는데, "실제로 이는 메인넷 개발에 있어서 스마트컨트랙트 실행 환경이 이더리움 VM이 실질적인 표준이 되어버렸고, 이더리움 기반 생태계가 실질적인 표준을 이끌어가고 있으며, 그리고 검증 받은 신입을 원하기 때문"이라고 대답을 하였었다. 실제로 Quorum이나 클레이튼/루니버스 모두 이더리움 기반으로 만들어지고 있고, 메타디움이나 몇몇 메인넷 개발사들도 이더리움 포크나 이더리움 구현체의 확장 정도에서 그치는 모습을 보여주고 있다. 메인넷을 처음부터 개발하고 알고리즘을 새로 개발할 여력 자체가 없는 것도 있지만, 개발 관련하여서 안전한 길을 택하려는 경우가 많다. 클레이튼과 루니버스가 대표적인 예인데, 이더리움을 포크하면서 얻을 수 있는 대부분의 이득을 얻으려고 노력하는 모습을 많이 보게 된다. Web3js의 포크 등의 기존 라이브러리의 재활용이나 JSON-RPC 관련 표준의 확장 정도로 손을 대고 끝을 내면서 기존 로우 레벨 서비스와의 호환성을 높이는 등의 일들이 그런 것인데, 이더리움 생태계가 확장 될 수록 반사 이익을 많이 받게 되는 것도 사실이고, 실제로 개발이나 런칭 관련해서 빠르고 유연하게 대처할 수 있다는 것도 사실이다.

6. 암호학에서 유명한 말이 있다. "자체 개발한 암호 알고리즘을 쓰면 100% 뚫린다"라는 것인데, 블록체인 기술에서 5할 이상인 암호학 관련한 부분이라는 것을 생각해보면 상당히 의미심장한 이야기 일 것이다. 일반적으로 secp256k1 타원곡선을 사용하여 암호화를 하고, keccak256을 이용하여 해싱하는 것은 일반적인 블록체인 서비스라면 다들 당연하게 여기는 부분일 것이다. (secp256r1 쓰는 리플 이런 것도 있지만) 대부분 사용하는 암호화나 기법들은 일반적으로 다들 알 만한 기술들이고, 이미 대부분 실생활에서 알게 모르게 적용이 되어있는 경우들이 많다. 하지만, 대부분 신경을 꺼도 되는 레이어나 배우기 힘든 부분들에 포진되어있다는 것이 문제일 것이다.

7. 블록체인이 프로그래머에게 그렇게 와닿지 않는 기술이 돼 버린 부분도 이것의 연장선상이다. 블록체인은 사실 4차 산업혁명 같은 단어로 인식되기 일쑤인데, 실증도 덜 되어있을 뿐만 아니라, 사용하기도 까다로운 무언가가로 인식되어지고, 거기다 그렇게 익숙하지 않은 기술들의 조합이기 때문일 것이다. 완벽한 "탈"중앙화는 무엇이며, 그것이 갖고 있는 의미는 무엇인가? 사실 별다른 감흥이 오지 않는 단어들의 연속인건 사실이다. 탈중앙화 이런 단어를 갖다 버린다고 하더라도, 비신뢰 환경에서 신뢰할 수 있는 네트워크의 구축이 얼마나 중요한지에 대해서는 DoH나 GPG/PGP나 뭐 다양한 도감청 이슈나 프라이버시 이슈를 위한 암호학을 이용한 솔루션들을 생각해보면 별로 공감할 건덕지가 없는 것도 사실이다. 뭐 프로그래머 중에서 GPG/PGP 키 걸어 놓고 특수한 이메일 클라이언트를 쓰고, 메일서버는 따로 구축해서 사는 사람이 얼마나 있는지 손으로 세어보면 답이 나오지 않는가. DoH 같은 경우 그냥 DNS들과 웹 브라우저 제작사들이나 신경 써야할 일이고 (뭐?) 실제로 프로그래머가 dig 같은 명령어만 써도 뭐 준수한게 아닌가 싶다. (뭐??) 좀 대 놓고 말하면, 보안하는 사람들(해커는 아니다)과 프로그래머들이 사이가 안 좋은 이유가 대부분 이것인데, 까놓고 말해서 자유, 개방성, 프라이버시를 이야기하지만 거기 아래에 있는 기술에 대한 이해는 서로 아예 다르며, 기술에 대한 이해나 접근 방식이 아예 다르기 때문이 것이다. 정확히는 구현체를 구현하는 입장이나, 구현체가 뚫리지 않도록 하는 경우나, 그것을 갖다 쓰는 경우나, 그것을 공격하여 무력화하는 것에 초점이 맞춰져 있는 네 그룹 정도로 나뉘어져 있다고 생각을 하고 있는데, 이게 실제로는 완벽하게 4개로 나뉘어지는 경우는 별로 본 적이 없다. 뭐 웹 개발하면서 Let's Encrypt의 도움을 받긴 하지만, XSS에 대한 직접 구현을 해야할 것이고 (뭐 따로 라이브러리 가져다 쓰는 경우도 있지만), 반대로 HTTPS Strip 같은 공격을 감행하는 툴을 직접 짜서 돌리는 경우는 꽤 있지만, XSS는 OWASP에서 XSS 유즈 케이스 가져와서 쭉 넣고 "아 XX 요즘 기성 프레임워크는 말야~~" 하는 경우도 있을 것이다. (실제로 둘 다 봤다) 뭐 여튼, 이렇게 말해서 미안하긴 하지만, 일반적으로 코어 기술을 이해할 필요가 없는 것들이 많다는 것이다. 추상화 덕택이긴 하지만, 결과적으로 이러한 것들은 많은 개발자들이 블록체인에 대한 관심을 끄도록 하는 주요한 이유이기도 할 것이다.

이는 "로우레벨을 알아야해요!"라는 떡밥과 직간접적으로 연관이 되어있다. 사실, Keccak256이랑 Blake256 중 왜 Keccak256이 왜 SHA3으로 채택되었는지에 대해서 알 필요는 없다. 그것이 정말로 크리티컬한데 쓰이는 경우를 제외하고는 말이다. 해시 콜리전이 일어나면 안되는 상황 (e.g. 포렌식 할 경우 md5/sha1 둘 다 써서 각각 해시값을 뜨는 경우가 종종 있다. 잠시만 sha1이라고? 그렇다.) 이 있다던지, 아니면 같은 값을 넣었는데 패딩이나 인코딩 문제로 다른 값이 출력되는 경우가 절대로 없어야하는 경우라던지, 뭐 아님 왜 Salt 같은걸 쳐야지 비밀번호를 안전하게 보관할 수 있다는 것인지(e.g. 레인보우 테이블), 왜 몇몇 해쉬 알고리즘은 비밀번호 보관에 적절하지 않은지에 대한 부분들은 그 때 가서 배워도 될 부분이고, 그리고 사실 대부분 암호 라이브러리들이 알아서 다 해주는 경우가 허다하다. 그렇기에 프로그래머들에게는 "프로그래머가 수학 잘 해야한다는 소리"의 연장선상이자, "로우레벨이 얼마나 중요한데" 시리즈는 사실 자신의 지적 오만함을 나타내기 위해서 존재하는 것처럼 보일 때가 많다는 것이다. 

8. 좀 너무 날 것의 말을 해 버렸는데, 사실 하고 싶은 말들이 그것이다. 블록체인 기술에 대해서 비판적인 경우에 대해서 제일 짜증 났던 부분 중 하나는 여기 적용되는 기술이 실제로, (자조적으로 말하지만) 비대칭키로 싸인을 한 데이터 덩어리들을 해시드 링크드 리스트로 만들어서 토렌트로 공유하는 것과 차이가 없다는 것이고, 매번 욕 먹는 부분들의 대부분은 이미 논의가 되었거나 논의가 되고 있는 부분들이기 때문일 것이다. 그렇기에 "블록체인이 약 파는 기술이에요?"라는 질문에 대답이 언제나 맥 빠진 소리의 "아 네 그러죠 하하" 인 것은 이 이유 때문이다. 이더리움 커뮤니티의 많은 주제들은, 분산처리, 비신뢰 환경에서 신뢰 담보, 게임이론, P2P 네트워킹, 분산 데이터 저장, 타원 곡선 암호, 샤딩, 합의 알고리즘, 블록 팩킹 알고리즘 등등이고, 통신 관련된 부분은 위스퍼나 libp2p에서 열심히 구르고 있고, 분산 스토리지는 IPFS나 온톨로지 같은 애들, 분산처리는 gWASM 쓴다고 난리치는 golem 같은데에서 열심히 해결을 하려고 하고 있다. 그 누구도 500기가나 2테라 바이트 정도 되는 블록체인 전체 트랜젝션 데이터를 받아 놓기를 원하지 않는다는 걸 모두가 알고 있고, Light Node들의 구성을 통해서 안정적인 거래를 만들 수 있도록 하는 것을 다음 목표로 하고 있다. 실제로 로우레벨에서 안 되서 개선을 하려고 삽질하는 경우들이 많고, 대부분 학부에서 제일 지루했던 수업들에서 다루는 주제들을 열심히 다루고 있는 것도 문제이다. 신경을 쓸 일이 없는 로우레벨의 일들이 대부분이고, 문제 해결 방식도 대부분 결국 수학의 도움을 받아야하고 증명 과정이 계속 필요하다는 것도 관심을 별로 못 받는 이유이기도 하다. 하지만 겉으로 보기에는 블록체인이 무엇을 해결하느냐, 실생활에 쓸 수 있는 라이브러리가 있느냐, 이걸 어떻게 써야하느냐 이런 질문을 하는 사람들이 이해가 안 가는 것도 아니다.

9. 저번에도 말 했지만, 블록체인에 대한 지식을 무기화하거나 비즈니스화하는 경우가 제일 문제이다. 이더리움 포크 뜨고 뭐 기술력있는 것처럼 자랑을 하는 건 좀 아니라고 생각을 하고, 사실 라이브러리 만들고 더 안정적인 서비스들을 만들어야할 시점에 그걸로 ICO 땡기고 있지를 않나, 오딧팅을 돈 받아먹고 하지를 않나 (근데 우리도 그렇긴하다 ㅎㅎ; 보안 감사가 되게 하는게 없어 보이긴하지 ㅠㅠ), 라이브러리 파편화를 가속화시키지를 않나, 거지 같은 일들이 매일 벌어지고 있다. 거래소, 메인넷 개발팀, 지갑 개발팀, 홍보/마케팅팀, 그리고 마켓 메이킹이라고 하는 자전거래하는 사람들 등등 별의별 군상들의 집합이기도 하다. 토크나이제이션, ERC-721, ERC-1155, 탈중앙화 게임 플랫폼, 커스터디, DeFi 등등 말도 안되는 단어들이 난무하면서 정작 하는 건 하나도 없는 경우들을 한 두 번 본 것도 아니다. 매번 뭐 만들었다고 하는데, 저 라이브러리 떼오고, 이 라이브러리 떼와서 키메라 만든 다음에 기술력 있다고 하면 뭐 어쩌라는 것인가. 사실 이런 분위기가 블록체인 업계에 대해서 표면적으로 이해를 하는 사람들에게 안 좋은 이미지를 주고 있는건 사실이다.

10. 좀 이야기를 틀어서, 블록체인이 암호학에 도움이 되는가? 라고 한다면 분명히 아닐 것이다. 암호학은 원래 가던 길이 따로 있었다는 것도 사실이고, 타원 곡선 암호가 블록체인 덕분에 반짝 뜬 건 있지만, 실제로 검증된 몇 곡선을 제외하고는 추가적인 연구를 하려고 하지는 않는 경향이 크다. BLS가 예외적이긴 하지만, 이 경우 이더리움의 스케일링 관련해서 생기는 문제들에 대해서 해결을 위해 도입이 되고 연구를 하고 있는 부분이고, 이더리움 재단에서 지원과 연구를 한다지만, 실제로는 뭐 자기들이 쓸 부분만 도움을 주는 것도 사실이고, 대놓고 말해서 이 쪽 전문가가 부족한 건 사실이다. 암호학이 만만한 분야도 아니고, 결국 수학자들이 나와야할 부분인데, 결국 할 수 있는건 역시 이더리움이나 비트코인을 그 사람들의 계좌로 쏴 주는 것 밖에 없지 않나 싶다. 뭐 여튼, 블록체인 기술들이 다른 학문이나 타 기술들의 성숙도에도 영향을 받고 있다는 것인데, 실제로 커뮤니티도 슬슬 한계를 느끼는 것인지 외부에 있는 라이브러리들 갖다 쓰는 것도 일반화가 되었고, 브릿지나 레이어2 이런 이야기들을 하면서 블록체인 밖의 데이터에 대한 논의들도 충분히 되어가고 있다. OpenSSL 1.1 쓰면 정합성 깨져서 OpenSSL 1.0을 무조건 깔아 써야하는 비트코인 같은 걸 보면 아직도 복장이 터지지만, 조금식 조금씩 개선이 되는 모습을 보여주고 있고, 결국 zmq나 leveldb나 뭐 여튼 이것저것 기워서 비트코인 클라이언트가 만들어지고 있고, 그 과정에서 각종 외부 라이브러리 컨트리뷰션도 하는 모습이 조금씩 보이고 있다는 것도 희망적이라고 하면 할 수 있다. 결국 외부, 아님 다른 커뮤니티와 소통을 얼마나 잘 하느냐에 따라서 블록체인 기술이 성장하냐 하지 않느냐가 결정 될 것은 거의 자명한 일이다.

11. 다시 원 주제로 돌아가자면, 제일 쉽고 빠르게 프로그래머들이 블록체인을 쓰게 하는 방법은 IPFS와 Ethers.js와 INFURA를 섞어서, 블록체인에 블로그 글 쓸 수 있는 블로그 서비스를 운영하면 되지 않냐는 것이다. (스팀잇이나 비슷한 아이디어를 가진 서비스들이 있긴하다) "블로그 글을 쓰려면, 스토리지 사용 비용을 내셔야합니다. 그리고 블록체인을 통해 블로그 글에 대한 위변조 여부를 검증 가능합니다." 정도면 될 것 같다는 생각이 계속 드는 것이다. 사실 Github Pages를 그렇게 불편한데도 열심히들 쓰는 거 보면, 그리고 Git이라는 일종의 Hash 기반의 블록체인과 비슷한 형태로 자료 저장을 하는 (사실 그렇다. 여러분은 알게 모르게 블록체인을 쓰는 것이다) 버전 관리 시스템을 꾸역꾸역 좋다고 쓰는 걸 보면 블록체인도 충분히 마조히즘을 느끼면서 쓸 것 같다는 느낌이 계속 든다.

사족을 덧붙이자면, 요즘 관심 기술은 DAT Protocol, libp2p, orbit db 같은 분산 스토리지 기술들이고, 그 다음로 관심을 갖는 분야는 역시 Auth 관련한 부분들이다. DID나 FIDO 같은 것들인데, 이 부분들에 대해서 좀 깊은 이야기를 써야하지 않나 싶은 것이다. 뭐 DID는 지금 개나소나 하고 있는 것도 있고...

더 사족을 붙이자면, 이 글을 퇴고하기 귀찮아서 1.5번 읽고 갖다 버린 글이라는 것이다. 다시 읽어도 횡설수설이긴 한데, 요즘 글을 남이 읽으라고 쓰는게 아니라 자기 만족을 하려고 쓰는 거라서 더더욱 그렇게 되고 있다. 아 그래서 로우레벨을 알아야하느냐고? 아니 그렇진 않다. 그러나, 로우레벨을 알아야만하는 분야들도 좀 있다는 것을 알아 줬으면 한다. 뭐 그렇기에 아무도 이해를 못 하는 기술이 탄생했지만 :(


Comments


  1. 부탈린 2019.11.05 09:46

    정말 공감되는 글이네요
    블록체인 생태계를 보면 아직도 한탕해서 돈벌고 빠지자란 마인드가 정말 강합니다.
    별 내세울거 없는 기술인데도 엄청나게 포장해서 당장 이거 안배우면 다가올 미래에
    대응 할 수 없단 식으로 고가의 강의료를 내고 듣게 합니다.
    컨퍼런스나 세미나도 대부분이 유료 입니다.
    그들만의 리그에 호구하나 물어서 등쳐먹자 이런 느낌입니다.


  1. 익명 2020.03.07 17:06

    비밀댓글입니다


      └ 
    • re: Favicon of https://bengi.kr BlogIcon Bengi 2020.03.20 15:46 신고

      절대로 블록체인 업계 지금 당장 오시면 안된다고 생각합니다. 블록체인 자체는 흥미로운 기술이나, 대부분 응용기술에서 돈이 벌리는 구조이고, 응용기술은 대부분 로우레벨과는 관계가 없는 비즈니스나 기존 기술 응용에 가깝거든요. 주 스킬이 아니라 서브 스킬 정도로 배우시는 걸 권장합니다.


2019. 8. 11. 18:17

1. 어제 술 좀 마시고 좀 그지 같은 이야기를 트위터에서 했다. 그지 같은 이야기라고 하지만, 그냥 별로 이야기를 하고 싶지 않았던 것들이라고 하는 게 정확한데, 스타트업 하면서 쌓인 게 한두 가지가 아니라는 것이다. 개발 관련해서도, 업계 관련해서도, 그리고 운영에 관해서도. 경영학이라는 학문에 대한 의구심을 갖고 있었지만, 경영을 해보면서 느끼는 건 "이런 경영학의 기초도 모르는 사람이 경영을 하면 안 되는구나"라는 걸 자주 깨닫고, 그것을 반면교사 삼으면서 계속 버티고 있다는 게 정확한 표현일 것이다. 경영학 그 자체는 상당히 다양한 분야로 나뉘어있고, 각각의 분야는 대략 6가지 꼭지로 수렴이 되게 된다. 마케팅, HR, 오퍼레이션 관리, 회계, 재무, MIS가 그것인데, 대부분의 기업은 이 6가지 (혹은 회계와 재무를 합쳐 5가지)에 대해서 일정 수준의 이해를 요구받거나, 한 분야의 전문성을 요구받는다. 이 글을 쓰는 사람조차도 이 6가지 중에서 회계를 잘 못 하며(C+로 도배를 했고, 아직도 회계 관련한 부분은 별로 안 좋아한다), 오퍼레이션 관리나 MIS는 역시 백그라운드가 백그라운드인지라 중간은 간다고 생각하고 있다. 뭐 재무, HR, 마케팅은 곁눈질로 배운 게 다이며, 일단 전공 서적과 케이스 스터디를 통해서 공부를 했었지만, 역시 마케딩은 디자인의 연장선상으로, HR은 인간관계의 연장선상으로, 재무는 스타트 업식 땜빵으로 커버를 치는 경우가 더 많다고 하고 싶다. 결국, 지금 갖고 있는 경영학이라는 인식은 그렇게 깊지도 넓지도 않다는 것을 매번 깨달으며 계속 공부하는 처지에 놓인 것이다. 최소한 회계라도 제대로 하면 좀 더 장기적으로 뽑아낼 수 있는 수치가 많지 않을까, 자금 흐름의 예측을 좀 더 잘하지 않을까 생각을 많이 하게 되는데, 역시 이런 것들은 단순하게 돌아가지는 않는다. 외부에서 오는 일감이나 프로젝트는 제한적이고, 시기를 타는 경우가 많은데, 이런 것들은 조절할 수 있는 변수가 아니다. 대부분 BI나 CI라는 마케팅 카르마를 쌓아야 하는데, 이런 카르마를 초창기에 쌓지를 못했다는 점, HR을 인간관계로 땜빵을 때렸다는 점 (장기적으로 이렇게 운영하면 안 된다), 기업 간 라인 구축을 제대로 하지 못했다는 것 등등이 문제라면 문제라고 할 수 있다. 이런 것들을 해결을 어떻게 하느냐가 핵심인데, 일반적으로 블록체인 업게라는 특수성이 사실상 스타트업의 활로를 너무 제약하지 않나 싶다. 타 업종에서는 기피하고 있는 분야이고, 재정 건전성이 언제나 의심을 받는 구조이고, 그리고 언제나 ICO나 IEO로 귀결되는 시스템이기 때문에 활로라고 할 수 있는 방향성이 없다. ICO는 일종의 시작점이자 종점인데, ICO를 성공적으로 한 후, 메인 넷 론칭에 있어서는 그 누구도 검증 가능하거나 검증을 할 수 있는 방법이 없다고 보고 있고, 사실 이더리움을 제외한 어떤 프로젝트도 제대로 ICO 이후의 플랜(심지어 이더리움은 ICO다운 ICO도 아니었다)을 지키지도 못했다. 뭐, 그런 면에서 엣식의 기회나 투자의 기회는 애매하기 짝이 없는데, 엑싯 사례는 없다고 봐야 하고, ICO는 사실상 성공할 수 없는 독이 든 성배이며, 이 두 상황에서 투자를 받는 거 자체가 불가능한 무언가라고 봐야 한다는 것이다. 결과적으로 이 회사가 선택할 수 있는 방법은 상황유지라는 방법이나 자체 상품을 개발 후 탈 블록체인 하는 수밖에 없는 것이다. 실제로 많은 기업들이 블록체인이 아닌 일들을 하기 시작했다. 뭐 말이야 블록체인의 오딧팅, 보안 감사, Dapp 제작 등이라는 형태를 띠지만, 오딧팅/보안감사는 언제나 보안 감사 전문 업체의 일이었고, Dapp 제작은 앱 제작과 별반 차이가 없다는 것을 알아야 한다. 일반적으로 이러한 상황에서 추가적인 메인넷 개발을 하는 팀을 국내에서 찾기는 엄청 힘든데, 토종 코인이라고 할 수 있는 BOS는 실제로 프로젝트가 망했다고 보고 있고, 그 외 몇몇 메인넷 런칭 준비 중인 프로젝트들의 경우 경험상 이것을 메인넷이라고 부를 수 있는가에 대한 질문을 할 수밖에 없고, 런칭 된 메인넷의 경우 이더리움의 변종인 경우가 많다. 결과적으로 포크나 약간의 시스템 개선 이후 중앙화 된 노드들이 사용되는 형태로 변화하고 있는데, Quorum을 그렇게 많이도 참고하는 거 같다. 뭐 이런 상황에서 일반적인 스타트업 방법론이나 중견기업 이상에서 먹힐 만한 방법론이 통하는 업계가 아니라는 건 알 수 있다. 일종의 미궁 속을 계속 헤매고 있는 것과 같은데, 이걸 해결할 일종의 돌파구가 어디서 나올지는 잘 모르겠다.

 

2. 실제로 블록체인의 경우 기술의 난이도가 높지 않은 편이다. 정확히 말하자면, 기술 성숙도가 낮기 때문에 현재는 접목할 수 있는 기반 기술들이 상당히 많으며, 선행 연구가 많이 되어있는 편이다. 하지만, 문제는 이것이 통화 경제학, 금융공학, 게임이론, 분산처리, VM, 암호학 등등 각 학문에 있어서 거의 끝판왕이라고 할 수 있는 것들의 총집합이라는 것이다. 게임이론을 주로 다루거나 시뮬레이션을 돌리고 있는 (Truebit 시뮬레이션으로 유명한) 디콘 같은 데를 눈여겨볼 수도, SOOHO나 HACHI 같은 오딧팅이나 보안 감사를 하는 곳을 생각할 수도, 플라즈마 네트워크 임플레멘테이션을 만드는 온더를 생각할 수도 있겠지만, 실제로 아직은 기술력에 대한 의문점이나 기술 성숙도에 대한 의문점을 지울 수 없다. 일반적으로, 이 업계가 갖고 있는 문제는 한 분야의 최고가 아니기 때문에, 혹은 블록체인이 핫하기에 들어왔다가 발을 못 빼니 계속 하고 있는 경우가 대부분이기 때문이다. 그런 특징들은 현재 어떤 문제를 해결하려고 노력하는 것을 통해서 알 수 있는데, 현재 블록체인의 코드나 사용하는 언어를 좀 보자. 블록체인 메인넷 코드들에서는 오딧팅 툴에 바로 걸리는 잘못된 사용(Use After Free, Double Free...)이나 배포 환경에 대한 대응 미비(nix를 팩키지 매니저로 쓰라는 Cardano라던지), 특정 라이브러리 의존성(Bticoin 계열의 BDB 4.8, OpenSSL 1.0) 등등이 발견됨에도 불구하고, 국내 몇 팀 제외하고 이런 부분에 대한 패치나 개선을 하지 못하거나, 이 문제 자체를 이해를 못 하는 경우가 많다. 언어의 경우 새로운 단어를 재발명해서 사용하고 있다는 점을 눈여겨봐야 한다. 핀테크(Fintech)보다는 DeFi 같은 단어가 더 간지나보이고 Decentralized 된 것처럼 보이리라 생각하지만, 실제로는 뜯어보면 구조는 대부분 같다. 탈중앙화 되어있다지만, 중앙화 된 무언가가 정부에서 기업으로 이전되는 것일 뿐이고, 실제로 그 이전되는 기업은 탈중앙화를 외치는 그 기업들이라는 것이다. 대중은 결국 블록체인이라는 것이 섞여있는 무언가만 보면 알레르기 반응을 보이는 상황까지 와 버렸고 (비트코인 25000달러 돌파와 김치 프리미엄에 기인한 것이 대부분이지만) 이러한 단어들의 선택은 블록체인 업계가 얼마나 안일하게 시장을 파악하고 끌어가고 있는가에 대한 방증일 뿐이다.

 

3. 강의를 나가거나 술자리에서 이야기를 할 때마다 하는 소리는, 토렌트랑 GPG/PGP랑 합쳐놓으면 그게 블록체인이라는 이야기를 많이 한다. 블록체인 자체 저장 시스템은 링크드 해시드 리스트와 머클 트리, 스테이트 관리를 위한 트라이(Trie)의 집합일 뿐이다. 거기다가 버클리 디비나 레벨 디비를 사용하고 있으니 실제로 저장은 키-밸류 스토리지에 쳐 박히는 구조인데, 이것이 뭔가 대단한 것처럼 말하는 것도 좀 그시기하다. 사실 보면 그냥 학부 3~4학년이 열심히 노력하면 (그게 뭐 본인 대학 기준으로 말하니 타 대학 기준으로는 석사까지 갈 수도 있다.) 만들 수 있는 시스템이고, 실제로도 많은 강좌들이 주목하는 지점은 Hash와 ECC, 분산 네트워크에 관한 것이다. 뭐 더 나아가면 데이터를 압축해서 저장하거나 패딩을 넣거나, 아님 블록 바이너리를 어떻게 다루는지에 대한 부분인데, 이 부분은 임베디드 시스템에서 메모리 최적화하는 기법이랑 별 반다를 바가 없다. 사실 바이트 단위로 블록 데이터를 저장하고 이를 가져와서 처리를 개떡같이 하니 사람들이 공포감에 휩싸이는 거지, 이것도 CTF에서 낮은 레벨의 문제이다. 대부분 노가다하면 풀리니는 부분이니

 

그렇다면, 블록체인의 문제는 무엇인가? 아니 문제라기보다는 업계의 문제는 무엇인가?

 

블록체인 업계 문제점은 의외로 단순 명료하다. 기술 공유의 부재, 별 것 아닌 지식의 무기화 및 자산화, 기존 방법론에 대한 적용 미비, 리서치 미비 등등일 것이다. 요즘 DID가 대세가 돼가고 있다. DID가 대세가 되리라는 것은 쉽게 할 수 있는데, ECC로 비대칭키를 구현하고 사이닝까지 하는 구조에서, PKI 인증(공인인증서에 쓰이는 그것 맞다)을 블록체인으로 할 수 있을 거 같은데 왜 안 하냐라는 질문이 나오는 건 당연한 것이다. 구조적으로 PKI 인증을 해서 그 기반으로 암호화폐가 전송되는 것인데, PKI 인증을 암호화폐에만 하면 좀 거시기하지 않는가? (실제로 이렇기에 카카오톡 PKI인증은 초반에 비트코인에 OP_RETURN으로 데이터를 쓰고 그것으로 인증 결과를 블록체인에 올렸다고 주장했다)

 

근데 까놓고 말해서, 이런 거 새로 만드는 건 바퀴를 재발명하는 것과 같다. 이미 DID가 아닌 PKI 인증에는 표준 규격이 존재하고, 이미 DID 관련해서도 규격화된 것들이 많다. 그냥 갖다 쓰면 되는 것이다. 오히려 지금 업계가 해야 할 일은 기존 시스템에 잘 붙게 라이브러리 만들고, 표준 스펙 만들고, 스펙 공유해서 각 블록체인 노드를 하나로 통합하는 일이다. 솔직히 Litecoin과 Bitcoin의 소스코드 디핑만 떠봐도 얼마나 유사도가 높은지, 루니버스니, 클레이튼이니를 Quorum이나 Geth와 디핑을 떴을 경우 유사도가 얼마나 되는지를 본다면, 실제로 이게 뭔 개 짓거리인지를 쉽게 파악할 수 있다. 대부분 베끼고, 개선이라는 명목 아래 새로운 체인을 만들고, 그 체인에서 암호화폐를 발행함으로써 일종의 채권을 만들어서 파는 것뿐이다. 이러한 무안단물 장사는 그만 되어야 한다. 통일화된 스마트 컨트랙트 규격, 스크립트 바이트 코드, 호환 가능한 VM 등등이 선행되지 않는다면 이 시장은 파편화가 되거나, 아예 몇몇 메이저 플레이어를 제외하고 다 망하는 대청소 시간이 올 것이라는 것은 누구라도 알 것이다. 하지만, 앞서 말했듯이 이 업계에서 그런 실력을 갖고 있는 데가 얼마나 되는가?

 

4. 기존 업체들은 신규 플레이어의 진입이 시작되는 것을 제일 두려워한다. 뭐 기술력의 부재는 이미 앞에서 길게 말했으니 넘어가고, 여기서 다룰 꼭지는 신규 플레이어의 강력함이다. 나 자신도 처음에는 JP 모건의 Quorum을 보면서 콧웃음을 쳤지만, 클레이튼이나 루니버스에 적용되는 것을 보고 가능성에 대해서 생각을 하게 되었는데, 실제로 이러한 시스템이 널리 퍼지고, Geth나 Parity에 확장된 코어를 붙여 여러 개의 암호화폐를 사용할 수 있는 단일 클라이언트가 나온다면 상당히 새로운 서비스를 구상할 수 있다. 일반적으로 인터체인이라고 할 수 있는 Polkadot이 그것을 하는 것처럼 보이지만, 이러한 인터체인 기술은 그렇게 어려운 것도 아니다. 그냥 블록체인 클라이언트가 여러 체인 데이터를 다룰 수 있으면 되는 것 뿐이고, 그걸로 채굴을 할 것도 아니니 SPV 같은 기술과 엮으면 실제로 하나의 온전한 블록체인에 접근할 수 있는 무언가가 나올 것이다. 또한, 분산처리나 언어론을 주구장창 하던 대학교 랩들이 분산처리 관련해서 이더리움 프로젝트에 컨트리뷰트하거나 새로운 합의 알고리즘을 만들어내던가, 정적 분석기 개발된 것들을 좀 더 개량해서 자바스크립트 분석기를 솔리디티 분석기로 가져다 쓰는 경우 같은 것도 생기고 있다. 이미 거래소 솔루션 장사로 몇 십억씩 돈을 번 케이스도 목격되는데, FX 마진이나 해외 선물 시장 솔루션 만들던 증권사 SI들이 달려들어서 암호화폐 거래소 솔루션 만들어서 돈을 벌어먹었다는 사례는 정말 유명하고, 실제로 몇몇 메이저 거래소를 제외하고는 대부분 이러한 솔루션 빵판으로 찍어낸 것들이 대부분이다. (그렇기에 비슷한 취약점을 공유하고 해킹도 많이 된다)

 

기업, 대학교, 연구소가 아니라도, 데프콘이나 코드게이트, 코드엔진만 봐도 실제로 블록체인 이슈가 얼마나 핫한지 알 수 있다. 보안하는 사람들 안 좋은 버릇이 파이 좀 커지고 먹을만해지면 이제 취약점 찾아서 돈과 명성을 얻는 것인데, 실제로 발표장에서 이제 이거 이렇게 공략하면 크레딧 이 정도 나온다를 공유할 정도의 사이즈까지 되었고, 비슷한 예시로 IoT, 즉 임베디드 산업이 2014년 이후로 엄청나게 핫해지면서 기존 공격 기법들 재활용(리눅스 2.6이 돌아가는 시스템이니 15년 전 기법도 통한다)을 하면서 명성을 쌓는 경우를 많이 봤다. 심지어 글쓴이도 그렇게 IoT 장비들을 분석하고 공격하면서 명성을 쌓았었다. 블록체인으로 방향을 우연히 틀게 되면서 블록체인에서도 동일한 깃발 꼽기 싸움이 생길 거라는 것을 직간접적으로 경험하게 되었는데, 역시 코드 퀄리티가 개판이라는 점과 단순 DoS 같은 공격으로 전체 시스템이 마비되는 수준이라는 것은 공유되는 CVE나 공격 사례들로 증명이 이미 충분히 되었고, 실제로 스마트컨트랙트 실행이나, 네트워크 공격 관련된 부분에 대해서 상당히 취약점이 많으리라고 생각된다. 일반적으로 Gas라는 개념이나 Fee라는 개념으로 이를 방어를 하지만, DAO Attack 때도 그렇듯이 이런것들을 우회할 수 있는 공격들을 찾아서 공격을 하는게 주된 방식이고, 스마트컨트랙트는 시스템의 복잡도를 높여 이런 취약점을 만들어낼 가능성이 높다는 것이다.

 

금융공학이나 게임이론 쪽은 결과적으로 JP 모건 같은 금융사에서 들어오기 시작하면서 시장이 꽤 많이 바뀔 것이라고 생각한다. 기술에 대한 이해도는 낮겠지만, 금융 서비스의 보급에 있어서는 상당히 큰 역할을 할 것으로 보이고, 사실 엔지니어 입장에서는 몸값이 더 높아지는 거니 사실 나쁘지 않은 상황일 것이다. 탈중앙화를 지지하거나, 자유주의적 사상에 경도되어있다면 좀 많이 암울한 느낌이 들겠지만, 결과적으로 중앙이나 큰 손들의 영향을 벗어나기는 상당히 힘들다는 것이고, 개인에게 좀 더 큰 자유와 덜 중앙화 된 무언가를 제공해야 한다는 것에 만족을 할 수밖에 없을 것으로 보인다. 아니면 진짜 완벽하게 정부를 엿 먹이는 자체 네트워크를 구축하는 쪽으로 가야할텐데 쉽지는 않을 것이다.

 

5. 사실 너무 두서 없는 글이 되어버렸는데, 실제로 기존 업계 디스와 스타트업 운영하면서 겪게 되는 스트레스와 뭐 이런저런 이야기들을 다 섞어서 하게 되어버렸다. 2~3번의 퇴고를 거쳤지만, 메인 주제라고 할 수 있는 건 없고, 그냥 약 2년간 블록체인 관련 일을 하면서 겪었던 것들에 대한 푸념이라고 해야하나? 그런 글이 되어버렸다. 뭐, 그렇다고, 아니 그렇다고 뭐 이게 바뀌겠는가. 뭐 그러니 우리나 잘 해야지. 아 엄마 보고싶다. 블록체인 거지 같아요. 엄마 살려줘요. 이게 입에 붙어버렸다. 엄마 으악 X스


Comments

2018. 2. 9. 20:32

주의!) 별 생각 없이 시장 상황만 보고 적는 것이고, 별다른 근거 없이 그냥 요 근래 느꼈던 느낌대로 적는 글임으로 신뢰하지 마시길 바랍니다. 레퍼런스 있는 글은 나중에 쓸 계획입니다. :P


1. 소위 말하는 김치 프리미엄이 죽어버렸다. 정확히는 죽어버렸다기보다는 역 프리미엄이라고 불리는 소위 해외 거래소 가격이 한국 거래소 가격보다 높은 상황이 연출되고 있는데, 이것이 잘만하면 10% 이상의 가격 차이까지 나서, 한국 거래소에서 사다가 해외 거래소에서 파는 재정 거래 방식이 통할 정도이다. (실제로 해 봤고, 1회 5% 이상 수익률이 난다. SWIFT, SEPA 수수료 고려하더라도!)


이는 상당히 인상적인 부분인데, 트위터의 많은 비트코인 반대론자가 말한 국부 유출과 제 2의 IMF 도래(풋)라는 말과는 상당히 상충되는 이야기이기 때문 일 것이다. 일반적으로, 원화로 비트코인을 사서, 해외에서 달러를 끌어다가 한국 통장에 꼬라박는 것인데 어떻게 국부 유출이 될 수 있는 것인가? 달러를 벌어들이는 효자 수출 상품이 아니라!


2. 사실 한국 원화로 달러화를 사서, 달러화로 해외에서 비트코인을 구매한다고 하더라도 실제로 국부 유출이라고 할 만한 것들이 일어나지 않는 건 상당히 당연한 사실이다. IMF 때는 상당히 특이한 상황이었고, 대기업 줄도산과 함께 헤지펀드의 환차익 공격을 받았던 시절이자, 통화 스왑이 그렇게 잘 체결이 안 되었을 때였고, 지금은 각국 정부와 통화 스왑을 체결하고, 한국 정부는 각종 채권이나 금융 상품으로 환율 변동에 대한 방어책을 이미 만들어 놓은 상황이다. 뭐 이것이, 급격한 가격 변동이나, 금융 위기에 의해서 무너질 수도 있겠지만, 전세계 암호화폐 시총은 이러한 서브 프라임 모기지급 위기를 만들 만큼 파급력이 크지 않다. (보통 국내 저축 은행 하나 파산하는 정도? 토마토제1저축은행을 생각해보라.)


3. 다들 암호화폐는 투기 시장이라고 말한다. 하지만, FX 마진을 해보거나, 각종 옵션이나 선물에 대해서 조금이라도 공부를 해봤으면, 금융 시장이 어떤식으로 반응하는지를 알 수 있으며, 이것이 현재 암호화폐에 대한 투자 심리랑 별반 다를게 없다는 것을 알 수 있다. 특히, 달러/유로 쌍의 경우 변동성이 2~3%를 찍는 경우도 있다. (사실, 이런 부분에 대해서는 자신있게 말을 할 수가 없다. 전공 공부를 할수록 점점 자신이 없어지는 분야 중 하나이다.)


4. 한국은 재정거래 금지, FX 증거금 비율이 10:1 일 정도로 금융 관련한 부분에서 상당히 보수적인 나라다. 이는 IMF 때 톡톡히 겪었던 각종 환율 관련 이슈들에 의해서 이런 거래들이 막히고, 엄격한 금융 관련 규제들이 세워진 것으로 보이는데, 슬슬 이런 규제들을 풀어야할 때가 아닌가 싶다. 금산분리법 같은 건 당연히 풀면 안되겠지만, 마진 거래 증거금 비율이나 해외 투자, 외국환 거래법의 달러 송금액 제한 등등은 풀어도 그렇게 문제가 되지 않으리라고 본다. 한국 원화가 해외에서 많이 돌고, 투자와 투기의 대상이 될 수록 원화 컨트롤이 "생각보다" 더 쉬워질 확률이 높고, 정부의 직접적인 개입 없이도, 시장 단에서 문제를 조율을 미리미리 할 가능성이 더 크기 때문이다.


5. 사실 많은 사람들이 옵션과 선물이 암호화폐에 도입이 되면 암호화폐 가격이 진정 될 것이라는 것에 동의를 잘 하지 않는 다는 것에 좀 놀랐다. 대부분 상식적인 문제일 것이라고 생각을 했는데, 별로 그렇게 생각을 안 하는 것 같고, 특히 허상의 개념 (혹은 미래의 가치)를 주고 파는 선물 거래에 대해서 암호화폐 선물과 쌀이나 밀 선물이 다른 종류의 무언가라고 생각한다는 것을 보고 더욱더 그런 생각을 하게 되었는데, 이는 아마도 금융에 대한 인식이나 교육의 문제와 연관되어있다는 생각이 좀 많이든다. 젊은 세대들은 이런 것들에 대해서 (헬조선의 영향을 많이 받기도 하지만) 인터넷 쓰듯이 별로 거부감 없이 받아들이는 것 같지만, 기성 세대들은 은행의 이자나, 부동산 같은 한국에서 안전 자산으로 취급되는 무언가들을 꾸준히 찾는 경향을 보이고 있다. 젊은 세대와 기성 세대의 시각적 차이에 대해서 상당히 유심히 살펴보게 되는 계기를 잘 마련해 줬다.


6. 또한, 심지어 경제학 전공자라는 사람이 "재정거래는 단기적으로 밖에 할 수 없다."라는 글을 쓴다거나, 김치 프리미엄은 꺼질 수 밖에 없다는 논조의 이야기를 하면 상당히 기분이 이상하다. 실제로 접근성, 정보력, 이원화된 시장, 거래소간 장벽, 이체 및 판매에 "꽤 시간이 걸린다는 점"을 생각한다면 더욱더 그런데, 이러한 자잘한 차이들은 국제 무역에서 상당히 큰 문제를 발생시킨다. 예를 들어서 배를 태워서 30일 동안 날라야하는 강철, 밀, 원유 가격은 계약을 체결한 그 시점과 계약이 작동되는 그 시점의 "환율 차이", "각 시장의 시장 공급/수요량의 차이" 등등에 영향을 받고, 이를 해결하기 위해 갖가지 방법들이 사용된다. 거기다가, 수표로 거래를 하거나, 대륙간 달러화를 전송할 일이 끼어있으면, 이 절차는 수 십 단계로 세분화된 엄청난 복잡한 일로 변모한다. 그리고, 이러한 부분들은 가격의 차이가 생기게 되는 원인이 된다. 상품에 "지속적으로 꾸준히", "수요량 만큼" 공급을 해 주는 댓가가 프리미엄으로 붙게 되는 것이다. (계란 가격 파동을 생각해보면 이해가 쉬울 것이다.) 이는 거래소간 프리미엄으로 나타나게 된다. 언더그라운드나 익명화 거래를 할 경우 비용 청구가 더 되는 암호화폐 거래, 카드 거래 등 결제가 쉽게 이루어지면 카드 수수료 및 처리 비용 만큼 프리미엄이 붙는 경우가 대표적인 예이다. 그리고, 이런 가격 차이에 대한 공격은 꾸준하게 이루어지고 있다.


7. 1%만 먹어도 이기는 판이 이렇게 짜지는 것이다. 암호화폐는 최소 10분에서 30분의 이체 시간이 걸리고, 이에 대한 차액 거래는 상당히 조심스럽게 이루어지고 있다. 30분간 1~2% 정도의 가격 변동은 일반적으로 있는 상황이며, 악재와 호재가 이체 과정에서 터질 수도 있는 상황을 고려한다면, 실제로 프리미엄이 5% 이상 차이가 날 경우에만 재정 거래를 돌리는게 안심이 된다. 아니면, 좀 더 리스크를 무릅쓴다면 3% 대 정도의 차익을 노리는 것도 한 방법인데, 이는 앞서 말한 FX 마진 관련한 기법들이나 자동화된 트레이딩 시스템의 도입을 얼마나 잘하느냐에 달려 있는 것으로 보인다.


8. 결국 암호화폐는 가격이 정상화 되어가고 있다. 비트코인 2500만원에 달하는 과열된 투기 열풍은 죽고, 리플 43층에 걸린 친구들을 남기긴 했지만, 장기적으로 충분히 거래를 할 만한 가격대와 전송 수수료, 채산성이 어디인지를 보여주는 것 같다. 더 이상의 저점은 없으리라는 보장은 없지만, 채굴 손익 분기점에서 대략 2~30% 정도 비싼 가격에 거래소에서 거래가 된다 정도는 확실한 것으로 보인다. 일단 지금 암호화폐를 사라고 추천은 하지 않지만, 어쨌든 화폐로써의 안정성은 점점 확보되는 거 같으니 흥미롭게 시장 상황을 지켜보게 된다. 투자/투기하시는 분들은 변동성이 떨어졌다고 많이 한숨을 쉬지만, 암호"화폐"가 아닌가. 화폐로써 작동하기 시작한 이상 마진거래 아닌 이상 큰 재미를 못 볼 것이라는 건 확실하다.


Comments

2018. 1. 27. 22:55



말보다 행동이 낫다라는 말이 있다. 뭐, 유시민 작가의 발언에 대해 반박을 했던 "암호화폐는 화폐일 수 있는가? - JTBC 유시민 씨의 이야기를 반박하며"는 여기저기 리퍼러가 찍힐 정도로 핫했지만, 사람들의 동의를 그렇게 많이 얻은 거 같지는 않았다. 하지만, 유시민 작가의 책을 암호화폐를 받고 파는 RSMPAY는 어떨까?


RSMPAY에 대한 글을 페이스북에서 발견한 후 바로 한 일은 트위터에서 RT를 많이 타도록 (...) 트위터 공개 계정에 적절한 이미지/제목/단순 요약을 넣어 글을 쓰는 것이였다. 뭐 그리고, 예상했듯이 현재 이 블로그 글을 작성하고 있는 시점에 약 300 RT 정도를 받았고, RSMPAY에 꽤 많은 유입 로그를 남겼을 것이다.


뭐 어쨌든, RSMPAY는 상당히 재미있는 시도이다. 일단, 통신 판매업 등록을 안 한 상태로, 암호화폐 결제 시스템 API를 적당히 붙인 뒤, 대충 CMS 달려있는 프레임워크를 붙인 뒤 급조해서 내 놓은 의외로 별 시간 안 들여서 만든 쇼핑몰으로 보인다. 뭐 반응형이긴 한데, 반응형 같지 않은 반응형이고, 글씨 크기는 너무 작고, 주문 기록이나, 장바구니 기능은 아예 구현도 안 되어있다. 실제, 제작자의 인터뷰에서도 다음과 같이 말을 하였다.


‘유시민 페이’를 고안한 강영세(29) 테크트랜스퍼 대표는 디센터와의 전화 인터뷰에서 유시민 페이와 관련해 “유시민 작가가 출연한 JTBC 뉴스룸 방송을 보고 암호화폐가 진짜 화폐임을 증명해 보이고 싶어서 재미삼아 만들게 됐다”고 말했다. 강 대표는 “사이트를 혼자서 기획했다”며 “기획부터 오픈까지 4일 걸렸다”고 밝혔다.


- 암호화폐로 ‘유시민 책’ 팔아요…유시민 “팔지 말아달라” 유시민 작가 도서 및 추천도서 49권 판매중 오픈 하루만에 1만명 방문 / http://decenter.sedaily.com/NewsView/1RUKU3ZK2V


4일이라는 시간은 분명 짧지 않은 시간이지만, 보통 쇼핑몰 구축은 처음부터 기획이 끝난 후 기존에 있던 프레임워크를 재활용해서 제작을 한다고 하더라도, PG사와 신용카드 사의 허가를 받는 과정이 존재해 보통 2주에서 3주 정도의 시간이 걸린다. 거기다가, 초기 비용도 만만치 않다. 일단, 신용카드 결제를 하려면 보증보험이라는 게 필요한데, 상점에 최대 결제 가능한 총 금액에 대한 한도가 보험 한도에 따라서 결정이 된다. 이 한도를 늘리기 위해서는 더 많은 보험금을 내야하는데 이게 의외로 돈이 든다. (보통 1년에 적으면 5만원, 많으면 10만원 이상) 거기다가, 초기 PG사 계약 비용 20만원, 카드 수수료는 최소 3%에서 많으면 4%를 가져가는데, 이런 자잘한 비용들을 내기 시작하면, 예상 외의 지출이 엄청나게 많다는 것을 깨달을 수 있고, 그리고 내가 쇼핑몰로 돈을 의외로 많이 못 번다는 것을 알 수 있을 것이다. 특히, 책 같은 경우에는 도매가로 얼마에 떼 오느냐가 내 쇼핑몰이 적자냐 흑자냐를 나눌 정도로 엄청나게 중요한 일이 되어버린다. 간단하게 정리하자면, 초기 기회 비용은 엄청나게 크고, 진입 소요 기간도 상당히 길며, 중간 중간 발생하는 지출이 의외로 크리티컬하다는 것이다.


이러한 특징 덕분에 스토어팜과 같은 포털 사이트들의 기성 쇼핑몰에 입점하거나, 아니면 수 십 만원을 내고 카페24 같은 곳에 입점 한 뒤 고정된 프레임과 제한적인 환경에서 물건을 파는 쪽으로 선회하는 기업들도 상당히 많다. 실제로도, 예전에 일했던 스타트업에서는 PG사 등록으로 씨름하다가 그냥 다 때려치고 카페24에 입점하는 걸로 쇼부를 본 적도 있었다. (그 때 겪었던 각종 서류 작성과 비용 처리 문제로 얼마나 고생했는지 다시는 생각하기도 싫다.)


이런 상황에서 암호화폐는 의외로 기존 신용카드 결제 시스템 대비 매력적인 부분이 존재한다는 것을 알 수 있다. 단순히 암호화폐 지갑을 열고, 암호화폐 API를 따다가 쇼핑몰의 결제 시스템에 연동만 하면, 거의 대부분의 일이 끝나는 건 당연한 거고, 거기다가 수수료도 "전송 수수료"만 낼 뿐이지 상품 가격에 비례해서 3%씩 떼 갈 일도 없다는 것이다. 거기다가, 이러한 암호화폐 시스템을 쇼핑몰 시스템에 통합하는 것은 수 시간에서 수 일이면 끝난다. RSMPAY가 4일 만에 기획부터 사이트 제작까지 끝냈듯이 많은 쇼핑몰들도 비슷한 속도로 이러한 암호화폐 결제 시스템을 도입할 수 있을 것이다.


뭐 이것은 상당히 기술적인 부분인 건 사실이다. 계속 요동치는 가격이나, 환전 문제, 그리고 범람하는 암호화폐들과 높은 이체 수수료 등등은 아직도 암호화폐 결제에 있어서 상당한 문제가 있음을 말해준다. 사실 즉시 암호화폐 환전을 하지 않는 이상 가격 손해 or 이익을 무조건적으로 보게 되어있고, 이는 운영 리스크가 더 커진다는 것을 의미한다.


하지만, 유시민 작가의 말은 깔끔하게 반박이 되지 않았는가? 화폐로써의 역할은 아직 불분명하지만, 물물교환(ㅋ...)의 수단으로는 충분히 작동을 하고 있고, 인터넷 쇼핑몰 같은 경우 충분히 적용될 수 있다는 것을 증명하였다. 이제 걸음마 단계까지는 어찌어찌 갔다는 것을 증명한 것이다.


각설하고, RSMPAY를 응원할 겸 유시민 작가의 국가란 무엇인가를 구매를 하였다. 대충 10.6 ~ 11.4 리플 정도에서 가격이 책정되었으며, 계속 변동하는 리플 가격 -_-; 과 전송 수수료 (1리플) 덕분에 약 2천원 정도의 손해를 봤지만, 뭐 상당히 재미있는 경험이었다. 전자지갑간에 리플을 이동한 걸로 거래가 체결되다니!



그리고, 주문했던 유시민 작가의 "국가란 무엇인가"는 리플을 입금한 다음날 Yes24 하루 배송으로 잘 왔다. 책 택배가 왔을 때, "도대체 내가 뭔 책을 시켰지?"하고 갸우뚱 했는데 리플로 시킨 유 작가님 책이라니, 상당히 놀랐다. 보통 일주일에서 이주일 정도 걸릴 줄 알았는데, 이게 이렇게 빨리 처리되다니, 역시 한국인의 빨리빨리 능력은 정말 대단한거 같다.


RSMPAY를 통해서 책 구매를 성공한 것을 보면, 암호화폐의 상거래 능력에 대한 Proof of Concept는 어느 정도 끝난 것 같다. 가격 변동성이라는 거대한 관문을 어떻게 뚫고 나갈지는 아직도 모르겠지만, 이는 이전 글에서 말했듯이, 파생상품과 적절한 규제, 유연성 확대가 해결책을 제시할 것이라고 믿는다.


Comments

2018. 1. 20. 23:45

여기저기 퍼날라지는거 같아서 덧붙이자면, 암호화폐 지금 투자 하지 좀 마세요. 그거 투자 아닙니다. 그리고, 뭔 주식은 하면 한강간다던 사람들이 그 알트 코인들은 미친듯이 투자하는데 그거 진짜 누가 마지막으로 폭탄 받느냐하는 폭탄 돌리기 게임입니다. 암호화폐 옹호글이긴한데, 암호화폐가 통용 됐을 시점에 비트코인이 살아남아나 있을지도 모르는 상황입니다. 지금 가격 상승이 제대로 된 상승이면 좋겠는데, 아니라는 글이거든요? 비트코인만 찍어서 까긴 했죠. 근데 이더리움은 안 그러고 퀀텀은 안 그럴거 같습니까 ㅠㅠ


제가 하고 싶은 말은, 암호화폐가 법정 화폐처럼 안정적이다가 아니라. 법정 화폐가 암호 화폐랑 다를게 뭐냐라는 논의입니다. 둘 다 발행 주체부터 안정성까지 안전하지 않다는 이야기지, 안전하다는 이야기가 아닙니다.


-----

일단, 답을 말하고 시작하면, "지금은 그렇지 않음"이라고 할 수 있다. 그 이유는 화폐가 갖고 있는 특정한 속성에 의해서 정의되는 형식 때문 일 것이다. 하지만, "암호화폐는 금융상품일 수 있는가?"라는 질문에 대해서는 미국 SEC가 내 놓았던 답과 동일한 답을 할 수 있을 것이다. 암호화폐는 자산 가치가 존재하는 신뢰 주체가 분산된 유가 증권 정도는 분명히 될 수 있다.


이러한 글을 쓰게 된 이유는 유시민 씨? 전 보건복지부 장관? 뭐 전 정치인? 어떤 말로 불러야할지 모르겠지만, (편의상 유시민 씨 정도로 지칭을 하도록 하자)가 JTBC 및 각종 언론에서 피력한 의견에 대한 반박이자, 발언의 문제에 대해서 이야기를 해야겠다는 생각이 들었기 때문이다. 사실 유시민 씨의 논리는 빈약하기 짝이 없다. "암호화폐는 실물 경제에 피해를 준다. 그러므로 규제해야한다.", "화폐의 발행 능력은 국가에게만 존재해야한다. 암호화폐는 국가에게 의존적이지 않은 화폐이다. 그러므로 규제해야한다." 이런 두 가지 발언으로 시작되는 이야기로 시작해서, 그 이야기로 끝나는 철옹성을 쌓아 놓고 있다는 것과 기술에 대한 이해도가 떨어지는 상황에서, 기술에 대해서 논평을 하고 있다는 것이 일단 문제가 된다고 생각을 한다.


하지만, 기술에 대한 이해도에 대한 공격보다 유시민 씨가 주장하는 경제학적 근거나 혹은 정책적인 주장은 분명히 다르게 형성될 수 있다. 썰전에서 이야기를 하였듯이, 튤립에 대한 생물학적 이해 없이도 튤립 버블을 분석 할 수 있고, 기술에 대한 심도있는 지식 없이도 기술에 의한 경제적 현상에 대해서 논의를 할 수 있는 것은 -경제학자의 오만이기도 하지만- 경제학이 일정한 사회 현상에 대한 통일된 분석 도구를 제시하기 때문이다. 그리고, 나는 여기서부터 이야기를 시작하고 싶다.


사실 이런 트윗들을 쓰고, 알티를 받고, 그리고 이런 것들이 뭔가 유시민 씨가 갖고 있는 경제학 석사라는 타이틀에 대한 일종의 권의에 의한 논증을 볼 때마다, 일단 유시민 씨가 어떤 타이틀로 석사를 받았고, 어떤 공부를 했으며, 어떤 이해를 갖고 있는지에 대해서 생각을 하긴 해야겠지만, 사실 "근대적인 화폐의 개념"이라는 말이 왜 나왔고, 왜 유시민씨는 웃고 있는가부터 시작해야할 것을 뼈저리게 느껴졌다.


화폐란 무엇인가?


화폐는 정말 극단적으로 설명하자만, 가치를 인정 받고 있는 교환 수단이다. 이러한 가치의 인정은 국지적이여도 좋다. 그러니까, 간단한게 말하면, 한국 원화가 지구 반대편의 유럽이나 이집트의 음식점에서 사용할 수 없더라고 하더라도, 한국이라는 국가 내에서 꽤 많은 사람들이 교환 수단으로 사용하고 있다면, 그것은 화폐로 볼 수 있다는 것이다. 이런 사이즈가 더 작아지더라도, 물물 교환을 충분히 할 수 있다면, 고대의 조개 껍질이나 (핵전쟁 이후의 세계를 그린) 폴아웃의 콜라 뚜껑 정도의 위상을 지닐 수 있으며, 이것도 사실상 화폐로 봐야한다고 봐야할 것이다.


여기서 중요한 것은 화폐의 보증 주체이다. 중세 유럽에서는 거의 전세계적으로 통용 되던 금과 은을 통해서 주화를 주조 했고, 금과 은의 비율과 동전의 무게를 갖고 물물 교환을 하였다. 이 시대에는 심심하면 바뀌던게 영주였고, 종이 화폐를 찍어 낸다 하더라도 이를 지급 보증할 존재가 존재하지 않았었기 때문에, 확실히 가치가 보증되는 실제 금이나 은을 통해서 화폐를 구현한 것이다. 이러한 금화나 은화는 결과적으로 발행을 한 국가나 상인 조합이나 아니면 영주에 의해 보증되는 무엇이 아니 였던 것이다. 분명, 대량의 주화를 발행 해 놓고, 상황에 따라서 은과 금의 비율을 바꾸어 악화가 양화를 구축하는 상황을 만들기도 하였지만, 시장에서는 이러한 행위에 대해 분명한 반응을 하였고, 신화와 구화에 대한 차별을 두었다. 또한, 가치를 떨어뜨리는 행위들을 막는 안전장치들이 계속 도입된 것도 사실일 것이다. 동전의 끝부분을 갈아서 금이나 은을 얻으려는 행위를 막기 위해 톱니바퀴 모양의 테두리를 넣고, 복잡한 모양을 만들어 넣는 것은 기본 중 기본이었다.


하지만, 금은 분명히 옮기기도 힘들었으며, 보관하기도 힘든 형태의 자산이었다. 이에 따라서, 은행에서는 일종의 보증 문서들을 만들어 내기 시작했다. 문서에 나와있듯이, 언제나 이 문서를 찾아서 은행으로 들고온다면 금으로 바꿔준다는 태환 문서가 그것이다. 이러한 형태의 문서들의 출현은 결과적으로 지폐 형태의 화폐가 출현하는 계기를 만들었고, 결과적으로 국가가 "금으로 바꿔주는 것을 보장하는" 금본위제 기반 태환화폐가 탄생하게 된다.


이러한 화폐는 금보다 가볍고, 교환에 용이하며, 국가가 가치를 보장하기 때문에 널리 퍼질 수 있게 되었다. 금은 분명한 안전 자산이고, 이러한 안전자산을 언제나 바꿀 수 있는 형태의 지폐들은 국가가 안정적인 상황에서는 별 문제 없이 사용할 수 있었으며, 전시나 국가 경제가 힘들어지면 금으로 빨리 바꿔서 국가가 지급 보증을 안 해줄 만일의 가능성조차 봉쇄했기 때문이다. 즉, 화폐에 대한 믿음은 국가에 대한 믿음으로부터 나오 것이 아닌, 금이나 은 같은 보편적인 가치를 인정 받는 무언가와 국가가 이것을 언제 어디서나 교환을 할 수 있는 것으로부터 나온 것이다.


그러나 지금 만원권을 은행이나 한국은행에 들고가서 금으로 바꿔달라고 하면 아주 미친 사람 취급을 할 것이다. 금은방이나 FX 마진이나 골드바 구입 같은 이야기만 나올 뿐, 지폐가 일정량의 금과 1 대 1로 교환되지도 않을 뿐더러 금 값이 계속 변동하는 것을 볼 수 있다. 이는, 미국의 브레튼 우즈 체제의 붕괴로부터 기인한다. 금은 공급량이 제한적이었고, 베트남전부터 휘청거리던 미국은 다수의 국가의 금태환 요구에 자국 달러화를 금에 묶어두던 행위를 포기하고, 금으로 달러를 바꾸는 것을 포기하는 선언을 하게 된다. 뭐 그리고, 그로 인해서 생겨나는 일들은 잠시 신경을 꺼두고, 여튼 정부는 지급 보증을 포기한 신용 화폐라는 것을 내 놓게 되었고, 여하튼 달러는 달러고, 금으로 태환을 못한다고 하더라도, 이미 시장에서 돌고 있는 달러화의 가치가 0으로 바로 바뀐 것은 아니였다는 것이다. 달러화 가격이 개판이 되고, 미국이라는 나라의 경제 사정에 따라서 환율이 급변하기 시작했지만, 어찌하였든 기축 통화 위치에 있었던 달러화는 이러한 위기를 어떻게든 버텨냈고, 결국 약 4-50년간의 신용화폐 시대가 열리게 되었다.


여기서 알 수 있는 것은 무엇인가? 라는 말을 안해도 대충 눈치를 모두 챈 것이 있다. 신용화폐는 일종의 허상 위에 지어진 집과 같다는 것이다. 단순한 달러화가 가치를 지닌다는 믿음과, 달러화가 충분히 통용된다는 상황에서만 의미를 지닐 뿐, 달러화는 종이 쪼가리에 불과하다. 그것은, 원화도, 유로화도, 그리고 심지어 김일성 얼굴이 그려진 북한 원조차도 동일한 개념을 내재하고 있다. (억울한 거 같지만) 매번 하이퍼인플레이션의 대표 주자격으로 두들겨 맞는 짐바브웨 달러 같은 것들도 어쨌든 정부에서 발행을 하고, 정부에서 보증 아닌 보증을 하는 매일마다 내재된 값어치가떨어지는 화폐이긴 하다는 것이다.


결과적으로 달러화는 어쨌든 금 태환 능력이 사라졌지만, 두 가지 형태로 보증을 받게 된다. 첫째, 미국이라는 나라 및 다수 국가들이 달러를 사용한다는 것과 통화 스왑을 통해 각 국가간의 통화를 맞바꿈으로써 전 세계 통화체계가 서로 연동되도록 한 점. 둘째, 달러화의 발행량을 지속적으로 보고하고, 감시하며, 국가와 독립된 형태의 기관, 연방준비은행(이하 연준)을 통해 미국 정부와는 간접적인 관계를 맺고 미국 정부의 직접적인 통제를 받게 되지 않게 한 것이 그것이다. 어쨌든, 달러의 수요는 계속 늘어나고, 미국은 국채를 발행하고, 전세계 경제는 금 총량보다 더 많은 금액의 경제 시스템을 갖게 되었다. 이러한 상황에서 금 태환이나 은 태환으로 롤백은 할 수도 없을 것이며, 결국 할 수 있는 것은 시장 상황에 따라 적절하게 "달러를 찍어내는" 통화량, 국채 만기일, 이자율, 각국의 재정 상황에 따른 달러화 총 발행량 조절을 통해 신용화폐의 신용을 끊임 없이 유지하게 한 것이다. 예를 들어 연준이 미친 듯이 달러화를 찍어낸다면, 통화량 증가에 의해 달러화의 가격이 급락하게 되고, 인플레이션은 필연적인 상황이 되는 상황이라는 것이다. 반대로, 필요 수량 만큼 찍어내지 않는다면, 디플레이션이 일어난다고 보면 될 것이다.


뭐 여하튼, 유시민 씨의 발언이 뭐가 문제가 있는지 이제 슬슬 보이기 시작한다. 달러화나 기타 통화들은 실제로 어떠한 가치도 지니지 못한다. 국가에 의한 신뢰에 의해서 화폐의 가치가 존재하는 것처럼 보이지만, 장기적인 국가들의 대응에 따라서, 특히 통화량 조절에 따라서 달러의 가치는 변할 수 있다. 이러한 달러 가치 변화는 여러 국가에 의해서 통제되거나 견제되고 있는 상황이지만, 그래서 서브프라임 모기지 같은게 안 일어나는 것도 아니다.  2008년 부동산 모기지 시장으로부터 시작된 잘못된 통화 정책은 결과적으로 유럽과 아시아에 영향을 미쳤고, 결과적으로 대공황이라는 달러화 통제 실패로 인한 대규모 경제 실패로 이어지게 된다.


근데, 왜 모기지 시장은 달러화에 영향을 미쳤을까? 실제로 달러화를 만들어내는 건 연준이 아니기 때문이다. M0라고 불리우는 본원 통화는 분명히 국가가 만드는 돈이다. 하지만, 이렇게 풀린 돈은 사람들과 기업들이 은행에 입금하게 되고, 은행은 지급 보증량 이외의 돈을 대출을 해준다. 이러한 대출된 돈은 또 다른 사람들의 손에 들어가게 되고, 돌고 돌아 다시 은행에 입금되게 된다. 또 다시, 은행.... 일단 이것이 은행이 돈을 만들어내느 사이클이다. 비슷하게도 기업은 어음을 발행하고, 어음을 언제까지 갚겠다는 보증을 한다. 그리고 돈을 임시로 융통을 하고, 몇 년 동안 어음의 이자를 갚아내고, 최종적으로는 빌린 원금을 갚아낸다. 근데, 이 돈이 현재의 돈인 것인가? 아니다, 미래의 돈을 땡겨서 쓴 것이다. 거기다, 선물 시장을 생각해보자, 1년 후의 밀이나 쌀 가격을 헷징하기 위해서, 선물을 만들어서 팔고, 선물에 대한 옵션을 걸었다. 그 경우 현재 거래하고 있는 돈은 존재하지 않는 1년 후의 밀과 쌀에 대한 가격과 옵션에 의해 생성된 예측된 가격들이다. 그렇다. 실제로 발행된 통화는 은행이나 기업이나 파생상품들에 의해서, 돈이 생성되게 된다. 생성된다고 하는건 좀 많이 웃긴 일이지만, 어쨌든 정부만 돈을 찍어내는 것이 아니다. 정부는 이런 시장에 대한 통제 권리를 다 갖지도 못하고, 은행 이자율이나, 국채나, 각종 통화 스왑이나, 주식 시장 제동 등등의 간접적인 방법을 통해서 시스템을 통제하는 수 밖에 없다. 결과적으로 M1, M2, M3... 이런식으로 실제 시장에서 돌고 있는 통화량이 얼마인지에 대해서 구하게 되는 일이 발생하고, 이러한 통화량 조절이 시장에 반영되기까지 시간이 걸리게 되는 것이다.


아, 도대체 왜 통화량에 대한 이야기를 하고 있고, 왜 이렇게 고통을 받고 있는 것인가. 왜 이것이 암호화폐와 상관이 있는 것인가. 라는 질문을 한다면, 답변은 단순하다. 유시민 씨는 이것을 간과하고 있거나, 아니면 고의적으로 무시하고 있다. "국가만이 화폐 발행 능력을 가져야만한다"는 주장은 상당히 심각한 수준의 이야기이다. 그리고 화폐의 가치는 국가가 만들어낸다는 늬앙스의 말도 심각한 언어도단이다. 화폐의 가치는 금융 시장의 영향을 피할 수 없으며, 국가 내 실물 경제의 영향을 피할 수 없다. 한국 원화의 가치가 국가에 의해서만 보장이 된다면, IMF 시절 금모으기 운동이 일어났을리도 없고, 그 전에 기업 파산으로 원화 가치가 개판이 될 리도 없다. 아 국가가 기업 재정까지 포함하는 개념이었다면 이야기가 조금 다를 수도 있지만, M2~M3를 본다면, 파생 상품이 화폐를 만들어 낸다는 것을 부정 할 수도 없다. 그리고 파생상품은 정부가 직접적으로 컨트롤 할 수 있는 것이라고 볼 수도 없다. 국제적으로 거래가 되는 것이고, 국가들끼리도 만들어내는 것이니.


그렇다면, 이제 화폐가 무엇인지에 대한 "근대화폐개념"이 무엇인지에 대해서 알 수 있을 것이다. 금이랑 1대1 연동되는 그런 화폐, 그것이 근대적인 화폐인 것이다. 그리고, 누구라도 화폐의 개념을 갖고 있는 무언가를 만들 수 있다는 것 (e.g. 어음, 채권, 선물, 그리고 비트코인) 도 알아낼 수 있다. 단순히 현재 화폐는 믿음으로 인해서 가치를 지니고 있고, 이러한 믿음들의 연쇄로 신용 화폐 시스템이 돌아가고 있는 것이다. 이러한 믿음들이 모두 헛된 것일 수 있으나, 이러한 형태는 부동산이나 주식 시장에서도 충분히 나타나고 있다. 아니 그 전에, 근대 화폐 개념을 생각해보자. 누군가가 비트코인을 금 얼마로 무조건 바꿔준다는 선언을 하고, 그것을 꾸준히 지켜낸다면, 그것도 법적 구속력있는 형태로 진행한다면, 이미 비트코인은 금태환 화폐로써 작동하고 있는 것이다.


암호화폐가 화폐일 수 있는 이유는 화폐의 역사가 증명한다. 화폐는 국가에 의해 구속 되어있는 것처럼 보이지만, 실제로 국가가 완벽한 통제권을 지닐 수 없는 상태이다. 거기에다, 국가의 통제권이 있더라도, 불태환이라는 특성 덕분에 화폐는 신용으로만 작동된다. 그것은 결과적으로 비트코인이 화폐가 될 수 있다는 것을 뜻하지는 않지만, 화폐가 유시민 씨의 주장 (혹은 뒷받침 증거로 사용 되는) 안정성과 신용성을 담보할 수 있으며, 가치가 내재 되어있다고 주장할 수 있다는 뜻도 아니다. 간단하게 말하자, 법정 화폐이자 신용 화폐인 원화나 달러화는 암호화폐보다 나을게 하나도 없다. 신용화폐는 암호화폐가 갖고 있는 모든 특징을 갖고 있으며, 암호화폐가 지금 안정성이 없는 것은 각종 파생상품 시장과 발행량 조절에 미숙하기 때문이다. 채굴 시스템의 개선이나, 파생 상품 시장의 도입으로 미래 가치가 안정화 된다면, 가격의 변동성은 점점 더 줄 것이다. 그것은 아이러니컬하게도 미국 달러화가 불태환을 선언하고 가격 변동폭이 엄청 커졌던 일이나, IMF 이후의 원화 가치 변화가 증명한다.


그렇다면, 비트코인은 장기적으로 법정 화폐 (원화, 달러화, 유로화 등등)을 대체할 수 있을 것인가?


콕 찝어서 비트코인을 이야기한 것은 비트코인이 갖고 있는 몇몇 특성 때문이다. 2500만원까지 치솟았던 가격, 제한된 채굴량이자 제한된 발행량 (2100만개), 암호화폐 계의 기축통화(모든 암호화폐 거래소에서 취급 및 BTC/암호화폐 쌍 거래 지원)화는 상당히 인상적인 모습이자, 암호화폐가 어떤 식으로 발전되고 있는지를 말해주고 있다. 비트코인은 2008년부터 시작되어 근 10년간 끈질기게 버텨왔던 암호화폐이자, 기존 암호화폐들과 기술자, 언론인, 정치인들에게 새로운 화폐 제도가 이 세상을 지배할 것이라는 메세지를 보내는 것처럼 보인다. 하지만, 비트코인은 화폐가 될 수 없다. 그것은 앞서 말한 통화량, 즉 발행량에서 나온다. 비트코인은 일종의 금과 같은 특징을 지니고 있다. 제한된 발행량으로 인한 가격 상승, 누구나 인정하는 내재가치 (변동폭이 좀 크지만, 금 가격 변화 100년치 찍어보면 비트코인은 새발의 피라는거 알게 될 것이다), 그리고 엄청난 이체 수수료 (건당 5만원), 수 시간에 달하는 이체 시간을 보라! 거래소 내부에 비트코인을 쌓아놓고 거래소 호가창이나 보면서 거래하고 있으며, 비트코인을 실제로 밥 사먹는데에 써먹지는 못하고 있지 않은가. 1비트코인이 1500만원인데, 지금 이걸로 국밥을 사 먹으라고? 그래서 0.0008 비트코인, 뭐 사토시 단위로 쓰면 8000사토시인가? 여튼 뭐 그걸로 결제하면 된다고? 그러면 결제 과정에서 이체 수수료 5만원, 그리고 결제 후 수 시간 동안 가게 주인이랑 이체 됐느니 안 됐느니 씨름을 하는 그 과정을 기다리라는 것인가?


사실 그래서 유시민 씨는 비트코인에 대한 집요한 공격을 했던 이유가 그것일 것이다. 그의 입에서는 이더리움도, 비트코인 캐쉬도, 비트코인 골드도, 퀀텀이나, 네오나, ITOA나 각종 대안에 대한 이야기가 나오지 않았다. PoW가 필요없는 리플에 대한 이야기가 잠시 나오긴 했지만, 그것조차도 퍼블릭 블록체인과 비트코인을 공격하기 위한 수단이었다. 그리고 이러한 공격은 암호화폐에 대한 전반적인 공격으로 이전되게 된다. 많은 암호화폐 반대론자들은 환호를 하고, 박수를 쳤겠지만, 이는 대중의 무지를 이용한 공격일 뿐이다. 암호화폐 거래를 해 본 사람이라면, 현재 한국에서 통용되는 암호화폐가 주요 거래소 기준 10개 이상, 많으면 100개 이상 (망할 업비트) 이 된다는 것을 알 수 있다. 근데, 그 중에서 제일 초기에 만들어진 PoC (Proof of concept, 컨셉 증명) 정도의 제품에 공격을 가하는 것은 상당히 큰 문제이다. 개발진들이 문제를 알아서 Segwit이나 블록 사이즈 증가 등등의 하드포크를 감행했고, 비트코인의 아성을 노리는 다양한 암호화폐가 이러한 거래 처리 속도 개선, PoW 시스템의 붕괴 (PoS나 PoI로 이전), 스마트 컨트랙트 도입, 아토믹 스왑/라이트닝 네트워크 도입 등 다양한 방법을 시도하고 있다. 이더리움만 해도 현재까지 PoW이지만, PoS로 이전할 준비를 하고 있으며, 아토믹 스왑과 라이트닝 네트워크는 비트코인 스마트컨트랙트 시스템의 개선과 함께 도입이 될 것이다. 하지만 그런 이야기는 토론회에서 나오지 않았다. 물리학자나 가상화폐 거래소 사장이 그런 이야기를 알 리도 없으며, 알 수도 없지만, 단순히 공학자들의 대표, 암호화폐의 옹호론자 대표를 자처하면서 나온 것 자체가, 그리고 경제학에 대한 이해가 없이 상대방의 논리에 다 말아먹히는 상황을 만들어버린 것 자체가 문제일지도 모른다.


뭐 여하튼, 비트코인이 현재 금과 같은 형태를 지녔다면, 암호"화폐"에서 화폐의 특성을 모두 갖지 못했다는 것을 증명하는 꼴일지도 모른다. 그것이, 각종 아프리카 국가들의 내전, 불안정한 정부, 신용 화폐의 부재, 초인플레이션에 대항해 암호화폐가 주요한 재화 및 저축 수단으로써 사용되기 시작한 것이나, 아르헨티아와 같은 국가들에서 정부의 보증 거부에 대해서 대항하는 용도로 암호화폐들이 기축 통화처럼 사용된다는 이야기들은 사실 한국의 사정과는 관계가 없는 걸지도 모른다. 당연히도, 안정적인 금융 시스템과 적당한 인플레가 있다면 한 국가의 화폐는 안정적인 기축 통화 역할을 다 해낼 수 있다. 그리고, 비트코인을 위시한 암호화폐들이 아직도 결제 시스템에 연동이 되지 못한다는 것은 이것이 화폐로써의 기능을 할 수 있는가에 대한 질문이 나오게 하는 것도 사실이다. 또한, 암호화폐는 탈 중앙화를 목표로 하지만 실제로 거래소 시스템에 묶여 탈 중앙화에 실패했다는 발언이나, 퍼블릭 블록체인과 프라이빗 블록체인을 다르게 봐야한다는 것은 분명히 동의할 이야기이다.


하지만, 유시민 씨의 규제 발언은 실제로 정부 규제가 얼마나 시장 왜곡을 가져오며, 시장 통제권을 잃어버리는 주요한 방법이라는 것을 가르치는 주류 경제학과 얼마나 대치되는 일인지도 생각해봐야한다. 금주법이 미국인의 금주를 가져왔는가 아니면 밀주의 성행과 마피아와의 전쟁을 시작하도록 하였는가. Warning.or.kr이 포르노그래피의 유통을 막았는가 아니면 각종 음성화된 성인 사이트를 만들었는가. 각종 부동산 억제책이 부동산 가격을 억제했는가 아니면 강남 부동산이라는 상흔과 이명박 당선이라는 결과로 나왔는가. 단통법이 폐쇄형 휴대폰 판매처와 각종 페이백이라는 결과를 내 놓았는가, 아니면 단말기 가격 정상화라는 결과를 내 놓았는가.


거기다가 장난감으로 시작해서 거대한 기술 혁명을 일으킨 그 모든 것들을 단순히 시장의 수요에 의해서 만들어진 것보다 열등하다 혹은 규제 되어야한다는 것을 주장하는 것은 문제가 있다고 생각한다. 인터넷은 군사적 목적으로 아르파넷으로 기원했지만, WWW은 CERN의 물리학자들이 논문 공유를 더 편하게 하기 위해 학회에서 발표한 것으로부터 시작했고, 각국의 인터넷 연결은 대학들의 학문적 목적이자 각 대학(원)생들의 호기심으로부터 시작되었다. PC의 시대를 열었다고 평가하는 애플 I과 애플 ][ 컴퓨터는 미국의 한 컴퓨터 홈브류 (자작) 그룹에서 시작이 되었으며 이는 거대한 IT 기업인 IBM을 박살 내 버렸다. 페이스북은 의도는 불순하지만 마크 주커버그의 얼굴 평가 사이트와 대학생들의 섹스를 하겠다는 의지로부터 나왔으며 (주커버그는 각자의 연애 여부를 프로필에 표기할 수 있도록 했다. 캠퍼스 내 데이트를 활성화하려는 목적으로), 이집트 혁명을 수행하게 된 트위터는 140자 짜리 SMS 공유 시스템으로부터 나왔다. ("오늘 점심 뭐 먹었다."를 공유하는 서비스에 투자가 올리도, 사용자가 몰릴리도 없지!), 토렌트와 당나귀, 냅스터는 각자 포르노, 불법 소프트웨어, 음악 공유를 위해 시작이 되었으며, 냅스터와 당나귀는 죽었지만, 토렌트가 바톤을 이어받아 아직도 정부의 통제 밖에서 잘 굴러가고 있다.


화폐 발행은 정부만이 갖을 수 있는 고유한 권한인가? 국가의 통제는 결과적으로 완벽한 통제를 만들 수 있는가? 역사적으로 보자. 답은 "아니오"이다.


비트코인은 성공할 수 있는 화폐인가? 경제학유시민적으로 보자. 답은 "아니오"이다. 


하지만, 암호화폐는 IT의 발전의 역사에서 볼 수 있듯이, 경쟁과 도태를 통해서 교통정리가 될 것이다. 꼬우면 포크를 뜨고, 망할거 같으면 하드포크를 하고, 가격이 떨어지면 공급량 조절을 할 것이다. 거기에는 수 많은 파생상품들이 걸리게 될 것이고, 선물 거래가 될 것이다. 국가간 금의 이전은 지금도 힘든 일이지만, 암호화폐 이동은 더 쉬울 것이다. 유로화 통합은 브랙시트와 그리스 파산을 불러왔지만, 암호화폐는 ... 음... 불러올 수도 있겠군. 아니 뭐 그런건 아니고, 다양한 하이퍼인플레이션 국가들에게 구세주가 될 것이다. 금융 거래는 좀 더 확실해 질 것이며, 블록체인 분산 장부의 추적으로 검은 돈을 좀 더 잘 찾아낼 수도 있을 수도 있다. 뭐, 모네로나 다크 코인 같은 애들이 있지만 말이다. 구조는 간단하다. 국제 정치가 비신뢰 게임이고, 만인과 만인의 투쟁이라면, 암호화폐는 그러한 구조를 완벽하게 꿰뚫고 있는 형태이다. 암호화폐는 장기적으로 국제 금융 시스템의 제도적 변경을 가져올 것이다.


비트코인은 못 하겠지만.


---

아마도 2편이 나올 거 같습니다. 후술한 기술적인 파트들에 대한 이야기를 필두로 말이죠. 거기다가 시장 규제가 어떤 형태를 지니게 되는지, 어떤 2개의 시장을 만들어내고, 이게 어떤식으로 돌아가는지에 대한 예전에 공부했던 게임이론 쪽 이야기를 해야할게 될 거 같습니다. 재미있는 주제죠 :)


Comments


  1. 모파상 2018.01.21 12:34

    Bengi님, 글이 좋아, 사커라인에 퍼갔던 사람입니다. 댓글이라도 달았어야하는데 죄송합니다 ㅠㅠ. 그 부분에선 미처 생각못했습니다 ㅠㅠ


  1. JTBC 2018.03.07 22:15

    나오고계시네요ㅎㅎㅎ