처음 데이터 사이언스로 사업하겠다고 나선 다음, 한국에서 만난 VC들, 수업에 찾아온 수강생들, 외부 미팅에서 만난 관계사 직원 분들 모두에게는 다들 뭔가 “머신러닝이 모든 걸 다 해결하는 마술이다”는 사고방식이 자리잡고 있는 걸 느낄 수가 있었다. 개발자, 혹은 그 근처에서 IT업무를 하는 사람들은 머신러닝이 데이터 관련된 업무를 알아서 척척척 다 해주니까 통계학 같은 구시대(?) 학문은 필요없다고 목소리를 높여서 미팅이 굉장히 어색하게 끝나는 경우도 있었고, 수업에 찾아온 학생들은 “이게 머신러닝이냐?”, “그럼 알파고는 어떻게 이세돌 이겼냐?”, “겨우 이런걸 머신러닝이라고 주장한거냐?”는 식으로 회의감에 빠지는 경우도 있었다.

요즘 블록체인 Hype를 보면 똑같은 느낌을 받는다. 어느 VC는 블록체인으로 코인 찍어내고 보안이 유지되는 것 까지 확인했으니 이제 화폐 시장을 뒤바꾸는건 시간문제라고 주장하기도 했고, 더 심한 분은 코인으로 기본 소득이 배정되면서 좌파 정권이 오랫동안 주장했던 기본소득제가 시행될 수 있게 되었다고, 머신러닝이라는 구시대(Really?) 기술로 사업하는건 손을 떼고, 블록체인이나 배워라고 하시더라. 그러면서 정작 블록체인에서 BGP 문제는 어떻게 해결되고 있고, 각 코인 별로 무슨 아이디어가 적용되었는지 알고 있기는 하냐는 질문에, 그런건 블록체인 “개발자”가 할 일이라시더군ㅋㅋㅋ

이미 다른 글에서 여러번 언급했듯이, 한국 땅에서 블록체인 개발자라고 불리는 사람들 중 99.9%는 블록체인용 Github 코드 따 와서 사업에 갖다붙히는 수준인 코더들이다. 그런건 그냥 GitHub 같은데 잘 뒤져보면 step-by-step 설명들 널려있다. 정말 BGP 문제를 풀려고 수학적인 이해를 공학적으로 적용하는 능력을 갖춘 사람은 정말정말정말 극소수에 불과하고, 할 수 있다고 주장하는 분들도 만나봤지만, 수학적으로는 굉장히 얕은 이해를 갖고 있는 경우가 아닌 사례가 아직까지 없다.

그럼에도 불구하고 블록체인이 뭔가 섹시하고 새로운 신기술인 것 같으니까 이걸 적용만하면 모든 문제가 싹 다 해결되는 것처럼 주장하는 사람들에게 아래의 글을 바친다.

 

1. 블록체인이란?

블록체인이란 사실 거래 정보를 기록해놓은 블록을 묶어놓은 그룹에 불과하다. 블록은 데이터 저장소, 즉 여러분의 하드 디스크를 연상하면 되고, 그룹은 다른 글에서 계속 언급했듯이 Network을 형성해놓은건데, (불법 다운로드에 자주 쓰실) 토렌트를 생각하면 딱 맞다.

이런 저장소 네트워크가 기존의 데이터 베이스와 다른 점이 있다면, 아무 데이터나 무작정 기록하는 것이 아니라, 정확한 룰이 있어서 거기에 맞춘 데이터만 기록할 수 있다는 점이다. 덕분에, 아래의 눈에 띄는 특징을 가질 수 있게 되었다.

  • Consistent – 이미 기록된 데이터와 다른 형식, 다른 내용을 기록할 수 없다
  • Immutable – 기존 데이터는 그대로 두고, 새롭게 “추가”하는 형태로만 기록이 가능하다
  • Ownable – 데이터 블록 각각은 소유주가 있고, 그 소유주가 독점적인 소유권을 가진다
  • Canonical – 모든 사람이 새롭게 기록되는 내용에 동의해야 한다
  • Decentralized – 중앙 서버 없이 모든 사람들이 데이터 기록에 동참한다

실리콘 밸리가 블록체인에 열광하는 가장 큰 이유는 마지막 항목, Decentralized 때문이다. 캘리포니아 날씨에서도 느껴지듯이, 그 동네는 뭔가 약간 뽕맞은 것 같은 히피족들 스타일 문화가 강한데 (표현이 과격해서 죄송합니다만… for lack of better expression), 블록체인도 중앙 정부의 통제를 벗어나는 구조라는 부분이 실리콘 밸리人들에게 강한 인상을 심어준 듯 싶다. (사실은 코인 찍어내서 그걸로 일확천금을 얻겠다는 욕심이 뒤에 자리하고 있는지는 모르지만…)

Decentralization이 특정 구조에서 오차 Zero를 만들어 낼 수 있기 때문에 (ex. 이전 글 비트코인 구조 참조), 굉장히 매력적인 데이터 베이스 구조라고 할 수 있다. 과거 왕조 시절, 혹은 군사 독재 시절처럼 중앙 정부가 “까라면 까”라는 방식으로 중앙 집권체제를 구축하고 있으면 변방에 있는 구성원들 하나하나는 중앙에 의존할 수 밖에 없다. 그러나 아무도 내가 가진 물건에 손을 못 대도록 구조화가 잘 되어 있는데, 그게 하필 중앙 정부를 없애는 거라면? 히피들이 혹~ 할 것 같지 않은가?

 

2. 블록체인의 문제점

A. 제한적인 개발 구조 & 느린 속도

모두가 쪼개져 있는데, 각각이 동일해서 전체적으로 유기적인 구조를 만들어내는건 굉장히 어려운 일이다. 아주 사소한 bug 하나만 생겨도 전체 시스템에 장애를 일으키거나, 그 시스템이 다른 시스템과 연동되질 못하도록 만든다. 앱 개발 하시는 분들, 앱 유저 사용 데이터 추적한다고 Tracking solution들한테서 SDK를 받아서 자기 앱에 입력하는 일을 해 본적이 있을 것이다. 객체 지향적으로 아주 깔끔하게 앱을 만들었다면 SDK가 자기네 시스템과 충돌을 일으킬 일이 별로 없겠지만 (그 SDK가 별로 대단한 코드는 아니니까), 정작 실제로 SDK 적용하고나면 어디에서 무슨 에러가 터질까 일촉즉발의 긴장상태로 있어본 적도 있을 것이다. 사실은 본인이 앱을 객체 지향적으로 못 만드는 실력없는 개발자여서가 아니라, 통일된 방식으로 앱을 만드는게 불가능하기 때문에, 플랫폼이 아무리 Java고 Android Studio에서 지정해주는 방식대로 앱을 만들었다고해도, 앱 개발자 한 명, 한 명이 만들어 내는 구조들은 조금씩 다르기 때문에, SDK가 언제 어느곳에서 어떤 방식으로 충돌을 일으킬지 예측하기 힘든건 어쩔수가 없는 일이다.

자, 앱 하나만해도 이런 문제가 있는데, 더 큰 시스템은 어떻게 될까? Decentralized라고 열심히 강조해서 마치 개개인의 특성을 살릴 수 있는 진정한 민주주의 시스템인 것처럼 홍보해놓고, 시스템이 돌아가도록 만들려니 모두가 구조가 동일해야한다고? 모두가 똑같은 옷을 입고, 모두가 똑같은 삶을 살아라고 하는 사회 구조가 싫다는 히피들이 좋아하던 Decentralization을 완성하려니 모두가 동일해야한단다. Such a paradox, isn’t it?

블록체인 안에서는 “뭔가 대충”, “일단 좀 만들어놓고” 같은 방식이 불가능하다. 한번 써 놓고 난 뒤에 다시 기록하려면 모든 블록의 동의를 받아야하니까. 말이 쉽지, 새로 다시 뭔가를 고쳐쓰는게 거의 불가능하다는 뜻이다. 중앙 서버 운영하고 있으면 어떻게 되냐고? 이번에 홈페이지 개편하는데, 코딩이 어려워서 그냥 밀고 새로 만들었다. 내가 내 홈페이지에 손 대는데 누가 뭐라 그래?

 

B. 인센티브 구조 설정의 어려움

1994년 노벨경제학상을 받은 수학자 존 내쉬의 게임이론은 인간의 모든 활동은 유무형의 인센티브 구조를 기저에 깔고 있다는 가정에서 출발한다. 봉사활동은 인센티브 구조가 아니지 않냐는 주장도 있는데, 그마저도 봉사로 얻는 마음의 안정, 평판 증대, 혹은 세금 혜택 같은 부분에서 원인을 찾기도하고, 이 문제는 수학적이라기보다는 도덕적인 부분이니까 자세한 내용은 생략하겠다.

블록체인에서 갑자기 왠 인센티브 구조냐고? 블록 네트워크가 원래의 목적대로 잘 작동하고 있도록 각각의 블록들에게 적절한 보상이 돌아가야할텐데, 그런 보상체계 구축이 여간 어려운 일이 아니다.

예를 들어, 데이터 기록이 이어지다가 그 특정 쓰레드는 기록 종료라고 정리하려면 (그래서 다른 쓰레드에 자원을 넘겨주고 처리 속도를 좀 높이려면), 누가 그 결정을 내려야할까? Decentralized라며?

각각의 블록들이 계속해서 데이터를 저장하고 업데이트 해야할 이유가 있나? 한 블록이 두 개의 상충되는 정보를 받았을 때, 어떤 정보를 선택하도록 할 지 구조는 어떻게 짜는 걸까?

이런 질문들에 대한 대답은 사실 인센티브를 어떻게 주느냐, 즉 게임이론을 어떻게 블록 시스템 안에 녹여넣느냐에 달려있다. 하나 더 추가하면, 처음에 인센티브 구조 좀 잘못 만들었어도 계속 고쳐나가면 되는거 아니냐고? 위의 문제점 A에서 썼듯이, “고치기”는 중앙 서버에서는 쉬울지 몰라도 블록체인에서는 대단히 어려운 일이 되어 버린다.

 

C. 고가의 유지 비용, 확장성 문제

중앙 서버는 한번만 기록하면 된다. 블록체인은? 모든 블록에게 다 써야 한다. 모두가 그 정보를 공유해야 통일성도 유지되고, 보안도 유지되니까. 데이터가 제대로 찍혔는지 확인은 어떻게 할까? 중앙 서버는 한번만 하면 된다. 블록체인에서는? 역시 블록의 숫자만큼 해야된다.

만약에 서버 이전을 한다고 쳐보자. 이 블로그의 글들을 다른 곳으로 이전한다고 생각해보면 쉬울 것 같다. 모두가 블로그 글을 다 갖고 있어서 필자가 마음대로 글을 못 고치는 블록 네트워크를 생각해보자. 서버 이전을 하려면 모든 블록들의 정보를 다 이전해야한다. 중앙 서버는? 한 번만 처리하면 된다.

말을 바꾸면, 확장성에 치명타를 안고 있는 서버 구조다. 블록체인 관련된 모임을 가보면 좀 실력있는 사람들은 모두 Scaling 이슈가 얼마나 해결되었냐를 쳐다보지, 코인 가격이 얼마만큼 폭락했는지 이야기하질 않는다 ㅋ

왜 블록체인에 사람들이 저렇게 열광하는지, 그게 좀 이상하다는 의심이 들기 시작하는가?

 

D. 데이터 소유권은 개인에게

요즘 개인정보보호법 때문에 유저의 활동 내역 데이터를 기업들이 활용하는 것에 대한 거부감, 그 거부감에 편승한 정부의 가이드라인 강화가 이쪽 업계에서 큰 화두가 되어 있다. 어차피 못 막는데, 미국에서도 하는데, 이상하게 적용하지 말고, 기술 개발을 방해하지 않는 차원에서… 와 같은 명목으로 유저의 활동 데이터를 기업들이 쓰는걸 눈감아주고 있는 판국인데, 블록체인은 언뜻보면 이 문제에 대한 완벽한 해결책이다. 유저 데이터는 유저만 갖는다. 기업은 소유권이 없고, 유저 스스로가 알아서 자신의 데이터를 보관하면 된다.

그런데, 블록체인은 자기 혼자만의 하드디스크에 데이터를 저장하는 방식이 아니라, 하드디스크 여러개를 연결해놓은 방식이라는 점에 주목해야 한다. 좀 더 쉽게 설명하기 위해서 토렌트를 예로 들어보자. 100명한테서 잘게 쪼갠 영화 파일을 다운받고 있는데, 어떤 악마같은 자식분이 파일 내용을 살짝 바꾼 다음 그 내용을 토렌트로 뿌리고 있다고 해 보자. 1시간동안 고생해서 영화를 다운 받았는데, 처음에 받았던 몇 명은 정상 영화 파일을 받아서 Security check을 피했을텐데, 어느 순간 그 악마가 파일 내용 일부를 바꾼 탓에 n명째 다운로더부터는 malware를 받고 있다면? 영화 파일을 여는 순간 내 컴퓨터가 해킹된다면?

블록체인에서는 얼마든지 가능한 이야기다. 모든 블록은 개인 소유이기 때문에, 자기 마음대로 고쳐쓰고 상대방에게 이상한 정보를 뿌리기 시작하면 전체 네트워크는 오염이 되거나, 오염이 되지 않더라도 확인 절차가 길어지기 때문에 처리 속도가 엄청나게 느려지게 된다.

그럼 그런 유저는 쫓아내면 되지 않냐고? 중앙 서버일 때는 쉬웠다. “강퇴” 한방으로 해결되니까. 근데 블록체인에서는? 모두가 똑같은 권한을 가진 참여자인데? 누가 결정하지? 도편추방제를 도입한다고 쳐도, 투표는 또 언제 할래? 만약에 그 유저가 자기 잘못이 아니라 바이러스에 오염되어서 억울한 케이스라면?

 

E. 업그레이드는 자율적으로

2016년 가을, 삼성 갤럭시 노트 7이 출시된지 한 달도 지나기 전에 자기 폰이 “폭발”했다고 주장하는 글들이 커뮤니티 여기저기에 올라오기 시작했다. 제조사는 유저 책임이라고 도망을 가다가 채 한 달이 지나기 전에 배터리 문제 or 설계 문제임을 인정하고, 대량 리콜 및 배터리 충전 차단 업데이트를 배포하기 시작했다.

당시 갤럭시 노트 7을 들고 있으면 비행기 탑승도 불가능했던 시절이기 때문에, 제조사에서는 리콜로 생기는 비용 및 상품 신뢰도 하락은 둘째 문제고, 또 터졌다는 뉴스가 그만나오도록 배터리 충전이라도 최대 70%, 80%로 차단해서 배터리가 완충되었을 때 터지는 사태를 막아야하는 다급함이 있었을 것이다.

그 때 외부 인터넷 망에 접속만 되어 있으면, 유저 동의도 받지않고 거의 반강제로 펌웨어가 업데이트 되었다.

블록체인에서는 같은 일이 가능할까?

데이터가 유저 소유인만큼, 업데이트도 유저의 의지에 달려있다. 이런 상황을 인지하고 있으면 새로 업데이트되는 펌웨어를 만드는 개발자들은 언제나 예전 버젼에서도 “충돌이 없는” 형태로 최신 버젼을 만들어야한다는 압박에 시달린다. 펌웨어 업데이트 한번하기 진짜 엄청 어려울 것이다.

 

3. 중앙 통제 시스템이 훠~얼~씬 간편하다

블록체인은 장점이 많은 서버 관리 체제, 보안 체제다. 하지만 위에서 봤다시피 그에 따른 부작용도 엄청나게 많다. 그럼에도 불구하고 블록체인 사업한다는 분들은 (특히 코인에 투자를 많이하신 분들은) 계속해서 블록체인으로 노래를 부르고 있다.

사실 금융권의 데이터 베이스는 거의 대부분 70, 80년대 스타일로 짜여져 있어서, 이걸 새로운 뭔가로 바꾼다는게 거의 불가능하다. 아마 금융권에서 회사 데이터 서버 운영하는 개발자 분들에게 블록체인 적용할 수 있도록 서버 갈아엎자고 그러면 그날부터 이직을 고민하기 시작할 것이다. 어찌어찌 인력을 확보해서 블록체인 도입을 위한 서버 업그레이드를 한다고해도, 엄청난 정보의 손실과 전환 비용이 후폭풍으로 따라올 것이 확실하다. 당장 허접한 블로그 홈페이지 하나 갈아엎는 것도 데이터 Loss 최소화하기 위해서 얼마나 많은 Trial and error 가 있었는지….

