메뉴 건너뛰기

close

비트코인 뭔데 이렇게 시끄럽냐?

블록체인 및 비트코인 및 가상통화 관련 뉴스룸 긴급토론 후기
18.01.21 11:57l

검토 완료

이 글은 생나무글(정식기사로 채택되지 않은 글)입니다. 생나무글에 대한 모든 책임은 글쓴이에게 있습니다.
  투자냐, 투기냐? 이건 정말 오래된 논쟁이다. 솔직히 둘 사이의 구분을 명확히 할 수 있는 사람은 많지 않다. 사전적인 정의를 빌리자면 금전적 이익이 목적인 건 공통적인데, 대상에 시간과 정성을 쏟느냐 쏟지 않느냐의 차이이다. 이것도 주관적이라 결론적으로 모호하다.

비트코인에 논란도 마찬가지다. 주변에 비트코인을 하는 친구들에게 물어보면 나는 비트코인의 미래를 믿기 때문에 투자한다고 한다. 심지어 가지고 있는 코인이 많이 오른 친구들 중에도 수익실현을 하지 않은 친구들도 많다. 결론적으로 말하자면 이건 투기다. 그렇게 말하는 사람들 중에 비트코인의 생태계 발전에 기여하고 있는 사람들을 본적이 없다. 아니 기여라는 말 자체가 모순이다. 비트코인이 본연의 목적을 가지고 활성화되려면 가치가 안정화되는 게 최우선이다. 물론 그거 이외에도 문제는 많지만 그건 후술하기로 한다. 근데 가치의 안정화와 본인의 이득은 극명하게 배치된다. 가치가 안정화되기 위해서는 더 이상 비트코인의 신규진입자가 없어야 하고, 그 상태에서 거래 가능한 수준으로 가치가 하락해야 한다. 근데 머리에 총 맞은게 아닌 이상 최대, 2500만원에 존버하는 사람까지 있는 비트코인 시장에서 그 정도로 이타적인 바람을 가진 사람은 나올 수 없다. 그래 .. 2500만원, 내가 처음 거래되고 있는 시장을 접한 작년초에 가격은 25만원 가량이었다. 대체 도대체 이게 뭐길래 1년에 100배가 넘게 오른걸까?

뉴스룸 토론 초입에도 얘기했지만 용어의 정의가 꽤 중요한 부분이다. 유시민 작가의 비유를 빌자면, 블록체인은 건축기술이고, 비트코인은 건물이다. 그리고 비트코인은 가상/암호화폐의 한 종류이다. 블록체인을 설명하기 위해서 그 구현체인 비트코인을 예로 들어 설명해보겠다. 토론 중에도 논쟁이 있었지만 이 둘은 한몸처럼 태어났지만 분명 분리할 수 있다. 그럼에도 불구하고, 블록체인 기술이 창시자인 사토시 나카모토의 의도를 가장 충실히 구현한 게 비트코인인 건 맞다.

나머지는 블록체인이 가진 기술적인 한계를 극복하기 위해 여러가지 다른 기술들을 추가했고 이 과정에서 원래의 의도가 손상되는 부분이 있기도 했다. 예를 들어 리플코인의 경우, 분산으로 인한 속도저하를 해결하기 위해 중앙집중적인 노드분포 및 화폐발행액 할당을 했고, 일부기업(월마트 등)에 적용된 블록체인 기술의 경우 오픈형이 아닌 폐쇄형이다. 따라서 비트코인을 중심으로 블록체인을 설명해보겠다. 기술적인 내용은 homoefficio님의  블록체인 한 번에 이해하기를 참고했다. 밑에 기술한 몇개의 기술적 꼭지는 관심있는 사람만 읽어봐도 된다.

