[BEB] Section3 : 채굴과 노드 심화/ 다양한 채굴 방법 / 하드포크와 소프트포크

jsg_ko·2022년 1월 7일
0
post-custom-banner

채굴(mining)과 노드(Node)

🔥채굴(Mining)이란?

이전 게시물에서 채굴과 노드에 대해 간단히 알아보았다.

채굴이란 블록체인 네트워크에 노드로 트랜잭션을 검증하여 분산원장에 기록하고, 보상으로 암호하폐를 얻는 일련의 과정을 말한다. 새로운 블록을 만드는 것이 바로 채굴의 핵심이다.

비트코인의 경우, 새로운 블록이 10분마다 생성되는데, 보상으로 비트코인을 채굴에 참여한 작업자 중 해시퍼즐이라는 문제를 푼 작업자(a.k.a 채굴자)에게 지급하게 되며 해시퍼즐은 특정한 조건을 갖춘 해시를 찾아내는 과정을 말한다.

채굴자가 하는 일

노드(Node)가 비트코인 네트워크에 접속하면, 비트코인 채굴자는 다음과 같이 몇 가지 작업을 수행한다.

  • 네트워크 동기화
    새 노드가 비트코인 네트워크에 합류하면, 다른 노드에게 과거의 블록들을 요청해 블록체인을 다운로드 한다.
  • 트랜잭션 검증
    새로운 트랜잭션을 수신한 노드는 반드시 해당 트랜잭션이 올바른 트랜잭션인지 검증하는 과정이 필요하다.

    💡 비트코인에서 트랜잭션 검증하는 단계
    1) 원본 데이터를 자신의 '개인키'로 암호화를 진행하여 '디지털 서명'을 진행
    2) 원본 데이터와 '디지털 서명'된 데이터를 노드에 전파
    3) 트랜잭션을 받은 노드는 해당 트랜잭션이 진짜인지에 대한 검증을 위해 트랜잭션을 송신한 노드의 공개키를 이용하여 난독화(암호화)를 진행
    4) 난독화된 거래 데이터와, 원본 데이터를 비교하여 수정된 데이터가 있는지 데이터의 무결성을 검증
    5) 수신 받은 트랜잭션이 진짜 거래로 판단될 경우 블록체인에 해당 트랜잭션을 업데이트하고 블록체인 네트워크에 연결된 노드들에게 해당 트랜잭션을 또 전파

  • 블록 유효성 검사
    채굴자와 풀 노드는 특정 규칙에 따라 수신한 블록을 평가하여 유효성 검사를 시작
  • 새로운 블록 생성
    채굴자는 네트워크에 브로드캐스팅된 트랜잭션의 유효성을 검사
  • 작업 증명(PoW) 수행
    채굴 과정의 핵심으로 채굴자가 해시 퍼즐을 풀어 유효한 블록을 찾는다.
    대상 데이터가 동일하면 해싱해봤자 동일한 해싱값이 나온다. 따라서 블록에 포함된 논스값만 수정해가면서 결과해시값을 다르게 만드는 것. 블록헤더의 논스값을 0부터 1씩 반복적으로 증가시켜가며 해시값을 얻어낸다
    이때, 채굴자는 블록 헤더에 있는 논스 값을 계속 바꿔가면서 결과 해시 값을 찾아낸다.

    블록 헤더에 있는 논스(nonce)와 트랜잭션의 논스(nonce)의 차이
    블록 헤더에 있는 논스는 입력값 중의 하나로 해서 계산되는 블록의 해시값을 찾아낼 때 쓰인다.(특정 해싱값보다 작아지게 하는 값으로 쓰인다)
    이더리움에서 트랜잭션의 논스(nonce)는 발신 주소의 속성이며, 해당 주소에서 발생한 확인된 트랜잭션 건수를 세어서 동적으로 계산되는 값으로 쓰인다.

  • 보상 수령 : 해시 퍼즐(PoW)의 해를 구한 노드는 즉시 결과를 브로드캐스팅하고, 다른 노드들은 그 결과를 검증하여 그 블록을 승인한다. 승인되면 채굴자는 비트코인과 관련된 트랜잭션 수수료를 보상으로 받는다.

💡 비트코인의 작업증명(PoW)의 블록생성시간은 10분인데, 더 많은 채굴자들이 등장하고, 빨리 채굴할수록 채굴 난이도가 상승하게 되어있다.

