ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 블록체인이란? 비트코인 #3
    Study/BlockChain 2021. 7. 5. 18:33

    5.  Decentralized

     

    비트코인에 대해 소개할때 가장 많이 나오는 단어가 있습니다. 바로 탈중앙화입니다. 그럼 이 탈중앙화는 도대체 뭐길래 비트코인뿐만 아니라 알트코인, 별 잡코인의 비전을 이야기할때  항상 나오는걸까요?  탈중앙화(Decentralized)는 다음과 같은 특징을 뜻합니다. 

    •No central point
    •Power/control is split
    •Physical distances not a primary concern
    •Nodes are usually scattered

    즉 위의 특징들을 요약하면 중앙집중화를 벗어나 분산된 소규모 단위의 노드들이 자율적으로 운영되는 것을 의미합니다. 그럼 어떻게 위 특징들을 이루어지는이 알아보겠습니다.

     

     

    source: https://docs.google.com/presentation/d/13SOZqHzLRryyFXw26CCE89lKMa8X9YAhdTFgXdw0a1s/view#slide=id.p

    만얀 Alice가 Bob에게 코인을 지불하려고하면 해당 TX를 만들어서 주변 node들에게 알립니다. 그럼 주변 노들들은 TX가 valid한지 검증을하고 만약 이상이 없으면 자신이 생성중인 블록에 기록을 하고 비트코인의 블록체인 뒤에 붙여준다음에 주변 다른노드들에게 이 데이터를 알립니다.

    위 과정이 비트코인의 거래방법입니다. 근데 여기까지만 알면1.주변 node들은 뭔데 block을 대신 작성해주고 검증까지 해주며   2. 누구나 블록을 작성이 가능하면 멀리 떨어져 있는 노들들끼리 서로 다른 블록체인이 만들어질 수 있는것 아니냐? 라는 의문점이 생기는데요, 이 의문점에 대한 답은 다음과 같습니다.

    위 node들은 채굴자를 뜻하고 block을 대신 작성해주는 행위를 채굴이라고, 채굴자들은 해시 문제를 푸는 능력을 투표권으로 가지고 보다 더 긴 블록체인을 선택합니다. 지금 이 글을 읽으면 이해가 잘 안가실텐데 다음 글들을 보며 하나씩 풀어보도록 하겠습니다.

     

     

     

    만약 A가 B에게 코인을 지불하였습니다. 근데 A가 악의적인 마음을 먹고  B에게 지불한 코인을 자신에게 보내는 TX를 새로 만들고 새로운 블록체인을 만들었다는 상황을 생각해보겠습니다. 다른 채굴자들은 위 이미지에서 둘중 어떤 블록이 옳바른것인지 알 수가 없으므로 둘 중 더 긴 블록체인을 택해서 자신들의 블록을 붙입니다. 그래서  비트코인에서 거래가 이루어지고 해당 TX가 속한 블록 뒤에 보통 6개의 블록이 더 붙어야지 안전하다고 판단합니다.

    그럼 만약에 과반수 이상의 채굴자가 악의적인 블록체인을 고의로 택하는 상황을 생각해보겠습니다. 이같은 공격을 51%공격이라고 합니다. 비트코인같이 전체 채굴전력이 어마어마한 코인같은경우 사실상 51%공격은 불가능에 가깝지만, 알트코인, 혹은 잡코인같은 경우 실제로 공격을 당하는 사례가 존재한다고 합니다.

     

     

    앞에서 채굴자들은 TX를 받아 자신의 블록에 기록을 하고 블록을 새로 생성한다고 했는데요, 그럼 이 블록은 마구잡이로 생성이 가능할까요? 마구잡이로 생성이 가능하면 블록체인의 생태계가 매우 혼란해질 것이고, 실제로 비트코인이 나오기 전 가상화폐들은 이 같은 이유들로 실패하였습니다. 그래서 비트코인은 '투표권'같은 개념을 이용하여 어떤 블록체인을 선택하고, 블록을 생성할건지를 이 투표권에 따르기로 했습니다. 그렇다면 이 투표권은 어떤 기준으로 부여를 해야할까요? 만약 지갑주소 즉 Public key 개수에 따라 부여하는 상황을 가정해보겠습니다. 그럼 이 방법은 공평할까요? 비트코인에서 누구나 Public key를 발급받을수 있기에, 누군가 수만, 수억개의 key를 발급받으면 전혀 공평하지 않을것입니다.

    그래서 비트코인은 CPU/GPU의 문제해결 능력에 따라 투표권을 부여하기로 했습니다.

     

     

     

    #1 https://down-develope.tistory.com/22 이전 포스팅에서 비트코인의 해시함수는 puzzle-friendly라고 했었습니다. puzzle-friendly는  'H(n|x) = y 라고 할 때, n과 y가 주어졌을때 x값을 찾기 아주 어려운것' 이라고 했었는데요, 말 그대로 퍼즐로 활용하기 적합한다는 의미입니다.

    H(prev | curr | nonce) <  target 을 만족하는 nonce를 찾는것을 목표로하고 만족하는 nonce를 가장 먼저 찾는 채굴자에게 해당 블록을 붙일 수 있는 권리를 주기로 하였습니다. 즉 컴퓨터의 문제해결능력에 따라 투표권을 부여하기로 하였고, 이러한 방법을 POW(proof of work)이라 합니다.그런데 날마다 GPU의 성능이 올라가므로 퀴즈의 난이도도 조절할 필요가 있습니다. 그래서 비트코인은 최근 2016개 블록의 생성시간의 평균을 구해, 10분을 초과하면 target값을 높여 문제의 퀴즈의 낮추고 반대인 경우에는 퀴즈의 난이도를 올립니다. 즉 평균적으로 10분에 하나의 블록이 생성되도록 조율됩니다. 현재 개인채굴자 혼자 블록을 생성하는것은 불가능에 가깝고, 마이닝 풀(mining pool)에 가입하여 채굴의 일부를 거들고 일부의 보상을 받는 방법으로 채굴합니다.

     

    그래서 위 같은 방법으로 채굴자가 해시 퀴즈를 풀고 블록을 생성하면 보상으로 6.25BTC를 받습니다. 이 액수는 4년마다 절반으로 줄어들고 총 2,100만 BTC를 발급하는 것을 끝으로 더 이상 보상을 주지 않습니다. 그럼 나중에는 보상을 안 주므로 아무도 채굴을 하지 않아 거래가 기록되지 않은 것이 아니냐라고 하실 수 있는데요. 비트코인을 거래할때 소량의 수수료를 채굴자에게 제공하므로 그런 일은 없을 것 같습니다.

     

     

     

    6. The Rules of Bitcoin

    비트코인의 protocol의 최초 디자인은 비트코인의 창시자인 사토시 나카모토가 디자인했습니다. 하지만 시간의 흐름에 따라 비트코인의 protocol을 조금씩 손볼 필요가 생기는데, 어떻게 새로운 protocol을 적용하는지 알아보겠습니다.

     

     

    하나의 블록의 사이즈를 1MB에서 0.5MB로 바꾸는 경우를 생각해 보겠습니다. 위 이미지에서 점선에서 새로운 규칙이 배포되었고 연두색은 바뀐 규칙을 따른 블록, 붉은색은 바뀌기 전 규칙을 따른 블록입니다. 새로운 룰을 적용한 채굴자는 이제 새로운 블록 뒤에만 자신의 블록을 붙이겠지만, 아직 바뀌기 전 규칙을 따르는 채굴자는 new 블록, old 블록 둘 다 읽을 수 있으므로 구분 없이 자신의 블록을 붙일 것입니다. 하지만 결국 새로운 규칙을 따르는 채굴자가 많아질 것이므로 old rule을 따르는 블록체인은 시장됩니다. 이와 같은 New rule을 적용시키는 방법을 soft fork라 합니다.

     

     

     

    이번에는 반대로 블록의 사이즈 Rule을 1MB에서 2MB로 바꾸는 경우를 가정해보겠습니다.
    마찬가지로 new rule을 따르는 채굴자는 new rule을 적용한 블록 뒤에만 자신의 블록을 붙일 것입니다. 하지만 old rule을 따르는 채굴자는 new rule의 따르는 블록의 크기가 자신이 읽을 수 있는 크기보다 크므로 읽지 못할 것이고, old block 뒤에만 자신의 블록을 붙일 것입니다. 이런 경우 new rule을 따르는 블록체인과 old rule을 따르는 블록체인 2개의 체인이 생기고, 결국에는 대다수인 new rule을 따르는 체인이 선택될 것입니다. 이같이 old 채굴자들이 new rule을 읽지 못하는 방법을 Hard fork라고 합니다.

     

     

    'Study > BlockChain' 카테고리의 다른 글

    블록체인이란? 비트코인 #2  (0) 2021.07.04
    블록체인이란? 비트코인 #1  (0) 2021.07.03

    댓글

Designed by Tistory.