학사 나부랭이

1. What is Blockchain 본문

自習/Blockchain

1. What is Blockchain

태양왕 해킹 (14세) 2022. 2. 11. 00:39

들어가기 앞서, 해당 포스트는 UNIST의 Marco Comuzzi 교수님이 강의하신 Blockchain Systems를 해시넷 위키를 참조해 재해석한 글입니다.

 

거래를 하려는 거의 모든 사람이 생각하는 가치가 비슷한, 원하는 개체와 교환가능한 매개체입니다.

예를 들어,

삼겹살 300g과 조기 한 마리를 바꾸려는 도축업자와 어부에서, 도축업자 입장에서 삼겹살은 돈이고 어부 입장에서 조기는 돈이죠.

역사상으로 조개껍질, 금, 은 등 해당 사회에서 보편적인 가치를 인정받은 것들(보통 적당히 구하기 어려워야 단위 당 가치가 높아 거래할 때 편리하기에)이 돈으로 사용되었죠.

그리고 1970년대, 미국이 금본위제를 폐지함으로 이런 실물기반 화폐는 사라졌죠. 그럼 현재 돈은 어떻게 돌아가느냐? 바로 Fiat money인데요.

시민들이 물건이나 용역을 구매/판매할 때 법적으로 강제하는 방식이에요.

예를 들어, 이전에 금본위제와 Purachina국의 경제장악력으로 인해 짐바브웨 달러가 널리 사용되어 왔어요. 어디서든 어느때든 1짐바브웨 달러를 들고오면 Purachina국이 1g의 황금으로 바꿔줬고 사막 한 가운데에도 Purachina국의 연락소가 있어서 교환이 가능했죠.

그런데 어느 순간 Purachina국이 금본위제를 폐지하고 Purachina 법령으로 '거래에서는 짐바브웨 달러가 사용되어야 한다'라고 강제했어요.

물론, 처음에는 동요하고 이후로도 가치안정성은 낮겠지만 사람들은 이미 이전에 써왔고, 무엇보다 세계에 영향력 있는 많은 기업, 시민들이 어쨌든 세금을 내기위해서는 짐바브웨 달러가 필요하니까 계속 쓰겠죠?

This is what dollars do

 

블록체인은 비트코인 등 암호화폐의 근간이 되는 기술입니다. 하지만, 암호화폐는 블록체인의 많은 사용 예 중 하나일 뿐이죠.

블록체인은 신용할 수 없는 Actor 간에서 정보와 value의 교환에 대한 신뢰를 만들 수 있는 기술입니다.

이런 블록체인은 Data structureprotocol로 구성되어 있어요.

 

Data structure(Block)

 

Actor들 사이에서 일어난 거래(Transaction)를 덧붙이기(=이전의 것을 수정할 수 없음)만 할 수 있는 분산된 ledger(거래 내역을 적은 원장, 장부)예요. 쉽게 말해, 한 시스템 안에서 일어난 Actor들의 상호작용을 기록한, 수정 불가능한 것이죠.

이 특성은 규정 등으로 정의된 것이 아니라 Ledger의 구조에 심어져있는 특성이죠.

이런 Transaction은 더 이상 쪼갤 수 없는 거래의 최소 단위예요. 예를 들어, 'Purachina가 Purajapan에게서 1 짐바브웨 달러를 주었고, Purajapan은 이를 받았다.'가 Transaction이라면, Purachina가 준 사실과 Purajapan이 받은 사실은 나눌 수 없고, 만약 Purajapan이 받지 못했으면 성립되지 않는 Transaction이죠.

이런 Transaction을 암호화해 연결시켜 블록으로 그루핑하면서 단독 Actor로는 물리적으로 수정이 불가능해요.

모든 Actor들은 ledger의 사본을 가지고 있죠.

 

Protocol

블록체인에서, Protocol은 actor들이 동의한 ledger의 상태에 대한 규칙이에요. 여기에는 각각의 사건에서 어떤 정보가 Ledger에 저장될지 정하죠.

 

모든 Actor들이 ledger와 protocol에 동의했다면 ledger의 상태에 대해 감시할 중개자가 필요없어지죠.

예를 들어, Github를 생각해볼까요? 어떤 팀 프로젝트가 Github에 있고, 여기서 수정하는 Actor에 A, B, C, D가 있다고 해봅시다. 어제 A가 print('hello')를 넣었다고 생각해봅시다. 여기서 수정 내역을 기억하기 위해서는 두 가지 방법이 있죠.

1. 중앙 서버에 로깅

Github가 모든 수정내역을 기억하는 방법이에요. 이 방법은 중앙 서버가 Exploit되면 모든 기록이 날라갈수도, 로그 내용이 바뀔 수도 있죠.

2. 블록체인

A, B, C, D 모두가 이 내역을 기억하는 것이죠. 여기서, Ledger에는 수정 내역만 기억하게 protocol로 규약하면 첫 코드부터 현재 코드까지 누가 수정했는지 증명할 수 있죠.

그런데, 만약 B가 사실 C, D를 지배했다면 어떨까요? B가 C, D를 조종해 A가 print('world')를 추가했다고 주장하면??? 그것이 바로 51% 공격이랍니다.

Comments