이것은 최고의 비트 코인 스크립트 가이드의 2 부입니다. 이 작업을 진행하기 전에 파트 1을 읽어 보는 것이 좋습니다..

최고의 비트 코인 스크립트 가이드 파트 2

1 부에서는 다음을 다뤘습니다.

  • 비트 코인 스크립트 소개.
  • Bitcoin의 거래는 어떻게 작동합니까??
  • 스크립트 작동 방식?
  • 스크립트에서 잠금 및 잠금 해제 게임.
  • 비트 코인 스크립트의 ECDSA 암호화.

참고 : 여기서부터는 “OP_”명령을 자주 사용하지 않을 것입니다. “OP_”는 항상 각 opcode 앞에 붙는다는 것을 이해해야하기 때문입니다. 이것을 명심하십시오. 가독성을 높이기 위해 “OP_”를 사용하지 않았습니다. 스크립트를 실행할 때 “OP_”를 사용해야합니다..

다중 서명 트랜잭션

지금까지 본 거래는 모두 매우 간단합니다 (본질 상 일대일). 그러나 거래는 그것보다 훨씬 더 복잡하고 계층화 될 수 있습니다..

먼저 다중 서명 트랜잭션을 확인합니다. 다중 서명 거래에서 비트 코인 출력을 잠금 해제 할 수있는 유일한 방법은 여러 사람이 거래를 확인하는 것입니다..

그래서 이것이 유용한 곳은 어디입니까??

거대한 다국적 기업이 있다고 상상해보십시오. 분명히 그들은 한 사람이 모든 자금을 통제하도록 허용하지 않을 것입니다. 그들은 자금을 담당 할 사람들의 이사회를 가질 것입니다.

이제 비트 코인 스크립트 거래의 맥락에서 어떻게 작동할까요??

다중 서명 스크립트는 N 개의 공개 키가 스크립트에 기록되고 이들 중 최소 M 개가 자금을 잠금 해제하기 위해 서명을 제공해야하는 조건을 설정합니다. 이를 M-of-N 체계라고도합니다. 여기서 N은 총 키 수이고 M은 유효성 검사에 필요한 최소 서명 수입니다. 트랜잭션은 M-of-N 다중 서명이라고도합니다..

다중 서명 출력의 스크립트 형식은 다음과 같습니다.

M… N CHECKMULTISIG

이것이 어떻게 작동하는지 예를 들어 보겠습니다..

3 명 (Alice, Bob, Charlie)이 이끄는 회사에 돈을 보내고 있다고 가정 해 보겠습니다.이 세 명 중 두 명은 거래를 확인해야합니다. 이 트랜잭션은 2-of-3 다중 서명이라고도합니다..

출력은 어떻게 표시됩니까??

2 3 CHECKMULTISIG

좋습니다. 이것이 출력입니다. 회사는 어떻게 산출물을 잠금 해제하고 자금에 접근 할 수 있습니까? 이것은 3 개 중 2 개 다중 서명을 의미합니다. 관련된 3 명 중 2 명이 서명을 제시해야합니다..

따라서 사용되는 서명 조합은 다음 중 하나 일 수 있습니다.

Bob과 Charlie가 거래를 확인하는 사람이라고 가정합니다. 그러면 전체 유효성 검사 스크립트가 다음과 같이 표시됩니다.

2 3 CHECKMULTISIG

위의 조건이 참이고 서명이 정확하면 트랜잭션 참이고 통과 할 것입니다. 그러나 서명이 올바르지 않으면 트랜잭션이 실패합니다..

그러나 다중 서명 트랜잭션의 예를 확인하면 우리가 사용한 형식이 다음과 같음을 알 수 있습니다.

2 3 CHECKMULTISIG

…부정확하다.

그 이유는 CHECKMULTISIG opcode에 버그가 있기 때문입니다..

CHECKMULTISIG opcode의 버그

