1 : 基于隔离见证seg wit 把新协议的信息放到隔离见证中
2 : P2SH可以使得复杂脚本由哈希值取代,这样使得交易代码变短,降低交易字节数,另外将构建脚本的负担转移至接收方,而非发送方,同时只有在这笔比特币需要被接收方发送出去的时候,才会对其公钥进行披露,在一定程度上也增加了隐私性。
比特币地址就是一个长长的字符串,但是比特币地址是分不同类型的,常见的有两类:Pay-to-PubKeyHash (P2PKH) 和 Pay-to-ScriptHash (P2SH) 。
P2PKH 是最为常见的比特币地址类型,英文全称的意思是”向公钥哈希支付“,这种类型的地址是以1打头,例如,1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2 。
P2SH 是一种比较新的地址类型。英文全称的意思是”向脚本哈希支付“,这种类型的地址是以3打头的,例如,3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy 。
P2SH 中的资金要想转出,转出条件就可以很自由的进行设置。具体来讲,转出条件就是要写到一个赎回脚本(redeem script)中。 过程是,接受者来构建脚本,然后计算出脚本的hash发给发送者, 发送者只在交易中带上这个script hash即可,不需要知道脚本是什么,等到接受者要花费转入的utxo时,再揭露和满足解锁脚本.
当然这个机制下脚本不当就更容易造成比特币锁死。
理解: 设置转出条件的人从发送者变成接收者。
如设置多签的脚本格式为
M <Public Key 1> <Public Key 2> ... <Public Key N> N CHECKMULTISIG
引入了 Schnorr 签名
Schnorr 签名的主要好处是多重签名交易作为正常的单签名交易出现在链上。使用 Schnorr 签名,多个签名者可以生成一个联合公钥,然后用一个签名联合签名,而不是在区块链上分别发布每个公钥和每个签名。这是显着的可扩展性和隐私增强。这意味着 Schnorr 签名可以显着节省空间并节省验证时间,并且随着传统多重签名交易的签名者数量的增加,相对优势也会变得更大。
需要2轮交互, 第一轮先协议一个公共公钥
称为 Taproot的数据结构,实现了默克尔化抽象语法树(MAST)来优化区块链上的交易数据存储。
MAST的结构 : 暴露一个分支以及对应的merkle路径即可解锁脚本, 不需要暴露其他分支
taproot结构:,
正常的schnorr多签解锁可以和MAST并列存在, 二者共同计算出一个合成公钥,正常使用多签解锁时,只需要提供一个签名,a.不用暴露原始的多签公钥, b.不用暴露有merkle树的存在即可验证。
无法使用正常签名流程时,才需要使用merkle树的路径来解锁使用。
这样可以实现巨大的隐私性,也是taproot设计比起MAST的优势。
补充理解: 之所以可以实现上图中最顶端的合成公钥,使得两个链路都可以被同一个taproot秘钥验证, 也是利用了schnorr的线性特性(可以理解成 正常签名的多签公钥和merkle树的公钥又聚合成1个,提供虽然是其中一方的签名,但聚合签名可以验证), 也是为什么taproot结构一定要和schnorr签名绑定。
又叫做Tapscript, 主要是BIP-341只是提出了脚本结构的改进,342主要同步提供了操作码的增加,来支持341的完整功能。
具体来说,是支持 Schnorr signatures, batch validation, 和 signature hash , 可以在花费脚本中直接使用
采用比特币的脚本编码语言来适应 Schnorr 签名和 Taproot 实现。 它利用 Schnorr 签名的聚合签名功能,优化交易见证内的空间。
Taproot通过结合Schnorr来使得P2SH 和常见的P2PKH,引入了更多的操作码
在技术上可以使得它们在最终看起来是一个常规的交易,即在最后的n/m交易的时候,表现如同普通的P2PKH交易一样,而不用去披露底层的MAST,这样确保了其中复杂脚本合约是隐藏的。
P2SH
https://happypeter.github.io/binfo/p2sh
taproot:
https://blog.bitmex.com/the-schnorr-signature-taproot-softfork-proposal/ 文中图的主要来源
https://www.odaily.news/post/5172983
https://medium.com/@winkryptocom/读懂比特币协议重要里程碑-schnorr-签名和-taproot-软分叉升级-db76d123254a
https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki bip 340,341,342
https://www.youtube.com/watch?v=fDJRy6K_3yo&ab_channel=BitcoinOptech
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。