Signet 체인을 검증하는 풀 노드의 기능을 유지하면서 여러 제안 된 소프트 포크로 Signet을 실험 할 수 있습니까?

Aug 21 2020

Signet의 목표 중 하나는 제안 된 소프트 포크가 메인 넷에서 활성화되기 전에 테스트하는 것입니다. 이는 작성 시점 (2020 년 8 월)이 고급 단계 (BIP 검토, 비트 코인 코어 코드베이스에서 PR 검토 중, 활성화 논의 시작) 에있는 Taproot와 같은 제안 된 소프트 포크를 의미 할 뿐만 아니라 잠재적으로 다른 제안 된 소프트 포크를 의미합니다. 덜 진보 된 단계에서. Taproot가 고급 단계 임에도 불구하고 BIP (340) 변경 에 대한 논의 가 계속되고 있다는 점도 주목할 가치가 있습니다 . 덜 고급 제안 된 소프트 포크를 사용하면 메인 넷에서 활성화되거나 완전히 거부되기 전에 여러 지점에서 변경 및 업데이트 될 수 있습니다.

Signet은 제안 된 소프트 포크에 대한이 실험과 테스트를 어떻게 허용하는 동시에 전체 노드가 창세기에서 Signet 체인을 검증 할 수있는 능력을 유지합니까?

답변

2 MichaelFolkson Aug 21 2020 at 16:36

Signet이이 문제를 해결하는 방법은 Signet 전체 노드의 두 클래스를 갖는 것입니다. Signet 풀 노드의 첫 번째 클래스는 안정적인 Signet 버전에 유지되며 제안 된 소프트 포크가 메인 넷에서 활성화 된 후에 만 ​​업데이트됩니다. 두 번째 클래스의 Signet 전체 노드는 실험적인 Signet 버전을 실행하므로 새로운 제안 된 소프트 포크가 추가되거나 기존 제안 된 소프트 포크에 대한 변경 사항이 추가 될 때마다 업데이트해야합니다. 그렇지 않으면 인장 체인에서 분리 될 위험이 있습니다. 이는 일반 하드 포크가 있다고 가정하고 즉시 업데이트해야하는 전체 노드와 유사합니다.

예를 들어 (이 설명을 위해 AJ Towns에 크레딧), 풀 노드의 세 가지 클래스가 있다고 상상해보십시오.

  1. Taproot를 전혀 시행하지 않습니다.
  2. 800 번 블록의 현재 Taproot 규칙을 시행합니다.
  3. 블록 2400에서 향후 새로운 Taproot 규칙 집합을 시행합니다 ( R 타이 브레이커가 변경 되었다고 가정 ).

클래스 1은 메인 넷에서 비트 코인 코어의 세그 윗 이전 버전이 세그 윗 지출을 누구나 지출 할 수있는 것으로 취급 할 수있는 것과 동일한 방식으로 새로운 소프트 포크 제한을 무시함으로써 전체 체인을 검증 할 수 있습니다. 제안 된 소프트 포크가 메인 넷에서 활성화되면이 Signet 전체 노드는 새로운 안정적이고 실험적이지 않은 Signet 버전으로 안전하게 업그레이드 할 수 있습니다.

Class 2는 블록 800에서 Taproot 규칙을 시행하기 시작합니다. Class 2 노드가 업데이트하지 않는 한 블록 2400에서 Taproot 규칙이 변경되면 인식하지 못하기 때문에 새로운 Taproot 규칙에 따라 트랜잭션을 거부하기 시작합니다. 그들은 이전 Taproot 규칙에 따라 이러한 거래를 평가하고 이전 규칙에 따라 유효한 Taproot 지출이 아닙니다.

따라서 Class 2 Signet 전체 노드는 새로운 실험용 Signet 버전이있을 때마다 업그레이드해야합니다. 분명히 이것은 이상적인 것은 아니지만 Signet의 전체 목적이 실제 가치가없는 실험과 테스트라는 점을 감안할 때 합리적인 절충안으로 보입니다. Signet을 하드 포킹하는 것에 대한 두려움 때문에 테스트 할 수 없다면 수 천억 달러에 달하는 메인 넷의 변경 사항을 고려하기 전에 필요한 테스트 베드와 스테이징 그라운드를 제공하지 않습니다.