드라이브체인을 사용하면 사이드체인 노드 운영자가 채굴자에게 비용을 지불할 수 있습니다.

By Bitcoin Magazine - 1년 전 - 읽는 시간: 7분

드라이브체인을 사용하면 사이드체인 노드 운영자가 채굴자에게 비용을 지불할 수 있습니다.

소프트체인과 같은 드라이브체인은 양방향 페그 기능이 있는 또 다른 사이드체인 구현입니다.

독학으로 교육하신 Shinobi님의 사설입니다. Bitcoin 공간과 기술 지향 Bitcoin 팟캐스트 호스트.

이번에는 드라이브체인이 어떻게 작동하는지 분해하고 논의할 것입니다. 그들은 처음에 2015년에 제안되었습니다. 지금까지 논의된 모든 제안 중에서 드라이브체인은 BIP에 문서화된 특정 구현 세부 사항 및 설계 측면에서 가장 오래되고 가장 구체화되었습니다. 300301. 이 개념의 창시자인 Paul Sztorc는 몇 가지 주요 설계 목표를 염두에 두었으며 이것이 전혀 포괄적이지는 않지만 다음은 몇 가지입니다.

모든 실패나 문제가 그것을 사용하는 사람들에게만 영향을 미치도록 각 사이드체인을 분리하십시오. 사이드체인이 각각에 대해 새로운 포크가 필요 없이 스핀업되도록 허용하십시오. bitcoin 양방향 페그로 사이드체인 안팎으로. 디자인에 대한 무료 실험을 허용하면 알트코인의 필요성이 더 이상 사용되지 않기를 바랍니다.

전체 디자인에는 두 가지 기본 측면이 있으므로 두 개의 개별 BIP가 있습니다. 첫 번째는 양방향 페그가 작동하도록 하는 페그 메커니즘(BIP300)입니다. Sztorc는 해시율 에스크로(hash rate escrow)라고 불리는 것을 설계했는데, 이는 가장 기본적인 용어로 광부가 무정형 그룹으로서 모든 사이드체인에서 코인을 집단적으로 보관할 수 있도록 합니다. 두 번째는 "블라인드" 병합 채굴 계획으로, 목표는 bitcoin 채굴자는 사이드체인을 검증할 필요 없이 합의 수준에서 블록 생산자가 될 수 있습니다. 이 두 조각은 함께 양방향 페그 메커니즘과 bitcoin 채굴자들이 사이드체인 채굴에 참여하는 동시에 그것이 제시하는 중앙 집중화 위험을 완화하려고 시도합니다.

BIP300은 새로운 사이드체인 제안, 새로운 사이드체인 활성화, 묶음 출금 제안, 그러한 출금 승인, 실제 출금 거래에 대한 검증 논리 및 예금 거래 검증에 대한 논리를 지정합니다.

드라이브체인 제안에 따라 새로운 사이드체인을 활성화하는 것은 마이너 시그널링을 통해 활성화되는 소프트 포크 프로세스와 매우 유사합니다. 주요 차이점은 물론 실제로는 소프트 포크가 아니라는 것입니다. 단일 포크를 통해 드라이브체인 합의 규칙을 활성화하면 채굴자가 언제든지 새 사이드체인을 활성화하라는 신호를 보낼 수 있습니다. 이내 드라이브체인 합의 규칙. 새로운 사이드체인 활성화를 제안하기 위해 광부는 해당 사이드체인에 대한 고유 식별자, 입금 작업에 사용할 공개 키, 버전 데이터, 사람이 읽을 수 있는 설명 및 소프트웨어 클라이언트의 해시를 포함하는 OP_RETURN 데이터를 코인베이스 출력에 배치해야 합니다. 및 GitHub 히스토리(여기에는 합의 시행이 없으며 인간이 참조할 수 있는 데이터만 있음).

채굴자가 새로운 사이드체인 활성화를 제안하고 필요한 모든 데이터를 코인베이스에 포함시키면 메인체인 합의의 관점에서 이 새로운 사이드체인을 생성할지 여부에 관한 일종의 "마이너 시그널링" 기간이 됩니다. 광부는 코인베이스 출력에 제안을 포함하기 위해 특별한 형식을 사용할 수 있으며, 다른 광부는 활성화 신호를 보내기 위해 두 번째 형식에 따라 다른 출력을 생성할 수 있습니다. 새로운 사이드체인 제안은 새로운 사이드체인 생성을 확인하기 위해 활성화 신호를 보내기 위해 어려움 기간에 블록의 90%가 필요합니다. 이것은 사이드체인을 활성화하는 페그 메커니즘을 생성하지만 사이드체인과 메인체인 간의 상호 작용은 그보다 더 미묘한 차이가 있습니다.

