Boan/용어

[용어] 블록체인(BlockChain)

ha3kkkkk 2020. 5. 5. 01:18

1. 블록체인이란

블록체인에서의 '블록'은 개인과 개인의(P2P) 거래 데이터가 기록되는 장부이다.

이 블록을 네트워크를 참여한 여러 명이 나눠서 저장한다. 즉, 한 네트워크에 10명이 참여하고 있다면 거래 내역을 10개의 블록으로 생성해  10명 모두에게 전송, 저장하여 공유한다.  

공유된 거래 내역은 10분 단위로 모두 모여 확인하는데, 만약 과반수가 넘는 사용자가 '이것은 내가 가진 것과 같아! 진짜가 맞아!'라고 한다면 새로운 블록(새로운 거래 기록)으로 만들어져서 앞서 만든 블록의 뒤에 덧붙인다. 이러한 과정을 반복하여서 블록들이 체인 형태로 계속하여 묶이기 때문에 블록체인이라 부른다.

모든 거래내역이 블록체인 안에 기록되어 있기 때문에, 블록체인을 들여다보면 누가 언제 얼마를 누구에게 건넸는지 확인할 수 있다.
(물론 암호화되어있다!) 이렇게 거래자 모두가 거래 장부를 공유하기 때문에 '공공 거래 장부'라고도 한다.

즉 블록체인은 모든 거래자의 전체 거래 장부를 공유, 대조를 통해 거래를 안전하게 만드는 보안 기술이다.

 

 

 

 

2. 기존 은행과의 차이

기존의 거래 방식은 은행이 모든 거래 내역을 가지고 있는다. 그래서 은행이 중간자 역할로 거래 내역을 증명해주고, 다른 사람에게 그 내역이 유출되지 않도록 꽁꽁 감싸 보안하는 형식이다. 

블록체인 또한 거래 내역을 저장하고 증명한다. 하지만, 은행처럼 최소한만 저장하고 최소한의 인원만 접근하는 것이 아니라,
네트워크에 참여한 여러 명이 나눠서 저장함으로써, 정보를 꽁꽁 싸매고 숨겨야 한다는 보안 상식을 뒤엎었다.

 기존에는 A가 B에게 송금을 하려고 할 때, 은행이 A의 잔고를 확인하여 증명해주었지만, 
블록체인에서는 B가 모든 거래 기록을 가지고 있기 때문에 자신이 가지고 있는 거래내역을 확인하여 A를 믿을 수 있는지 확인할 수 있다.

은행 또는 정부라는 제 3자(중앙관리자)가 거래를 보증하지 않아도 거래 당사자끼리 가치를 교환할 수 있게 된 것이다.

 

 

 

 

3. 보안성 

 

(a) 모두가 가지고 있는 공공거래 장부를 어떻게 믿을 수 있을까?

앞서 말했듯이, 10분 간격으로 연결된 모든 PC들이 자신이 가지고 있는 거래 내용과 같은지 비교한다. 
여기서 과반수 이상이 동의한 데이터를 모아서 블록화 시키기 때문에, 위조를 한다고 해도 그것이 과반수가 안된다면 폐기 된다.
그리고 새로운 블록을 추가한 블록체인은 블록체인을 사용하는 모든 사용자가 다운로드하게 되기 때문에, 모든 사용자가 인증받은 거래 기록만 계속 공유하게 되는 것이다.

 

(b) 그렇다면 이것을 위조하는 것은 얼마나 어려울까?
블록체인은 해시 알고리즘을 사용한다.  
(해시 알고리즘은, 알다시피 한 글자라도 내용이 다르면 전혀 다른 값을 가진다. )
블록 안에는 
10분간의 거래내역해당 블록의 거래내역을 요약한 해시값바로 앞 10분 전에 이미 완성된 블록의 해시값을 포함한다.
여기서 제일 중요한 건 '이전 블록의 해시값'이다. 이 해시값이 직전 블록과 이어주는 체인인 것이다.

특정 블록을 위조하려면, 10분 동안 위조된 해시값을 만들어, 그 블록과 블록 뒤에 연결된 모든 블록들을 위조시키고 배포까지 해야 한다. 그런데 위조와 배포를 하려고 하는 그 시간 동안에도 실시간으로 블록이 생성되고 있기 때문에, 공격자는 블록체인 네트워크보다 더 빠르게 연산하여 위조와 배포를 해야만 한다.

즉, 블록체인 사용자 컴퓨터의 과반수를 위조하려면 
그들보다 높은 연산력이 필요한 것다. 

그런데, 블록체인 네트워크의 절반과 현존하는 슈퍼컴퓨터 1위에서 500위까지의 연산력 합을 비교했을때, 슈퍼컴퓨터 1위에서 500위까지의 연산력 합을 더한 것보다 블록체인 네트워크 절반 수준의 연산력이 더 높은 것으로 나타났다. 블록체인 네트워크의 절발 수준을 뚫고 위조하는 것이 매우 어려운(사실상 불가능한) 것이다. (물론 어느정도 네트워크의 크기가 클때 이것이 가능하다*)

따라서, 블록체인은 모든 사람이 정보를 공유함으로써 데이터를 조작하지 못하게 막고,  P2P 네트워크의 근본적인 문제인 사용자가 서로를 신뢰할 수 없다는 점을 해결한 것이다.

 

* 블록체인은 데이터를 공유하는 사람이 많아질수록 안정성이 커지기 때문에, 블록체인을 활용하는 초기에 사용자가 많지 않다면 따로 인증 보안을 해야 할 것이다.

 

 

 

 

참조
https://brunch.co.kr/@banksalad/228
http://www.bloter.net/archives/230157
https://www.youtube.com/channel/UCyzDS-GWXDOKxg24cGDNxtQ