* 해쉬함수
해쉬함수를 쉽게 정의하자면 '1:1 매핑을 지향하는 숫자 변환함수'라고 생각하면 된다. 이게 어려우면 초등학생 때 자기 번호를 생각하면 된다. 선생님은 출석부에 숫자 - 이름을 기입해놓고, 이 출석부만 보면 '정상인'은 1번이라는 걸 알 수 있다. '정상인'이라는 이름이 데이타, 출석부가 해쉬함수, 번호가 해쉬값이라고 이해하면 크게 틀리지 않다. 근데 ㄱ,ㄴ,ㄷ 순으로 정렬된 우리 출석부와는 달리, 해쉬함수는 다른 좋은 특성을 가지고 있다. 다음을 살펴보자. 해쉬 알고리즘인 SHA 256을 사용해봤다.

hashlib.sha256(b"am I Legend").hexdigest()   
=>76b16818c959422585087e6ed7a3415569af7c098ec9678bbee1ae33f486e50e

hashlib.sha256(b"I am Legend").hexdigest()   
=>595b766893168453149713d8820028e9a4b5537a4e36eed2b99effada47473db

데이타의 변동에 비해 해쉬 값이 아주 급격하게 달라지는 걸 볼수 있다. 이걸 어디에 쓸까?

* 디지털 서명
이걸 이해하려면 디지털 서명 메카니즘을 살펴보는 게 조금 도움이 된다. 흔히 우리가 공인인증서를 통해 많이 접하는 방식인데, 이 기술에 대해 오해는 하지 않았으면 한다. 이 기술은 보안 기술이 아니라 부인방지 기술이다. 즉 내가 보낸 데이타가 상대방에게 탈취없이 안전하게 도달할 것을 보장하는 기술이 아니라, 상대방 입장에서 이 데이타나 내가 보낸 데이타가 틀림없다라는 걸 인증하는 기술일 뿐이다. 탈취될 수 있고, 심지어 내용을 읽어볼 수도 있다.

어쨌든 디지털 서명은 두개의 키를 사용하는 데, 공개키와 비밀키(개인키)가 그것이다. 비밀키(흔히 비밀번호)는 나만 알고 있고, 공개키는 대중에게 공개되어 모두가 알 수 있다. 데이타는 위와 같이 해쉬함수를 통해 해쉬되고 비밀키를 통해 암호화된 서명으로 데이타와 함께 전송된다. 받는 쪽에서는 암호화된 해쉬값을 공개키를 통해 풀어본다. 그리고 데이타를 해쉬함수에 넣어서 이 둘이 같은 값이 나오면 상대방이 비밀키로 암호화한 서명으로 간주하기 때문에 상대방의 디지털 의사표시로 법적으로 인정되는 게 디지털 서명의 메카니즘이다.

왜 해쉬를 쓰냐? 아주 작은 데이타의 변동에도 해쉬값이 크게 바뀌기 때문에 비밀키를 알아내려면 무작위적인 방법(Brute Force, 그냥 모든 경우의 수를 다 넣어봄)을 써야한다. 이걸 개인적으로는 천문학적인 삽질이라고 부르는 데, 말 그대로 별헤는 밤에 나사의 망원경을 끌어다가 볼 수 있는 별의 숫자보다 훨씬 많은 연산을 해야하기 때문에, 누군가 비밀번호를 깨려면, 이런 방식으로 깨기보다는 잡아다가 물어보는 게 훨씬 빠르다.

* 블록체인 + 비트코인
위에서 설명한 디지털 서명을 단순히 1:1 부인방지 뿐아니라, 거래장부에 적용한 것이 블록체인 기술이다. 그리고 비트코인은 블록체인의 매우 휼륭한 구현 사례다. 물론 휼륭하다는 것은기술적인 관점으로 한정해서 말하는 것이다. 비트코인을 요약하자면 수많은 거래정보가 모여서 일정이상 커지면(0.98메가바이트) 하나의 블록을 이루고 이 블록은 각각 해쉬함수를 통해 암호화(사실 암호화라는 말이 좀 안 맞긴 하다. 양방향이 아니라서)되고, 이 블록들은 체인을 이루고, 이 일련의 전개는 비트코인 네트워크 상의 보상책에 의해 자발적으로 끌려서 참여한 개인들에 의해 이루어지며, 결과적으로 암호화된 정보는 네트워크에 참여한 개인들의 PC에 나눠서 저장된다는 것이다.