중앙 통제 시스템을 싫어하는 몇몇 산업의 관계자 분들을 만나보면, 블록체인이 무슨 요술봉인 줄 알고 계신다. 미국에는 이미 다 적용되었는데 한국은 시스템이 느리고 인력이 부족해서 안 된다고 하셨던 분을 꼭 미국에 한번 데려가서 견학시켜드리고 싶더라. 그 동네에서도 블록체인을 서버 시스템에 도입하는 회사는 극소수다. 저 위의 모든 문제들을 다 인지하고 있는 사람들, 혹은 그렇지 않더라도 새로운거 배우기 싫어하는 복지부동의 서버 개발자들을 설득해야하는 전환이기 때문이다.

그런면에서 본다면, 아마 가장 큰 문제는 블록체인 자체가 가지는 기술적인 제한이 아니라, 남들이 말하는대로 그대로 믿고 블록체인 노래를 부르고 있는 기업 고위직들, 블록체인 이야기 안 하면 시대에 뒤떨어지는 것처럼 무시하려는 풍조 같은 사회적인 원인이지 않을까 싶다. 글 초반부에 언급한대로 “머신러닝”, “딥러닝”, “인공지능”으로 buzzword를 바꿔가던 사람들은 자기가 트렌드를 잘 따라가는 “전문가”라는 이미지를 주고 싶었기 때문에 정작 이게 별 대수롭지 않은 비선형 함수 찾는 통계학 응용이라는 걸 모르는채로 넘어갔던 것과 하등 다를 바 없는 상황이 진행되고 있는 것이다.

정말, 거의 대부분의 기업들은 여전히 중앙 통제화된 서버 구조를 운영하는 편이 맞고, 설령 블록체인으로 서버 구조를 개편하는게 더 나을 수 있는 여지가 있는 산업도 위에 지적한 내용들 때문에 생기는 비용을 감당하기가 쉽지 않을 것이다.

중앙 통제 시스템이 정말 훠~얼~씬 간편하다.

 

나가며 – 그럼 어디에 써야?

“블록체인 = 코인”이라고 놓고, 어느 스타트업에서는 SNS 시스템을 블록체인으로 만든 다음, 유저들이 Like를 누르거나 comment를 달아서 글을 퍼뜨리면 코인을 주는 사업 모델을 만드는 걸 봤다. 일부러 코인을 받으려고 싫어하는데도 Like를 누르면 어떻게 할꺼냐, 그런 Malware 같은 글들은 어떻게 퇴출시킬꺼냐고 되물어 봤다. 뭔가 말도 안 되는 답변을 한참 늘어놓으면서 유저를 믿어야한다는 결론을 도출하던데, 당장 블록체인이 뭔지 모르지만 일단 트렌드 단어니까 무조건 입에 올리고 보는 수 만명의 “전문가”들을 보고서도 이해가 안 되는가? 유저를 믿을 수 있다면 전세계는 오래전부터 전쟁과 분쟁이 없는 평화상태를 유지했어야한다. 말을 바꾸면, 중앙의 개입은 어느 시스템이건 그 시스템을 제대로 돌아가도록 하기 위해서는 필수적인 요소다. 작은 정부 vs. 큰 정부 같은 논쟁은 할 수 있을지 몰라도, Anarchy vs. Central 같은 논쟁은 시스템의 효율성이라는 측면에서는 합리적인 논쟁 대상이 아니다.

그럼 정말 아무데도 쓸데가 없는건가? 블록체인이 쓰일데는 있는건가?

한번 시스템을 갖춰놓고나면 아주 오랫동안 안 바꿔도 되는 산업은 어디에 있을까? 그런 산업을 찾아보려 글 쓰기를 10분 정도 중단하고 고민해봤는데, 잘 모르겠다. 혹시나 알고 있으신 분이 있으면 아래 댓글로 꼭 답변을 주셨으면 좋겠다.

아, 돈은 찍어놓고나면 화폐개혁을 하지 않는 이상 바꿀일이 없긴 하네. 근데 그렇게 중앙 통제를 벗어나게 해 놓고 나면 금융위기가 왔을 때 누가 시장에 개입해서 금융시장을 안정화시킬 수 있을까?

 


위의 글에 나온 이미지는 링크에서 참조했습니다.

 

 

블록체인 시리즈

처음 데이터 사이언스로 사업하겠다고 나선 다음, 한국에서 만난 VC들, 수업에 찾아온 수강생들, 외부 미팅에서 만난 관계사 직원 분들 모두에게는 다들 뭔가 “머신러닝이 모든 걸 다 해결하는 마술이다”는 사고방식이 자리잡고 있는 걸 느낄 수가 있었다. 개발자, 혹은 그 근처에서 IT업무를 하는 사람들은 머신러닝이 데이터 관련된 업무를 알아서 척척척 다 해주니까 통계학 같은 구시대(?) 학문은 필요없다고 목소리를 높여서 미팅이 굉장히 어색하게 끝나는 경우도 있었고, 수업에 찾아온 학생들은 “이게 머신러닝이냐?”, “그럼 알파고는 어떻게 이세돌 이겼냐?”, “겨우 이런걸 머신러닝이라고 주장한거냐?”는 식으로 회의감에 빠지는 경우도 있었다.

요즘 블록체인 Hype를 보면 똑같은 느낌을 받는다. 어느 VC는 블록체인으로 코인 찍어내고 보안이 유지되는 것 까지 확인했으니 이제 화폐 시장을 뒤바꾸는건 시간문제라고 주장하기도 했고, 더 심한 분은 코인으로 기본 소득이 배정되면서 좌파 정권이 오랫동안 주장했던 기본소득제가 시행될 수 있게 되었다고, 머신러닝이라는 구시대(Really?) 기술로 사업하는건 손을 떼고, 블록체인이나 배워라고 하시더라. 그러면서 정작 블록체인에서 BGP 문제는 어떻게 해결되고 있고, 각 코인 별로 무슨 아이디어가 적용되었는지 알고 있기는 하냐는 질문에, 그런건 블록체인 “개발자”가 할 일이라시더군ㅋㅋㅋ

이미 다른 글에서 여러번 언급했듯이, 한국 땅에서 블록체인 개발자라고 불리는 사람들 중 99.9%는 블록체인용 Github 코드 따 와서 사업에 갖다붙히는 수준인 코더들이다. 그런건 그냥 GitHub 같은데 잘 뒤져보면 step-by-step 설명들 널려있다. 정말 BGP 문제를 풀려고 수학적인 이해를 공학적으로 적용하는 능력을 갖춘 사람은 정말정말정말 극소수에 불과하고, 할 수 있다고 주장하는 분들도 만나봤지만, 수학적으로는 굉장히 얕은 이해를 갖고 있는 경우가 아닌 사례가 아직까지 없다.

그럼에도 불구하고 블록체인이 뭔가 섹시하고 새로운 신기술인 것 같으니까 이걸 적용만하면 모든 문제가 싹 다 해결되는 것처럼 주장하는 사람들에게 아래의 글을 바친다.

 

1. 블록체인이란?

블록체인이란 사실 거래 정보를 기록해놓은 블록을 묶어놓은 그룹에 불과하다. 블록은 데이터 저장소, 즉 여러분의 하드 디스크를 연상하면 되고, 그룹은 다른 글에서 계속 언급했듯이 Network을 형성해놓은건데, (불법 다운로드에 자주 쓰실) 토렌트를 생각하면 딱 맞다.

이런 저장소 네트워크가 기존의 데이터 베이스와 다른 점이 있다면, 아무 데이터나 무작정 기록하는 것이 아니라, 정확한 룰이 있어서 거기에 맞춘 데이터만 기록할 수 있다는 점이다. 덕분에, 아래의 눈에 띄는 특징을 가질 수 있게 되었다.

  • Consistent – 이미 기록된 데이터와 다른 형식, 다른 내용을 기록할 수 없다
  • Immutable – 기존 데이터는 그대로 두고, 새롭게 “추가”하는 형태로만 기록이 가능하다
  • Ownable – 데이터 블록 각각은 소유주가 있고, 그 소유주가 독점적인 소유권을 가진다
  • Canonical – 모든 사람이 새롭게 기록되는 내용에 동의해야 한다
  • Decentralized – 중앙 서버 없이 모든 사람들이 데이터 기록에 동참한다

실리콘 밸리가 블록체인에 열광하는 가장 큰 이유는 마지막 항목, Decentralized 때문이다. 캘리포니아 날씨에서도 느껴지듯이, 그 동네는 뭔가 약간 뽕맞은 것 같은 히피족들 스타일 문화가 강한데 (표현이 과격해서 죄송합니다만… for lack of better expression), 블록체인도 중앙 정부의 통제를 벗어나는 구조라는 부분이 실리콘 밸리人들에게 강한 인상을 심어준 듯 싶다. (사실은 코인 찍어내서 그걸로 일확천금을 얻겠다는 욕심이 뒤에 자리하고 있는지는 모르지만…)

Decentralization이 특정 구조에서 오차 Zero를 만들어 낼 수 있기 때문에 (ex. 이전 글 비트코인 구조 참조), 굉장히 매력적인 데이터 베이스 구조라고 할 수 있다. 과거 왕조 시절, 혹은 군사 독재 시절처럼 중앙 정부가 “까라면 까”라는 방식으로 중앙 집권체제를 구축하고 있으면 변방에 있는 구성원들 하나하나는 중앙에 의존할 수 밖에 없다. 그러나 아무도 내가 가진 물건에 손을 못 대도록 구조화가 잘 되어 있는데, 그게 하필 중앙 정부를 없애는 거라면? 히피들이 혹~ 할 것 같지 않은가?

 

2. 블록체인의 문제점

A. 제한적인 개발 구조 & 느린 속도

모두가 쪼개져 있는데, 각각이 동일해서 전체적으로 유기적인 구조를 만들어내는건 굉장히 어려운 일이다. 아주 사소한 bug 하나만 생겨도 전체 시스템에 장애를 일으키거나, 그 시스템이 다른 시스템과 연동되질 못하도록 만든다. 앱 개발 하시는 분들, 앱 유저 사용 데이터 추적한다고 Tracking solution들한테서 SDK를 받아서 자기 앱에 입력하는 일을 해 본적이 있을 것이다. 객체 지향적으로 아주 깔끔하게 앱을 만들었다면 SDK가 자기네 시스템과 충돌을 일으킬 일이 별로 없겠지만 (그 SDK가 별로 대단한 코드는 아니니까), 정작 실제로 SDK 적용하고나면 어디에서 무슨 에러가 터질까 일촉즉발의 긴장상태로 있어본 적도 있을 것이다. 사실은 본인이 앱을 객체 지향적으로 못 만드는 실력없는 개발자여서가 아니라, 통일된 방식으로 앱을 만드는게 불가능하기 때문에, 플랫폼이 아무리 Java고 Android Studio에서 지정해주는 방식대로 앱을 만들었다고해도, 앱 개발자 한 명, 한 명이 만들어 내는 구조들은 조금씩 다르기 때문에, SDK가 언제 어느곳에서 어떤 방식으로 충돌을 일으킬지 예측하기 힘든건 어쩔수가 없는 일이다.

자, 앱 하나만해도 이런 문제가 있는데, 더 큰 시스템은 어떻게 될까? Decentralized라고 열심히 강조해서 마치 개개인의 특성을 살릴 수 있는 진정한 민주주의 시스템인 것처럼 홍보해놓고, 시스템이 돌아가도록 만들려니 모두가 구조가 동일해야한다고? 모두가 똑같은 옷을 입고, 모두가 똑같은 삶을 살아라고 하는 사회 구조가 싫다는 히피들이 좋아하던 Decentralization을 완성하려니 모두가 동일해야한단다. Such a paradox, isn’t it?

블록체인 안에서는 “뭔가 대충”, “일단 좀 만들어놓고” 같은 방식이 불가능하다. 한번 써 놓고 난 뒤에 다시 기록하려면 모든 블록의 동의를 받아야하니까. 말이 쉽지, 새로 다시 뭔가를 고쳐쓰는게 거의 불가능하다는 뜻이다. 중앙 서버 운영하고 있으면 어떻게 되냐고? 이번에 홈페이지 개편하는데, 코딩이 어려워서 그냥 밀고 새로 만들었다. 내가 내 홈페이지에 손 대는데 누가 뭐라 그래?

 

B. 인센티브 구조 설정의 어려움

1994년 노벨경제학상을 받은 수학자 존 내쉬의 게임이론은 인간의 모든 활동은 유무형의 인센티브 구조를 기저에 깔고 있다는 가정에서 출발한다. 봉사활동은 인센티브 구조가 아니지 않냐는 주장도 있는데, 그마저도 봉사로 얻는 마음의 안정, 평판 증대, 혹은 세금 혜택 같은 부분에서 원인을 찾기도하고, 이 문제는 수학적이라기보다는 도덕적인 부분이니까 자세한 내용은 생략하겠다.

블록체인에서 갑자기 왠 인센티브 구조냐고? 블록 네트워크가 원래의 목적대로 잘 작동하고 있도록 각각의 블록들에게 적절한 보상이 돌아가야할텐데, 그런 보상체계 구축이 여간 어려운 일이 아니다.

예를 들어, 데이터 기록이 이어지다가 그 특정 쓰레드는 기록 종료라고 정리하려면 (그래서 다른 쓰레드에 자원을 넘겨주고 처리 속도를 좀 높이려면), 누가 그 결정을 내려야할까? Decentralized라며?

각각의 블록들이 계속해서 데이터를 저장하고 업데이트 해야할 이유가 있나? 한 블록이 두 개의 상충되는 정보를 받았을 때, 어떤 정보를 선택하도록 할 지 구조는 어떻게 짜는 걸까?

이런 질문들에 대한 대답은 사실 인센티브를 어떻게 주느냐, 즉 게임이론을 어떻게 블록 시스템 안에 녹여넣느냐에 달려있다. 하나 더 추가하면, 처음에 인센티브 구조 좀 잘못 만들었어도 계속 고쳐나가면 되는거 아니냐고? 위의 문제점 A에서 썼듯이, “고치기”는 중앙 서버에서는 쉬울지 몰라도 블록체인에서는 대단히 어려운 일이 되어 버린다.

 

C. 고가의 유지 비용, 확장성 문제

중앙 서버는 한번만 기록하면 된다. 블록체인은? 모든 블록에게 다 써야 한다. 모두가 그 정보를 공유해야 통일성도 유지되고, 보안도 유지되니까. 데이터가 제대로 찍혔는지 확인은 어떻게 할까? 중앙 서버는 한번만 하면 된다. 블록체인에서는? 역시 블록의 숫자만큼 해야된다.

만약에 서버 이전을 한다고 쳐보자. 이 블로그의 글들을 다른 곳으로 이전한다고 생각해보면 쉬울 것 같다. 모두가 블로그 글을 다 갖고 있어서 필자가 마음대로 글을 못 고치는 블록 네트워크를 생각해보자. 서버 이전을 하려면 모든 블록들의 정보를 다 이전해야한다. 중앙 서버는? 한 번만 처리하면 된다.

말을 바꾸면, 확장성에 치명타를 안고 있는 서버 구조다. 블록체인 관련된 모임을 가보면 좀 실력있는 사람들은 모두 Scaling 이슈가 얼마나 해결되었냐를 쳐다보지, 코인 가격이 얼마만큼 폭락했는지 이야기하질 않는다 ㅋ

왜 블록체인에 사람들이 저렇게 열광하는지, 그게 좀 이상하다는 의심이 들기 시작하는가?

 

D. 데이터 소유권은 개인에게

요즘 개인정보보호법 때문에 유저의 활동 내역 데이터를 기업들이 활용하는 것에 대한 거부감, 그 거부감에 편승한 정부의 가이드라인 강화가 이쪽 업계에서 큰 화두가 되어 있다. 어차피 못 막는데, 미국에서도 하는데, 이상하게 적용하지 말고, 기술 개발을 방해하지 않는 차원에서… 와 같은 명목으로 유저의 활동 데이터를 기업들이 쓰는걸 눈감아주고 있는 판국인데, 블록체인은 언뜻보면 이 문제에 대한 완벽한 해결책이다. 유저 데이터는 유저만 갖는다. 기업은 소유권이 없고, 유저 스스로가 알아서 자신의 데이터를 보관하면 된다.

그런데, 블록체인은 자기 혼자만의 하드디스크에 데이터를 저장하는 방식이 아니라, 하드디스크 여러개를 연결해놓은 방식이라는 점에 주목해야 한다. 좀 더 쉽게 설명하기 위해서 토렌트를 예로 들어보자. 100명한테서 잘게 쪼갠 영화 파일을 다운받고 있는데, 어떤 악마같은 자식분이 파일 내용을 살짝 바꾼 다음 그 내용을 토렌트로 뿌리고 있다고 해 보자. 1시간동안 고생해서 영화를 다운 받았는데, 처음에 받았던 몇 명은 정상 영화 파일을 받아서 Security check을 피했을텐데, 어느 순간 그 악마가 파일 내용 일부를 바꾼 탓에 n명째 다운로더부터는 malware를 받고 있다면? 영화 파일을 여는 순간 내 컴퓨터가 해킹된다면?

