본문 바로가기

이 '정보' 저 '정보'/IT 인터넷

분산된 공개장부, '블록체인'!!!

728x90

'2027년이면 전세계 총 생산의 10%가 블록체인 기술로 저장될 것'

-세계경제포럼


비트코이은 일종의 암호화폐이고 국가가 관리하지 않는 '민간화폐'이다. 아무도 관리하지 않지만 모두가 관리하는 화폐가 '암호화폐'다.


암호화폐의 원조 격인 비트코인은 2009년 사토시 나카모토란 인물이 만든 가상화폐로 통화를 발행하고 관리하는 중앙 장치가 존재하지 않는다.

대신 비트코인 거래는 P2P 기반 분산 데이터베이스에 의해 이루어지며 공개 키 암호 방식 기반으로 거래를 수행한다.




비트코인의 거래량과 시가 추이를 보면 2012년 대비 2017년의 그래프는 말 그대로 하늘을 찌른다.

시가로만 보면 2012년 대비 거의 5천배의 성장이다.

특히 2017년인 올해 폭발적인 성장을 보였다.

이른바 강남 아줌마들의 투자처가 아파트에서 비트코인으로 바뀐 것도 올해부터다.


비트코인 거래의 시초는 피자 구매였다.

과연 비트코인으로 피자를 살 수 있을지 궁금했던 한 컴퓨터 프로그래머의 호기심이 시작이었다.

1만 비트코인을 주고 파파존스 피자 두 판을 받는 거래가 그렇게 이루어졌다.

당시 25달러의 피자 값으로 지불했던 1만 비트코인은 지금 시가로 따지면 무려 600억원이 넘는다.

'비트코인이 실제 화폐로 작동할 수 있구나!' 라고 사람들이 인식하게 된 계기였다.




블록체인 핵심은 P2P 네트워크다.

분산장부 기술은 블록체인의 또 다른 이름이다.

비유하자면, 우리가 땅을 사고 팔려면 당연히 필요한 게 등기소인데, 두 사람의 거래를 보증해주는 제 3의 공공기관이 필요하니 등기소의 존재는 땅 거래에 필수다.

서로를 믿을 수 없기 때문인데, 또 다른 사람들이 해당 거래에 대해 인정하게 하려면 이런 공신력 있는 기관의 보증이 필요해서다.

그런데 블록체인 기술은 등기소를 무용지물로 만든다.

두 사람의 땅 거래 계약서를 대한민국 모든 사람들에게 다 나눠주는 게 블록체인 기술이다.

사본을 나눠주는 게 아니라 원본을 나눠주는 거다.

물론 물리적 현실공간에서는 꿈도 꿀 수 없는 얘기다.

하지만 디지털 공간이라면 얘기가 달라지는데, 모든 것들이 인터넷 네트워크로 연결되어 있기 때문이다.

이렇게 되면 공신력을 가진 제 3자의 보증이 필요가 없어진다.

거래와 동시에 거의 실시간으로 모든 사람들이 해당 거래의 존재 여부를 알게 되기 때문이다.



조금 더 구체적으로 살펴보면 다음과 같다.

네트워크 상 컴퓨터들이 모두 연결되어 있는 상태에서 10분 단위 거래의 정보 블록들이 계속 쌓인다. (수많은 컴퓨터가 똑같은 정보를 함께 쌓아 나가는 방식)

하나의 중앙 컴퓨터에 거래 원본이 쌓일 때는 보안에 대한 우려가 컸다.

누군가 중앙컴퓨터 한 대만 조작하면 모든 걸 좌지우지할 수 있기 때문이었다.

하지만 블록체인 기술은 이런 우려를 원천적으로 불식시킨다.

네트워크에 물린 모든 컴퓨터들이 10분마다 동기화되기 때문이다.

서로가 동일한 정보를 갖고 있는지를 끊임없이 확인하는 거다.

만약 특정 컴퓨터 한 대의 정보가 다르다면 해당 컴퓨터는 네트워크에서 제외된다.

중앙관리자 없이 전체 기록이 투명하게 관리될 수 있는 이유가 여기에 있다.