* 뭔 소리야?라고 할 거 같아서..
천천히 얘기해보자, 내가 장사하는 사람이다. 나는 엑셀에 내 거래내역을 저장한다. 보통 이걸 장부라고 부르고, 이 장부들을 모아놓은 것을 거래 원장이라고 부른다.

- 10/3 : 김씨에게 사과 1개를 팔고, 1000원을 받았다.
- 10/4 : 전씨에게 귤 한개를 사고, 500원을 물어줬다.

내 수중에 얼마가 남았을까? 500원. 여기서 자잘한 재화의 구매나 서비스 구매를 제외하고, 돈 거래만 남기면 다음과 같다.
 - 10/3 : 나 => 김, +1000
 - 10/4 : 나 => 전, -500

그리고 내 장부(고)를 다른 사람이랑 합쳐놓으면 아래와 같이 된다.
 - 김 => 고, 1000
 - 고 => 전, 500

이게 원장이다. 간단하다. 근데 문제가 생긴다. 언넘이 중앙원장에 침입해서 거래 내역을 바꿔놓으면 어떻게 하나? 그래서 김씨, 전씨, 고씨가 모여서 장부의 복사본을 각자 집에 보관하기로 한다. 이렇게 하면 누가 김씨네 집에 들어와서 장부를 바꿔놓아도(위변조 시도),  전씨, 고씨 집의 장부는 안전(분산원장)할테니 다시 맞는 값으로 다음날 김씨네 장부를 고쳐주기만(transaction 무효화)하면 된다. 심지어 김씨가 악의적인 의도로 자기의 장부를 고치는 행위도 막을 수 있다. 즉 블록체인은 침입자에 대한 악의적인 위변조, 내부자에 의한 의도적인 위변조를 모두 막을 수 있는 장점을 가진다.

* 어떻게 그걸 구현하는가?
다시 기술적으로 파고 들어보자, 블록체인의 각 블록은 블록헤더와 본체로 구성되어 있으며, 블록헤더의 값은 버전, 이전 블록의 해시, 머클해쉬(루트거래정보의 해쉬값), 블록생성 시간, bits(난이도 조절용 수치), nonce로 구성되어 있다. nonce의 경우 우리말로 대응되는 단어를 찾기 어려워서 그냥 nonce라고 쓰겠다. 여기서 nonce가 가장 특성있는 값이라고 할 수 있는 데, 그 이유는 바로 채굴(Proof-of-work) 행위가 바로 이 nonce값을 찾는 행위이기 때문이다.

앞서 거래정보를 모아놓은 것이 블록이라고 얘기했다. 근데 블록은 단순히 거래정보만을 모은 것이 아니라, 그 블록의 거래정보가 위변조되지 않은 데이타임을 증명하는 부분도 함께 가지고 있다. 이걸 위한 부분이 바로 블록 헤더다. 일정 이상의 거래 정보(0.98메가)가 쌓이면 어떤 노드든 자동으로 블록을 생성하게 된다. 이 부분이 참 신묘하다. 아무렇게나 모은 일정정보 이상의 거래정보를 근거로 블록생성을 진행하면 개판이 될 거 같은 데 그렇지가 않다. 블록이 생성되면 헤더 정보 6가지 중, 다섯가지는 확정이 되고, nonce만이 미 확정상태로 남는다.

채굴이란 조금 유머러스하게 표현하자면, '블록체인 어린이 여러분, nonce가 몇일까요? 맞추는 사람에게 참 잘했어요 도장(거래수수료 및 채굴보상) 찍어줄께요'와 같다. 이 퀴즈는 비트코인 반 학생들에게 대략 10분에 한번씩 기회가 찾아온다. 문제가 좀 괴랄하지만 시작한 김에 비유를 그대로 좀 유지하자면,

"여러분 0010001001000101010111[xxxx]를 해쉬함수에 집어넣었을 때, 0x00000a000..000이하가 되는 xxxx는 무엇일까요?" 라는 질문에 수 많은 학생들이 무작위로 숫자를 말하는 광경을 생각하면 된다. 한동안 애들이 답을 못맞추면, 난이도를 낮춘다. 그럼 "0x00000b000..000"이하로 바꿔볼까요? 빨리 맞추면 더 빨리 맞출수록 작은 공간을 차지하는 해쉬값으로 암호화 할 수 있기 때문에 보상(수수료)이 더 커진다.