이상적으로 CHECKMULTISIG opcode는 스택에서 M + N + 2 요소를 튀어 나와야합니다. 지금까지 작업 한 예를 살펴 보겠습니다.

2 3 CHECKMULTISIG

CHECKMULTISIG가 실행되기 전에 스택은 다음과 같습니다.

최고의 비트 코인 스크립트 가이드 파트 2

본질적으로 CHECKMULTISIG는 스택의 모든 요소를 ​​표시합니다..

이 예에서 M = 3 및 N = 2.

CHECKMULTISIG가 튀어 나오는 항목은 다음과 같습니다. 3 (M) 공개 키, 2 (N) 서명 및 기본적으로 이상적으로 튀어 나와야하는 항목의 총량이 (M + N + 2 =) 3임을 의미하는 두 개의 상수 + 2 + 2 = 7 개 항목.

그러나 CHECKMULTISIG opcode에 결함이있어 스택에서 사용할 수있는 것보다 하나 더 많은 항목을 표시합니다. 이것은 분명히 스택 오류를 유발합니다..

이 오류를 방지하기 위해 해결 방법이 사용됩니다. 결합 된 유효성 검사 스크립트가있을 때마다 항상 “0”으로 시작합니다. 이것은 스크립트가 이제 다음과 같이 보일 것임을 의미합니다.

0 2 3 CHECKMULTISIG

결과적으로 스택은 다음과 같습니다.

최고의 비트 코인 스크립트 가이드 파트 2

처음에 하나의 추가 요소 “0”을 추가하여 오류가 발생하지 않도록합니다..

이것은 또한이 잠금 해제 스크립트를 사용하는 대신 다음을 의미합니다.

우리는 이것을 사용하게됩니다 :

0

Pay-to-Script-Hash 또는 P2SH 란??

다중 서명 트랜잭션은 트랜잭션에 많은 유연성을 제공하지만 약간 복잡해질 수 있습니다. 5 명의 파트너가 운영에 참여하는 회사를 상상해보십시오. Alice가이 회사에 약간의 비트 코인을 보내면 그녀의 출력 스크립트는 다음과 같습니다 (관련된 5 명 중 2 명이 거래를 확인해야한다고 가정).

2 5 CHECKMULTISIG

보시다시피, 이것은 매우 번거롭고 다음과 같은 단점이 있습니다.

  • 첫째, 회사는 실제로이 정보와 스크립트를 고객에게 전달해야합니다..

  • 그런 다음 고객은 맞춤형 트랜잭션 스크립트를 생성 할 수있는 특수 비트 코인 지갑 소프트웨어를 사용해야합니다..

  • 결과 거래는 일반 거래보다 5 배 더 크고 더 많은 수수료가 필요합니다..

이 비트 코인 스크립트를 조금 덜 복잡하게 만들려면 솔루션이 필요했습니다. 복잡한 다중 서명 스크립트는 해시되고 사람들은 잠금 스크립트에 스크립트 대신 해시를 포함하기로 결정했습니다..

거래를 잠금 해제하고 사용하려면 수신자가 서명과 함께 원본 스크립트를 제시해야합니다. 송금인이 공개 주소 대신 해시로 송금하므로 이러한 유형의 거래를 Pay to Public Script Hash 또는 P2SH라고합니다..

따라서 P2SH는 트랜잭션을 어떻게 변경 했습니까 (위에 제공된 예)?

P2SH 이전

잠금 스크립트 : 2 5 CHECKMULTISIG

잠금 해제 스크립트 :

P2SH 이후

교환 스크립트 : 2 5 CHECKMULTISIG

잠금 스크립트 : HASH160 EQUAL

잠금 해제 스크립트 :

알 수 있듯이 거래 상환 조건을 제공하는 책임은 송금인에서 상환 스크립트를 제시하는 상 환자에게 이전됩니다..

그렇다면 P2SH를 사용하지 않으면 우리 회사의 스크립트는 어떤 모습일까요? Sans P2SH가 사용했을 비트 코인 스크립트는 다음과 같습니다.