비트코인 채굴자의 보상은 일정량을 지속적으로 보상하는 것이 아니라, 반감기로 인하여 2009년 초반에는 블록 하나를 생성할 때마다 50개의 비트코인을 보상으로 받을 수 있었지만, 2018년에는 12.5개의 비트코인을 블록 보상으로 받을 수 있는 등 4년 주기로 보상에도 변화가 생긴다.
비트코인의 총 공급량은 약 2100만개이며, 반감기로 채굴되는 비트코인수량이 적어질수록 그에따른 희소성 가치가 부각될 것이다.

💡 이더리움은 어떻게 채굴할까?
네트워크의 채굴 노드는 기존 비트코인의 SHA-256 방식이나 라이트코인의 스크립트(Scrypt) 방식을 사용하지 않고, 이더해시(Ethash)라는 독자적인 알고리즘 기반의 pow 방식으로 채굴한다.

거래(Transaction) 수수료

채굴을하면 코인으로 받는 보상 말고도 트랜잭션을 확인하고 유효성을 검증하는데 일조한 검증자에게 트랜잭션 수수료가 보상으로 지급된다.

트랜잭션 수수료란?
사용자가 암호화폐를 전송, 입금, 출금 하며 낸 거래 수수료 (이더리움의 경우 가스비도 해당)

💡 대분분 암호화폐는 두 가지 이유에서 트랜잭션 수수료를 사용함.
네트워크상의 스팸 공격을 줄이기 위해서
거래 수수료는 대규모 스팸 공격과 이를 실행하는 데 무척 많은 비용이 들도록 한다.
거래 수수료는 트랜잭션을 확인하고 유효성을 검증하는 사용자에게 인센티브를 제공
이를 네트워크에 일조하는 행동에 대한 보상이라 이해할 수 있다.

대부분의 블록체인에서 트랜잭션 수수료는 합리적인 수준으로 저렴하지만, 네트워크 트래픽에 따라 상당히 비싸질 수도 있다. 얼마의 수수료를 지불하기로 결정하느냐에 따라 트랜잭션이 다음 블록에 추가되는 우선 순위가 정해진다.

TPS(Transaction per Second)

1초당 처리할 수 있는 트랜잭션의 개수를 의미한다. 원장이 분산화되고, 참여 노드가 증가할수록 TPS는 느려지고, 수수료는 증가하게 된다.(트릴레마 게시물에서 다뤘다)

채굴 풀(Mining pool)

채굴을 하는 채굴자들이 모여서 만들어진 채굴자 조합(풀)이라고 이해할 수 있다.

  • 채굴 풀(Mining pool)이 생긴 이유
    채굴자들은 왜 서로 모이게 되었을까? 이 해답은 비트코인 채굴 원리에서 찾을 수 있다. A와 B라는 채굴자가있다고 했을 때,1 블록을 생성하기 위해서 알고리즘 해결 작업을 수행했다고 가정해보자. 이 때 A의 해시파워(Hash power)가 10, B의 해시파워가 20이라면, 블록 하나를 생성하는 데에는 해시파워가 높은 B가 먼저 작업을 수행하고 비트코인을 보상으로 받게 된다.

    해시파워(Hash power)란, 블록체인 네트워크에서 채굴자들이 가지고 있는 채굴 역량을 뜻한다.

    그런데 A를 돕는 C가 15라는 해시파워를 지니고 나타난다면 A와 C의 해시파워가 도합 25가되어 B의 해시파워를 넘어서게 된다. 결국, B보다 A와 C가 블록을 먼저 생성하게 된다. 이러한 개념에서 발생된 것이 바로 채굴자 집단인 채굴 풀이다.

  • 채굴 풀 종류
    BTC.com의 홈페이지를 보면 아래와 같은 비트코인의 채굴 풀들과 각 채굴 풀 의 해시레이트를 확인할 수 있다.

    해시레이트란, 연산 처리능력을 측정하는 단위로 해시 속도를 의미함.


  • 채굴 풀의 위험성
    채굴 풀이 네트워크에 영향을 끼치는 위험성이 있을 수 있다. 바로, 51% 공격이다. 51% 공격이란, 블록체인의 전체 노드 중 50%를 초과하는 해시파워를 확보한 뒤, 거래 정보를 조작함으로써 이익을 얻으려는 해킹 공격을 뜻한다

  • 커스터디 서비스 형태의 채굴 풀
    본래 커스터디(Custody)란, 보호, 관리라는 뜻을 가진 영어 단어로 금융 거래에 있어 수탁업무(다른 사람의 자산 관리를 위탁)를 의미한다. 전통의 지분 증명(PoS) 서비스를 이용하려면 특정 노드가 자산을 스테이킹해서 운영하게 된다. 그런데, 그 자산이 어느정도 이상 있어야지 많은 돈을 받을 수 있는 구조라 돈이 적은 사람은 상대적으로 취약할 수 밖에 없는 방식이라고 생각할 수 있다.

    스테이킹(Staking)이란, 자신이 보유하고 있는 가상화폐 중 일정 지분량을 고정하는 것으로, 가상 화폐의 보유자는 가격의 등락과 상관없이 가상 화폐를 예치하고, 예치 기간 일정 수준의 이익을 얻을 수 있다.

    그래서 채굴 풀이란걸 이용해서 돈이 적은사람도 PoS 채굴 풀에 합류해서 함께 파이를 나눠서 이익을 얻고, 사용자들은 돈만 제공해주고 노드는 채굴풀이 돌리니 보상에서 일정 수수료를 제외하고 자신이 받아가는 형태의 새로운 채굴풀이 등장하게 된다. 이런 형태의 채굴 풀이 위임지분 증명(DPoS)방식이 사용하는 채굴 풀인데, 이것은 사용자가 시스템에 스테이킹을 해두고 투표를 통해 채굴자(노드)를 선정하는 시스템이된다.