비트코인의 놀라운 점은 관리주체가 정해져 있지 않음에도 불구하고 위조 화폐나 시세 조작 등의 문제없이 작동하고 있다는 점이다.

이는 비트코인이 '비잔틴 장군의 딜레마'에 대한 해결책을 구현한 것이기 때문이다.

비잔틴장군의 딜레마란 1982년 레슬리 램포트 등 3명의 컴퓨터 공학자들이 마이크로소프트 의뢰를 받아 수행한 연구 논문을 통해 처음으로 이슈화 되었다.

이는 실제 역사적 사건이 아니라 분산 컴퓨팅에서 발생할 수 있는 신뢰와 합의의 문제에 대한 우화다.


▌비잔틴 장애허용, 비잔틴 장군 문제


300명의 병력이 있는 비잔틴 성을 100명씩의 병력을 가진 장군 5명이 치려함

이기려면 적 병력보다 많은 병력이 공격해야 함

장군들은 연락병을 보내 소통 가능함

장군들 중에는 배신자가 있어 서로 신뢰 불가함


문제) 서로 신뢰할 수 없는데, 어떻게 공격 시각을 합의할 수 있는가? 

     . 가정 1 - 공격 시각은 상관 없음. 모두 한번에 공격할 수 있는 합의된 시각이면 됨

     . 가정 2 - 배신자는 병력을 분산시키려 하므로 이전 장군의 메시지와 다른 시각을 제시함

     . 가정 3 - 각 장군은 자신의 바로 다음 장군에게만 연락할 수 있음

     . 가정 4 - 배신자도 지정한 시간에 공격에 가담 함



<<문제 생기는 상황>>

1.@장군1 이 "9 AM" 공격시각을 적어 서명과 함께 @장군2 에게 보냄 

2.@장군2 는 @장군1 의 "9 AM" 공격시각을 보고 기억한 후 @장군3 에게 전달함

3.@장군3 은 배신자로, "9 AM" 메시지를 찢어버리고 "8 AM" 으로 고쳐서 @장군 4에게 전달

4.@장군4 는 "8AM" 을 기억한 후 @장군5 에게 전달

5.@장군5 는 "8AM" 을 기억

6.8AM 에 @장군3, @장군4, @장군5 가 쳐들어가지만 300명이므로 지게 됨


<<블록체인 해결>>

[새로운 규칙]

A. 장군은 메시지를 보내기 위해 반드시 10분의 시간을 들여야 함

B. 메시지는 모든 이전 장군의 메시지와 10분의 시간을 들였다는 증거를 포함하여 보내야 함


1. @장군1 이 "9 AM" 공격시각을 적어 10분간 작업하여 증거와 함께 @장군2 에게 보냄

2. @장군2 는 "9 AM" 메시지와 @장군1 의 10분 작업 증거를 보고 확신 후, @장군3 에게 "9 AM" 메시지 보냄

  1)@장군2 도 10분 간 작업 함

  2)@장군1, @장군2 의 메시지와 작업내용 모두를 포함하여 보냄

3. @장군3 은 배신자로 "8AM" 으로 메시지를 수정하여 보내고 싶으나 그냥 보낼 수 없음. 아래 중 택 1 해야 함.

  1)속일 수 있는 유일한 방법

    - @장군3 은 10분보다 빠르게 작업을 하여 "8 AM" 메시지를 만들어 냄

    - @장군1, @장군2 의 총 20분 작업에 해당하는 메시지 모두를 남은 시간 내에 만들어 포함 시켜 보냄

  2)안들키고 있으려면 "9 AM" 으로 보내기

4. @장군4, @장군5 모두 동일


[의미]

1.만약 @장군3 이 "8AM" 으로 보냈다면, 모두 장군 3이 거짓임을 알게 됨

2.만약 @장군2 가 배신자였다면 @장군2,3,4,5 모두 9AM 공격 가므로 이기게 됨

3.만약 @장군1 이 배신자였다면 8AM 에 모두 함께 공격 가므로 이기게 됨



로그인 안 해도 누를 수 있는 ♡공감을 눌러 주시면 제게 큰 힘이 됩니다.