블록체인에서는 얼마든지 가능한 이야기다. 모든 블록은 개인 소유이기 때문에, 자기 마음대로 고쳐쓰고 상대방에게 이상한 정보를 뿌리기 시작하면 전체 네트워크는 오염이 되거나, 오염이 되지 않더라도 확인 절차가 길어지기 때문에 처리 속도가 엄청나게 느려지게 된다.

그럼 그런 유저는 쫓아내면 되지 않냐고? 중앙 서버일 때는 쉬웠다. “강퇴” 한방으로 해결되니까. 근데 블록체인에서는? 모두가 똑같은 권한을 가진 참여자인데? 누가 결정하지? 도편추방제를 도입한다고 쳐도, 투표는 또 언제 할래? 만약에 그 유저가 자기 잘못이 아니라 바이러스에 오염되어서 억울한 케이스라면?

 

E. 업그레이드는 자율적으로

2016년 가을, 삼성 갤럭시 노트 7이 출시된지 한 달도 지나기 전에 자기 폰이 “폭발”했다고 주장하는 글들이 커뮤니티 여기저기에 올라오기 시작했다. 제조사는 유저 책임이라고 도망을 가다가 채 한 달이 지나기 전에 배터리 문제 or 설계 문제임을 인정하고, 대량 리콜 및 배터리 충전 차단 업데이트를 배포하기 시작했다.

당시 갤럭시 노트 7을 들고 있으면 비행기 탑승도 불가능했던 시절이기 때문에, 제조사에서는 리콜로 생기는 비용 및 상품 신뢰도 하락은 둘째 문제고, 또 터졌다는 뉴스가 그만나오도록 배터리 충전이라도 최대 70%, 80%로 차단해서 배터리가 완충되었을 때 터지는 사태를 막아야하는 다급함이 있었을 것이다.

그 때 외부 인터넷 망에 접속만 되어 있으면, 유저 동의도 받지않고 거의 반강제로 펌웨어가 업데이트 되었다.

블록체인에서는 같은 일이 가능할까?

데이터가 유저 소유인만큼, 업데이트도 유저의 의지에 달려있다. 이런 상황을 인지하고 있으면 새로 업데이트되는 펌웨어를 만드는 개발자들은 언제나 예전 버젼에서도 “충돌이 없는” 형태로 최신 버젼을 만들어야한다는 압박에 시달린다. 펌웨어 업데이트 한번하기 진짜 엄청 어려울 것이다.

 

3. 중앙 통제 시스템이 훠~얼~씬 간편하다

블록체인은 장점이 많은 서버 관리 체제, 보안 체제다. 하지만 위에서 봤다시피 그에 따른 부작용도 엄청나게 많다. 그럼에도 불구하고 블록체인 사업한다는 분들은 (특히 코인에 투자를 많이하신 분들은) 계속해서 블록체인으로 노래를 부르고 있다.

사실 금융권의 데이터 베이스는 거의 대부분 70, 80년대 스타일로 짜여져 있어서, 이걸 새로운 뭔가로 바꾼다는게 거의 불가능하다. 아마 금융권에서 회사 데이터 서버 운영하는 개발자 분들에게 블록체인 적용할 수 있도록 서버 갈아엎자고 그러면 그날부터 이직을 고민하기 시작할 것이다. 어찌어찌 인력을 확보해서 블록체인 도입을 위한 서버 업그레이드를 한다고해도, 엄청난 정보의 손실과 전환 비용이 후폭풍으로 따라올 것이 확실하다. 당장 허접한 블로그 홈페이지 하나 갈아엎는 것도 데이터 Loss 최소화하기 위해서 얼마나 많은 Trial and error 가 있었는지….

중앙 통제 시스템을 싫어하는 몇몇 산업의 관계자 분들을 만나보면, 블록체인이 무슨 요술봉인 줄 알고 계신다. 미국에는 이미 다 적용되었는데 한국은 시스템이 느리고 인력이 부족해서 안 된다고 하셨던 분을 꼭 미국에 한번 데려가서 견학시켜드리고 싶더라. 그 동네에서도 블록체인을 서버 시스템에 도입하는 회사는 극소수다. 저 위의 모든 문제들을 다 인지하고 있는 사람들, 혹은 그렇지 않더라도 새로운거 배우기 싫어하는 복지부동의 서버 개발자들을 설득해야하는 전환이기 때문이다.

그런면에서 본다면, 아마 가장 큰 문제는 블록체인 자체가 가지는 기술적인 제한이 아니라, 남들이 말하는대로 그대로 믿고 블록체인 노래를 부르고 있는 기업 고위직들, 블록체인 이야기 안 하면 시대에 뒤떨어지는 것처럼 무시하려는 풍조 같은 사회적인 원인이지 않을까 싶다. 글 초반부에 언급한대로 “머신러닝”, “딥러닝”, “인공지능”으로 buzzword를 바꿔가던 사람들은 자기가 트렌드를 잘 따라가는 “전문가”라는 이미지를 주고 싶었기 때문에 정작 이게 별 대수롭지 않은 비선형 함수 찾는 통계학 응용이라는 걸 모르는채로 넘어갔던 것과 하등 다를 바 없는 상황이 진행되고 있는 것이다.

정말, 거의 대부분의 기업들은 여전히 중앙 통제화된 서버 구조를 운영하는 편이 맞고, 설령 블록체인으로 서버 구조를 개편하는게 더 나을 수 있는 여지가 있는 산업도 위에 지적한 내용들 때문에 생기는 비용을 감당하기가 쉽지 않을 것이다.

중앙 통제 시스템이 정말 훠~얼~씬 간편하다.

 

나가며 – 그럼 어디에 써야?

“블록체인 = 코인”이라고 놓고, 어느 스타트업에서는 SNS 시스템을 블록체인으로 만든 다음, 유저들이 Like를 누르거나 comment를 달아서 글을 퍼뜨리면 코인을 주는 사업 모델을 만드는 걸 봤다. 일부러 코인을 받으려고 싫어하는데도 Like를 누르면 어떻게 할꺼냐, 그런 Malware 같은 글들은 어떻게 퇴출시킬꺼냐고 되물어 봤다. 뭔가 말도 안 되는 답변을 한참 늘어놓으면서 유저를 믿어야한다는 결론을 도출하던데, 당장 블록체인이 뭔지 모르지만 일단 트렌드 단어니까 무조건 입에 올리고 보는 수 만명의 “전문가”들을 보고서도 이해가 안 되는가? 유저를 믿을 수 있다면 전세계는 오래전부터 전쟁과 분쟁이 없는 평화상태를 유지했어야한다. 말을 바꾸면, 중앙의 개입은 어느 시스템이건 그 시스템을 제대로 돌아가도록 하기 위해서는 필수적인 요소다. 작은 정부 vs. 큰 정부 같은 논쟁은 할 수 있을지 몰라도, Anarchy vs. Central 같은 논쟁은 시스템의 효율성이라는 측면에서는 합리적인 논쟁 대상이 아니다.

그럼 정말 아무데도 쓸데가 없는건가? 블록체인이 쓰일데는 있는건가?

한번 시스템을 갖춰놓고나면 아주 오랫동안 안 바꿔도 되는 산업은 어디에 있을까? 그런 산업을 찾아보려 글 쓰기를 10분 정도 중단하고 고민해봤는데, 잘 모르겠다. 혹시나 알고 있으신 분이 있으면 아래 댓글로 꼭 답변을 주셨으면 좋겠다.

아, 돈은 찍어놓고나면 화폐개혁을 하지 않는 이상 바꿀일이 없긴 하네. 근데 그렇게 중앙 통제를 벗어나게 해 놓고 나면 금융위기가 왔을 때 누가 시장에 개입해서 금융시장을 안정화시킬 수 있을까?

 


위의 글에 나온 이미지는 링크에서 참조했습니다.

요약: 이번 보고서에서 저희는 사전 IPO 과정의 일환으로 볼 수 있게된 (혹은 유출된) 비트메인의 재정 관련 데이터를 검토 및 분석해 볼 것입니다. 데이터 상의 수치들을 통해 2017년 비트메인이 매우 높은 수익률과 현금 생성률을 달성했음을 알 수 있습니다. 그러나 현재는 손실을 입고 있을 것으로 예상됩니다. 또한 비트메인은 운용가능한 현금의 대부분을 비트코인캐시 매수에 사용하였고 그 결과 미화 3억 2천 8백만 달러의 시가평가 손실로 고충을 겪었습니다. 저희는 현재 IPO가 잘 진행되고 있더라도 앞으로의 순항을 위한 열쇠는 투자자 자본 분배이며, IPO를 위한 철처한 관리가 필요하다고 결론지었습니다.

IPO 과정

비트메인은 2018년 8월 말에 IPO 관련 서류를 홍콩 증권거래소에 제출할 것이며, 공개 상장 또한 8월 말로 예정되어 있습니다. 비트메인은 얼마 전 실시한 사전 IPO (pre-IPO)를 통해 미화 1백 4십억 달러에 달하는 자금을 모금했습니다. 이 점으로 미루어보아 저희는 비트메인이 본격적인 IPO 단계에서는 미화 2백억 달러의 가치를 가진 자금 조달을 위해 노력할 것으로 예상하고 있습니다.

사전 IPO 서류는 트위터 상에서 유출된 재정 데이터를 포함하여 전체적인 IPO 과정의 개요를 담고있습니다. 저희는 이번 보고서의 토대를 이루는 비트메인 IPO 문서의 진위성을 확신할만한 이유를 가지고 있습니다.

마이닝 업계 내 비트메인의 위치

분야 기업명 해당 분야 내 비트메인의 위치
칩 생산/제조 공장 TSMC, Samsung, Global Foundries, SMIC 해당 분야에서의 존재감 혹은 잠재력 없음.
ASIC 설계, 채굴기 조립 및 유통 Bitmain, Canaan Creative, Ebang, Innosilicon, Bitfury 해당 분야의 선두를 차지하고 있으며 비트메인의 주력 사업임. 비트메인의 주장에 따르면 2017년 암호화폐 시장 점유율의 85%를, 비트코인 채굴 시장의 시장 점유율의 77%를 차지했었다고 함.
마이닝 풀 운영 BTC.com, AntPool, BTC.TOP, Slush, ViaBTC & F2Pool 이 분야에서도 우위를 점하고 있음.  최대 규모의 마이닝 풀인 BTC.com과 Antpool을 비트메인이 소유하고 있으며, ViaBTC의 투자사이기도 함. 지난 6개월 간 이 3개의 마이닝 풀은 전 세계 시장 점유율의 약 48%를 차지함.
마이닝 팜 운영 Hive Blockchain, Genesis mining, Bitmain 2016년 비트메인은 해당 분야에서 가장 월등한 업체인 듯 했으나 이번 사전 IPO 문서를 통해 입지가 급격히 좁아지고 있음이 드러남. 자체 마이닝 운영 수익 중 마이닝 팜을 통한 수익이 2016년 18.4%에서 2018년 1분기 3.3%까지 하락함.

(출처: Bitmain pre-IPO documents, BitMEX Research)

IPO에 대한 수요가 있는가? 

위 표에서 볼 수 있 듯, 비트메인은 암호화폐 마이닝 분야의 대부분에서 탄탄하고 선두적인 입지를 확보하고 있습니다. 비트메인은 전 세계 블록체인 업계에서 가장 크고 수익성 높은 기업이며, 이 점은 투자자들에게 매력적으로 느껴질 것입니다.

지난 몇 년 혹은 몇 십년 간 수 많은 기술 분야 투자자들이 제각기 다른 방법으로 얻은 중요한 교훈은 항상 업계 1위 기업에 투자하라는 것입니다. 일반적으로 업계 1위 기업은 네트워크 효과 (network effects)를 통해 이익을 얻고, 그 결과 상대적으로 소규모의 경쟁사들은 실패하는 경향이 있습니다. 아래의 기업 목록은 이 기본적인 원리를 증명해줍니다:

분야 기업명
메시지 앱 Whatsapp, Line (일본), WeChat (중국)
검색 엔진 Google
합승 서비스 Uber
이커머스 Amazon (미국), Alibaba (중국)
음악 스트리밍 Spotify
온라인 동영상 스트리밍 Youtube

정당한 것인지의 여부를 떠나 현재 많은 사람들은 블록체인 산업을 차세대 인터넷 기반 기술 중 하나로 간주하고 있으며, 비트메인은 이 업계의 1위 기업입니다. 네트워크 효과 형식의 로직이 ASIC 설계와 유통에 적용될 수 있을지 확신할 수 없고, 기업의 몸집이 커짐에 따른 이점은 보다 더 전통적인 규모의 경제에 국한될 수도 있습니다. 따라서 저희는 암호화폐 마이닝을 기술적 측면에서 바라보는 것 뿐만 아니라 천연 자원을 위한 마이닝과 같은 에너지 집약적 산업의 시각에서 바라볼 수 있어야 한다고 생각합니다. 위 표의 각 분야에서 기업 규모가 주는 이익은 인터넷 기반의 네트워크에 비해 더 한정적입니다. 따라서 저희는 업계 1위의 암호화폐 기업에 투자하는 것이 무조건 옳다는 것에 동의하지 않으며, 오히려 순진한 투자전략일 수 있다고 생각합니다.

비트메인의 자체 마이닝 사업 하락세

위에서도 언급했듯, 비트메인 사전 IPO 문서에서 가장 흥미로운 부분 중 하나는 비트메인의 자체 마이닝 팜 사업이 급격한 하락세를 보였다는 사실입니다. 자체 마이닝 사업을 통한 수익이 현저히 감소하긴 했지만, 절대적인 관점에서 마이닝 수익은 2017년 250%까지 상승했습니다. 비록 948%의 성장률을 보인 마이닝 장비 판매량의 그늘에 가려져 빛을 보지 못했지만 말입니다.

비트메인 – 자체 마이닝 사업을 통한 수익

(출처: Bitmain pre-IPO documents, BitMEX Research)

저희는 하락세를 그리는 위 그래프가 갈수록 경쟁이 심화되고 마진은 낮아지는 사업 분야에서 벗어나기 위한 (상대적으로 말해서) 비트메인의 현명한 전략적 선택을 잘 보여준다고 생각합니다. 저희 시각에서 마이닝 공급 체인의 가치가 하락하여 경쟁이 가속화될 가능성이 높아졌고, 비트메인은 마이닝의 가치가 점차 커지고 있는 체인에 집중하는 현명한 움직임을 보여주었습니다. 독점적인 마이닝 기업이 한 발짝 물러났다는 점에서 이는 비트코인 탈중앙화를 위한 호재입니다. 저희는 이론적으로 블록을 만드는 풀을 선택하고, 가장 위에 위치할 블록을 선택하는 마이닝이 ASIC 설계와 유통보다 네트워크 보안에 더 중요하다고 생각합니다. 물론, ASIC 분야 내 비트메인의 힘과 독점적인 위치는 여천히 비트코인의 심각한 문제로 남아있습니다.

현재 예상되는 비트메인의 손실 

사전 IPO 문서에서 비트메인은 수익, 판매량 그리고 주요 마이닝 제품들의 각 총 수익 마진을 공개했습니다. 아래에 관련 데이터 표를 첨부했습니다. 해당 데이터를 통해 비트메인이 2017년 S9 모델을 미화 1백만 달러 넘게 판매했고 2018년 1분기동안에만 미화 0.7백만 달러 넘게 판매했음을 알 수 있습니다.

마이닝 제품 재무지표

2016년 2017년 2018년
1분기
비트멕스 추정치
(시가)
제품을 통한 수익 – 미화 1백만 달러 ($m)
S9 (Bitcoin) 98.1 1,347.4 1,225.9
S7 (Litecoin) 106.3
L3 (Litecoin) 0.9 421.6 344.0
D3 (Dash) 411.6
T9 (Bitcoin) 34.9 84.2
A3 (Siacoin) 76.8
V9 (Bitcoin)
기타 3.3 9.3 9.1
APM Power 13.6 104.8 78.7
합계 222.2 2,329.0 1,829.7
가격 – 미화 달러 ($)
S9 1,429.0 1,257.0 1,719.0 499.0
S7 593.0 212.0
L3 1,315.0 1,685.0 1,404.0 209.0
D3 1,581.0 179.0 176.0
T9 1,031.0 991.0
A3 1,431.0
V9 145.0
APM Power 108.0 110.0 95.0
총 수익 마진
S9 58.8% 55.7% 69.9% (11.6%)
S7 58.6%
L3 21.2% 71.0% 44.6% (133.8%)
D3 76.2% (108.8%) (113.8%)
T9 19.9% 49.7%
A3 78.3%
V9 (34.5%)
합계 57.9% 58.9% 61.9% 손실
거래 규모 (한 개 단위)
S9 68,672 1,071,901 713,158
S7 179,315
L3 676 250,181 245,007
D3 260,313
T9 33,885 84,932
A3 53,703
APM Power 125,513 952,785 828,194
합계 374,176 2,569,065 1,924,993