🔥토큰 이코노미(Token economy)와 크립토 이코노미(Crypto economy)

토큰 이코노미(Token economy)

어떤 행동에 대해 ‘토큰’을 보상함으로써 특정 행동을 유도하는 경제 생태계를 말한다. 보상으로 주어지는 토큰은, 다른 유형의 물건이나 다른 서비스와 교환할 수 있는 지역화폐이다. 블록체인 분야에서는 토큰을 활용해 생태계에서 목표로 하는 행동을 유도하는 시스템으로 사용되고 있다.

크립토 이코노미(Crypto economy)

수년간 블록체인 발전을 통해 형성된 새로운 경제모델을 말한다. 블록체인에서 사용하는 코인 또는 토큰을 활용해 서비스를 제공하여 이윤을 창출하는 방법과 참여자들에게 보상을 주어 활성화하는 방법, 분산원장의 거버넌스 등을 결합한 경제 생태계를 통칭한다. 위의 토큰 이코노미는 크립토 이코노미를 구성하는 중요한 일부분이다.

코인과 토큰

  • 코인
    블록체인 네트워크에 채굴자로 참여한 노드에게 분배되는, 채굴에 대한 보상으로 주어지는 암호화폐를 뜻한다. 이 암호화폐는 통상적으로 해당 블록체인 네트워크를 나타내는 이름으로도 사용한다.
  • 토큰
    블록체인 네트워크 위에서 발행된 지역화폐 개념이다. 사용될 수 있는 곳이 발행된 블록체인 네트워크에 제한된다.
  • 코인과 토큰의 차이점
    코인과 토큰의 가장 큰 차이점은 플랫폼의 유무이다. 기반 기술의 유무라고 생각해도 되는데, 예를들어 이더리움 플랫폼을 기반으로하는 Dapp에서 사용 가능하게끔 ERC-20 기반에 토큰으로 개발하는 것 과 같이 다른 특정 플랫폼을 기반으로 하는 코인을 ‘토큰’ 이라고 불린다.

💡 처음 Dapp 에서 기반으로했던 플랫폼에서만 사용할 수 있게끔 개발된 토큰이었지만, 후에 독자적인 플랫폼을 구축함으로써 ‘코인’으로 전환 할 수 있는 방법도 존재한다.
메인넷 론칭이 완료되면 기존 Dapp에서 개발된 토큰은 독자적인 플랫폼을 지닌 코인으로 불린다.

🔥노드(Node)란?

블록체인 네트워크에 연결되어 있는 각각의 서버들을 노드라고 한다. 노드는 맡은 역할에 따라 다양한 기능을 수행한다. 즉, 노드를 서버라고 했을 때, 서버의 역할이 데이터 저장만 하는 게 아닌 것처럼 노드역시 다양한 기능을 수행하게 된다.

노드는 트랜잭션을 제안하고 검증할 수 있으며, 합의를 이루고, 블록체인을 보호하기 위해 채굴을 수행하기도 한다.