코드로 짜보면 대충 이런 정도의 느낌..

for i in range(0, 1000000000000):
  if hashlib.sha256(bytes("I am Legend%d"%i, "ascii")).hexdigest() < 0x00000001000000:
     i = nounce
     return nounce

* 어 근데 좀 이상해..
 나도 여러 자료를 검토하면서 한가지 위화감이 든게 사실이다. 그 중에 한가지는 바로 레이스 컨디션이다. 레이스 컨디션이란 분산처리에서 두 노드가 서로 경쟁하기 때문에 어떤 값으로 확정될 지가 아직 미지인 상태를 얘기한다. 레이스 컨디션이 발생하면 프로그램의 값을 예측할 수 없기 때문에 예상치 못한 프로그램의 지연이 발생하거나 잘못된 결과가 도출되기도 한다.

유치원의 비유로 돌아가면, 두 학생이 동시에 답을 외쳤을 때 선생님은 대체 누구의 손을 들어주느냐?라는 문제이다. 비트코인은 간단한 원칙으로 이 문제를 해결했다. 더 친구가 많은 사람에게 보상을 준다. 정확히는 블록의 길이가 더 긴 노드의 블록을 선택한다. 즉 일시적으로는 두개의 블록이 동시에 존재할 수 있지만 다음 블록이 확정되고나면 어떤 블록이 무효화될지가 결정되기 때문에 위의 딜레마는 해결된다.

근데 그렇게 첫번째 의문을 해결하고나면 두번째 의문이 밀려온다. 그럼 무효화된 블록의 거래내역은 사라지나? 그렇지 않다. 블록이 무효화된 것일 뿐, 내부의 거래내역은 돌고돌다가 언젠가는 다른 블록에 포함되어 체인에 속하게 된다. (이게 비트코인 거래의 결제소요시간이 거래에 따라 다른 이유다.)

* 자 이제 문과 이야기를 해보자
 이토록 길고 긴 기술적인 내용을 우리가 검토한 이유는 바로 JTBC 뉴스룸의 토론회 때문이었다.  몇가지 논점이 있는 데 후술해보겠다.

(1) 이중지불의 문제
 - 이중 지불이 기술적으로 가능한가? 당연히 불가능하다. 왜냐하면 장부위변조를 하려면 앞에 있는 블록을 모두 깨거나, 이전 블록을 전부 다시 암호화하거나 네트워크의 50%이상을 점유해서 무조건 내가 옳다고 주장해야 하는 데 세가지 모두 기술적으로나 현실적으로나 불가능하다.

 - 근데 왜 문제인가? 유시민은 문송하다고 했지만, 난 개인적으로 공송(공대라서 죄송해요)라는 지점이 여기인 것 같다. 기술이 완벽하면 뭐하나? 사람이 완벽하지 않은 데, 희대의 해커 케빈 미트닉은 기술적인 천재는 아니었다. 그가 펜타곤이나 NSA의 시스템에 침입한 방법은 취약점있는 소스코드를 이용한 게 아니었다. 그의 말에 따르면 '그냥 알려주던데요'.. ㅠㅠ 당일 시스템 담당자에게 전화를 걸어 기술점검반을 사칭하거나, 모니터 옆 포스트잍에 붙어있는 비밀번호를 이용하거나, 사석에서 접근해서 얻은 가족생년월일(주로 자녀의)를 이용했다. 이를 사회공학적 방법(social engineering)이라고 부른다.

 - 그래서 이중지불이 가능하다고? 일상적인 지급결제 행위를 하는 분야에 한해서, 네 가능합니다. 당연히 가능하다. 다음과 같이 하면 된다.
   a. 내 지갑에서 내 지갑으로 비트코인을 지불한다.
   b. 커피를 산다.
   c. 그 비트코인을 지불한다.
   d. 거래확정이 되기 전, 10분안에 까페에서 나온다.

