Skip to content

Commit

Permalink
feat: add detail example of mainnet
Browse files Browse the repository at this point in the history
  • Loading branch information
achilles198298 committed Jul 18, 2024
1 parent d264006 commit 9611eab
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions BTC/Advanced/Multisign/OP_CHECKMULTISIG/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,46 @@
- **漏洞**:早期版本的 `OP_CHECKMULTISIG` 有一个“off-by-one”漏洞,要求在签名数量前添加一个额外的 `OP_0`
- **效率**:验证签名和公钥需要计算资源,在高频交易场景中需要考虑其效率。

## 链上交易
### P2SH-P2MS
链上交易:https://mempool.space/zh/tx/45f862a3c72b659406c38f606e2bcc73145241c3bf5c42ded4d4737af8d401ad
```js
// ScriptSig
<empty>
OP_0
OP_PUSHBYTES_71 3044022018a750079fc75b68f5208f86b146821d5f3acb41f68195f8b4cbf1012cba2cbb02200c3ddd0dc271342f62222603356dd7c713cf387718e57ec2644f7811295d03ea01
OP_PUSHBYTES_72 30450221009a5914969675238ddfb9c1475d2888b3a5a507c6d13c35ac13a6f97a5c3dec97022055587f56408ba7abdc48d637d3eb03a3c29f05d7c22df9a20fd4bea739a00b2601
OP_PUSHDATA1 52210231d0ed51696dff4a25015f2a8330d07b81761eda22cae558da1086b5d084e1922102e142c9123d48ce4c0b32403b19403e41129f1d37de852d9bbc95165af6960e3b2102207620c770dc24eb02edc6fba51b70fd0c04a2772842d808188b835a8f73832853ae

// P2SH redeem script
OP_PUSHNUM_2
OP_PUSHBYTES_33 0231d0ed51696dff4a25015f2a8330d07b81761eda22cae558da1086b5d084e192
OP_PUSHBYTES_33 02e142c9123d48ce4c0b32403b19403e41129f1d37de852d9bbc95165af6960e3b
OP_PUSHBYTES_33 02207620c770dc24eb02edc6fba51b70fd0c04a2772842d808188b835a8f738328
OP_PUSHNUM_3
OP_CHECKMULTISIG
```

### P2WSH-P2MS
链上交易:https://mempool.space/zh/tx/a085e629f5932e729f54f174c936f015a10bb7935db66d5803e81dbff0ee15cc
```js
// Witness
<empty>
304402204f63983ae7cdb18fc3b75d4acc8e74d35816d4a8660d4296da4c0f6a0206fdd90220347e8317c686aa3785905eb1ff1cf32c4ce7ef019678fdd9ad00cfceedd74c2e01
30440220055d4a41afa73ef449b18add7748b054eec768a8350c5095b4f622546eb55a3f022073cea484b99331cc8ae1ebf6b1698d07b560ad01ee63e3a4a739684a0408aec601
52210279d1f38c1c80d47cb00ddbbe2915a60d5706e1ef66056a169150f083b288eb952102cb7d02b654f8616bfc5ab017b7a3ec9092e466381af0f552b7efcd8d920453672103c96d495bfdd5ba4145e3e046fee45e84a8a48ad05bd8dbb395c011a32cf9f88053ae

// P2WSH witness script
OP_PUSHNUM_2
OP_PUSHBYTES_33 0279d1f38c1c80d47cb00ddbbe2915a60d5706e1ef66056a169150f083b288eb95
OP_PUSHBYTES_33 02cb7d02b654f8616bfc5ab017b7a3ec9092e466381af0f552b7efcd8d92045367
OP_PUSHBYTES_33 03c96d495bfdd5ba4145e3e046fee45e84a8a48ad05bd8dbb395c011a32cf9f880
OP_PUSHNUM_3
OP_CHECKMULTISIG
```

### P2TR-P2MS

## 代码示例

完整的示例可以在[bitcoinjs-lib](https://github.com/bitcoinjs/bitcoinjs-lib/)里找到,这里逐步拆解分析。
Expand All @@ -122,6 +162,7 @@

示例代码参考[bitcoinjs-lib](https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/test/integration/transactions.spec.ts#L204-L250)


1. **构建锁定脚本**
以上面的示例脚本为例:

Expand Down

0 comments on commit 9611eab

Please sign in to comment.