노드의 종류

  • 풀 노드(Full node)
    블록체인에서 이뤄진 모든 거래 정보를 전부 저장하는 노드이다. 제네시스 블록부터 시작해서 현재 블록까지 모든 블록체인 정보를 수집, 저장한다. 풀노드는 자신의 PC에 모든 블록체인의 내용을 가지고 있기 때문에 다른 노드의 도움없이 스스로 거래 검증이 가능하다. 하지만 용량이 너무 커서 다운로드를 받는데 시간이 오래 걸리고 하드디스크의 용량을 많이 차지한다는 단점이 있다.

    제네시스블록(Genesis block)은 블록체인에서 생성된 첫 번째 블록이다. 해당 블록체인네트워크에 시작 이라는 상징적 의미를 가진다.

  • 라이트 노드(Light node)
    풀노드의 단점을 해결하기 위해 나온 것이 라이트 노드(Light node)이다. 라이트 노드는 풀노드에 거래 데이터를 요청하여 개별 거래(트랜잭션)를 검증하는 기능을 수행한다. 풀노드처럼 모든 블록 정보의 원본을 가지고 있지는 않고 일종의 요약본, 즉 블록헤더에 있는 중요한 데이터만 보유하고 있게된다. 즉, 라이트 노드는 가볍고 풀노드와 다르게 자료의 일부분만을 다운받는 대신 거래를 위해 내용 검증이 필요할때마다 풀 노드에게 자료를 요청해야만 합니다.

  • SPV(Simple Payment Verification)
    거래에 대한 모든 블록체인을 저장하지 않고도 트랜잭션을 검증하는 방법으로 라이트 웨이트 노드(lightweight node) 또는 경량 노드라고도 불린다.

  • 마스터 노드(Master node)
    마스터노드는 풀 노드 중에서 권한과 보상을 받는 노드로 주인, 혹은 상위 노드

  • 채굴 노드(Mining node)
    채굴 노드의 역할은 새로운 블록을 가능한 빠르게 채굴하는 것이다. 채굴 노드는 작업증명(PoW) 방식을 채택한 블록체인에만 존재한다.

  • 랜덤노드(Random node)
    전체 블록체인의 무결성을 유지하기 위해 임의로 선택된 노드로서, 선출된 마스터노드와 함께 블록을 생성

  • 엔드포인트 노드(Endpoint node) (구)레인저 노드(Ranger node)
    카카오의 자회사인 그라운드X가 개발한 플랫폼인 클레이튼에 적용된 노드

  • 합의 노드(CN; Consensus nodes)
    트랜잭션을 새로운 블록으로 배치하고, 비잔틴 장애 허용(BFT; Byzantine Fault Tolerance) 합의 알고리즘을 사용하여 블록들을 확인하는 작업을 담당하는 합의 네트워크를 형성하는 노드

  • 슈퍼 노드(Super node) or 대표 노드(Representative node)
    슈퍼 노드 혹은 대표 노드는 블록체인 네트워크의 노드들을 대표해 블록을 생성하고 그에 대한 보상을 받는 노드

  • 베이킹 노드(Baking node)
    베이킹 노드는 테조스 블록체인에서 사용하는 용어로, 코인 소유자로부터 위임받은 코인으로 베이킹(baking)을 하는 노드

  • 히스토리 노드(History node)
    히스토리 노드란, 블록에 있는 데이터를 찾을 수 있는 노드

다양한 채굴 방법(합의 알고리즘)

🔥작업 증명(PoW)

Proof of Work의 약자이며 유효한 블록을 만드는 데 충분한 계산 자원을 소모했다는 증명이다. 이때, 메인체인을 선택하는 데 있어 가장 가장 긴 체인을 채택하는 알고리즘인 고스트 프로토콜(Ghost protocol)을 사용하여 블록이 결정된다.

블록이 결정되는 방법 - 고스트 프로토콜(Ghost protocol)
고스트 프로토콜은 어느 체인이 가장 긴 것인지 계산할 때 고아블록도 포함함으로써 네트워크 보안 손실 문제를 해결한다. 다시 말해 어느 블록이 가장 큰 전체 작업증명을 가지고 있는지 계산함에 있어서, 그 블록의 부모블록과 조상뿐만 아니라, 그 블록의 고아자손까지도 더한다는 것 이다.

💡 PoW 의 대표적인 코인에는 비트코인, 라이트코인, 비트코인 캐시 등이 있다.

비트코인에서 작업증명은 반복적인 과정을 통해 무작위로 특정한 조건(해싱값)을 만족하는 논스 값을 찾아내어 그에 대한 대가로 비트코인을 받게 된다.

실제 Difficulty Target이 이렇게 표현되지는 않는다. 이해를 돕기 위해 쉽게 표현한 것 이다.