이 시점에서 누구나 코인을 사이드체인에 고정할 수 있습니다. 사이드체인에 고정하기 위해 사용자는 자신의 입력과 사이드체인에 모든 것을 할당하는 단일 출력으로 사이드체인 균형에 해당하는 UTXO로 두 개의 입력 트랜잭션을 생성하기만 하면 됩니다. 이렇게 하면 사이드체인이 모든 자금이 잠겨 있는 단일 UTXO만 가질 수 있습니다. 출금은 광부 투표로 처리됩니다. 메인체인은 사이드체인에서 누가 무엇을 소유하고 있는지 이해하지 못하며 메인체인은 투표 메커니즘 내에서 채굴자가 승인한 출금을 유효한 것으로 간주합니다. 이 때문에 인출 절차가 오래 지연됩니다. 사이드체인에서 철수하는 과정에는 철수 제안(번들)과 철수 투표 단계의 두 단계가 있습니다. 채굴자는 출금을 제안하기 위해 제안된 출금 거래의 해시를 사용하여 코인베이스 거래에서 OP_RETURN 출력을 생성해야 합니다. 그러나 이 해시는ighash와 유사하게 전체가 아닌 트랜잭션의 일부에만 커밋하는 플래그를 지정합니다. 드라이브체인에 잠긴 자금을 나타내는 입력 UTXO 또는 특수 사이드체인 UTXO로 인출되지 않은 모든 것을 반환하는 출력에 커밋하지 않습니다. 이는 드라이브체인에 대한 모든 예금이 새로운 UTXO를 생성하여 사람들이 확인하러 갔을 때 출금 거래에 대한 약속을 무효화하기 때문입니다.

여기서부터 출금 제안에 대한 채굴자 투표 기간이 시작됩니다. 번들이 제안된 후 광부는 승인 여부에 대해 투표할 수 있습니다. 채굴되는 각 블록은 해당 채굴자가 승인 카운터를 하나 또는 둘씩 증가시켜 아무 것도 하지 않도록 합니다. 이 외에도 몇 가지 특정 제한 사항이 있습니다. 단일 사이드체인에 대해 두 개 이상의 번들을 가질 수 있기 때문입니다. 채굴자가 사이드체인에 대한 인출 번들에 대해 "예"(카운터를 XNUMX 올리기)에 투표하기로 선택하면 절대로 필요한 것 특정 사이드체인과 관련된 다른 모든 번들에 대해 "아니오"로 투표하십시오(카운터를 하나 낮추십시오).

이것은 누군가가 더 많은 금액을 지불할 여러 번들로 출력을 갖는 "이중 인출"이 없음을 보장하기 위한 것입니다. bitcoin 그들이 빚진 것보다 메인 체인에.

다른 한편으로 광부는 제안된 모든 단일 번들에 대해 반대 투표를 할 수도 있습니다. 이것은 이러한 출금을 검증하는 광부가 (인출되는 사이드체인에서 합법적으로 소유된 코인인지 확인) 잘못된 일이 발생했음을 알아차렸다는 모든 사람에게 일종의 경보 역할을 해야 합니다. 이 디자인의 요점은 광부가 사이드체인에서 어떤 것도 검증할 필요가 없기 때문에 어쨌든 선택하지 않는 한 많은 광부가 검증하지 않은 번들에 찬성할 수 있다는 점을 기억하십시오. 이 경보 기능은 사기 인출이 발생하지 않도록 번들을 확인해야 함을 경고하도록 설계되었습니다.

번들이 필요한 임계값(13,150블록 또는 약 90일)에 도달하면 실제 출금을 처리하는 트랜잭션이 유효해지고 확인할 수 있습니다. 그러나 광부가 사이드체인에서 돈을 훔치는 사기적인 출금을 승인하면 사람들은 어떻게 합니까? Sztorc의 제안은 잘못된 페그아웃 트랜잭션을 무효화하기 위해 UASF(사용자 활성화 소프트 포크)에 참여하는 것입니다. 이는 메인체인에 대한 합의 측면에서 큰 위험을 나타냅니다. 2017년 UASF는 거의 성공하지 못한 고위험 조치였습니다. Bitcoin 오늘날보다 훨씬 작았다. 더 큰 Bitcoin 증가할수록 그러한 조치를 조정하기가 더 어려워집니다.

