1. Block Chain이란 무엇인가?
block chain은 block과 chain이 합쳐진 단어로 block은 관리 대상인 데이터를 의미하고 chain은 이러한 block들이 P2P 방식을 기반으로 연결되어 있는 형태를 의미합니다. 따라서 block chain은 관리 대상인 데이터를 P2P 방식을 기반으로 연결된 분산 데이터 저장 환경이라고 이해한다면 될 것 같습니다. 데이터가 분산 저장되어있으므로 누구나 변경되는 데이터를 열람할 수 있으므로 위변조 하기 어려운 데이터 위변조 방지 기술입니다.
이와 같이 block들이 chain으로 연결되어있고 변화가 생기게 되면 block을 생성하여 데이터를 저장하게 되고 이전의 block과 다음의 block이 chain으로 연결 되게 됩니다. 이러한 정보의 연결에 대한 내용을 모든 사용자가 가지고 있습니다. 따라서 모든 사용자가 열람이 가능하기에 정보 저장의 투명성이 강점이 됩니다.
위의 구조처럼 블록이 생성되며 이전 블록의 hash값을 현재 블록이 알고 있어 chain구조로 연결 된다고 이야기 합니다.
2. 위변조를 어떻게 방지하는가?
모든 정보의 수정 기록을 block chain을 사용하는 사용자에게 공유가 되기 때문에 특정 소수가 데이터를 위변조 하더라도 모든 데이터를 비교하여 위변조 된 정보가 사실인지 아닌지 판단하기 때문에 특정 소수가 아무리 정보를 바꾸어도 바로바로 확인되어 정보를 보호하게 됩니다. 단 사용자의 다수결에 의하여 다음 block이 결정되므로 과반수 이상을 한 순간에 위변조 한다면 위변조가 가능하지만 사용자가 많으면 많을수록 거의 불가능에 가깝기에 위변조가 불가능하다고 표현합니다.
3. 새로운 block은 어떻게 생성되는가?
blockchain은 위에서 설명했듯 데이터를 저장하는 기술입니다. 모든 정보가 저장이 되어있죠 단 수정이나 삭제가 불가능합니다. 그러기에 위변조가 불가능합니다. 이러한 데이터를 저장하는 데이터베이스에 정보를 저장하는 방법은 블록을 만들어서 정보를 저장하게 되는데 블록은 어떻게 생성되는지 알아봅시다.
우선 블록에는 저장할 정보를 가지고 있습니다 (비트코인의 경우는 거래 내역을 가지고 있기에 화폐처럼 거래를 한다고 보시면 됩니다.) 두 번째로 이전 block의 hash값이 필요로 합니다. 이렇게 이전 block의 hash값이 있어야 새로 생성되는 block과 이전 block 간에 연결이 증명되기 때문입니다. 이러한 정보를 이용하여 새로 생성될 block의 hash값을 생성을 하게 된다면 새로운 데이터가 block화 되어 chain으로 연결됩니다. 이러한 작업을 "작업 증명"이라고 하기도 하며 영어로 "Proof of Work" 줄여서 POW라고도 합니다. 이러한 작업을 해주는 사람을 '채굴자'라고 하며 흔히 말하는 비트코인 채굴은 들어온 데이터가 사실인지 확인을 하고 block안에 넣어서 blockchain에 올리는 이러한 연산의 작업을 말합니다. 연산해야 할 양이 엄청 많기 때문에 많은 전기를 사용하며 연산이 조금이라도 빠른 그래픽 카드를 이용하여 채굴을 하고 있습니다.