(출처: Bitmain pre-IPO documents, BitMEX Research, 비트메인 웹사이트)

공개된 2017년 총 수익 마친을 이용하여 저희는 각 마이닝 기계의 예상 원가를 계산했습니다. 이 가격이 변하지 않고 그대로라고 (비현실적일 수 있지만) 가정한다면, 저희는 비트메인 스토어의 최신 가격에 기반해 총 수익 마진을 계산할 수 있을 것입니다. 이러한 분석은 비트메인이 주력 상품인 S9 모델의 손실 수익 마진 11.6%와 L3 모델의 100%가 넘는 손실 수익 마진으로 현재 손실을 입고 있음을 의미합니다. 현실적인 비용이 줄어들어 나쁜 상황이 아닐 수도 있지만, 저희는 비트메인이 현재 엄청난 손실을 내고 있다고 생각합니다.

이 같이 저렴한 가격은 비트메인의 의도적 전략으로 판매량이 낮아 경제적 어려움을 경험하게 함으로써 경쟁을 약화시킬 수 있습니다. 저희는 이것이 IPO 결정의 주요 원동력이 된 열쇠 중 하나라고 생각합니다. 성공적인 IPO는 이 전략을 이어나가기 위한 원동력이 될 수 있고, 경쟁사가 먼저 IPO를 실시함으로써 얻을 수 있는 이익을 차단할 수 있습니다.

이러한 낮은 가격과 명백한 손실의 이유는 비트메인이 대차대조표 상에 너무 많은 재고품을 보유하고 있기 때문일 수 있습니다. 2018년 3월 비트메인은 장부 상 미화 12억 달러의 재고를 보유하고  있었고, 이는 2017년 총 판매량의 52%에 달하는 수치입니다. 이로 인해 비트메인은 향후 손실 가능성과 손실을 내고 있는 판매량이 적힌 재고 목록을 써내려가면서 고통을 겪어야 했을 것입니다.

운영용 유동 현금과 대차대조표의 사용

사전 IPO 문서에는 대차대조표 요약 문서가 포함되어 있었습니다. 분석 결과, 비트메인의 긍정적인 부분은 채무가 없다는 것과 2017년에 현금 생산성이 매우 높았다는 것입니다. 부정적인 부분은 다음과 같습니다:

  1. 2017년 총 미화 8억 6천 6백만 달러에 이르는 거액의 선납금을 TSMC 사에게 지급했고, 그 결과 비트메인의 영업 자본 상황이 악화됨;
  2. 미화 12억 달러에 달하는 재고품 (최고 연간 판매량의 50% 이상에 해당)은 과잉 생산을 반증함;
  3. 비트메인 유동 현금의 주요 사용처를 보여주는 미화 12억 달러를 기반으로 한 대규모 알트코인 포트폴리오.
대차대조표 –
단위 미화 1백만 달러 (US$ million)
2016년 2017년 2018년
1분기
비트멕스 추정치
(현 시세)
암호화폐 종류
Bitcoin Cash 673.5 887.5      558.7
Bitcoin 69.1 216.1 148.2      153.1
Litecoin 2.2 49.0 51.2         56.1
Dash 103.0 103.4         55.0
Ethereum 0.6 0.8           0.3
기타 암호화폐 (40.0) (336.7) (18.7)            –
총 암호화폐 자산     31.3      705.5     1,172.4      823.2
고정 자산    54.0 355.7 175.7
기타 자산   2.4  2.7   3.0
TSMC 선납금     42.7      866.0 666.0
미수금              7.7   66.4 167.4
재고품     61.9   1,034.1     1,243.8
현금 18.2 60.6 104.9
총 자산 218.2   3,091.0     3,533.2
부채      81.3   1,638.3 896.1
순 자산 136.9   1,452.7     2,637.1

(출처: Bitmain pre-IPO documents, BitMEX Research, Bitfinex 가격 참고)

(공지사항: 추정치는 2018년 8월 28일 가격 기준, 암호화폐 보유량은 2018년 3월 31일 기준임)

비트메인의 주요 자산 중 하나는 2018년 3월에 미화 12억 달러에 달하는 (가격 기준) 암호화폐 포트폴리오입니다. 2018년 3월, 비트메인이 보유한 전체 암호화폐 중 1백만 개가 비트코인 캐시임이 드러났습니다. 알트코인 포트폴리오의 시장 가치는 비트메인이 투자를 시작한 이후로 줄곧 하락했습니다. 아래의 도표가 보여주듯 거의 모든 손실의 원인은 비트코인 캐시였습니다.

비트메인의 암호화폐 투자 – 원가 대비 가치 변동 – 단위 미화 1백만 달러 ($ million)

(출처: Bitmain pre-IPO documents, BitMEX Research, Bitfinex 가격 참고)

(공지사항: 가격은 2018년 8월 28일 기준, 암호화폐 보유량은 2018년 3월 31일 기준. 위 도표는 암호화폐 보유량이 변하지 않았을 경우를 가정한 것임)

아래의 도표가 보여주듯 비트메인의 비트코인 캐시 투자는 2017년 운영용 유동 현금의 69%를 비트코인 캐시 구매에 사용했을 정도로 그 규모가 매우 컸습니다. 조금 과장된 이야기일 수도 있지만, 이 비트코인 캐시의 일부는 비트코인 프리 포크 (pre-fork) 과정에서 갈라져 나온 것일 수도 있습니다. 이 수치는 1,021,316개의 비트코인 캐시 중 71,560개가 위와 같은 방식으로 생성되었을 수 있음을 의미합니다.

2017년도 비트메인의 유동 현금 사용 – 단위 미화 1백만 달러 ($m)

(출처: Bitmain pre-IPO documents, BitMEX Research)

현재 비트메인의 상황은 위의 도표가 보여주는 것보다 훨씬 더 심각합니다. 비트메인은 2017년 유동 현금의 대부분을 비트코인 캐시에 사용했을뿐만 아니라 역대 운영용 유동 현금 중 가장 많은 자금을 비트코인 캐시 구매에 사용했습니다. 사전 IPO 문서는 비트메인이 2016년에 유동 현금을 전혀 생성하지 못했고, 2018년 1분기에는 미화 2천 5백만 달러의 유동 현금만을 생성했음을 보여줍니다 (해당 수치는 TSMC에 지급한 거액의 선납금 때문일 수도 있습니다).

비트메인의 유동 현금 – 단위 미화 1백만 달러 ($m)

(출처: Bitmain pre-IPO documents, BitMEX Research)

어떤 면에서 이 문제는 비트메인에게 전혀 중요하지 않습니다. 비트메인은 위험 자산에 투자했고, 그 위험성을 알고 있었습니다. 그러나 상장 기업의 경우 상황은 달라집니다. 투자자들은 기업이 핵심적이고 안정적인 사업에 투자하거나 투자자들에게 수익을 분배해주기를 원합니다. 또한, 홍콩의 거버넌스 (governance)에 대한 저희의 기대가 너무 높은 것일 수도 있습니다.

비트메인이 IPO를 실시하는 이유는? 

저희는 IPO의 동기가 된 주요 요인이 비트메인의 경쟁사들이 IPO를 계획하고 있고, 비트메인의 손실 내역이 보여주듯 이 산업의 경쟁이 매우 심해지고 있기 때문이라고 생각합니다. 경쟁사인  Canaan Creative사 또한 IPO 계획을 가지고 있으며 비트메인은 아마 일말의 자금 조달상 이점을 허락하지 않을 것입니다. 비트메인은 다른 마이닝 업체와 마찬가지로 Canaan사에 투자될 수도 있는 자본 풀에 있는 자금으로 IPO를 해야합니다. 따라서 이는 가격 저하를 위한 보완책이 될 것입니다.

비트메인이 IPO를 실시한 또 다른 이유는 아마도 운영용 유동 현금의 대부분을 비트코인 캐시에 투자하고 난 후 대차 대조표를 강화하기 위해서 일 것입니다. 비트메인은 2018년 3월 대차 대조표 상 미화 약 1억 5백만 달러의 현금을 보유하고 있었는데, 비트코인 캐시를 대량으로 구매하지 않았다면 이 금액은 미화 1십억 달러가 되었을 것입니다. 이와 더불어 비즈니스는 거액의 현금을 필요로 합니다. 예를 들어 TSMC사가 요구한 선납금은 2017년 미화 8억 6천 6백만 달러를 기록했습니다.

비트메인의 기술적 능력에 대한 논쟁 

비트메인의 경영 규모와 제품
성능에 필적할 기업은 없다 
비트메인은 업계 1위 자리를
잃어가고 있으며, 지난 2년간
채굴기의 성능을 향상시키지 않았다
  • 최근 경쟁사들이 비트메인 제품보다 더 효율적인 채굴기를 출시한 것은 사실이지만 이는 빙산의 일각일 뿐입니다.
    지난 27개월 간의 수치를 보면 비트메인은 S9 모델 190만대를 포함해 총 300만대의 채굴기를 판매했습니다. 이와 같은 규모로 채굴기를 판매할 능력을 가진 경쟁사는 없습니다. 경쟁사의 연간 최고 판매량은 몇 십만대에 그칠 뿐입니다
  • 이와 동시에 경쟁사의 채굴기가 더 효율적이라고 해도 비트메인의 S9 모델이 훨씬 더 믿을만하고 해시래이트의 변동폭이 적습니다
  • 예를 들어, 공식적인 수치에 따르면 Dragonmint사의 T1 모델이 더 효율적이지만 해시래이트 변동률은 예상치보다 높았습니다. 이러한 제품은 비용절감을 목표로 예측 기능을 가진 제품을 필요로하는 마진이 낮은 마이닝 팜 운영자들에겐 적합하지 않습니다
  • 비트메인은 업계 최대의 기업이며, 가격을 낮추고 있습니다. 가격 저하로 인해 다른 ASIC 설계 기업들은 엄청난 재정적 압박에 시달리고 있습니다.
    그러나 비트메인은 이미 실리콘 밸리 내 최고의 벤처 캐피탈로부터 투자를 받았고, 앞으로 있을 IPO도 향후 몇 년 간 비트메인의 독점적 위치를 보장해줄 것입니다.
  • 2015년 12월 출시된 비트메인의 S9 모델은 16나노미터에 110W/TH의 전력효율을 가진 채굴기입니다. 그러나 비트메인은 S9 이후 비트코인 채굴기의 성능을 혁신적으로 향상시키지 못했습니다. 무려 2년 반이 넘는 시간 동안 말입니다
  • 2017년 초 부터 비트메인은 효율성 높은 3개의 비트코인 마이닝 칩 출시에 심혈을 기울였습니다. 각각 16나노미터, 12나노미터, 가장 최근인 2018년 3월에 출시된 칩은 10나노미터였습니다. 미화 수억 달러의 개발 비용을 쏟아부었지만 3개의 칩 모두 좋은 반응을 얻지 못했습니다. 비트메인이 설계한 반도체 제조업체인 TSMC사 조차도 비트메인의 투자 전략이 지나치게 낙관적이라고 밝혔고, 이 점이 거액의 선납금을 요구한 이유 중 하나일 수도 있습니다
  • 이 실패의 결과, 경쟁사들은 더 좋은 채굴기를 생산하게 되었습니다. 현재Innosilicon사의 T2 모델과 ShenMA사의 M10 모델은 S9 모델보다 효율적이며, 각각 80W/TH과 65W/TH의 성능을 갖고 있습니다
  • 비트메인은 전직 설계 책임자인 Yang Zuoxing 박사와 같은 핵심 직원이 회사를 떠나면서 기술적 감각을 잃었습니다. Yang 박사는 비트메인에 의해 특허 침해 혐의로 고소당한 경쟁 마이닝 업체를 설립했습니다
  • 혁신 혹은 더 향상된 성능의 장비를 생산할 능력없이 비트메인이 제품을 판매할 수 있는 유일한 방법은 독점적인 시장 포지션을 잃을 때가지 가격을 낮추는 것 뿐입니다
  • 몇몇 사람들은 이 심각한 상황을 비트메인이 싱가폴 정부 투자 펀드로부터 투자를 받았다고 투자자들을 오해하게 만들었기 때문이라고 주장합니다. 비록 비트메인이 위의 방법대로 투자자들을 오해하게 만들었다는 설득력있는 증거는 보지 못했지만 말입니다

비트메인의 기술적 능력을 둘러싼 논쟁은 어느 방향으로나 흐를 수 있으며, 진실은 언제든 중립적인위치에 놓일 수 있습니다. 하지만 확실한 한 가지는 수 많은 마이닝 업체들인 IPO를 통해 상장된다면, 업계의 전반적인 상황은 훨씬 덜 음지화될 것이고 이는 암호화폐 커뮤니티에 엄청나게 긍정적인 효과를 가져다 줄 것입니다.

결론

어떤 면에서는 과잉생산과 상승장에서 대량의 투기성 알트코인을 구매한 것과 같은 비트메인의 최대 실수 중 일부는 마이닝 업체 관리 팀의 전형적 행태와 다소 유사성을 보입니다. 예를 들어, 금 채굴 업체는 종종 비싼 자산을 상승장에 투자하고, 저렴한 자산을 하락장에 투자하지 않습니다. 이러한 업체들을 비난하는 것은 불공평한 일일지도 모릅니다. 주식을 보유한 헤지 펀드와 기관 투자자들은 위와 같은 경우 그들의 잘못이 아닐 때가 더 많습니다. 탐욕, 두려움 그리고 시장 움직임의 정서는 우리 모두에게 영향을 줍니다. 따라서 비트메인이 실수를 했다고 해도 여러면에서 그 실수들은 특이하거나 예상치 못한 것들이 아닙니다.

전에 이 말을 들어보셨을거라 확신하지만, “암호화폐는 바로 여기 있습니다”. 저희는 이러한 환경에서 비트메인이 업계 최고의 기업 중 하나가 될 수 있는 요소들을 가지고 있다고 생각합니다. 향후 몇 십년 동안 높은 주주 수익을 보장한다면 비트메인은 전설적인 암호화폐 기업이 될 수 있을 것입니다. 그러나 이를 달성하기 위해서는 (이것은 생각보다 훨씬 어려운 일입니다) 비트메인 관리팀이 회사 자원 관리 능력을 향상시켜야합니다. 회사가 상장되고 나면 변동성 높고 예측할 수 없는 시장 속에서 자본 분배 결정은 매우 어려워지고, 그 결과 시장 정서가 많이 개입된 투자 결정에 영향을 미칠 수도 있을 것입니다.

모 게임사에서 데이터 분석(?)을 한다는 팀에 있는 개발자 친구를 만났다. 아무리 학부시절 절친이어도, 오랜만에 만나니까 회사 내에서 무슨 일을 하고 있을지 좀 알고 가야지 실례가 아닐 것 같아서 이래저래 구글링을 좀 해 봤다.

언론에 공개된 내용만 봤을 때는, 좋은 회사고, 훌륭한 목적을 가진 부서라고 보였지만, 그 팀의 수장이라는 사람부터 사내의 데이터 “분석”을 한다는 사람들의 스펙과 발자취(?)를 봤을 때는, 모델링을 할 수 있는 사람들의 모임이 아니라, Data Analyst들과 Data Engineer들로 꾸려진 팀이라는 느낌을 받았다.

아니나 다를까, 개발자 친구를 만나니 회사 내에서 하는 데이터 “작업”이라는 것들이 얼마나 단순한지에 대한 불평불만이 막 쏟아지더라.

이런게 정말 데이터 “작업”이라면, 그 분들 지원해주는 개발자 하느니 그냥 직접 게임 만드는 개발자로 사는게 더 낫지 않냐고, 도대체 데이터 사이언스라는 건 왜 필요한거냐, 무슨 성과가 실제로 있냐는 폭풍 디스를 들었다.

그 중에서 제일 기억에 남는 말이,

“그 타게팅 광고한다는거, 요새 페북이 픽셀이라는거도 제공해주고, 그냥 단순히 캐쉬에 있는 정보 비슷한거 매칭해주는 수준 아냐? 0.018% 반응율이 0.02%로 올라가는걸로 뭐가 대단하다고 하는건지 도저히 이해가 안 된다고.”

