Block chain 중의 하나의 Block 정보
Block (블록)각 Block은 Data, Hash (현재 Hash), and Previous Hash (지난 블록의 Hash)로 이루어져 있다. Data: 어떤 형태의 Data든 담을 수 있다. 예를 들어, Coin의 경우는 From/To/Money 등의 정보들이 저장 되어 있는 Data일 수 있다. 이것은 누구나 읽을 수 있다. Hash: Data 에 대한 Hash를 담고 있다. Hash Algorithm은 MD5, SHA128/SHA256, etc 등이 있을 수 있다. Previous Hash (지난 블록의 Hash): 블록은 Chain 으로 이어져 있는데, 이 Previous Hash가 있어서 지난 Hash가 무엇인지 알 수 있게 한다. Hash/Previous Hash 로 인해서 각 블록을 임의로 변경하는 것이 거의 불가능에 가깝게 한다 https://youtu.be/SSo_EIwHSd4 에 Block Chain의 원리에 대한 기초적인 설명이 있으니 참고한다.https://youtu.be/zVqczFZr124 에 Javascript로 만든 예제가 있으니 참고한다. Proof-Of-Work (POW)hash를 만드는것은 너무나 순간적이어서 이것을 좀 어렵게 만든다. data에 nonce를 추가하고, nonce와 함께 hash를 만들때 hash에 어떤 규칙이 만들어 질때까지 nonce를 바꾸면서 hash를 만든다. 결국 computing power를 많이 쓰게 되고, eventually 원하는 hash가 만들어지면, 그것으로 hash를 결정 짓는다. 예를 들어, 앞자리 5개가 0으로 되어야 하는 hash를 만든다면, nonce를 계속 바꿔가면서 앞자리 hash가 5개가 0이 될때까지 무한 반복을 한다. 현재 비트코인의 경우는 이렇게 만드는 것을 10분안에 만들어야 하는 것으로 제약하고 있다. https://youtu.be/HneatE69814 에 Javascript로 만든 예제가 있으니 참고 한다. Proof-Of-Stake (POS)2020에 ETH 2.0 부터 적용을 하려고 하고, 2022에 완성시키는 계획이다. Coin을 일정한 사람들이 모여서 Lock 하고 (이것이 Staking 한다고 한다. 이 Coin은 Lock 이 되어 잠시 쓸 수 없다.), 그 중에 Validator를 뽑는다. Validator를 뽑는 기준은 어떻게 Govern 하느냐의 정책에 따라 다르지만, 보통은 많은 양의 Coin을 Stake 하고, Computing Power가 많이 있는 사람, 신뢰 (이것도 정책에 따라 다르지만…)가 있는 사람으로 뽑는다. 뽑힌 Validator는 역시 기존의 POW를 통해 Mining을 하고, Mining이 끝나면, 이 Validator를 뽑았던 Coin을 Lock 한 사람들에게 배분을 한다. 배분은 Lock을 많이 한 사람에게 비례해서 배분한다. (언제 배분하는지는 각 정책에 따라 다르다. Mining이 끝날때마다 하던지 아니면, 어떤 기간이나 몇번의 Cycle이 지나서 하는지는 정책에 따라 다르다.) 만일 Validator가 사고가 나거나 Computing이 죽거나 등등이 발생하면, Slashing 하여 Lock 된 Coin을 잃게 될 수도 있다. Block Chain (블록체인)P2P 방식으로 각 Block이 Chain 형식으로 이루어져 있게 한다. Node (노드)노드는 사용자라고 보면 된다. Node의 Type에 따라서 블록을 얼마나 가지고 있는지, 혹은 어떤 역할을 하는지 결정이 된다. Full Node모든 정보, 장부 기록을 가지고 있는 노드 Desktop 컴퓨터에서는 큰 용량의 Hard Disk가 있으므로 Full Node가 될 수도 있음 Block의 모든 것에 대한 검수 및 Validation을 할 수 있음 Lightweight Node필요한 Essential 한 정보를 가지고 있는 노드 모바일 환경에서는 Storage가 작기 때문에 적은 용량의 내용이 필요함 Pruned Node제한된 환경에서 Full Node를 가지게 한다. 즉, Full Node 처럼 정보를 다 가지고 있지만, 모든 Block 에 대해서 가지고 있는 것이 아니고, Limit 된 Block만 가지고 있다. Archival Node일반적인 Full Node 라고 하는 것 Validation 등을 할 수 있다. Archival Node는 Block을 만들수 있는 Node 이냐, 그렇지 않은 Node 이냐에 따라 세부 Node Type으로 또 나눌 수 있다 Bit Coin (비트코인)블록체인을 이용하여 화폐처럼 이용 가능 하게 함. 즉, 결재나 거래를 가능하게 함 Ethereum (이더리움)역시 블록체인을 이용하는데, 비트코인처럼 화폐로 이용하는 것 이상으로 계약서, SNS, 이메일, 전자투표 등 다양한 애플리케이션을 투명하게 운영할 수 있게 확장성을 제공하는 플랫폼이다 References
BitCoin blockchain Ethereum node 비트코인 이더리움