- 괜히 까칠한 취급받지 않으려고, 때마다 찾아오는 기술점검반의 신원조회를 철저히 하지는 않는 것처럼, 괜히 손님을 의심하는 사람 취급받지 않으려고 가게 주인 또한 결제가 끝날 때까지 가게에서 대기해달라고 하지 않는다. 이런 사회적 맥락을 이용한 헛점 공략은 충분히 가능한 것이다.

- 근데 이게 처벌을 받을 수 있는 행위인가? 가능하지만 현실적으로 구속력이 없다. 위조지폐나 훼손된 주화를 사용하는 행위가 범죄로 처벌받는 근거는 화폐에 관한 법률이지, 개인간의 거래에 대한 신의성실 의무 때문이 아니다. 만약 위의 행위를 처벌하려면 까페주인이 가게문을 닫고, 그 사람을 찾아내서, 민사소송을 걸어야 하는 데 고작 만원 남짓한 금액에 그짓을 누가 할까? 자경단이라도 조직하면 모르겠지만 그건 형사소송감이다.

(2) 위변조가 가능한가?
가능하지만, 현실적으로 불가능하다, 번거롭고 이익도 없다. 가능한 방법은 전세계 PC에 존재하는 단일 취약점을 이용해서 비트코인 전자지갑 전체를 한 번에 위변조하면 되는 데, 이게 생각외로 말도 안되는 이유 때문에 불가능하다. 왜냐하면 전세계 PC 혹은 적어도 네트워크 내의 과반 이상의 PC가 동시에 켜져있을 수 있나? 네트워크가 워낙에 방대하기 때문에 한번에 몇 백만대 정도로도 어림도 없다. 그 짓을 할 바에는 랜섬웨어로 협박해서 돈을 뜯는 편이 간편하고 증거도 덜 남는다.

(3) 화폐로서의 가치가 있는가?
 뉴스룸 토론을 보면서 내내 불편했던 부분이 김진화 대표는 비트코인 거래소의 사업전망, 정재승 교수는 블록체인 기술의 밝은 전망에만 빠져서 토론의 본질을 호도했다는 것이다. 반면 유시민 작가는 토론에 있어서의 전장을 너무도 잘 선택했다.  한호현 교수는 조금 핀트가 빚나가서 언급할 부분이 좀 적다. '화폐'로서의 가능성, '투기상품'으로서의 문제점은 경제학을 전공했기 때문에 너무도 그에게 유리한 전장이었고, 사실 이 부분이 이 토론에서 본질로 삼아야 되는 부분이기도 했다. 그러니까 사실 몽고 기마병이 말타고 배에 올라서 이순신하고 싸운 느낌이랄까?

전장을 살짝 옮겨서 김진화 대표와 정재승 교수가 가상통화 = 비트코인이라는 관점을 고수하면서, 다른 코인은 사멸되고 비트코인만 남을 거라는 전제하에, 미국 위주의 중앙집권적 권력이 통화를 마구잡이로 발권하는 기존의 시스템을 지적해줬으면 했는 데, 그렇지 못한 점이 너무 아쉬웠다. 솔직히 유시민 작가가 지지하는 국가 통제하의 화폐시스템이 만능이고 절대선은 아니지 않나?

근데 정말 그 두분은 토론을 처참하게 망쳤다. 정재승 교수가 아마존 페이스북 코인을 언급했을 때는 실소가 터지지 않을 수 없었다.  솔직히 비트코인을 제외한 나머지 가상통화들은 중앙집권적 시스템을 끼고 있는 경우 대부분 사기업의 포인트에 지나지 않지 않나? 게다가 화폐의 통제 권한을 민주적으로 선출한 정부에 맡겨도 문제가 생기는 마당에 일개 사기업에게 줘도 상관없다는 발상은 조금 위험해보였다.