“데이터 분석한다는 석사, 박사 나온 사람들이 우리회사에서 하는 일이 말야, 그냥 우리가 학부 때 SPSS로 숙제 내던 걸 그냥 Python 이나 R 코드로 치는 수준 밖에 안 되던데? 진짜 그게 다야?”

는 불평이었다.

 

반박 1 – 반응율이 0.0x%가 아니라 1% 이상이라면?

필자가 Senior Data Scientist로 재직했던 Criteo라는 회사가 잡서칭하던 당시 필자의 손바닥 위에 놓고 고민했던 글로벌 Top Tier IT 펌들과는 네임밸류에서 꽤나 격차가 있던 회사다. 보통의 한국 사람이라면 설령 일이 자기 입맛에 안 맞더라도 유명한 회사에 들어갔겠지만, 필자는 Criteo의 타게팅 광고 모델이 다른 회사들보다 압도적으로 좋다는 여러 Record를 듣고 맘을 바꿔 먹었었다.

어느 정도 차이가 나나면, 음란 광고, 보상성 광고 등의 예외를 제외하고 우리나라에서 디스플레이 광고 클릭율 (CTR, Click-Through-Rate)이 가장 높다고 생각되는 광고 지면이 N사 포털의 초기화면 좌측 가로 상단 배너다. 지난 대선에 그 지면에 여러 후보들이 경쟁적으로 자기 슬로건을 노출하더라. 업계 소문에 따르면 그 지면의 평균 CTR이 0.1% 정도라고 알려져있다. (저 친구네가 0.0x% 근처에서 놀고 있는게 놀라운 일이 아니다.)

구글을 비롯한 여타의 타게팅 광고 서비스하는 회사들의 평균 CTR이 0.5% 정도라고 하는데, 필자가 Criteo 재직 중에 CTR이 1%가 안 나오면 도대체 무슨 문제일까 배경조사를 해야했었다. 대부분의 문제는 설정상의 오류였고, 가끔은 나라별, 광고주별로 특이하게 CTR이 낮고, 전환율이 낮다는 이유로 타게팅 모델이 국가별, 광고주별로 어떻게 다르게 적용되어야할까 고민한 내용을 다른 Data Scientist들과 공유하기도 했다. (이게 Data Scientist의 일이니까)

그만두고 나온 회사를 너무 띄워주고 있는 것 같기는한데, 그 회사는 CTR이 높다는 걸로 홍보하는게 아니라, 그렇게 광고 찍고 들어온 유저가 구매전환 (CVR, Conversion Rate)이 높다는 걸로 홍보하는 회사고, 그 쪽 정보는 외부 언론에서 찾을 수 없는 정보니 공개하지 않는 걸로 회사 기밀 보호의 의무를 지키도록 하자. (위에 공개한 정보는 여기, 여기, 여기, 여기에서 확인할 수 있다. 우리회사 상품 출시되면 효율 더 높게 나올테니 그 땐 진짜 홍보해야지ㅋ)

“니가 0.018%와 0.02%에서 놀고 있을 때, 글로벌 Top Tier IT 회사들은 0.5%에서 놀고있고, 내가 다녔던 회사는 1% 안 되면 Alert이었다.”

는 이야기를 하니, 그 친구 눈이 똥~그랗게 되더라.

필자도 실리콘밸리에서 잡서칭하던 당시에 그 친구와 똑같은 반응을 보였던 적이 있기 때문에 그 충격을 꽤나 잘 이해하고 있다고 생각한다.

 

반박 2 – SPSS로 할 수 있는 걸 굳이 Python 코드로 쳐야되냐?

평생동안 SAS와 SPSS라는 통계 패키지를 써 본적이 딱 2번씩 밖에 없다. 학부 시절 어느 전략 컨설팅 회사 인턴하면서, IBD Analyst시절 외부에서 받은 데이터 처리하려고, MIT에서 머신러닝 수업 숙제용으로 받은 테라 데이터 재정리하려고, 그리고 박사시절 교수님 프로젝트 도와드리느라고.

필자의 이용 목적에 맞았다면 일부러라도 배워서 썼을텐데, 대용량 데이터 정리(?) 목적 이외에 다른 용도가 보이질 않아서 더 이상 그 프로그램들을 다룬 적이 없다.

그런데 만약에 당신이 SPSS로 할 수 있는 걸 굳이 Python 코드로 치고 있었다면, SPSS를 잘 활용하지 못했거나, Python을 잘못 활용하고 있다는 뜻일 것이다.

Support Vector Machine Python code example 이라는 검색어로 구글링을 한번 해 보시라.

수 없이 많은 Python 코드 예제를 블로그에서, Github에서 볼 수 있다. 필자는 그런 코드 중 일부를 코드 설명하는 시간 초반부에 아주 빠르게 개념 설명하는 용으로만 쓴다. 저건 회사 업무를 할 수 있는 수준의 코드가 아니라는 걸 너무나도 잘 알고 있기 때문이다. (그런 코드 복사해서 돈 받는 강의하는 사람들 쫓아내겠다고 계속 강의를 하고 있기도 하다.)

수업에 왔던 국내 유수의 대기업 데이터 관련 업무 한다는 분들 대다수가 수업 시간에 충격을 먹고 떠나시는 것도 같은 이유일 것이다. 자기가 회사에서 직, 간접적으로 배웠던 것과 차원이 다르게 느껴지는 데이터 모델링 이야기를 들었는데, 그걸 쉽게 그 자리에서 바로 이해하기는 매우 어려울 것이라고 생각한다. 박사 학위를 했다고 해도, 자기 학문에서 데이터 모델링하는 범위 밖으로 외연을 확장시킬 수 있는 능력을 갖춘 사람이 얼마나 있으며, 또 그런 사람들이 연구소 말고 대기업에 얼마나 가 있을 것이고, 대기업에 갔다면 열정을 갖고 그런 모델을 만들고 있을 확률은 또 얼마나 될까? 너무 비관적인가?

왜 실리콘 밸리에서 R이나 Python 같은 Script형 언어를 할 수 있는 걸 Data Scientist의 기본 스킬셋이라고 생각할까?

SAS나 SPSS로 못하는 작업, 그런 통계 패키지로 돌려보기에는 매우 귀찮고 어려운 작업들을 Script형 언어로는 쉽고, 빠르고, 더 체계적인 방식으로 처리할 수 있다는 사실을 알기 때문이다.

“우리가 쓴 논문용으로 Customization은 커녕, 기본 함수도 지원해주기 쉽지 않을 것 같다”

박사 시절, 거시경제학 논문 쓰던 친구들과 Bellman equation으로 거시 모델링해놓고 데이터 입력하면서 발생하는 문제들 (ex. Calibration)로 농담따먹기한 적이 있었는데, 어느 친구가 STATA*에도 이거 지원해주면 얼마나 편할까라고 우스갯소리를 하니, 다른 친구들이 “우리가 쓴 논문용으로 Customization은 커녕, 기본 Bellman 함수도 STATA에서 지원해주기 쉽지 않을 것 같다”는 식으로 반응했었다.

*STATA는 SAS, SPSS와 유사한 통계 패키지 프로그램이다. 주로 사회학, Softcore 경제학 연구자들이 이용한다.

R이나 Python 코드를 쓰기 때문에 Data Scientist가 아니라, Data Science를 하고 있기 때문에 Data Scientist다.

 

나가며 – 공돌이 Mind의 한계

그 친구의 불만을 식혀줄 방법은 뭐가 있을까?

회사 안에 정말 뛰어난 Data Science 모델링을 할 수 있는 사람이 최소한 한 명, 운이 좋다면 둘이 있어서 서로 경쟁 & 협조 하는 모습을 볼 수 있어야 그 친구가 새로운 세상이 있다는 것도 깨닫고, 더 노력하면 다른 성과를 얻을 수 있다는 희망도 갖게 될 것이다. 불행히도 한국에서 그런 내공을 갖추신 분들을 아직까지 만나진 못해서 딱히 어디로 이직해봐라는 말도 못 해주겠더라.

필자가 수업에서 0.0x% 리그와 1% 리그의 차이는 뭔가 “쌈박한” or “계산비용이 많이드는” 알고리즘에서 나오는 것이 아니라, 데이터를 어떻게 기발하게 쓰느냐에 달려있다고 설명해준다. 글로벌 Top Tier 회사들이 쓰는 모델이 Logistic regression이라는 논문 기억나시는가? 남들은 그냥 A가 1번, B가 2번, C가 3번 있었다는 단순한 데이터 값만 보는데, A와 B의 순서가 어떻게 되었는지, A, B, C 전체에서 출발점과 최종 도착점은 각각 어디였는지 같은 정보들이 훨씬 더 중요하고, 그런 값들을 입력 변수로 활용하는게 모델링을 위해서 데이터를 “전처리”하는 거다.

지금까지 한국와서 “개발자” or “공돌이”들을 만나면서 느낀 작은 결론은, 필자가 말하는 방식으로 데이터를 전처리하는 작업에 대한 강한 거부감이 공대 출신들 머리 속에 박혀 있다는 것이다. 그들은 언제나 자동화된 알고리즘으로, 그게 어렵다면 계산비용을 많이 추가해서라도 문제를 “자동적”으로 해결하려고하지, 인간의 적절한 판단을 활용해서 모델을 업그레이드 시키겠다는 생각을 안 하거나 못 하더라.

근데, 각각의 분과 학문이 몇 십년간 쌓아올린 지식의 집결체인 “모델”이라는 걸 그렇게 자동화된 알고리즘으로 다 찾아낼 수 없다. 니네가 의지하는 그 머신러닝이라는거도 그냥 통계학일 뿐이니까.

경제학과 교수들한테 경멸에 가까운 무시당하면서도 통계학 모르니까 “무작정” 모든 변수 다 집어넣어 놓고 R-squared 값 높은 조합만 찾아다니는 사회학자나, 그냥 자동화 알고리즘이 다 알아서 해 주겠지, 복잡한 통계학, 각 학문별 모델이란걸 알게 뭐야~ 라고 생각하는 개발자들 사이에 무슨 차이가 있나? 쓰는 언어가 English vs. Java 인 것 말고?

저희 비트멕스의 장점 중 하나는 금융 혁신을 선도한다는 점입니다. 저희는 금융시장에서 유일무이한 XBTUSD 무기한 스왑 상품을 만들었습니다. 유동성이 10배 오르면서 XBTUSD는 현재 전세계에서 가장 유동성 높은 암호화폐 상품이 되었고 6개의 암호화페 시장은 이를 모방했습니다.

이러한 성공의 이면에는 동일한 비트코인 마진을 가진 무기한 스왑을 콴도 가격책정 모델을 통해 이더리움 / 미화 달러에 복제하는 방법을 개발한 비트멕스의 노력이 있었습니다. 이 상품이 바로 ETHUSD 무기한 스왑입니다. 단 2주동안, 이 상품은 전세계에서 가장 유동성 높은 이더리움 / 미화 달러 (혹은 미화 달러 상당) 페어가 되었고, ETH/USD 가격 페어에 투자 혹은 헤징 시 필수적인 상품임을 증명했습니다.

최근 24시간 동안, 비트멕스에서 이더리움 8십 만개 상당의 ETHUSD 스왑이 거래되었습니다. 두 번째로 유동성이 높은 ETH/USD와 ETH/USDT 시장인 비트파이넥스와 바이낸스의 거래량은 같은 기간 각각 이더리움 5십 만개 이하에 그쳤습니다.

여러분께서 아직 이 상품의 가격책정이나 거래에 대한 확신이 들지 않으신다면, 저희가 지난 주 보내드린 헤징투자에 관한 여러 상황을 적용한 예제가 담긴 뉴스레터를 다시 한 번 확인해주시기 바랍니다. 또한, 여러분의 이해를 돕기위해 저희는 다운로드 가능한 수식이 걸린 스프레드 시트를 제작했습니다.

요약: 저희는 한 마이너가 2009년 비트코인을 지배했던 정도에 대해 살펴보겠습니다. 저희는 블록체인 내 엑스트라 논스 (ExtraNonce) 값의 증가가 잠재적으로 다른 블록을 동일한 마이너에 연결시키는 데 사용될 수 있다는 것을 발견한 Sergio Demian Lerner의 2013년 분석 보고서를 검토했습니다. 저희는 그의 분석을 기반으로 하여 저희가 제시한 증거가 다른 가정들 보다 훨씬 덜 탄탄할지라도 2009년 독점적인 단일 마이너가 7십만 개의 비트코인을 생산해낸 데에는 합리적인 이유가 있을 것이라 결론지었습니다. 비록 저희의 분석은 그 자체로 불완전하고 이 문제에 접근하는 완벽한 방식도 없지만 말입니다.

2009년에 채굴된 비트코인 블록 – 엑스트라 논스 vs 블록 헤이트


(출처: BitMEX Research, Bitcoin blockchain)

2009년 독점적인 마이너 (dominant miner)에 대한 논쟁

2013년 4월 초부터 블록체인 연구가인 Sergio Demian Lerner는 2009년에 사토시가 비트코인 1백만 개를 채굴했다고 주장하기 시작했습니다. Sergio는 2009년 내내 해시래이트는 초당 약 7백만 정도로 낮았고 이는 한 명의 마이너가 매우 독점적으로 마이닝을 하는 증거라는 논리를 일관성있게 주장했습니다. 동시에 이 해시래이트는 비트코인 마이닝 첫 14일 동안의 해시래이트와 거의 일치했습니다. Sergio는 사토시가 해당 기간 동안의 유일한 마이너였을 것이라고 추측합니다. 그러나 커뮤니티 내 대다수는 Sergio의 주장에 회의적입니다. 이들의 회의론은 다음의 주장들에 근거한 것으로 보입니다:

  1. 7 MH/초 추정치는 블록 타임스탬프에 기반한 것이므로 신뢰도가 떨어지며, 샘플 사이즈도 충분히 크지 않습니다
  2. 14일 동안 사토시가 혼자 유일하게 마이닝을 했다고 믿을만한 이유가 없습니다
  3. 많은 사람들이 14일 동안 스스로 마이닝한 것을 기억해냈습니다
  4. 하드웨어에 관한 Sergio의 가정은 잘못되었습니다

몇몇 사람들은 사토시가 초기 비트코인의 상당 부분을 마이닝했을 경우, 금전적 완전성 (monetary integrity)를 손상시킬 수 있는 일부 사람들의 눈 앞에서 Sergio의 주장을 일축하기 위해 편파적인 태도를 보일 가능성이 있습니다. 하지만 저희는 Sergio가 초기에 제시한 증거들은 다소 설득력이 떨어진다고 생각합니다.

충격 사건, 엑스트라 논스

몇 일 뒤, Sergio는 단일 마이너가 독점적으로 마이닝을 했다는 더 탄탄한 증거를 담은 훨씬 설득력있는 주장을 블로그에 게재했습니다. 마침내 커뮤니티 내의 다수가 그의 주장을 받아들였고 오늘날까지도 많은 사람들은 사토시가 약 1백만 개의 비트코인을 마이닝했다고 믿고 있습니다.

Sergio의 증거는 엑스트라 논스라 불리는 것을 중심으로 합니다. 엑스트라 논스는 합의 규칙 (consensus rules)의 일부가 아니며, 필드를 해석하는 공식 설명서가 없다는 점에서 비트코인 프로토콜의 일부가 아닙니다. 엑스트라 논스는 블록 헤더 (block header)내의 표준 논스 (standard nonce)가 모두 소모되고 나면 마이너에게 추가 엔트로피 (entropy)를 제공하기 위한 여러 번의 해싱 시도 후에 달라질 수 있는 코인베이스 (Coinbase) 트랜잭션의 영역입니다. 아래 그림이 보여주듯 엑스트라 논스가 달라짐에 따라 그 영향력은 머클 트리 (merkle tree)를 따라서 블록 헤더로 이동합니다. (2009년에는 네트워크가 트랜잭션에 사용되지 않았음으로 대부분의 블록에 코인베이스 트랜잭션만이 포함되었습니다.)

(비트코인 블록 구조의 예시 다이어그램)

Sergio는 엑스트라 논스를 y축으로 블록 헤이트를 x축으로 하는 아래의 그림을 발표했습니다 (그는 x축을 시간으로 잘못 설정했습니다). 이 그림은 일련의 경사 (slopes)들 속에서 시간에 따라 엑스트라 논스가 증가하는 것을 보여줍니다. 몇 개의 경사들은 (검정색으로 표시된) 비슷한 경사도를 보였으며, 겹치는 부분이 없었고 특정 블록 헤이트에 도달하고 나면 0으로 그 값이 떨어지지 않았습니다. 이는 곧 검정색으로 표시된 선들이 단일 마이너의 것이자 (사토시일 가능성이 있는) 그 마이너가 현재 약 1백만 개의 비트코인을 손에 쥐고 있다는 것을 의미합니다. 경사도와 블록 헤이트 그리고 중첩되는 부분의 부재와 같은 기술적인 주장은 인식 또는 평가하기가 매우 어렵지만, 저희는 이 그림이 그 자체로 아주 강력하고 설득력있는 근거라고 생각합니다.

