블록체인, 비트코인, 이더리움, 노드

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

You May Also Like

About the Author: admin

Leave a Reply

Your email address will not be published. Required fields are marked *