이전 포스팅에서 블록들은 각각 해시값으로 표현될 수 있다는 것을 알게 됐다. 난이도가 4로 설정되었다고 가정한다면, 블록을 Hashing(비트코인에서는 SHA-256 해시함수 사용)해서 앞자리 4개가 0인 해시값을 만들 수 있도록 하는 논스값을 찾아야한다. 논스를 찾는 방법은 무차별 대입 방법밖에 없다. 이 과정에서 컴퓨터의 계산 능력이 필요하며, 서로 다른 노드들이 같은 문제를 풀기위해 경쟁한다. 경쟁을 통해 결국 하나의 블록이 생성되므로, 블록 생성에 성공한 블록 외의 다른 컴퓨터가 사용한 전력은 고스란히 낭비된다. 즉, 자신의 해시파워가 높을수록 원하는 값을 얻기가 쉬워지지만, 그러려면 엄청난 금액의 채굴기와 전기료를 감당해야 한다.

https://m.blog.naver.com/sunchan683/221606846917

논스를 찾는 방법은 무차별 대입 방법밖에 없다. 특정 개수의 0이 있는 패턴을 찾은 채굴자는 블록을 즉시 브로드캐스팅하고, 다른 채굴자들은 블록을 승인하게 된다.

💡 여기서 난이도는 2016개의 블록이 생성될 때마다 조정된다.

비트코인 블록 생성내역 확인 사이트

작업 증명(PoW)의 장점

가장 큰 장점은 높은 보완성이다. 블록체인의 취약점으로 알려진 51% 공격을 손쉽게 방어 할 수 있다. 51% 공격이란 악의적인 공격자가 그들의 행위를 성공시키기 위해서 51% 이상의 컴퓨팅 파워를 확보해야만 한다는 것이지만, 현실적으로 작업증명에서 51%이상을 획득하는 것은 천문학적인 비용이 발생하기 때문에 발생하기 매우 어렵다.

작업 증명(PoW)의 단점

채굴난이도가 높아지면서 개인 채굴자는 채굴을 할 수 없는 수준까지 도달했다. 또한 연산에 필요한 고사양 장비가 필요하게 되고, 과도한 전력소모로 인해 에너지 낭비가 커졌다. 비트코인 채굴에 소모되는 전력량이 연간 약 48테라와트시로 추정된다. 이는 연간 페루, 홍콩을 넘어 싱가포르의 연간 전력에 비슷한 수치이며, 이러한 구조는 자연스럽게 기업형 채굴자들이 등장하게 된다. 이와 더불어 그들의 단합으로 채굴권이 집중되는 문제가 발생하게 되고, 결국 이런 이유로 인해 탈중앙으로부터 멀어지게 될 수도 있다.

🔥지분 증명(PoS)

Proof-of-Stake의 약자이며, 네트워크 참여자 모두가 블록을 검증할 수 있는 기회를 갖게되는 방식인데, 해당 암호화폐를 보유하고 있는 지분의 크기만큼 다음 블록의 검증노드로 선택될 확률이 높아진다. PoS는 컴퓨팅 파워 낭비가 심한 PoW와는 달리 자신의 지분(Stake). 즉 스테이킹한 자산을 통해 블록을 생성하기 때문에 무의미한 전력낭비가 없고 다른 코인으로 이탈 가능성이 적다(코인이 스테이킹 되면서 시장에 공급 하락으로 가격상승을 유발함). 이와 더불어 검증시간이 짧은 특징이 있다.

지분 증명(PoS)의 장점

  • 환경친화적 시스템
    지분증명방식의 가장 많이 알려진 장점은 작업증명방식과 대조적으로 에너지 소모가 큰 프로세스가 없다는 점이다.
  • 인센티브에 대한 강한 동조 및 지지
    작업 증명 방식의 문제점 중 하나가 채굴자들과 암호화폐 보유자들의 이해관계가 일치하지 않을 수 있다. 지분증명 방식은 이와 다르게 합의 대리인을 직접적으로 암호화폐에 투자하게 만들고 그에 따라 투자자와 합의 대리인의 이해관계가 같아지게 되는 특징이 있다.
  • 채굴 풀의 중앙집중화를 해결
    현재 작업 증명(PoW)은 소수의 채굴풀에 해시가 집중 되는 방식이라 탈중앙화 시스템내에서 또다른 중앙화를 야기하고 있기 때문에 지분 증명(PoS)이 보다 더 탈중앙화에 적합한 대안이라고 한다.