2 5 CHECKMULTISIG

다음과 같이 번역됩니다.

2 04C16B8698A9ABF84250A7C3EA7EEDEF9897D1C8C6ADF47F06CF73370D74DCCA01CDCA79DCC5C395D7EEC6984D83F1F50C900A24DD47F569FD4193AF5DE762C58704A2192968D8655D6A935BEAF2CA23E3FB87A3495E7AF308EDF08DAC3C1FCBFC2C75B4B0F4D0B1B70CD2423657738C0C2B1D5CE65C97D78D0E34224858008E8B49047E63248B75DB7379BE9CDA8CE5751D16485F431E46117B9D0C1837C9D5737812F393DA7D4420D7E1A9162F0279CFC10F1E8E8F3020DECDBC3C0DD389D99779650421D65CBD7149B255382ED7F78E946580657EE6FDA162A187543A9D85BAAA93A4AB3A8F044DADA618D087227440645ABE8A35DA8C5B73997AD343BE5C2AFD94A5043752580AFA1ECED3C68D446BCAB69AC0BA7DF50D56231BE0AABF1FDEEC78A6A45E394BA29A1EDF518C022DD618DA774D207D137AAB59E0B000EB7ED238F4D800 5 CHECKMULTISIG

아니요, 누군가 그 숫자와 문자를 토해내 지 않았습니다. 이렇게 합쳐진 5 개의 공개 키가!

고객이 비트 코인 스크립트를 전송하여 비트 코인 UTXO를 전송한다고 상상해보십시오..

이제 동일한 16 진수 블록이 SHA 256 다음에 RIPEMD160을 통해 구문 분석 된 경우 다음과 같이 표시됩니다.

54c557e07dde5bb6cb791c7a540e0a4796f5e97e

훨씬 깔끔하고 관리하기 쉽습니다.?

잠금 스크립트의 P2SH 버전은 이제 다음과 같습니다.

HASH160 54c557e07dde5bb6cb791c7a540e0a4796f5e97e 같음

잠금을 해제하기 위해 잠금 해제 스크립트는 이제 다음과 같습니다.

: <2 공개 키 1 공개 키 2 공개 키 3 공개 키 4 공개 키 5 5 MULTISIG>

이 두 비트 코인 스크립트의 결합은 두 단계로 진행됩니다..

첫째, redeem 스크립트는 일치하는지 확인하기 위해 해시와 일치합니다.

<2 공개 키 1 공개 키 2 공개 키 3 공개 키 4 공개 키 5 5 MULTISIG> HASH160 EQUAL.

이 비트 코인 스크립트가 TRUE를 반환하면 자동으로 발생하는이 코드 조각을 통해 잠금 해제의 두 번째 부분이 발생합니다. 이것은 우리의 전통적인 다중 서명 잠금 해제입니다.

 2 공개 키 1 공개 키 2 공개 키 3 공개 키 4 공개 키 5 5 CHECKMULTISIG

P2SH 주소는 항상 1 대신 3으로 시작합니다..

3KP3okFKoGs53JqgyGB27pqaum8tCz2BvW <- P2sh 주소.

흐름 제어 란??

프로그래밍의 가장 흥미로운 측면 중 하나는 흐름 제어입니다. 특정 조건을 사용하여 어떤 명령이 언제 실행되는지 감지 할 수 있습니다. 프로그래밍 기반이있는 사람은 IF-ELSE 프로그래밍의 개념에 익숙합니다..

이것은 가장 간단하고 기본적인 흐름 제어 형식입니다..

비트 코인 스크립트에서 다음은 상태 제어에 사용됩니다.

  • 만약
  • ELSEIF
  • ENDIF
  • 알림

일반 프로그램에서 IF-ELSE 조건은 다음과 같습니다.

If (조건)

{

진술 A

}

그밖에

{

진술 B

}

진술 C

