검수요청.png검수요청.png

병합채굴

위키원
이동: 둘러보기, 검색

병합채굴(merged mining)은 보조작업증명(Auxiliary Proof of Work) 구현을 통해 부모 역할의 블록체인(parent chain)에서 수행한 작업을 보조 체인(auxiliary chain) 역할의 다른 블록체인에서 이용하는 방식이다. 단, 두 체인은 반드시 같은 해싱 알고리즘을 공유해야 한다.[1]

개요[편집]

모든 병합채굴 실행은 보조 체인(auxiliary chain)과 좀 더 확립된 부모 체인(parent chain)을 가진다. 함께 작업하기 위해 두 체인은 반드시 같은 해싱 알고리즘(hashing algorithm)을 공유해야 한다. 이 프로세스를 설명하기 위해서 가장 유명한 병합채굴 페어(pairs) 중 하나인 네임코인(Namecoin)과 비트코인(Bitcoin)을 검토한다. 이 페어의 경우, 비트코인은 부모 체인이고, 네임코인은 비트코인 네트워크에 편승하는 보조 체인이다. 두 암호화폐는 채굴을 위해 SHA-256 해싱 알고리즘을 사용한다. 기존 작업증명(Proof of Work; PoW) 또는 지분증명(Proof of Stake; PoS) 합의 알고리즘만큼 알려지진 않았지만, 일부 프로젝트들은 더욱 안전한 네트워크에 편승하기 위해서 병합채굴을 시행했다.[2]

특징[편집]

병합채굴은 2차 블록체인의 블록 ID(최근 구성된 새로운 블록의 암호 해시)를 채굴되는 주요 블록체인의 블록 어딘가에 삽입하여 수행된다. 짧은 설명 텍스트나 매직 바이트 부호가 붙은 이 2차 해시는 병합채굴 '태그'라고 불린다. 이 부호는 2차 블록체인이 태그를 찾게 한다. 그러나 이때 반드시 태그의 위치에 대한 모호함이 전혀 없어야 한다. 주요 블록체인의 블록이 2차 블록의 블록 중 최대 하나, 또는 0개와 연관 지어져야 한다는 뜻이다. 연결의 암호 해싱 사용은 부정행위를 방지하나, 연결 보안 요건은 전통적인 암호 방식에서 요구되는 것보다 훨씬 기준이 낮다. 비공식적으로 병합채굴의 유일한 보안 요건은 2차 블록체인의 난이도에서 두 가지(각 연관 블록마다 한 개씩)의 서로 다른 주요 블록체인 블록을 채굴하는 것보다 동일한 2차 블록체인에서의 블록 2개와 연관 지어질 수 있는 주요 블록체인 블록을 생성하는 것이 더 어려워야 한다는 것이다.

루트스탁[편집]

루트스탁(Rootstock) 로고

루트스탁(Rootstock)은 비트코인의 주요 개선사항으로, 비트코인과 쌍방향식의 협업 관계를 맺고 있는 오픈 소스 스마트 계약 플랫폼이다. 지금까지는 튜링완전 스마트 계약 기능이 부족했지만 루트스탁은 이러한 문제점을 개선했다. 또한, 루트스탁은 비트코인 채굴자에게 병합채굴을 통해 보상한다. 개발자들은 2016년 11월에 병합채굴 생태계를 시작했으며, 사용자가 비트코인과 이더리움을 동일한 생태계의 일부로 채굴할 수 있게 했다.

튜링완전[편집]

튜링완전(Turing complete)은 어떤 프로그래밍 언어나 추상 머신이 튜링 머신과 동일한 계산 능력을 갖춘다는 의미이며, 튜링 머신으로 풀 수 있는 문제, 즉 계산적인 문제를 그 프로그래밍 언어나 추상 머신으로 풀 수 있다는 의미이다. 튜링은 수학자 앨런 튜링이 1936년에 제시한 개념으로 계산하는 기계의 일반적인 개념을 설명하기 위한 가상의 기계이며 오토마타의 일종이다. 튜링은 이 개념을 오토매틱(automatic)에서 따온 에이-머신(a-machine)이라고 불렀는데 튜링 사후에 창시자의 이름을 따 튜링 머신이라고 부르게 되었다.[3]