지분 증명(PoS)의 단점

  • 불공평한 경제 모델
    이 시스템은 암호화폐 보유량에 비례하여 신규 자금을 배당한다. 그 뜻은 소수의 사람들에게 자금이 집중될 수 있다는 것을 의미할 수 있다.
  • Nothing at stake problem
    지분 증명방식 최대의 문제점은 Nothing at stake라고 하는 문제이다. Nothing at stake는 위험에 노출되지 않는 문제를 뜻한다. 만약 많은 지분을 가진 노드가 공격을 목적으로 ‘거짓’인 체인도 참’인 것 처럼 길게 체인을 형성 시켰다면, 검증에 참여하는 노드 입장에선 제한없이 여러 블록에 자신의 지분을 증명할 수 있기 때문에 블록의 정당성 여부와 관계없이 어느 쪽 체인에든 무조건 증명(합의)하는 것이 유리하다. 왜냐하면 어떤 체인이 살아남든 합의하는 것에는 제한이 없으므로 양쪽에 모두 지분을 증명해 놓아야 어떤식으로든 보상을 받을수 있기 때문이다.

다시 말해 Nothing at Stake는 말 그대로 어느 쪽이든 잃을 것이 없다는 것이다.

참고 쉽게 설명하는 블록체인, Proof of Stake란 뭔가요? - 2 [PoS의 문제점과 해결책 (Nothing at Stake)]

🔥위임지분증명(DPoS)

암호화폐 소유자들이 각자의 지분율에 비례하여 투표권을 행사하여 자신의 대표자를 선정하고, 이 대표자들끼리 합의하여 의사결정을 내리는 합의 알고리즘이다. 지분 증명(PoS)이 자산을 가진 사람들이 전부 참여할 수 있는 방식이라면, 위임지분증명(DPoS)은 특정 인원에게만 지분 증명(PoS)을 할 수 있도록 권한을 위임하는 것이다.

선출된 대표자들은 블록을 생성하고, 블록을 확정하기 위해선 2/3 이상의 승인이 필요하다. 대표자의 지위는 일정 시간 이내에 블록 셋업에 참여해야 유지가 된다.

위임지분증명(DPoS)의 장점

  • 소규모 참여자도 이득을 볼 수 있다.
  • 거래속도(TPS)가 빠르다.
  • 수수료가 없다.

위임지분증명(DPoS)의 단점

  • 네트워크 보안
    블록체인은 탈중앙화 되어 강력한 보안성을 지닌다는 특징을 가지고 있는데, 위임지분증명 방식의 경우에는 지분을 위임받은 대표자들의 수가 제한되어 있다 보니 탈중앙화가 되지 않아 보안에 취약할 수 있다. 또한 탈중앙화 된 네트워크가 외부 공격에 강한 이유가 익명성 때문인데 위임지분증명의 경우에는 대표자를 선출하고자 한다면 대표자에 대한 정보를 밝혀야 한다는 딜레마를 가지고 있다.
  • 대표자의 수
    네트워크가 커짐에도 불구하고 대표자의 수가 일정하다면 상대적인 중앙화가 이루어질 수 있기 때문에 암호화폐를 보유하고 있는 사람들의 수가 많아질수록, 네트워크가 커질수록 대표자의 수는 늘어나야 한다. 하지만 이렇게 대표자의 수가 증가하면 반대로 위임지분증명이 가지고 있는 속도의 장점이 줄어들게 되는 문제가 발생한다.

🔥클레이튼(Klaytn)의 합의 메커니즘

Klaytn에는 컨센서스 노드(CN), 프록시 노드(PN) 및 엔드포인트 노드(EN, (구)레인저 노드(Ranger node))라는 세 가지 유형의 노드가 있다.
컨센서스 노드는 CCO(Core Cell Operators)에 의해 관리되며 블록 생성을 담당한다.

IBFT(Istanbul Byzantine Fault Tolerance)

Klaytn은 Istanbul BFT라는 합의 메커니즘을 사용하고 있습니다. IBFT는 블록체인 네트워크의 특성을 반영하여 변형된 버전의 PBFT이다.

IBFT(Istanbul Byzantine Fault Tolerance)는 즉각적인 최종성을 보장하는 권한 증명(PoA) 블록체인 합의 알고리즘이다. 기본적으로 PBFT의 형식을 따라가며 블록을 모아서 전송한다는 개념이 추가되었다. PBFT의 유효성 검사기 집합은 정적이지만 IBFT는 동적 유효성 검사기 집합이 있다는 점에서 PBFT와 다르다. 이를 통해 IBFT 합의 메커니즘 기반 블록체인은 PBFT 합의 메커니즘 기반 체인보다 빠르게 트랜잭션을 확인할 수 있다.