그래서 여기서 일어나는 일?

  • 조건이 True이면 STATEMENT A를 실행합니다..
  • 그렇지 않으면 STATEMENT B를 실행하십시오..
  • 그 후 STATEMENT C는 어떤 조건을 사용하는지에 관계없이 실행됩니다..

하지만 비트 코인 스크립트에서는 모양이 다릅니다. 비트 코인 스크립트의 주요 기능은 스택 기반 언어라는 점을 기억하십시오. 이것이이 경우 조건이 IF 문 앞에 오는 이유입니다..

따라서 다음과 같이 보입니다.

질환

만약

진술 A

그밖에

진술 B

END IF

진술 C

이 스크립트 블록의 실행은 어떻게 생겼을까 요??

1 단계: 조건이 스택에 표시됩니다.

2 단계: IF opcode가 Condition에서 튀어 나와 TRUE인지 아닌지 확인합니다..

3 단계: 참이면 STATEMENT A가 실행되고 비트 코인 스크립트는 ELSE 문을 건너 뛰어 ENDIF로 이동하고 STATEMENT C를 스택에 푸시합니다..

4 단계: IF opcode가 FALSE를 반환하면 ELSE 블록이 실행되고 STATEMENT B가 스택에 푸시됩니다..

5 단계: STATEMENT B가 스택에 푸시 된 후 ENDIF 조건이 활성화되고 STATEMENT C가 계속해서 스택에 푸시됩니다..

사이드 노트 :

앞서 살펴본 것처럼 특정 조건에 VERIFY 문을 추가하여 흐름 제어를 설정할 수 있습니다..

2 4 EQUALVERIFY 3

이 경우 2는 4와 같지 않으므로 스크립트는 3으로 이동하지 않고 실행을 중지합니다..

비트 코인 스크립트에서 흐름 제어 사용

Flow Control의 가장 일반적인 응용 프로그램 중 하나는 여러 실행 경로가있는 redeem 스크립트를 만드는 것입니다..

우리는 이미 다중 서명을 사용한 다중 수준 실행의 예를 보았습니다. 이제 Flow Control 문을 통해 동일한 다중 서명 트랜잭션을 작성하는 방법을 살펴 보겠습니다..

1-of-2 Multisig를 실행한다고 가정합니다. 다중 서명에 관련된 두 사람은 Alice와 Bob이며이 두 사람 만 트랜잭션을 확인하면 트랜잭션이 진행됩니다..

따라서이 다중 서명의 경우 흐름 제어를 사용하여 잠금 스크립트를 어떻게 설계 할 것인가??

비트 코인 스크립트 잠금

만약

체크 시그

그밖에

체크 시그

ENDIF

보시다시피 단순하고 간단한 if-else 루프입니다. 그러나 여기에 뭔가 잘못된 것이 있습니다..

무엇이 빠졌다고 생각하십니까?

맞습니다…. 조건!

Condition 자체가 누락되었습니다. 그게 오류입니까? 지금 당장 생각해보세요. 왜 잠금 스크립트에 조건을 넣지 않았나요??

조건이 있으면 IF-ELSE 스크립트의 잠금이 해제되고 확인을 제공하지 않고도 문에 액세스 할 수 있습니다. IF-ELSE 스크립트는 특정 조건이 충족되는 경우에만 잠금 해제 할 수 있습니다..

이것이 잠금 스크립트에서 조건없이 IF-ELSE 코드를 제공하는 이유입니다..

Bitcoin 스크립트 잠금 해제

잠금 해제 스크립트에서 Bob 또는 Alice는 스크립트 잠금을 해제하는 데 필요한 서명과 조건을 제공합니다..

스크립트에 따르면 조건이 TRUE이면 Alice의 코드가 잠금 해제되고 조건이 FALSE이면 Bob의 코드가 잠금 해제됩니다. TRUE를 나타 내기 위해“1”을 사용하고 FALSE를 나타 내기 위해“0”을 사용합니다..