장점[편집]

  • 비트코인의 스마트계약 구축
  • 확장성(scalability) : 루트스탁은 초당 100건의 트랜잭션을 처리하여 페이팔과 같은 수준으로 플랫폼을 확장한다.
  • 블록체인 샤딩(sharding)
  • 사기 검증(fraud proof)
  • 스토리지 및 대역폭 사용량 감소
  • 즉시 지불 도입 : 비트코인 네트워크와 호환되어 루트스탁 생태계는 신중하게 선택된 매개 변수를 사용하고 평균 10초 간격으로 블록을 만든다.[4]

작업증명 프록시[편집]

병합채굴에서 비트코인 헤더는 작업증명 프록시로만 작용한다. RSK 블록체인은 블록체인 블록헤더의 작업증명을 해석하고 RSK 블록 헤더와의 관계를 유니크하게 설정하는 태그를 블록체인 블록에서 찾아야 한다. 따라서 이는 타동적으로 비트코인 블록 작업증명을 RSK 블록 작업증명으로 해석한다. RSK 블록체인의 난이도는 비트코인 블록체인의 난이도보다 낮으므로, 비트코인 작업증명 퍼즐을 해결하지 못하는 많은 비트코인 블록헤더는 RSK 작업증명 퍼즐의 유효한 솔루션이 된다. 각 블록체인은 각 블록마다 예상 난이도를 계산한다. 이 난이도는 블록 간의 평균 시간을 대략 일정하게 유지하고자 모든 이전 블록에 따라 정의된다. 내부적으로 이 난이도는 '타깃'으로 해석되며, 이는 난이도에 반비례한다. 타깃은 256비트 비 서명 정수이다.

암호 해시 다이제스트의 불확실성 때문에 블록헤더 콘텐츠의 암호 해시 다이제스트인 블록헤더 ID가 획일화된 무작위 변수를 대표하기 위해 가정된다. 이는 이론적으로는 사실이 아닐 수 있으나, 비트코인(더블 SHA256)이나 RSK(Keccak)에서 사용되는 해시 기능을 뒤바꿀 수 있는 실용적인 방법 중 알려진 것이 없기 때문에 실제로는 가능하다. 비서명 번호로 해석되었을 때 해시 다이제스트는 블록이 작업증명 퍼즐에 대한 솔루션을 대표하기 위해 타깃보다 반드시 낮아야 한다. 따라서 타깃이 낮을수록 작업증명 퍼즐을 해결하기가 더 어렵다.

SPV 증명[편집]

2차 블록체인은 비트코인 헤더 작업증명을 검증하고 이를 RSK 헤더와 연관 짓는 데 전체 비트코인 블록이 필요하지 않다. 이는 SPV 증명(주로 머클 트리 회원 증명을 구성하는)을 통해 증명이 가능하다.

타깃 체계[편집]