작동 방식은 다음과 같다.

  • 시작하려면 노드 그룹이 선택되어 유효성 검사기 풀을 구성한다. 이 노드는 제안된 블록이 체인에 추가하기에 적합한지 여부를 결정하는 역할을 한다.
  • 이 검증자 노드 중 하나가 제안자로 임의로 선택된다.
  • 검증자 풀에서 메시지를 받은 이 단일 제안자는 체인에 무엇을 추가할지 결정한다. 이것은 다른 검증자에게 제안된 블록으로 제시된다.
  • 대다수의 검증인이 블록이 유효하다고 간주하는 경우에만 원장에 추가된다.
  • 각 합의 라운드가 끝나면 검증자가 새로운 제안자를 선택하고 프로세스가 반복된다.

하드포크와 소프트포크

🔥하드포크(Hardfork)

블록체인의 기본 기능 자체를 수정하는 포크를 말하며, 블록체인의 문제 해결 및 업그레이드 방식의 하나로서, 업그레이드 이후에는 기존 문제를 해결하고 이전 블록체인과 전혀 다른 프로토콜을 가지는 블록체인이 된다. 이러한 하드포크 이후에 채굴 노드들은 새로운 버전으로 반드시 업그레이드를 해야 한다고 해서 하드포크라고 한다. 즉, 문제가 해결되고 새로운 체인이 만들어짐.

🔥소프트포크(Softfork)

기존 블록체인의 기능을 일부 수정하는 포크를 말하며, 소프트포크를 하면, 기존 블록체인의 기본 구조는 변경되지 않고 부분적인 기능개선만 이루어지기 때문에 기존 블록체인 노드들은 간단한 시스템 업그레이드만으로도 새로운 시스템으로 이전할 수 있게 된다. 즉, 문제를 해결되지만 새로운 체인이 만들어지진 않음.

🔥하드포크와 소프트포크의 사례

비트코인 골드 & 비트코인 캐시

  • 비트코인캐시 하드포크 비트코인의 세그윗 소프트포크를 계기로 우지한 사장이 이끄는 비트메인(Bitmain), 비아비티씨(viaBTC) 등 중국의 채굴업체들이 중심이 되어 새로 만든 암호화폐로 SHA-256 해시 알고리즘 기반의 작업증명(PoW) 방식으로 채굴한다.

    세그윗(SegWit)이란, Segregated Witness의 약자로서, 비트코인의 블록에서 디지털 서명 부분을 분리함으로써 블록당 저장 용량을 늘리는 소프트웨어 업그레이드이다.

    💡 2017년 8월 1일을 기준 비트코인은 세그윗이라는 소프트포크를 진행하였다. 기존의 비트코인은 거래내역을 기록하는 블록 크기가 1MB에 불과하여 초당 7건, 하루 최대 60만건의 거래내역밖에 처리하지 못하는 한계가 있었는데, 이 문제를 해결하기 위해 비트코인 블록에서 디지털 서명 부분을 분리하여 별도로 저장함으로써, 블록당 저장 용량을 늘릴 수 있게 되었다.
    한편, 세그윗을 진행할 경우 중국의 채굴업자들이 사용하던 에이식부스트(AsicBoost : 비트코인채굴 속도를 약 20% 정도 높이는 방법 ) 방식의 비트코인 채굴이 불가능해지게 되기 때문에, 중국의 채굴업체들을 중심으로 기존 에이식(ASIC) 채굴기를 사용한 비트코인 채굴을 지속하기 위해 기존 비트코인 블록에서 분리된 비트코인캐시(BCH, Bitcoin Cash)라는 이름의 새로운 암호화폐를 생성하였다.
    암호화폐의 채굴자와 보유자의 이해관계가 상충되어 일어난 하드포크이다.

  • 비트코인골드 하드포크
    비트코인 골드(Bitcoin gold)는 비트코인캐시에 대항하여 중국의 잭 리아오(Jack Liao)가 만든 암호화폐이다. 2017년 10월 24일.작업증명의 단점을 보완하고자, SHA-256 해시 알고리즘을 지캐시의 이퀴해시-BTG(Equihash-BTG)로 변경하여 비트코인 골드가 탄생하였따. 이후 비트코인골드는 채굴 난이도 조정 알고리즘 LWMA를 통해 일반 GPU로 채굴할 수 있도록 GPU 채굴을 복원하였다. 그러나, 이 후 작업증명 블록체인의 문제 중 하나인 51% 공격으로 2018년 5월 18일 약200억 상당의 비트코인골드를 해킹 당하는 사건이 있었다.