(출처: Bitslog)

새로운 비트멕스 보고서, 독점적인 마이너에 대한 블록 분배

저희는 Sergio의 분석을 다시 한 번 살펴보기로 결정했습니다. 단, 저희의 목표는 명확한 단일 개체가 마이닝한 블록을 세어 모든 블록을 분배하는 것이었습니다. 그래프 상의 수많은 다른 부분들과 경사들 간의 관련성 때문에 이 작업은 쉽지 않았습니다. 따라서 정확한 분배는 불가능했습니다. 그 결과 저희의 분석 결과는 완벽하지 못했고, 저희는 통계적 분석, 난수 발생 프로그램 심지어는 블록 분배에 관한 매뉴얼 검토를 포함해 다양한 방법을 활용했습니다. 저희는 많은 실수를 범할 것이고, 저희의 방법론이 탄탄하고 과학적이라고 주장하지도 않을 것입니다. 그러나 저희가 아는 한, 이것은 2009년 모든 블록을 명백한 단일 개체에 속한 것으로 분배했는지 그 여부를 알아보는 첫 번째 시도입니다.

2009년 마이닝된 비트코인 블록 – 독점적인 마이너에게 분배된 양 – 엑스트라 논스 값 (y축) vs 블록 헤이트 (x축)

(출처: BitMEX Research, Bitcoin blockchain)

분배에 대한 분석

2009년 8월까지 저희는 Sergio의 결론에 동의했습니다. 8월까지 유사한 블록 헤이트와 경사도를 가진 경사 (slopes)는 22개였습니다. (4블록마다 엑스트라 논스 값이 증가하는 것을 발견할 수 있었습니다). 동시에 해당 경사들은 거의 겹치지 않았습니다. (아주 작은 정도의 중첩이 5개도 채 안 되는 블록에서 발생했지만 이는 단지 우연의 일치일 확률이 높습니다).

2009년 8월 이후로 이 패턴은 조금씩 무너졌습니다. 경사의 경사도가 상당히 달라졌습니다 (한 블록 당 1.1 논스에서 한 블록 당 10 논스까지). 동시에 경사의 블록 헤이트 또한 서로 달라졌고, 경사 간에 큰 격차가 생겼습니다. 따라서 위 이미지는 여전히 주목할만한 것으로 보이지만, 사토시가 유일한 마이너라는 증거는 저희의 의견으로는 다소 설득력이 떨어져 보입니다. 저희는 2009년 8월 이전과 이후의 수치를 포함한 아래의 결과를 제시했습니다.

분류 블록 개수 비트코인 개수
독점적인 마이너에게 분배된 양 14,815 740,750
적은 분배량 (2009년 8월 이후) 4,553 227,650
합계 19,368 968,400
분배되지 않은 양 16,920 846,000
총합 36,288 1,814,400

(출처: BitMEX Research, Bitcoin blockchain)

분석에 대한 논쟁

위 분석을 옹호하는 입장 위 분석은 설득력이 떨어진다는 입장
  • 위 이미지는 독점적인 마이너의 존재를 보여주는 것만으로도 매우 강력한 증거입니다. 비록 이를 통계학적으로 설명하는 것은 어려운 일이나 결론은 명확합니다.
  • 다수의 경사들은 다음의 특징을 가지고 있습니다:
    1. 서로 비슷한 경사도
    2. 유사한 블록 헤이트
    3. 한 경사가 끝나면 곧 다른 경사가 시작됨
    4. 경사들이 거의 중첩되지 않음
    5. 대다수 경사의 길이가 블록 수백 개를 합친 길이임
  • 여기에는 우연의 일치가 너무 많습니다. 따라서 다수의 블록이 단일 마이너에 의해 마이닝 되었다는 것은 아주 설득력있는 증거입니다
  • 물론 엑스트라 논스 분석이 흥미로운 사실을 보여주긴 하지만, 독점적인 마이너가 마이닝한 암호화폐의 수를 추정할 때는 기본적으로 쓸모가 없습니다. 각 경사에서 최대화된 블록의 수를 포함하는 분배 (allocation)을 실행할 때 사용하는 방법론은 분배를 위해 사용가능한 다른 매커니즘이 없기 때문에 필요합니다. 따라서 독점적인 마이너에게 분배된 블록의 개수는 극도로 부풀려졌습니다.
  • 본 분석은 논리상의 오류를 바탕으로 합니다. 어느 기간이든 엑스트라 논스에서 최대 점유율 또는 가장 급격한 증가율을 보이는 마이너가 적어도 1명은 있습니다. 또한 적어도 몇몇 유형의 경사들은 중첩되지 않습니다. 어쩌면 서로 다른 마이너의 경사들을 집단화 (Grouping)하는 것은 오해의 소지를 낳을 수 있고, 잠재적으로 잘못된 추론에 기반한 것입니다.
  • 경사들이 서로 유사하다고 해도 이는 각기 다른 마이너들이 비슷한 장비를 사용하고 있기 때문일 가능성이 있습니다. 개별 마이너들은 똑같은 패턴을 만들어낼 수 있는 동일한 소프트웨어나 인기있는 동일한 하드웨어를 작동시킬 수 있다는 점에서 독립적이지 않습니다.

결론

끝으로 2009년 독점적인 마이너에 대한 강력한 증거가 있었음에도 저희는 그것이 다수의 가정보다 훨씬 설득력이 떨어진다고 생각합니다. 백문이불여일견 즉, 한 번 보는 것이 천 번 듣는 것보다 낫다 (a picture is worth a thousand words)는 말이 있지만, 때로는 한 번 보는 것이 작은 오해를 불러 일으킬 수도 있습니다. 이 주장이 설득력있다 해도 저희는 이 증거가 독점적인 마이너가 1백만 개 보다 훨씬 적은 비트코인을 마이닝했을지 모른다는 주장만을 뒷받침해 줄 뿐이라고 생각합니다. 아마도 비트코인 6십만 개에서 7십만 개 정도가 더 정확한 예상치일 것입니다.

저희의 분석을 바탕으로 독점적인 마이너에게 분배한 블록 9을 사토시가 마이닝했다는 사실을 모두가 알고 있었지만, 이 글의 누구도 그 독점적인 마이너가 사토시인지 아닌지에 대해 언급하지 않았습니다. 하지만 이는 단지 11블록의 경사면에 있으므로 100퍼센트 확실한 결론은 아닙니다. 독점적인 마이너가 누구든지 간에 이미 열쇠를 잃어버렸거나 열쇠를 버렸을 가능성이 있습니다.

저희는 사토시의 말 중 유명한 한 구절을 인용하여 이 보고서를 끝내고자 합니다:

지갑은 옆으로 치워놓고 오래된 사본을 보관하는 대신 지갑을 삭제하는 이유는 무엇입니까? 여러분께서는 절대로 지갑을 삭제하시면 안됩니다.

(출처: Bitcointalk)

아마도 저희는 이 문맥에서 해당 인용문을 발췌한 듯 합니다…

비트코인 가격이 사상 최고치인 미화 2만 달러 선에서 70% 가까이 하락했습니다. 하락장세가 본격화 된 것입니다. 비트코인 가격의 최저치는 얼마이며, 또 그 시기는 언제일까요?

현 상황은 2015년의 하락장과 마찬가지로 마이너들이 에이식부스트 (ASICs)의 작동을 중지시킨 때의 비트코인 가격이 최저치 (the local bottom)가 될 것이라고 제 직감은 말하고 있습니다.

최근 하락장세의 범위는 미화 2백에서 2백 5십 달러 선이였습니다. 가격 하락과 동시에 다수의 유명 마이너들이 파산했습니다. KnC와 Spondoolies사가 특히 큰 피해를 입었습니다. 가장 놀라운 사실은 2015년 3월에 위와 같은 문제가 실제로 완화되었다는 것입니다. 당시는 가격 상승 7개월 전이었습니다. 하지만 이는 마이너들이 겪어야했던 고통의 정도를 보여줍니다.

이제 미 증권거래소 (SEC)의 상장지수펀드 (ETF) 승인과 같은 긍정적인 기폭제가 존재하지 않는다고 가정할 경우, 비트코인은 얼마까지 떨어질까요? 저는 마이너들이 언제 채굴기를 중지시키느냐가 관건이라고 생각합니다; 여기서부터 자연스럽게 비트코인의 생산가는 얼마인가? 하는 질문이 따라옵니다.

몇일 전, 저는 전세계에서 가장 큰 규모의 마이닝 설비 운영자 중의 한 사람과 채팅을 했습니다. 그는 저에게 중국 마이너들의 평균 전기 소비량이 1킬로와트 당 총 6~7센트라고 말했습니다. 이를 바탕으로 그는 마이너들이 운영방식을 바꾸어 더 저렴한 지역으로 채굴기를 옮기려 할 때 미화 5천 달러 선까지 가격이 하락하고, 마이너들이 채굴기 작동을 완전히 중지시켰을 때 미화 3천에서 4천 달러 선으로 가격이 하락할 것이라 예측했습니다.

그러나 이같이 부정확하고 개인적인 주장은 마이너들이 효율적으로 작동하지 않거나 2019년 전까지 상용화되지 않을 7나노미터 칩을 사용할 경우를 전제로 합니다. 비트메인 (Bitmain), 드래곤민트 ( Dragonmint) 그리고 GMO사는 이러한 채굴기를 설계하기 위해 앞다투어 경쟁하고 있습니다. 이 중 7나노미터 채굴기를 시장에 성공적으로 선보이는 기업은 평균 마이닝 팜의 생산가를 낮추고 구형 마이닝 장비의 수를 대폭 감소시킬 것입니다.

가격은 해시래이트를 결정하고 최종 손익분기점은 어려움이 실제로 완화되느냐의 여부에 따라 결정됩니다. 이는 해시래이트가 하락한 마이너들을 막기 위해 지속적인 가격 약세를 필요로 할 것입니다.

불안한 상황에는 IPO를 (When in Doubt, IPO)

업계 내 모든 이들의 관심이 비트메인의 기업공개 (IPO)에 쏠려있습니다. 기업의 초기 정체성 확립 시기가 지나가고 난 후의 공개 기업 (public company) 운영은 최선책이 아닐 수도 있습니다. 기업 IPO의 주목적 중 하나는 장기 투자자와 고용인 그리고 경영진이 몇 배로 높게 암호화폐를 현금화 할 수 있게 하기 위함입니다. 또한, 기업들은 자금 확장을 위한 노력의 일환으로 엄청난 양의 자본을 조달하기 위해 IPO를 실시합니다. 공개 기업이 된 이상, 회사 운영에 대한 철저한 감시 및 조사는 피할 수 없는 숙명이며, 잘못된 정보를 제출하면 몇 년 간 법정다툼에 휘말릴 수도 있습니다. 페이스북 CEO인 Mark Zuckerberg가 미 국회의원에 관해 아무것도 모른다는 이유로 비판받고 싶어할까요? 저는 테슬라 (Tesla)사가 공개 시장 (public market)에서 주식을 팔아 자금을 조달할 필요가 없었다면, CEO인 Elon은 기업공개 (IPO)를 하지 않았으리라 확신합니다.

비트메인은 암호화폐 업계에서 가장 중요하고 수익성 높은 기업입니다. 공개된 수치가 사실이라면, 비트메인은 2017년 한 해 동안 미화 2십억 달러 이상의 수익을 올렸습니다. 다수의 제조사들과 달리 비트메인의 고객은 주문에 대한 결제 대금을 선불로 지급합니다. 따라서 비트메인의 유일한 사전판매 비용은 주요 제조공장과 칩에 대한 계약금 뿐입니다.

비트메인은 황금알을 낳는 고수익 상품 (cash cow business)를 보유하고 있지만, 이제 IPO를 원합니다. 비트메인은 더이상 자금을 대거나 사업 확장을 위한 자본을 필요로 하지 않습니다. 연구 개발을 위한 충분한 자금을 보유하고 있기 때문입니다. 또한, 시장 점유율이 가장 높기 때문에 단가를 낮추기 위한 유통 채널도 필요치 않습니다. 이를 통해 내릴 수 있는 유일한 결론은 비트메인 측이 그들의 중단기 마이닝 수익률이 급격히 감소할 것이라 예상하고 있다는 것입니다.

비트메인이 시장에 인공지능 칩 (AI chip) 개발 전략을 선보인다 해도 변하지 않는 사실은 그들은 여전히 암호화폐 기업 (crypto company)에 불과하다는 것입니다. 엄청난 가격에 거래되는 암호화페 기업의 주식는 유사 업계의 비슷한 회사들의 주식에 비해 할인된 가격으로 판매됩니다.

저는 올해 매각된 폴로닉스 (Poloniex)와 비트스탬프 (Bitstamp) 거래소의 주가 수익률이 4배에서 6배라고 추정합니다. [비트스탬프의 매각이 확실한 것은 아니지만, 다수의 암호화폐 관련 언론매체는 2018년 초에 매각되었을 가능성이 크다고 보도했습니다]. 공공 거래소인 ICE (인터콘티넨탈 익스체인지)와 CME (시카고상품거래소)의 주가 수익률은 20배에서 30배입니다. 2017년 4분기와 같은 엄청난 암호화폐 상승장이 돌아온다면, 그 시기동안 공개 시장은 모든 빚을 청산할 것입니다. 하지만 그 시기가 비트코인 가격이 70%까지 떨어진 때는 아닙니다.

한 발 더 나아가 저는 마이닝 수익률이 급격히 감소하기 전에 시장의 정점에 서기 위해 비트메인이 여러 노력을 기울이는 중이라 예상하고 있습니다. 경영진은 비트코인 가격이 미화 5천 달러 혹은 그 이하로 계속 하락할 가능성이 있다는 견해를 갖고  있습니다. 위와 같은 상황에서 주력 상품인 S9 채굴기의 판매량은 급락할 것입니다. 그러나 IPO를 통해 현재의 수익은 탄탄해지고 하락장세 동안 다량의 현금을 보유할 수 있게됩니다. 이렇게 조달된 자금으로 비트메인은 재정적으로 여유롭지 못한 경쟁사들을 인수할 수 있습니다. 장세가 바뀌면 비트메인은 눈에 보이는 경쟁자 없이 선두에 서 있을 것입니다.

가격 상승 위험성 – 미 증권거래소의 상장지수펀드 승인
(Upside risk – SEC Approved ETF)

9월 말, 미 증권거래소 (SEC)는 상장지수펀드 (ETF) 지원 가능 수를 결정할 것입니다. 과연 그들은 대중의 압력에 굴복하게 될까요? 암호화폐는 가격이 70%까지 하락하는 동안 조차도 다른 어떤 것보다 훨씬 더 흥미로운 자산 계급 (asset class)이었습니다. 거래소와 자산 관리사 그리고 유명 투자은행들 모두 암호화폐 산업에 뛰어들기를 원합니다. 이를 막는 유일한 장애물은 규제가들입니다.
K-스트리트 (K-Street, 미국 로비 및 그 집단을 상징하는 용어)의 로비스트들은 얼마든지 미 국회의원들을 지구가 평평하며 우주의 중심이라고 믿게 만들 수 있습니다. 만일, 미 증권거래소 (SEC)에 대한 암호화폐 업계의 로비가 성공하고 상장지수펀드 (ETF)가 승인된다면, 쇼트 스퀴즈 (short squeeze) 투자자들을 주의해야합니다.

자칭 “데이터 사이언스” 학원 하나가 “강사” 모집 중이라고 메일이 왔었는데 (한 땐 이런 메일 여러번 왔는데, 요즘은 좀 뜸하더만…), “실제 데이터를 기반으로 하는 실무형 프로젝트 참여”를 목적으로 하는 기관이라고, 날더러 “강사”에 “지원”해라고 하더라.

뭐… 내가 왜 “지원”해야되는거지? 당신들이 pabii에 지원하시던가 ㅋㅋㅋ 근데 또 개발자들을 “강사”로 모셔놓고서는 “실무형”이라고 우기는 건 아니겠지? 이론을 (몰라서) 안 가르쳐놓고, 데이터만 넣으면 무조건 실무형이 된다고 우기는 그런 종류의 수업은 아니겠지?

 

실무형 프로젝트 참여

정말 “실무형 프로젝트 참여”에 관심이 있는 분들은 모델링 수업에 오시면 된다. 모델링 수업 수강자들 대상으로 3-4개월짜리 Hackathon(?) 같은 걸 진행해볼까 생각중이다. 적으면 1-2명, 많으면 3-4명이 팀, 주제, 나름의 데이터와 모델 설계를 들고 오시면, 필요한 코멘트를 주고, 3-4개월간 계속해서 지도 편달을 해드릴 생각이다. 향후에 어떻게 진행될지는 모르겠지만, 1년에 2차례 정도 모델링 강좌를 Hackaton과 연계해서 운영할 계획에 있다.

