科普 | Huffman:Taproot 的优化_ROO:BOOTY

四年来的第一次比特币升级刚刚被全世界的矿工们批准。这是利益相关者之间达成共识的罕见时刻。

撰文|?Daiwei

01

Taproot回顾?

比特币改进提案是为比特币引入新功能和信息的设计文档,而Taproot升级则是三个BIPs的汇编,这三个BIPs分别是Schnorr签名(BIP340)、Taproot(BIP341)和TapScript(BIP342),这三个升级统称为BIPTaproot,它将为比特币带来了更高效、更灵活、更私密的传输方式,其核心在于使用了Schnorr签名和Merkel抽象语法树(MAST)。

徐明星新书《趣说金融史》正式发布 科普金融发展之道:金色财经现场报道,9月23日,欧科云链创始人徐明星携手著名财经作家李霁月、行业观察者顾泽辉力作《趣说金融史》一书,跨越5000年金融历史,重读金钱故事,并预测新的金融时代。该书由中信出版社出版,将于近期正式发售。据了解,本书可以更好地呈现金融的起源与发展,帮助人们理解货币、金融与未来经济。作为区块链行业领军企业——欧科云链的创始人,徐明星深知技术探索对经济社会的重要推动作用,他曾先后出版过《图说区块链》、《区块链:重塑经济与世界》、《通证经济》、《链与未来》等行业权威著作,解读区块链等新型技术的推动下,金融与社会的升级之道,对经济社会发展做出了重大贡献。其中,《区块链:重塑经济与世界》曾作为新中国70周年重点推荐图书之一被相关书店推荐。[2021/9/23 17:00:57]

美国说唱歌手Megan Thee Stallion与Cash App合作发布比特币科普视频:美国说唱歌手Megan Thee Stallion与由Square开发的移动支付服务Cash App合作发布了一段名为“Bitcoin for Hotties”的视频。该视频从她的角度解释了什么是比特币,为什么比特币有价值等内容。Megan Thee Stallion在Instagram上拥有超过2410万粉丝,在 Twitter上拥有640万粉丝。(Bitcoin News)[2021/8/8 1:41:10]

▲调整公钥

Taproot的原理,简单来说,就是定义了一种输出和两种花费路径。如上图所示,有Alice和Bob两个参与者,Taproot的运作过程如下:

将Alice和Bob的公钥聚合为:C=P_A+P_B加入MerkleRoot,公钥聚合为:P=C+H(C||MerkleRoot)G,其中H(C||MerkleRoot)表示C和MerkleRoot的组合hash锁定脚本中填入聚合公钥P,格式类似Segwit:。ver表示版本号,Taproot中ver=1。花费路径有两个,二选一:签名模式:Alice和Bob全部签名产生聚合签名,填入见证脚本。利用聚合公钥P,对签名进行验证后即可花费。脚本模式:Alice和Bob,有一个拒绝签名,可以走脚本模式。此时Alice想要完成花费,那么见证脚本中需要填入:符合Script1的执行数据D,Script1,C,Hash2。为了验证签名,首先利用Script1,Hash2,计算MerkleRoot,然后验证P==C+H(C||MerkleRoot)G是否成立,最后构建完整脚本D||Script1并执行脚本,验证结果是否为真。当上述验证通过后,即可完成花费。Taproot按照签名模式进行花费时,多个参与方和单个参与方在区块链上看起来都长得是一样的,所以许多区块链分析将不可用,从而为所有Taproot用户保留隐私。与此同时,Taproot的脚本花费模式让用户可以实现复杂的支出条件。Taproot可以有效压缩交易脚本字节数。签名模式下随着参与者增加,EDSA交易脚本大小线性增长,Taproot交易脚本大小保持不变。脚本模式下随着脚本数量的增加,EDSA交易脚本大小线性增长,Taproot交易脚本大小对数增长。