이더리움 & 이더리움 클래식

  • 이더리움 하드포크 발생 배경 -더 다오(The DAO) 해킹 사건
    더 다오(The DAO)는 이더리움의 창시자인 비탈릭 부테린이 "주인 없는 회사를 만들어보겠다"는 생각으로 2016년 3월에 설립한 디지털 분산형 자율 조직으로서, 투자자 주도의 벤처 자금 펀드의 한 형태이다. 또, 더 다오의 코드 역시 오픈소스이며, 모든 것이 스마트 계약에 기록된 코드에 의해 움직인다. 2016년 4월 28일. 이더리움의 창업자들을 주축으로 DAO를 크라우드 펀딩 모집 방식으로 만들어 출범하여 350억원이 넘는 펀딩이 이루어진다. 그런데, DAO는 도입 당시부터 보안에 대한 문제점과 취약점들이 제기되면서 우려의 목소리가 많았다.
    2016년 6월. 결국, 이더리움 총 발행양의 10%를 해커들에 의해 해킹을 당하게 된다. 해킹 방식은 다오의 스플릿 기능의 취약점을 이용하여 무한 나누기 방식으로 인출했다. 다오의 규정에 나누기를 통해 인출한 이더리움은 출금까지 48일이 걸린다는 규정이 있었고, 다행히 사고발생 27일 만에 이더리움 개발자들이 조치를 취해 인출을 막았다. 사건 대응을 둘러싸고 이더리움 커뮤니티에서는 논의가 계속됐다. 개발자들은 다음 3가지의 방법을 두고 고민하게 된다.
    • 소프트포크 방안
      더 다오와 해커들이 훔쳐간 지갑 사이의 이동을 정지하는 방법으로 이것은 해커가 사용할 수 없도록 만드는 것이며, 기록도 그대로 놔두는 것이다. 하지만 차단된 자금은 동결 상태가 되므로 원주인에게 되돌아가지 못한다.

    • 하드포크 방안

      하드포크를 이용해 블록체인을 다시 재작성해 이전의 기록을 무효화시키고 기존 해커들이 가져간 이더리움을 기존 보유자들에게 주기 위해 새 블록체인으로 옮기기로 결정한다. 즉 새로운 암호화폐를 탄생을 의미한다.

    • 비대응안
      "코드가 법이다"라는 원칙에 따라, 해킹 결과로 이루어진 거래도 인정해야 한다는 주장도 있었다. 각 사용자의 실수나 개별 프로젝트의 사정을 이유로 블록체인의 기록을 변경하는 것을 허용하지 않아야 한다는 주장이다.

      처음에 이더리움 개발진은 소프트포크를 통해 이 문제를 해결하려고 했으나, 소프트포크 예정 시간에 디도스(DDoS) 공격이 제보되는 바람에 취소하고, 하드포크 방식으로 입장을 선회해 2016년 7월 20일 하드포크를 시행하게 된다.

  • 이더리움 클래식 탄생
    개발자들은 2016년 7월20일 하드포크를 단행했지만, 기존의 코인을 소멸하는데 반대하는 10%의 사람들은 기존의 블록체인을 이더리움 클래식이라고 부르면서 구형 블록체인에서 계속 채굴을 진행하였고, 결국 두 주장의 합의가 이루어지지 않아 하드포크 이전의 이더리움은 2016년 7월 암호화폐 거래소인 폴로닉스에 이더리움 클래식이라는 이름으로 상장 되었다. 이로써 이더리움 블록체인은 두 개로 분리됐다.

    💡 기존의 코인의 소멸을 반대하는 이들은 하드포크가 암호화폐와 블록체인의 기본철학(누구도 위조·변조할 수 없는 신뢰 시스템)에 어긋나는 것이라고 느끼며, 해커가 오픈소스 및 투명한 스마트 계약으로 만들어진 기존의 코드 부분을 악용했을 뿐이라고 주장했다.
    다시 말해, 더 다오의 스마트 계약은 단순히 유효한 명령을 수행했고, 외부 당사자에 의해 깨지거나 변경되지 않았다는 점에서 전통적인 의미로 해킹되지 않았으므로, 그 결과를 인정해야 한다는 것이 그들의 주장이었다.

    블록체인의 새로운 버전은 "메인" 이더리움(ETH)이며, 해킹이 수정된 버전이다. 기존의 오리지널 블록체인은 바로 '이더리움 클래식(ETC)'이다.
profile
디버깅에서 재미를 추구하면 안되는 걸까
post-custom-banner

0개의 댓글