모델링 수업 수강자를 대상으로 하는 이유는 당연히 데이터 사이언스에 대한 기본적인 지식모델링이 어떤 개념인지 잘 이해하신 분들일테니 퀄리티 컨트롤이 되었다고 생각하기 때문이다. 미안한 말이지만, 나도 바쁜 사람이고, 성격이 좋은 편이 못 되어서 불가능에 가까워 보이는 주제를 들고 와 놓고는 날 더러 대신 해달라는 식으로 나오거나, 코멘트를 줬는데 무슨 말인지 못 알아먹는 수강생들을 상대하고 싶진 않다.

참고로 데이터 사이언스 메인 강좌의 수준은 ISLR을 학부 3학년이라고 했을 때, 학부 4학년 ~ 석사 1학년 정도의 내용이고 (물론 수학을 좀 빼긴 했지만), 모델링 강좌는 확실히 석사 1학년 수준인 것 같다. 박사 공부를 해 보신 분들은 다 아시겠지만, 수학과 통계학을 다 알고 있다고 해도 다른 학문에서 쓰이는 용어와 철학이 다 다르니, pre-requisite waiver를 해 드리지 못하는 점을 이해해주시길 바란다. 특히 저 위에 살짝 언급한 시중의 “코딩” 스쿨에서 공부하고 왔으니 waiver 해달라고 하시면 정말 화낸다. (쩝~ 성격 안 좋다니깐)

부담스러워서 못 하겠다고, 저 위에 언급한 학원을 가셔도 되는데, 아마 내 수업을 들어본 분들이면 내가 왜 이렇게 저런 학원들에게 강한 거부감을 갖고 있는지 잘 이해하실 것이라고 본다.

가끔보면 모델링 수업 4개 토픽 중에 “나는 하나에만 관심있는데, 왜 4개를 다 공부해야됨?” 이라고 생각하시는 분들도 있던데, Neural net만 배우고 싶다고 그 앞에 배웠던 모델들 안 배워도 되는 게 아니라는 정도는 데이터 사이언스 메인 강좌에서 다 겪어봤지 않나? 주제를 저 순서로 딱 4개 수업으로만 빼낸데는 다 이유가 있다. 어차피 Stochastic 으로 접근하는 고난이도 머신러닝은 고급 수학 공부를 안 한 사람들에게 가르치기 불가능한 내용이고, 머신러닝 모델을 좀 더 수준 있게 쓰려면 남은 옵션은 Bayesian 밖에 없기 때문이다.

앞으로 2-3년 내에 그냥 머신러닝이 아니라 Bayesian 머신러닝을 할 줄 알아야 된다는 식으로 언론 플레이가 나올텐데, 그걸 배우고 응용하는 기본 모델을 단순 Neural net에서 끝내는게 아니라 Reinforcement learning까지 끌어올려보는 수업이다. 빅데이터가 아닌 데이터로 모델을 만드는건 pabii 수업에서 다룰 내용은 아니고, 빅데이터를 활용하는데 데이터를 Dynamic 하게 쓰는 방법들은 어느정도 정해진 코스가 있다. 교수들이 자기 학문으로 잘 훈련된 학생과 논문 주제를 놓고 토론하는걸 생각해주시면 된다.

주제는 어느쪽이건 상관없다. 당연히 IT쪽, 금융업쪽 데이터는 본 적이 많고, 의료업 데이터도 다뤄본 적이 있다. 어차피 데이터는 데이터일 뿐이다. 수업에서 살아남은 분들이니 어떤 데이터가 빅데이터고, 어떤 데이터를 갖고와야 수업에서 배운 테크닉들을 응용할 수 있을지도 잘 이해하고 있으실테고, 필자가 어떤 강점을 갖고 지도를 해 줄 수 있는 사람인지 잘 알고 있으실 것 같아서 더 자세한 내용은 생략한다.

또, Pre-requisite과 모델링 수업을 들은 시점에 이미 내 수업을 2-3개는 들으신 분들에게 더 이상 수강료를 받을 생각은 없다.

몇 달전에 수업을 듣고 가신 모 대기업 중간관리자 분 한 분께 들은 말인데, 회사원들 입장에서 자기가 참여한 프로젝트가 책으로 출판되면 기업에서 좋은 평가를 받는데 도움이 된다고 하시더라. 여태까지 본인이 묻는 질문을 제대로 답해주는 Data Scientist를 만난 적이 없었는데, 여기와서 명확한 답변을 많이 받고 나니 속이 후련하다면서, 이런 걸 아예 프로젝트 지원하는 수업(?) 같은 걸로 운영해보면 어떨까는 아이디어를 주셨다. 그렇게 운영했던 프로젝트 모아서 책 내고, 책에 이름 올라간 직원들을 위에서 좋게 보게되니 선순환 구조가 아닐까라고 하시던데, 정말 그런가? 국내 대기업을 다녀 본 적이 없어서 잘 모르겠다ㅋ

기업 내부 사정이 있는 주제들이야 PCA로 바꿔버린 데이터나 시뮬레이션 데이터로 대체하면 될 것이고, 너무 민감한 주제는 굳이 책으로 내지 않아도 된다. 책을 내는게 목적이 아니라, 책을 내고 싶어하는 분들께, 실력 있는 분들, 정말 데이터 사이언스를 하실 수 있는 분들이 회사에서 인정 받을 수 있도록 지원해드리겠다는 뜻이다. 이 부분을 지원해드리고 수익금(?)이 생기면 불쌍한 후학들을 위해 기부(?)하면 어떨까? 아님 우리끼리 고기파티해도 되고.

가끔씩 주말에 열던 Excel로 하는 기초 강의, 월말 토요일에 하던 수학 & 통계학 강의를 온라인으로 이전하는 이유가, 저 Hackaton 하면서 주말에 모임하시는거 좀 지원해드리고 싶어서였다.

 


아이디어 주신 박X석 차장님 감사드립니다.

 

Teaching position에 있다보면 친구들끼리 모임에서 내 수업에 진짜 똑똑한 학생 있다는 이야기를 하는 경우는 거의 없고 (애시당초 그런 학생이 잘 없다 ㅋㅋ), 대부분은 “내 수업에서 이렇게 깝깝한 질문 받았음ㅋㅋ” 이라는 불평을 토로하는 경우가 많다. 보스턴에서 박사 시절, 학부나 MBA 학생들용 수업 TA로 들어가면, 정말 충격적인 질문을 많이 받았는데, 고교 수준의 등비급수를 몰라서 이해를 못하는 학생, 등비 급수 푸는 법을 알려주고 변수 문자를 r에서 x로 바꾸면 처음보는 것 같은 표정을 짓던 학생 등등 저래놓고 MBA 졸업했다고 자랑질하고 다니겠지… 라는 생각이 들만큼 퐝당한 학생들이 정말 많았다. (그런 친구들 때문에 백인 애들이 수학 못한다는 편견이 생기긴 한다.)

제일 기억에 남는 사건은, MBA 학생 중 하나가 Finance concentration을 고르고 나니 정말 삶이 너무 힘들어졌다, Marketing concentration할 껄이라면서 후회하는걸 엘리베이터 안에서 얼핏 들은 적이 있었는데, 정작 그 MBA 학생이 들었던 수업들은 경영학과 학부 2-3학년 수준의 재무관리보다도 쉬운 수업이었다. 그 과목 시험 채점하면서 Partial credit을 도대체 어디에서 어떻게 줘야할지 모르겠다고 교수님께 불평했더니, “그래서 내가 TA가 필요한거지 ㅋㅋㅋ 그냥 적당히 잘 줘~ 그래야 Complaint 안 들어오지.”라는 조언을 들은 적도 있다. (이게 MBA의 현실이다.)

데이터 사이언스 수업을 하면서도 물론 당황스러운 질문을 받는 경우가 꽤 있지만, 그래도 수학, 통계학 못하면 오지마라는 공포 마케팅(?)에도 제 발로 찾아오신 분들이라 그런지, 굉장히 수준이 높다는 느낌을 받는 경우도 있다. (가끔은 학부만 졸업하고도 수준 높은 질문을 하는 사람들이 있는데, 나는 왜 학부 시절에 저렇게 공부 안 하고 놀았을까 부끄러워지는 경우도 은근히 있다.)

며칠 전엔, 한 달 수업 듣고 정말 열심히 고민하고 또 고민했다는 흔적이 잔뜩 묻어나는 질문 메일을 하나 받았는데, 수강생 분의 동의 아래 질문과 답변 몇 개를 공유할까 한다. 이런 내용을 수업에 가르치고 있고, 또 이런 고민을 따라올 수 있는 사람들이 Data Scientist구나는 이해를 할 수 있는 좋은 자료가 될 것 같아 보인다. (질문 보면서 “깝깝한 질문”이라는 생각보다, 요런거 조금만 더 뚫으면 되는데… 같은 아쉬움이 많이 생겼으니 오해마시라.)

참고로 질문자 분은 수학과 출신으로 어느 회사 데이터 관련 업무 하시는 분이라고 하시더라.

 

1. 회귀모델의 진단

Q. 다중 회귀분석 (Multinomial regression)에서는 모델링 과정에서 정규성, 선형성, 등분산성, 이상치 등을 살펴보기 위해서 Plot을 그려보던데, 머신러닝에서 Gradient descent를 할 때는 Regression에서 하던것처럼 잔차에 대한 여러 가정들을 별도로 확인해보지 않아도 되나요?

A. 수업 중 Ensemble을 다루면서 저 질문에 대한 답변을 좀 더 깊이 있게 다룬다. 통계학에서 Regression은 모델링의 결과값이 Error 최소화, 즉 Variance 최소화에 맞춰져 있다. Variance가 크게 나오면 Regression 모델에서 나온 상관계수들이 0이 아니라고 주장하는 p-value 값을 믿을 수가 없기 때문이다. 그런데, Regression을 (특히 Linear regression을) 적용하는 데이터들은 Error의 패턴이 없는 경우, 즉 데이터의 Error에 해당하는 부분이 랜덤으로 생성된 경우다. 머신러닝을 쓰는 이유는 그런 랜덤이 아닌 부분, 패턴이 있는 부분, 특히 패턴이 단순한 선형 관계 (ax+b)가 아닌 부분을 찾아내기 위해서다.

그런 비선형의 복잡한 패턴을 다항식으로 (무식하게?) 찾아내는데는 한계가 있으니까, 머신러닝의 여러가지 방법론들 (SVM, Decision Tree, Neural network 등등)을 활용하는 것이고, Gradient descent는 그런 탐정놀이 게임 중 수학식으로 쉽게 떨어지지 않는 trial-and-error 계산을 하기 위해 디자인된 계산 방법이다. 비선형 함수를 찾아낸다는 말 자체에서 이미 데이터의 non-random을 가정하고 접근하는 것이고, Gradient descent는 계산 비용을 줄이면서 결과값이 최대한 근사치가 나오도록하는 계산법이다보니, 당연히 잔차의 구조에 대한 고민을 안 하게 될 수 밖에 없다.

 

2. 데이터의 정규성 확인

Q. 데이터에 알고리즘을 적용하기 전에 먼저 정규분포를 따르는지 아닌지 확인하기 위해 Histogram과 QQ-plot을 그려봤는데요, t-test 적용에서와 같이 정규성 검정까진 할 필요가 없는 건가요? 중심극한정리에서는 표본이 충분할 때 “표본분포”가 정규분포의 형태를 따른다고 했는데, 우리가 가진 데이터는 표본 하나인 것과 같으니 단순 데이터 셋의 정규성만 확인해도 충분한 것인지 궁금합니다.

A. 우선 몇 가지 사실 관계를 점검해야할 것 같다.

t-test하는데 정규성 검정이라는 것은, 원래 데이터가 (approximately) 정규분포를 따르고 있는지에 대한 확인이다. 원래 데이터가 정규분포가 아니라면 학부 수업 때 배운 t stat말고 다른 계산법이 존재한다. (수학 & 통계학 시간에 Poisson일 경우 어떻게 해야된다고 했는지 노트 참조)

또 중심극한정리 (Central Limit Theorem, CLT)는 표본이 충분하면 분포가 정규분포를 따르는게 아니라, 샘플 추출을 여러번 했을 때, 그 평균값이 정규분포를 따른다는 정리다. 쉽게 예시를 들면, 모집단을 모르고 단순하게 1,000명의 표본집단만 여러번 뽑으면 (ex. 선거 직전 여론 조사), 그 표본집단의 평균값들 (처음엔 평균이 49%, 다음엔 51%, 그 다음엔 48.5% 등등등)이 정규 분포 형태고르게 퍼진다는 뜻이다. (수학적으로는 정규분포에 수렴한다고 표현한다.) 데이터가 많으면 무조건 정규분포에 수렴한다고 잘못 알고 있는 사람들이 많은데 (나도 예전엔….), 그러다보니 Underlying distribution이 포아송 분포인데도 t stat을 무조건 정규분포 기반으로 계산해서 모델 테스트를 엉망으로 하고 있다고 수학 & 통계학 시간에 강조한 바 있다.

일단 위의 1번에서 설명한대로, 데이터(의 에러)가 정규분포를 따른다면 Random 이라는 뜻이니까, 단순한 Linear regression으로 충분한 모델링이 되고, 머신러닝에서 배운 여러 테크닉들은 그런 randomness가 깨질 때만 의미가 있다. 따라서 현재 가진 데이터의 정규성을 확인해보는 것만으로 충분하다.

 

3. lm(), glm() 등의 함수와 caret 패키지 사용의 차이

Q. R 코딩 실습 부분에서 저는 평소 caret 패키지를 사용하지 않았었는데요, lm(), glm(), svm() 드으이 함수를 쓰는 것과, caret 패키지에서 method = ‘lm’, ‘glm’, ‘svm’ 등을 지정하는 것은 계산 방식에서 어떤 차이가 있나요? 앞의 함수들은 Normal equation으로 해를 구하고, caret은 gradient descent 알고리즘을 이용하는 건가요?

A. 우선 Normal equation이 작동하는 유일한 영역은 데이터가 정규분포를 따르고, 그 때 Best Unbiased Estimator인 MLE가 OLS estimator와 똑같을 때 밖에 없다. 이게 통계학 수업 시간에 배우는 내용이다.

위에 나온 glm(), svm() 같은 머신러닝 모델을 간략화해놓은 함수들은 Normal equation을 쓰는게 아니라, glm은 Newton’s method를 이용한 approximation, svm은 Duality를 이용한 Group error minimization 계산을 한다.

두 계산 함수 그룹의 차이는, caret은 R 플랫폼의 함수들을 결합해서 위의 계산을 하도록 만든 패키지고, svm, xgboost등의 외부 패키지들은 외부 플랫폼 (C++, Java 등등)의 계산 모듈을 빌려온다. 왜? 계산 속도 자체만 놓고보면 시스템 자원을 효율적으로 쓰지 못하는 R이 압도적으로 느리니까. 참고로 Python, R등의 언어는 C++, Java가 시스템 자원을 활용하는 방식과는 완전히 다른 설계로 짜여져 있기 때문에, 계산 속도가 현격하게 차이날 수 밖에 없다.

Python에서도 scikit-learn을 쓰면 R의 caret과 똑같은 상황이 벌어질 것이다. 진정한 개발용 언어인 Java, C++이 1초만에 계산하는걸 R이나 Python위에서 Java, C++의 계산 모듈을 빌리면 3-4초로 늘어나고, 그냥 caret, scikit-learn 위에서 돌리면 거의 20초 정도 걸린다는 벤치마크도 있다. 데이터를 처리하고 모델링을 고민할 수 있도록 만들어 놓은 프로그램이니만큼, 복잡한 데이터 구조 (ex. n x k x p x q 행렬)를 처리하는데 초점이 맞춰져 있다보니 정작 계산 속도의 효율성 측면에서는 굉장히 나쁜 플랫폼이 되어버리는 것이다.

 

4. Polynomial regression의 경우의 수

Q. 회귀 직선이 주어진 변수만으로 적합이 안 되어서 Polynomial 형태를 적용하게 될 때, 기존 변수가 n개라면 n(n+1)/2의 경우의 수가 생기게 되잖아요. 그럼 회귀 모델 적용할 때 2차 교호작용까지 고려해서 모델을 만드는게 이런 Polynomial 형태를 고려하는 형태의 예라고 생각해도 될까요? 만약 맞다면, 그래서 2차 교호작용 외 다른 경우의 수도 고려하고 싶다면, 실제로 n(n+1)/2 횟수만큼 변수를 바꿔가며 코딩을 해야하나요?

