<aside> ⚠️ 본 글은 원문을 한글로 번역한 문서이며, 번역 과정에서 Team Corn의 사견을 넣지 않았습니다. 또한 Team Corn의 공식 지지 입장 표명이 아닌 단순 한글 번역본입니다.

</aside>

원문 정보

일반인을 위한 BIP110 코드 리뷰

이 문서는 개발자가 아닌 사람들도 Bitcoin Knots의 BIP110 합의 규칙 구현을 직접 검토할 수 있기를 바라며 작성되었습니다.

합의 변경 사항을 검토하는 일은 어려운 작업처럼 보일 수 있지만, BIP110은 단순하기 때문에 모두가 이를 검토할 수 있는 드문 기회를 제공합니다.

5개의 소스 코드 파일에 걸쳐 수정된 코드 5줄과 추가된 코드 72줄뿐이므로, 간단한 문서로 설명할 수 있습니다.

BIP110 규칙 참조

  1. 34바이트를 초과하는 새 출력 scriptPubKey는 유효하지 않습니다. 단, 첫 번째 opcode가 OP_RETURN인 경우에는 최대 83바이트까지 유효합니다.
  2. 256바이트를 초과하는 OP_PUSHDATA* 페이로드와 스크립트 인자 witness 항목은 유효하지 않습니다. 단, BIP16 scriptSig의 redeemScript push는 예외입니다.
  3. 정의되지 않은 witness(또는 Tapleaf) 버전(즉, Witness v0/BIP 141, Taproot/BIP 341, 또는 P2A가 아닌 것)을 소비하는 것은 유효하지 않습니다. (정의되지 않은 witness 버전으로 출력을 생성하는 것은 여전히 유효합니다.)
  4. Taproot annex가 있는 witness stack은 유효하지 않습니다.
  5. 257바이트(128개의 스크립트 리프가 있는 merkle tree)보다 큰 Taproot control block은 유효하지 않습니다.
  6. 어디에 있든(실행되지 않더라도) OP_SUCCESS* opcode를 포함하는 Tapscript는 유효하지 않습니다.
  7. OP_IF 또는 OP_NOTIF 명령을 실행하는 Tapscript는 (결과와 관계없이) 유효하지 않습니다.

읽는 방법