따라서이 모든 정보를 염두에두고 Alice의 잠금 해제 스크립트는 다음과 같습니다.

1

Bob의 잠금 해제 스크립트는 다음과 같습니다.

0

스크립트 실행

Bob이 UTXO의 잠금을 해제하려고한다고 가정 해 보겠습니다. 이것이 결합 된 유효성 검사 스크립트의 모습입니다 (이 예제에서는 이해를 높이기 위해 전체 IF-ELSE 코드 대신이 예제에서 사용할 것입니다).

0

1 단계 : Bob의 서명이 스택에 푸시됩니다..

최고의 비트 코인 스크립트 가이드 파트 2

3 단계 : 이제 재미있는 부분이 시작됩니다..

다음과 같이 실행될 시간입니다.

만약

체크 시그

그밖에

체크 시그

ENDIF

먼저 IF 조건이 스택에서 “0”을 팝니다..

최고의 비트 코인 스크립트 가이드 파트 2

5 단계 : CHECKSIG가 실행되어 스택에서 서명 및 공개 키를 모두 팝하고 CHECKSIG 작업을 실행합니다..

좋습니다. 이것은 간단한 1-2 다중 서명입니다..

그러나 조금 더 미리 살펴보고 스크립트에서 흐름 제어를 높이면 어떤 일이 발생하는지 살펴 보겠습니다..

만약

진술 A

그밖에

만약

진술 B

그밖에

진술 C

ENDIF

ENDIF

자, 실행하고자하는 세 개의 문이 있습니다. 특정 명령문을 실행하려면 특정 조건을 입력해야합니다..

STATEMENT B를 실행하려면 어떤 조건을 입력해야합니까? 조건은 1, 0 또는 {TRUE, FALSE}입니다..

그러나 잠깐, 문 B는 ELSE 하나와 IF 하나 뒤에옵니다. 맞습니까? 따라서 조건 시퀀스는 0,1 또는 {FALSE, TRUE}가 아니어야합니다.?

음… Script는 스택 기반 프로그래밍 언어라는 것을 기억하십시오. 따라서 {TRUE, FALSE}의 입력은 스택에 다음과 같이 나타납니다.

최고의 비트 코인 스크립트 가이드 파트 2

그래서, 가장 먼저 튀어 나오는 것은 무엇입니까??

FALSE 오른쪽?

이 FALSE 조건은 스크립트가 IF를 건너 뛰고 ELSE로 바로 이동하게합니다..

그래서 조건을 입력해야 할 때마다 스택이 작동하는 방식을 기억하십시오..

Timelock이란??

타임 락은 비트 코인 지출에 시간 기반 제한을 부과하는 원시 스마트 계약입니다. 비트 코인에서 사용되는 세 가지 타임 락 :

  • 트랜잭션 잠금 시간 (nLocktime).
  • CHECKLOCKTIMEVERIFY 또는 CLTV.
  • CHECKSEQUENCEVERIFY 또는 CSV

nLocktime

“nLocktime”은 기본적으로 트랜잭션이 블록에 허용되지 않는 시간을 정의하는 매개 변수입니다. 모든 트랜잭션 세트에는 nLocktime이 포함됩니다. nLocktime이 취할 수있는 경로는 세 가지입니다.

  • nLocktime이 0으로 설정되면 트랜잭션이 즉시 전파됩니다..

  • 0 인 경우

  • nLocktime 인 경우> 5 억인 경우 Unix Epoch 타임 스탬프로 해석되며 지정된 시간이 경과 할 때까지 트랜잭션이 유효하지 않습니다..

nLocktime은 서류 상으로는 좋게 보이지만 눈에 띄는 약점이 있습니다..

Alice가 잠금 시간이 1 주인 BTC를 Bob에게 보내려고한다고 가정합니다. Alice가 동일한 UTXO를 사용하여 1 주일이 경과하기 전에 다른 트랜잭션을 생성하고 잠금 시간이 0 일 가능성이 있습니다..