A. 아니다. (걱정하지 마시라ㅋㅋ)

그런 Polynomial regression을 이것저것 모든 조합으로 다 해보는게 무모한 작업이라는 걸 알고 있기 때문에 svm, decision tree, ensemble, neural network 같은 대체재들이 있는 것이다. Polynomial을 쓴다는 것 자체가 이미 데이터가 선형으로 설명되지 않는다는 이해를 깔고 있고, 데이터가 랜덤이라는 가정을 깨고 들어가는 것이다. Non-linear 패턴을 잡아낸다고 했을 때, 인간이 할 수 있는 가장 단순(무식)한 방법이 Polynomial이고, 이걸 좀 더 수학적으로 세련되게 (학문적으로는 Elegant라고 표현함) 만드는 모델이 바로 여러분들이 열심히 머신러닝 테크닉이라고 배우는 svm, ensemble, neural net 같은 모델들이다.

참고로, 지금도 사회학 계열로 연구하는 분들 중에 통계학을 거의 모르는 분들은 stepwise regression이라고 모든 변수를 다 넣어보고 그 중에 설명력 (R-squared)이 제일 좋은 모델을 “단순하게” 고르는 경우도 있다. (저 분도 박사학위가 있는데, 니가 생각하는거처럼 그렇게 절망적으로 통계학을 모르진 않을꺼야…라고? 연구자 취급 못 받을 사람들 진짜로 많다 ㅋㅋㅋ)

 

5. Variable Importance를 통한 변수의 중요도 판단

Q. Random Forest, Boosting 계열의 모델을 보면 Variable importance에 순위를 잡던데, 그 변수가 중요변수가 아닐수도 있다고 하셨던 부분이 어떤 경우였는지 잘 기억이 안 납니다. 

A. Random Forest를 비롯한 Tree 기반의 모델들에서 중요한 변수들 중에, 한 변수가 Tree 안에 여러번 반복이 되기 때문에 중요한 변수로 나타나는 경우가 있다. Tree 구조를 보면 이해가 되겠지만, 그 변수의 여러 구간 (ex. 3-5, 10-15, 30-37 등등, 연속되지 않은 여러 구간)이 y값에 영향을 주는 경우에 Linear regression에서는 연속된 구간 값을 사용하는 탓에 두 모델간 변수의 중요도가 다르게 나올 여지가 있다. 수업 중에서 Variable Importance plot을 그린 다음, 이걸 Regression 기반 모델들에도 무조건 적용하면 문제가 생길 수 있다고 지적하기도 한다.

 

6. 기타 추가 질문

Q. 우연히 ‘머신러닝 피드백을 이용한 게임 지표 분석’ 이라는 글을 보게 되었는데, 제가 실무적으로 활용하면 도움이 될듯한 내용들이라 꼭 적용해보고 싶은데요, 정확히 어떤 개념을 이용하는 것인지 잘 모르겠습니다.

링크의 글을 읽어보면, Vowpal-wabbit을 통해 손실함수를 계산해서 각 독립 변수들이 종속 변수에 어떻게 영향을 주는지 귀납적으로 추론한다는 방식이고, 여기서 독립 변수마다 계산된 연관성 점수 (Relation score)에 따라 positive, negative를 판단하여 독립 변수들의 영향도? 효과? 등을 파악한다는 것인데 여기서 나오는 연관성 점수가 무엇일까요?

A. 두 가지 경우를 생각해보자.

1번. 위의 5번에서 본 Variable importance를 구하는데, +인 경우와 -인 경우를 구분해서 순위를 다시 잡으면 어떻게 될까? 그 다음 단순하게 몇 %의 기여도만 따지는게 아니라, 기여도가 있는 변수들을 다 모아놓고 -100% ~ +100%로 재조정을 한다면?

2번. Regression에서도 가능할까? 물론이다. 모든 변수를 standardize 해놓고, 각각의 상관계수 값에 따라서 어떤 변수가 더 큰 기여도를 가지는지, 어떤 변수가 마이너스 기여도를 가지는지 구분할 수 있다. 그렇게 상관계수들을 모아놓고 등수를 잡거나, -100% ~ +100%로 재조정을 해도 된다.

실제로 Variable importance를 구하는 과정을 보면, 각각의 변수가 cost function 값이 얼마나 변하도록 만드는지에 따라서 변수의 중요도를 따진다. Regression에서 모든 변수를 같은 구간에서 움직이게 묶은 다음 (i.e. 표준화) 상관계수를 보는 것도 같은 컨셉이다.

저 링크의 글을 보면 Vowpal-wabbit이 무슨 엄청나게 기술(!)력 있는 모델인 것처럼 느껴지는데, 정작 위에서 설명한 단순한 중요도 계산 + 재조정 작업에 불과하다.

“우와~ 이거 완전 대박이네!”, “어캐 베끼지?”

보통 공대생, 특히 수학 (계산말고 수학) 공부 많이 하는 전공자들에게서 흔히 보는 모습인데, 뭔가 새로운 계산만 나오면 “우와~ 이거 완전 대박이네!”, “어캐 베끼지?” 이런 반응을 보이더라. (뭐, 스티브 잡스도 베끼는거 좋아하긴 했다.) 머신러닝에서 Neural network도 그래서 “떴다”고 생각한다. 그러나, 필자 같은 사람들 눈에는 “저거 XYZABCD로 계산했겠네”가 그냥 눈에 보인다. 평소에도 저런 모델링을 하는걸 머리속으로 고민하고 있으니까. 더더군다나 Vowpal-wabbit은 그렇게 수학적으로 Elegant 한 방법도 아니다. 저거 제대로 돌아가게 하려면 보정작업이 엄청나게 많이 필요할 것이다. (직접 적용해보시라.)

 

나가며 – 데이터 사이언스 (진짜) 공부란?

질문이 더 많았는데, 질문자분의 Privacy도 좀 고려해드려야 되겠고, 나머지는 강의와서 들으시라고, (더 솔직하게는 치다가 지쳐서…) 6개의 질문으로 요약정리해 봤다. 질문 내용도 아주 살짝 바꿔썼는데, 자기 글을 고쳐서 기분 좋을 사람 없다는 걸 잘 알기에, 질문자 분의 넓은 아량을 구한다.

마지막 6번 질문을 제외하고 받았던 모든 질문들은 사실 수업 시간에 최소 1번 이상 언급하고 갔던 부분이고, 많은 부분은 여러번 반복 설명을 하게 된다. 보통은 수업 때 했던 이야기를 다시 질문하면 (귀차니즘에) 메일로 상세하게 답장을 하질 않는데, 질문자 분이 뭔가 열심히 노력하고 있는데 (아주 얇은) 벽을 하나 못 뚫은 상태인 것 같아서 큰 맘을 먹고 최대한 상세하게 답변을 해 드렸다.

아마 수업에 오시는 분들 중 석, 박 학위까지 깊이있는 공부를 안 하신 분들 대부분이 위의 질문자 분과 비슷한 수준의 이해도를 갖고 강의장을 떠나게 될 것이다. 한번듣고 쉽게 알 수 있는 내용이 아니니까 ㅋㅋ

“한번 듣고 쉽게 이해할 수 있는 내용은 아니죠.”

학부 3학년 때 계량경제학을 듣는데, 황윤재 교수님이 “한번 듣고 쉽게 이해할 수 있는 내용은 아니죠.”라고 웃으면서 질문을 받아주셨던 기억이 난다. 위의 짧은 질문 & 답변을 보면서, 어느 경제학과 출신 학생 분처럼, 계량 공부 잘 해놨으면 머신러닝이라는거 진짜 쉽구나는 생각을 하신 분도 있을 것이고, 이거 진짜 코딩이랑 완전히 다른 지식이네라고 깜놀(!)하시는 개발자 분도 있을 것이다. 그런 정보 공유 차원에서 수업 내용 중 일부에 해당하는 질문 & 답변을 공개해봤다.

꼭 필자의 수업을 오라고 홍보하는건 절대로 아니고 (모르면 진짜 오지마시라… 가르치기 힘들다ㅠㅠ 특히 무조건 코딩이라고 우기는 꼰대 개발자들…), 굳이 더 속내를 드러내자면 아마 시중에 돌아다니는 대부분의 교재들에서 위의 질문에 대한 제대로된 답변을 못 찾을텐데, 이게 진짜 데이터 사이언스 공부라는 걸 좀 일깨워드리고 싶었다. 그 책들 십중팔구는 개발자들이 여기저기서 코드 따와서 급조한 책이니까. 필자만큼 수학 공부한 사람들이 머신러닝 바라보고 이해한 책을 쓰면 “수포자 입장에서 수학이 너무 어려웠다”는 둥, “다시 고교 정석책을 펴야될 것 같은 압박이 생기네요.”라는 둥의 잘못된 이해에 기반한 비겁한 변명만 들을 가능성이 높기도 하고, 그런 책은 잘 안 팔리기도 할 것이기 때문에 기획하기가 더더욱 힘들지 않을까? 이거 코딩인 줄 알고 있는 개발자들 제발 비겁한 변명 좀 그만했으면 좋겠다 ㅋㅋ

“R이랑 Python 코드 비교하기” 같은 코딩 책 써달라던 어느 출판사 분 생각난다. 데이터 사이언티스트 입장에서 양심의 가책이 느껴지는 코딩(!) 책을 내 이름을 걸고 내고 싶지 않더라.

 

콴토 무기한 스왑 계약의 헤징은 간단한 일이 아닙니다. 두 암호화 자산의 상관계수가 가진 추가 요소는 이를 복잡하게합니다. 저는 제1법칙에서 벗어나 보다 일반적인 공식을 보여드릴 것입니다.

가정:
심볼: ETHUSD
거래승수: 0.000001 XBT
ETHUSD 가격: $500
.BETH (ETH/USD 현물 지수): $500
.BXBT (XBT/USD 현물 지수): $10,000

시나리오 1 – ETHUSD 공매도 후 헤지

여러분은 10만 건의 ETHUSD 계약을 매도했습니다.

먼저 여러분의 포지션 가치를 계산해봅시다:

XBT Value = $500 * 0.000001 XBT * -100,000 = -50 XBT
ETH Value = XBT Value / [ .BETH / .BXBT ] = -1,000 ETH

다음으로 여러분은 현물 가격으로 이더리움 1천 개를 매수하여 ETH/USD 포지션을 헤징합니다. 현재의 .BETH 지수 가격과 동일한 가격으로 매수할 수 있다고 가정합니다.

여러분은 기본 통화 포지션을 헤징했습니다. 이 시점부터 여러분의 포지션은 완전히 헤징되었습니다. 그러나 ETHUSD 가격이 변화함에 따라 여러분의 ETH 헤지의 손익이 USD로 산출되는 반면, ETHUSD의 손익은 XBT로 산출됩니다.

두 가지의 극단적인 예시를 더 살펴보겠습니다.

예시 1: .BETH 상승과 .BXBT 하락

.BETH와 ETHUSD가 $750까지 상승
.BXBT가 $5,000까지 하락

ETHUSD PNL = (ETHUSD Exit Price - ETHUSD Entry Price) * Multiplier * # Contracts = -25 XBT, USD Value -$125,000

ETH Spot USD PNL = (.BETH Exit Price - .BETH Entry Price) * # ETH = $250,000

Net USD PNL = ETHUSD XBT PNL in USD + ETH Spot USD PNL = +$125,000

상기 예시에서 미화 달러 기준 XBT 가치와 ETH 가치의 상관계수는 -1입니다. 이 둘이 완벽한 음수 방향으로 움직인 결과, 여러분은 수익을 얻게 되었습니다.

예시 2: .BETH 상승과 .BXBT 상승

.BETH와 ETHUSD이 $750까지 상승
.BXBT가 $15,000까지 상승

ETHUSD PNL = -25 XBT, USD Value -$375,000
ETH Spot USD PNL = $250,000
Net USD PNL = -$125,000

상기 예시에서 미화 달러 기준 XBT 가치와 ETH 가치의 상관계수는 +1입니다. 이 둘이 완벽한 양수 방향으로 움직인 결과, 여러분은 손실을 입게 되었습니다.

ETHUSD 공매도 포지션과 헤지는 상관계수가 음수일 때 수익을 얻고, 양수일 때 손실을 입습니다.  ETHUSD와 .BETH의 베이시스가 비슷하기 때문에 진입가격은 두 암호화폐 간의 상관계수를 0으로 가정했습니다.

시나리오 2: ETHUSD 공매수 후 헤지

여러분은 10만 건의 ETHUSD 계약을 매도했습니다.

먼저 여러분의 포지션 가치를 계산해봅시다:

XBT Value = $500 * 0.000001 XBT * 100,000 = 50 XBT
ETH Value = XBT Value / [ .BETH / .BXBT ] = 1,000 ETH

다음으로 여러분은 현물 가격으로 이더리움 1천 개를 공매도하여 ETH/USD 포지션을 헤징합니다. 현재의 .BETH 지수 가격과 동일한 가격으로 매수할 수 있으며, 이 공매도를 위해 빌릴 수 있는 비용은 없다고 가정합니다.

여러분은 기본 통화 포지션을 헤징했습니다. 이 시점부터 여러분의 포지션은 완전히 헤징되었습니다. 그러나 ETHUSD 가격이 변화함에 따라 여러분의 ETH 헤지의 손익이 USD로 산출되는 반면, ETHUSD의 손익은 XBT로 산출됩니다.

두 가지의 극단적인 예시를 더 살펴보겠습니다.

예시 1: .BETH 상승과 .BXBT 하락

.BETH와 ETHUSD가 $750까지 상승
.BXBT가 $5,000까지 하락

ETHUSD PNL  = 25 XBT, USD Value $125,000
ETH Spot USD PNL = -$250,000
Net USD PNL = -$125,000

상기 예시에서 미화 달러 기준 XBT 가치와 ETH 가치의 상관계수는 -1입니다. 이 둘이 완벽한 음수 방향으로 움직인 결과, 여러분은 손실을 입게 되었습니다.

예시 2: .BETH 상승과 .BXBT 상승

.BETH와 ETHUSD가 $750까지 상승
.BXBT가 $15,000까지 상승

ETHUSD PNL = 25 XBT, USD Value $375,000
ETH Spot USD PNL = -$250,000
Net USD PNL = $125,000

상기 예시에서 미화 달러 기준 XBT 가치와 ETH 가치의 상관계수는 +1입니다. 이 둘이 완벽한 양수 방향으로 움직인 결과, 여러분은 수익을 얻게 되었습니다.

ETHUSD 공매도 포지션과 헤지는 상관계수가 양수일 때 수익을 얻고, 음수일 때 손실을 입습니다. ETHUSD와 .BETH의 베이시스가 비슷하기 때문에 진입가격은 두 암호화폐 간의 상관계수를 0으로 가정했습니다.

아래의 표는 두 개의 시나리오를 정리한 것입니다:

보유 기간 (Time Horizon)

XBT와 ETH간의 상관계수는 고정되어 있지 않습니다. 헤지된 스왑 포지션을 오래 보유할수록 최근과거를 기준으로 여러분이 기대하는 상관계수 체제가 변경될 가능성이 높아집니다.

선물계약과 달리 ETHUSD 스왑은 만료일이 없습니다. 따라서 여러분의 콴토 리스크는 보유 기간에 따라 달라집니다. 시장에 빨리 진입하고 나올 수 있는 시장조성가들에게 콴토 효과는 무시할 만한 것입니다. 반면 자금 확보를 위해 장기간 포지션을 보유하고 있는 현금 그리고 캐시 시장 조성가들에게 콴토 효과는 그들의 손익을 휴지조각으로 만들 수 있는 무서운 존재입니다.

공분산 (Covariance)

다수의 시장조성가들은 그들의 상관계수 리스크를 헤지되지 않은 상태로 남겨두는 것에 불만족할 것입니다. 그들은 계속해서 비트멕스 내 손익과 포트폴리오의 레그를 헤지하려 할 것입니다. XBT와 ETH의 변동성과 둘의 상관계수에 따라 공분산은 손익을 양수로 혹은 음수로 헤징하여 전체적인 수익에 어떻게 영향을 줄 것인지 결정할 것입니다. 만일 두 자산의 변동성이 높고 여러분의 기대대로 혹은 그 반대로 움직이고 있다면, 손익 헤징을 통한 여러분의 수익 혹은 손실은 확대될 것입니다.

저희는 미지의 영역 한 가운데에 서 있습니다. 몇 달 후, 저는 과거 데이터를 분석하여 콴토 리스크에서 시장조성가의 가격결정이 전체 자금 중 얼마나 많은 부분을 차지하는지 그리고 ETH와 USD간의 이율 격차는 얼마만큼인지 계산할 것입니다.