RSK 타깃은 일반적으로 비트코인 타깃보다 높은데, 이는 RSK 블록이 비트코인 블록보다 주기가 잦으며 그에 따라 RSK 퍼즐이 더 풀기 쉽기 때문이다. 따라서 비트코인 네트워크는 RSK 작업증명 퍼즐을 해결하는 비트코인 블록헤더를 수락하지 않을 수도 있다. 이때 두 퍼즐 모두가 비트코인 헤더와의 작업을 포함하며 실제 이를 해결하는 것이 동일한 시도와 오류 절차를 거친다는 점을 참고하여, 풀은 채굴자들이 더 어려운 비트코인 퍼즐을 해결하고자 하는 동안 채굴자들이 비트코인이 요구하는 것보다 더 낮은 난이도에서 블록을 해결하여 RSK 퍼즐을 감지하고 이에 대한 정보를 알릴 수 있다. 이 중개 블록은 '쉐어'라고 불리며, 풀 서버는 이를 전산을 위해 필수로 요구한다. 사실 채굴자들이 더 간단한 퍼즐(더 높은 타깃을 특정화하는)을 해결하게 명령하는 것은 풀 서버 소프트웨어이다. 그러면 이때 쉐어가 실제 비트코인 퍼즐을 해결하게 돕는 일종의 중개 솔루션이라고 생각할 수도 있지만, 그렇지 않다. 쉐어는 실제 블록 솔루션을 달성하기 위해 연장될 수 없다. 그러나 채굴자가 더 강력할 수록 해당 채굴자가 실제 솔루션 간의 풀에 생성하는 쉐어가 더 많아진다. 따라서 쉐어는 채굴자의 기여를 계산하는 데 더 높은 입상도를 제공한다. 쉐어는 풀 서버에 정기적으로 전송되므로 서버는 참여하는 클라이언트 모두의 해시 기여도 가중치를 계산해 이들 간에 미래 수익을 공정하게 나눌 수 있다. 그러나 쉐어는 그중 하나가 (우연히) 현 비트코인 작업증명 퍼즐의 솔루션이 될 수 있기에 전송되기도 한다. 따라서 채굴자는 풀 서버에서 실제 비트코인 작업증명 퍼즐 난이도 (또는 타깃)를 받을 필요가 없으며, 일반적으로 풀이 이를 다시 알려주기 전까지는 자신이 비트코인 블록을 해결했는지를 알 수 없다. 풀 서버는 제공받은 각 쉐어를 확인하고, 블록헤더를 재구성하며, 헤더 더블 SHA256 해시 다이제스트가 현 비트코인 난이도와 연관된 타깃보다 수적으로 낮으면 블록을 비트코인 데몬에게 넘겨주고, 데몬은 이를 네트워크에 걸쳐 전파한다. 각 2차 블록체인의 난이도가 서로 다를 수 있음으로, 병합 채굴이 가능한 풀 서버는 서버가 다루는 2차 블록체인마다 이러한 확인을 해야 한다. 비트코인 헤더가 RSK 블록체인 작업증명 퍼즐에 대한 유효한 솔루션을 대표하는 경우, 이는 RSKj에 비트코인 블록헤더를 전송하고, 이는 연관 RSK 블록을 첨부해 RSK 네트워크에 이를 유효한 것으로 전달한다.

솔루션 목적지 블록 간격 솔루션을 찾을 때까지 임시값이 반복되는 평균 수 가정
비트코인 10분 100% 비트코인 해시율
RSK 30초 50% 병합채굴
채굴 풀쉐어 클라이언트당 3.3초 20% 해시 파워, 4000 클라이언트 Ckpool 소프트웨어

RSK 태그 포맷[편집]

RSK 태그는 채굴되는 RSK 블록헤더의 해시 다이제스트를 포함하는 2진 데이터 청크와 연결된 ASCII 식별자 'RSKBLOCK:'을 포함한다. 이전에 말했듯이 이 태그는 모호함 없이 식별이 가능해야 한다. 네임코인은 서로 다른 병합 채굴 블록체인을 위한 패킹 태그의 체계를 정의하기는 했으나, 해당 제안 체계는 표준화된 적이 없다. 따라서 RSK 태그는 미래의 호환성을 개선하고 채굴 풀 소프트웨어의 다양성을 더 많이 허용하기 위해서 생성 거래 어디에나 놓일 수 있다(때로는 코인베이스로 불리기도 하는 블록의 첫 번째 거래). RSK 태그는 생성 거래의 코인베이스 필드에 위치하거나 생성 거래 출력 중 어디에나 위치할 수 있다.[5]가기.png 루트스탁에 대해 자세히 보기

각주[편집]

  1. 박재형 특파원, 〈반감기 따른 채굴 보상 감소 해결책은 ‘병합 채굴’ – 바이낸스 보고서〉, 《블록 미디어》, 2019-07-13
  2. crisjune, 〈병합 채굴이란? 두 개의 코인을 동시에 채굴하기〉, 《데일리 코인 뉴스》, 2018-11-21
  3. 불곰, 〈튜링 완전(turing-complete)이란?〉, 《티스토리》, 2018-07-05
  4. maa, 〈비트코인 스케일링 해결책? : 루트스톡(Rootstock)〉, 《스팀잇》, 2017-05-17
  5. Sergio Demian Lerner, 〈RSK: 비트코인 병합 채굴, 앞으로도 건재할 예정〉, 《RSK》

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 병합채굴 문서는 블록체인 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.