No img


블록체인

Posted by bonggang | 2020. 1. 21. 00:40

본 게시물은 개인의 학습을 위해 작성되었기때문에 잘못된 정보가 포함되어 있을 수 있습니다. 문제가 생긴다면 말해주세요-!

 

개념


블록을 잇따라 연결한 모음으로 다수가 볼 수 있는 장부에 거래 내역을 투명하게 기록하고 여러 대의 컴퓨터에 이를 복제해 저장하는 분산형 데이터 저장기술이다. 블록에는 일정 시간 동안 확정된 거래 내역이 담기며 네트워크에 있는 참여자에게 전송된다. 참여자들은 해당 거래를 확인하고 승인 여부를 결정한다. 이 때 승인된 블록만 기존 블록체인에 연결되는 것이다.

비트코인이 유명해지며 블록체인이 함께 유명해져서 비트코인과 블록체인을 동일시 하는 경우가 있는데 비트코인은 블록첸을 화폐 발행과 운용에 응용한 것으로 블록체인을 활용한 한 분야일 뿐이다.

현재 비트코인 뿐 아니라 화물 추적 시스템, P2P 대출, 예술품 진품 감정, 위조화폐 장비, 전자투표, 전자시민권 발급 등 여러분야에서 블록체인이 활용되고 있다.

 

종류


블록체인은 운영방식에 따라 개방형과 폐쇄형으로 구분된다.

 

- 개방형(Public) 
모두에게 개방되어 누구나 참여 가능한 블록체인으로 누구나 트랜잭션을 생성할 수 있고 참여한 모든 노드가 트랜잭션을 검증한다. 이로 인해 투명성이 강화되지만 사람들의 합의가 필요하며 전체 네트워크 동기화로 인해 속도가 느리다.
개방형 블록체인의 대표적인 예시는 비트코인, 이더리움, 모네로 등이 있으며 대표적인 합의 알고리즘으로 POW(Proof of Work, 작업증명), POS(proof of Stake, 지분증명), DPOS(Delegated Proof of Stack, 위임지분증명) 등이 있다.

- 폐쇄형(Private)
기관 또는 기업이 운영하며 사전에 허가를 받은 사람만 사용할 수 있는 블록체인으로 노드별로 권한을 다르게 설정하는 것이 가능하다. 참여자 수가 제한되기에 비교적 속도가 빠르고 기밀성이 강화된다. Hayper ledger fabric, R3 CORADA 등이 대표적인 예시이며 대표 합의 알고리즘은 PBFT(Practical Byzentine Fault Tolerance)가 있다.

 

블록


블록데이터를 저장하는 단위로 다수의 거래 정보 묶음을 의미한다. 헤더와 바디로 구성되며 각 구성요소는 다음과 같다.

 

 

블록해쉬는 블록의 식별자로 블록 헤더 정보를 입력 값으로 SHA256 해시 함수를 2회 적용해서 계산한다.

 

 

완료된 거래 정보가 변경될 수 없는 이유


거래 정보의 개별 해시값은 해당 거래가 포함된 블록의 merklehash 계산의 입력 값으로 사용된다.

merklehash 값은 블록 해시 계산의 입력 값 중 하나로 활용된다. 

블록해시는 다음 블록의 previous block hash 값으로 저장된다.

previous block hash 값은 다음 블록의 블록 헤더 정보로 다음 블록 해시 값 계산의 입력 값으로 활용된다.

 

즉, 거래 정보가 변경될 경우 merklehash 값이 변경되고 merklehash 값이 변경되면 블록 해시 값이, 블록 해시 값이 변경되는 다음 블록 해시 값까지 변경된다.

하나의 거래 정보가 변경될 경우 다음 블록들까지 전부 변경이 된다.

 

[거래 정보 변경 -> merklehash 값 변경 -> 블록 해시 값 변경 -> 다음 블록 해시 값 변경]

 

 

 

 

참고 자료


- 블록체인 개념:  https://terms.naver.com/entry.nhn?docId=2838482&cid=43667&categoryId=43667

- 개방형 vs 폐쇄형: https://s-springnote.tistory.com/4

- https://medium.com/@kimjunyong/4-%ED%8D%BC%EB%B8%94%EB%A6%AD-%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8-vs-%ED%94%84%EB%9D%BC%EC%9D%B4%EB%B9%97-%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8-725b9fa92809

- 블록체인 기초 개념: https://homoefficio.github.io/2016/01/23/BlockChain-%EA%B8%B0%EC%B4%88-%EA%B0%9C%EB%85%90/