개인적으로 중앙이 통제하는 화폐외에도 다소 불편하지만 그 불편을 감수하고 화폐의 기능을 할 수 있는 대안화폐의 가능성을 지지한다. 그 이유는 리먼 브라더스 사건 이후의 미국의 무지막지한 양적완화와 그 폐악을 경험했기 때문이다. 현재 미국의 달러는 기축통화임에도 불구하고 실물가치와 연동이 되지 않기 때문에, FRB에서 달러를 무지막지하게 찍어내면 상대적으로 내 주머니에 있는 돈의 가치가 자동으로 빠져나간다. 미국의 양적완화에는 현실적인 필요가 분명히 있었지만, 이런 메카니즘도 전적으로 지지하기는 힘들다. 따라서 기존 통화 시스템에 대한 경고 혹은 대안적 가능성의 의미로 비트코인은 분명히 의의가 있다고 생각한다.

(4) 그럼에도 불과하고 폐악이... 규제는 필요한가?
 비트코인은 분명 의의가 있다. 하지만 어느 정도냐면, G20 정도 정상이 모여서 '앗 젠장 이런수가 있었군, 우리가 화폐를 남발하다가는 큰일이 나겠네 혹은 큰일이 나겠다고 미국한테 읍소하는 정도' 잠깐 놀라는 정도면 충분하다.

직장에서 하루 종일 비트코인 시세만 쳐다보는 좀비가 수두룩 해지고, 그 좀비가 2500만원에서 존버하면서 시체가 되고, 20대에서 30대 초반으로 추정되는 운전수들이 수 많은 단톡방을 운영하면서 시세조종 놀이를 하고 있는 대한민국의 현실을 비춰볼 때 저런 정도의 실익은 무시되고도 남는다. (주식의 경우 시세 조종행위를 한 자는 구속되고, 기본 10년 이하의 징역 또는 5억원 이하의 벌금에 부당이익은 몰수된다. 부당이득이 50억 이상인 경우는 무기 또는 5년에서 15년 이하의 징역이다. )

(4) 채굴없는 블록체인은 앙꼬없는 찐빵인가?
 뭐 앙꼬가 없긴 하다. 근데 앙꼬없는 찐빵은 못먹나? 분명 채굴행위가 배제된 블록체인 기술은 지금처럼 핫하지는 않지만(지금이 좀 지나치게 핫하긴하지) 분명 의미는 있다. 위변조를 어렵게 만들기 때문에 내부자에 의한 변조 방지도 가능하기 때문이다. 월마트의 원산지 확인 시스템이나 , 전자투표 시스템 이런 건 거래행위가 없이도 얼마든지 가능하다. 그냥 원장이라는 말 빼고, 암호화된 분산 DB 시스템으로 말이다. 즉 시스템 내에 거래행위가 필요없는 시스템의 경우 충분히 활용할 분야가 많이 있다. 다시 말하자면 지금처럼 핫하지는 않겠지만..

(5) 환경문제
 이건 뉴스룸 토론회에서 언급되지 않는 내용인데, 작년(2017년)에 비트코인 채굴에 사용된 전기량이 약 37테라와트라고 한다. 대충 감이 잘 오지 않는 데, 이 정도 전기는 미국(다른 나라도 아닌, 전기 펑펑쓰는)의 300만 가구가 1년 동안 사용하는 전기량이라고 한다. 이 정도되는 전기를 화폐로서는 실제 사용하지도 않는 비트코인 유지를 위해서 쓰기에는 너무 아깝지 않나? 알다시피 전기 생산 과정에서는 막대한 화석연료가 소모되기 때문에 환경문제와 직결된다.

* 결론
비트코인은 현재 그 투기성으로 인해 분명한 사회문제를 일으키고 있다. 그렇다고 블록체인 기술을 버리기에는 너무 아깝다. 그러나 비트코인과 블록체인을 분리할 수 없다면, 나는 비트코인을 버리는 게 맞다고 본다.

덧붙이는 글 | 정직하게 코인투자를 하시는 분들의 건승을 응원합니다.



  • 이 기사는 생나무글입니다
  • 생나무글이란 시민기자가 송고한 글 중에서 정식기사로 채택되지 않은 글입니다.
  • 생나무글에 대한 모든 책임은 글쓴이에게 있습니다.