声音 | 阿里云中国区副总裁:阿里正输出区块链等前沿技术 把重庆打造成为“数字城市标杆”:据重庆晚报报道,阿里云中国区副总裁陈斌表示,阿里巴巴作为领先的科技公司,正通过从农村到城市、从线上到线下,输出云计算、区块链等前沿技术,把重庆打造成为“数字城市标杆”。[2019/7/17]

02

HuffmanTree?

给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(HuffmanTree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。

声音 | 上海股交所总经理:区块链想要大规模发展要做好社会科普工作:金色财经报道,上海股交所总经理张云峰表示,区块链当前还处于一个“概念”的阶段,距离成熟应用,影响到百姓的日常生活还有很长的路要走。对于“区块链”和其会带来的社会和经济效果,沈阳应当持审慎的态度。区块链想要大规模发展,一方面要做好这项复杂技术的社会科普工作,加快社会大众对区块链的了解。另一方面,要充分发挥市场的作用,让企业用实实在在的技术创新,赋能实体经济的发展。[2019/11/17]

▲哈夫曼树

哈夫曼树的构造过程是利用贪心的思想,每次选择权重最小的两个结点组合成新的节点,加入到原始集合,重复上述过程,直至结束。如上图所示,存在权重集合为(1,2,3,4,5)?的5个结点,构造哈夫曼树的过程如下:

从集合中选择权重最小的1,2结点,组合成权重为3的结点,集合变成(3,3,4,5)从集合中选择权重最小的3,3结点,组合成权重为6的结点,集合变成(4,5,6)从集合中选择权重最小的4,5结点,组合成权重为9的结点,集合变成(6,9)从集合中选择权重最小的6,9结点,组合成权重为15的结点,集合变成(15),构造过程结束可以看出,在哈夫曼树中,权重越大的结点离根越近,权重越小的结点离根越远。

声音 | CNBC主持人:加密货币最大的缺点之一就是难以向外行快速科普:CNBC主持人Ran NeuNer近期发推称,加密货币最大的缺点之一就是很难向外行快速解释。当人们要求我向他们解释比特币时,我知道他们至少需要一个小时才能真正理解。[2019/9/10]

03

HuffmanTree?

在Taproot里的应用?

Taproot相比于ECDSA多签算法,一大优势是Schnorr聚合签名可以将多个签名数据压缩合并成单个聚合签名。使用聚合签名技术后,交易脚本的字节数大大减少,可以有效减少交易费用的支出。当我们按照脚本模式进行花费时,借助MAST的树形结构,交易脚本大小随着脚本数量对数增长。然而利用HuffmanTree,可以通过改进MAST的构造过程,帮助我们进一步减少脚本花费模式下见证脚本的字节数,最终达到降低交易手续费的目的。

▲抽象语法树

前文提到,当Taproot按照脚本模式进行花费时,需要提供脚本在MAST中的Proof。如上图,当我们想通过script_A进行花费,见证脚本中需要提供:

符合script_A的执行数据Dscript_APTaggedHash(B),TaggedHash(C)TaggedHash表示带标签的hash,固定长度32字节,使用带标签的hash目的是减少hash碰撞忽略前两项的字节数,可以看出,最后一项的字节数可以表示为32*(d-1),d=3表示script_A在MAST中的高度。换句话说,最后一项的字节数与脚本在MAST中高度线性相关。因此,对于script_A,script_B,script_C三个脚本,我们可以根据脚本使用频率赋予权重,构造哈夫曼树,作为MAST。最终,根据Huffman的特性,使用频率越高的script,在哈夫曼树中的高度越低,见证脚本中字节数越少,交易手续费越低。总而言之,交易手续费与交易脚本的字节数息息相关。Taproot的聚合签名可以帮助我们有效减少按签名模式花费时的交易脚本字节数,但是利用Huffman构造MAST可以进一步帮助我们减少按脚本模式花费时的交易脚本字节数。

本文为独家原创内容。未经NewBTCWorld授权不得转载,欢迎转发至朋友圈。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:0ms0-7:526ms