따라서 수신자는 발신자의 윤리에 전적으로 의존합니다..

CLTV

nLocktime의 문제점은 트랜잭션에 시간 잠금이 적용되어 악의적 인 사용자에게 취약하다는 것입니다. 따라서 CLTV 또는 CHECKLOCKTIMEVERIFY는 잠금을 개별 출력에 적용 할 수 있도록했습니다. 따라서 간단히 말해서 CLTV는 트랜잭션의 개별 출력을 시간 잠금에 책임지게 만들었습니다..

CLTV는 가능한 가단성에 대한 저항을 제공하는 원시 오프 체인 결제 채널에서 구현되었습니다. CLTV 스타일 결제 채널은 BIP 65 이후에 구현되었습니다. 작동 방식을 살펴 보겠습니다.

  • Alice (The Merchant)는 자신의 공개 키를 Bob (고객)에게 제공합니다..

  • Bob은 자신의 공개 키와 Alice를 사용하여 다음 조건을 사용하여 P2SH 주소를 만듭니다 : 조건 1 : Alice와 Bob 모두이 주소를 통해 발생하는 모든 트랜잭션에 서명합니다. 조건 2 : Bob 만 자신이 아니라 해당 트랜잭션에 서명 할 수 있습니다. 환불 보증금보다 잠금 시간이 길어야합니다..

  • Bob은 즉시 예금 거래를 생성하고이를 블록 체인에 방송합니다. 위의 조건 2 때문에 그는 주문형 환불을 거의 생성 할 수 있다는 사실을 확신합니다..

  • 이제 첫 번째 조건은 Alice와 Bob이 P2SH 주소에서 발생하는 모든 트랜잭션에 서명해야한다는 것을 나타냅니다. 따라서 Bob (고객)은 자신의 거래 부분에 서명 할 수 있고 Alice는 Bob에게 서명 세부 정보를 공개하지 않고 자신의 부분에 서명 할 수 있습니다. 이렇게함으로써 Alice는 환불이 방송되기 전에 최종 지불을 블록 체인에 방송 할 수 있습니다..

CSV

CHECKSEQUENCEVERIFY 또는 CSV의 작동 방식을 이해하기 전에 절대 시간 잠금과 상대 시간 잠금의 차이점을 알아야합니다..

nLocktime 및 CLTV는 절대 시간 잠금 (절대 시점을 구체적으로 언급 함)이지만 상대 시간 잠금은 블록 체인의 출력 확인에서 경과 된 시간을 지정합니다..

CSV 또는 CHECKSEQUENCEVERIFY는 상대적 시간 잠금입니다. CSV opcode는 “nSequence”변수를 지정합니다..

CSV opcode는 호출 될 때 nSequence가 CSV opcode에 언급 된 것과 같거나 더 많은 양의 상대 잠금 시간이 경과했음을 나타내지 않는 한 스크립트 실행을 중지합니다..

좋습니다. 이제 재미있게 보겠습니다. 흐름 제어 및 CSV를 사용하여 스크립트를 활용합시다.!

B, C, D의 3 명이 소유 한 회사가 있다고 가정 해보십시오. 회사는 2/3 Multisig 의미로 운영됩니다. 회사의 자금은 3 명 중 최소 2 명이 자신을 제시하는 경우에만 사용할 수 있습니다. 열쇠.

그러나 사람들이 결국 열쇠를 잃어버린 경우, 자금이 2/3 Multisig에 의해 여전히 활성화 될 수 있도록 안전 장치를 만들어야합니다. 이 경우 백업 키를 만들어 변호사 A에게 건네줍니다..

그래서 스크립트에서 어떻게 보일까요??

만약

만약

2

그밖에

<30 일> CHECKSEQUENCEVERIFY DROP <A의 Pubkey> CHECKSIGVERIFY

1

ENDIF

<B ‘s Pubkey> 3 CHECKMULTISIG

그밖에