에서 회상한다면 우주 사슬에 관한 기사, 그 디자인은 블라인드 병합 마이닝(BMM)을 기반으로 했습니다. Ruben Somsen의 BMM 디자인은 실제로 그 두 번째 변형이며, 첫 번째는 BIP301에 배치된 Sztorc의 디자인입니다. 드라이브체인의 BMM 사양은 요청 메시지와 수락 메시지의 두 가지 메시지로 구성됩니다. 둘 다 메인체인의 특수 트랜잭션 유형과 광부의 코인베이스 트랜잭션의 특수 출력을 통해 각각 조정됩니다.

요청 트랜잭션은 사이드체인 블록을 생성하는 사람이 구성합니다. BMM의 요점은 이 사람이 채굴을 하지 않는 사람일 수 있다는 것입니다. 따라서 요청 트랜잭션은 제안된 사이드체인 블록을 확인하기 위해 채굴자에게 지불할 수 있도록 하는 것입니다. 사이드체인 블록 제안은 사이드체인 블록의 해시, 생성 당시 사이드체인에 할당된 ID 및 이전 메인체인 블록 헤더의 마지막 XNUMX바이트를 포함하는 트랜잭션을 구성합니다. 이러한 유형의 거래에는 세 가지 추가 합의 규칙이 적용됩니다. 첫째, 해당 블록의 코인베이스 트랜잭션에 일치하는 수락 출력이 없는 한 요청 트랜잭션은 유효하지 않습니다. 이는 채굴자가 사이드체인 블록을 수락하고 채굴하지 않고는 요청에서 수수료를 징수할 수 없도록 보장하기 위한 것입니다. 둘째, 각 사이드체인에 대해 하나의 요청 트랜잭션만 메인체인 블록에 포함될 수 있습니다. 이는 메인체인 블록당 실제로 모든 사이드체인에서 하나의 블록만 채굴할 수 있도록 하기 위한 것입니다. 마지막으로 이전 메인체인 블록의 마지막 XNUMX바이트가 일치해야 합니다. 이렇게 하면 요청이 다음 블록에서 채굴될 때만 유효하며 이러한 거래는 나중에 채굴될 수 없으며 다른 사람의 블록이 채굴된 후 사이드체인 블록 제안자로부터 돈을 훔칠 수 없습니다.

수락 출력은 메시지 헤더 데이터와 사이드체인 블록의 해시로 매우 간단합니다. 채굴자가 드라이브체인 노드를 자체적으로 실행하는 경우 요청 트랜잭션을 무시하고 항상 자체 사이드체인 블록을 채굴하기 위해 코인베이스에 자체 승인 출력을 포함할 수 있습니다. 이 두 가지 측면을 함께 사용하면 채굴자가 사이드체인 노드를 직접 운영하거나 다른 비 채굴자가 이를 수행하고 채굴자에게 비용을 지불하여 블록을 채굴할 수 있습니다. 아이디어는 광부 자신이 사이드체인을 운영하지 않고 추가 검증 비용을 소비한다면 다른 사람이 대신 할 수 있다는 것입니다. 사이드체인에서 수수료를 벌려고 하는 비 채굴자들 사이에 경쟁이 있는 경우, 그들은 그들이 얻는 수수료의 대부분을 차지할 때까지 요청 거래에서 채굴자들에게 지불할 의사가 있는 수수료를 계속 입찰할 것입니다. 채굴자는 이익의 작은 비율만 유지하고 나머지는 채굴자에게 지불합니다.

이것이 드라이브체인이 작동하는 방식의 이면에 있는 역학입니다. 다음은 연합 사이드체인, 그 다음에는 각 디자인이 가질 수 있는 모든 부정적인 요소와 단점에 대한 분석입니다.

Shinobi님의 게스트 게시물입니다. 표현된 의견은 전적으로 자신의 것이며 BTC Inc 또는 Bitcoin 매거진.

원본 출처 : Bitcoin Magazine에는 West Coast Sales Manager인