<90 일> CHECKSEQUENCEVERIFY DROP <A의 Pubkey> 체크 시그

ENDIF

보시다시피 흐름이 진행될 수있는 세 가지 방법이 있습니다.

  • 모든 것이 잘되고 좋은 경우 간단한 2/3 다중 서명처럼 작동합니다..
  • 소유자 중 한 명이 키를 분실하여 30 일 내에 생산할 수없는 경우, 자금에 액세스하는 데 필요한 조건은 변호사의 키와 3 명의 소유자가 포함 된 1/3 멀티 서명입니다..
  • 3 명의 소유자가 모두 키를 분실하면 변호사는 90 일 후에 자금에 액세스 할 수 있습니다..

조건 # 1 : 모든 것이 좋다

모든 것이 정상이고 아무도 키를 잃어버린 사람이 없다면, 3 명의 소유자 중 2 명은 일반 다중 서명에서와 같이 서명으로 거래를 확인합니다..

잠금 해제 스크립트 : 0

참고 : CHECKMULTISIG 버그를 해결하려면 모든 다중 서명 트랜잭션이 “0”으로 시작한다는 점을 잊지 마십시오..

전체 유효성 검사 스크립트 : 0

그래서 실행은 어떻게 생겼습니까??

1 단계 : 잠금 해제 스크립트가 단계별로 스택에 푸시됩니다.

최고의 비트 코인 스크립트 가이드 파트 2

익숙해 보입니까??

네… 이것은 2/3 멀티 시그이고 비트 코인 스크립트는 정상적으로 실행됩니다..

조건 # 2 : 한 사람이 키를 잃어버린 경우

이 경우 변호사 A가 등장합니다..

잠금 해제 스크립트 : 0

전체 유효성 검사 스크립트 : 0

그래서 실행은 어떻게 생겼습니까??

1 단계 : 잠금 해제 스크립트가 스택으로 푸시됩니다..

최고의 비트 코인 스크립트 가이드 파트 2

3 단계 : 다음 시퀀스는 다음과 같습니다.

<30 일> CHECKSEQUENCEVERIFY DROP CHECKSIGVERIFY

“<30 일> CHECKSEQUENCEVERIFY DROP”은 기본적으로 30 일의 타임 락을 활성화합니다. 타임 락 내에서 키를 분실 한 소유자가 키를 검색 할 수없는 경우 스크립트는 스택의 다음 요소로 이동합니다..

그러나 키를 검색하고 증명을 표시 할 수있는 경우 스크립트는 즉시 실행을 중지합니다 (VERIFY 코드가 추가되었으므로)..

참고 : 그래서 DROP은 무엇입니까? CHECKSEQUENCEVERIFY를 충족하는 데 필요한 매개 변수, 그 앞에있는 시간 매개 변수, 즉“<30 일>”은 여전히 ​​스택에 있습니다. DROP 함수는 스택의 마지막 항목을 팝합니다., <30 일>.

최고의 비트 코인 스크립트 가이드 파트 2

이제 이것은 1/3 멀티시 그가됩니다. B의 서명이 체크 아웃되면 스크립트가 제대로 실행됩니다..

조건 # 3 : 세 명의 소유자 모두 키를 잘못 놓았습니다.

이 경우 Script는 첫 번째 IF도 실행하지 않고 ELSE 문으로 바로 이동합니다..

잠금 해제 스크립트 :

완전한 유효성 검사 스크립트 :

그래서 실행은 어떻게 생겼습니까??

1 단계 : 잠금 해제 스크립트가 스택으로 푸시됩니다..

최고의 비트 코인 스크립트 가이드 파트 2

결론

이 가이드의 목적은 다양한 비트 코인 스크립트 거래 시나리오의 논리를 이해하는 것입니다. 이러한 거래 뒤에있는 메커니즘을 보는 것은 아주 흥미 롭습니다. 비트 코인 스크립트 가이드의 1 부를 읽지 않았다면 반드시 확인하세요.!

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me