科普 | Huffman:Taproot 的优化

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

撰文|?Daiwei

Taproot回顾?

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

民盟中央建议加速元宇宙科普和立法:3月4日消息,民盟中央已起草了《关于“元宇宙”技术发展的提案》,并将提交全国政协十三届五次会议。在提案中,民盟中央建议,在科普层面需加速知识传播,法律层面则需加快立法步伐。民盟中央拟提交的提案指出,目前,在新兴网络层面,相关政策法规相对缺失。“元宇宙”在未来将会带动形成全新的网络形态,当遇到突发舆情,全虚拟的环境、场景将更难进行源头追踪、问题疏导。因此建议应尽早加快立法研究,尽快形成与技术、市场发展相适应的治理模式和法律基础,全面提升我国社会治理的水平。建议组织相关部门,针对“元宇宙”相关需求、风险进行立法研究,并尽快发布。此前消息,民进中央拟向全国政协十三届五次会议提交《关于积极稳妥推进元宇宙技术和产业发展的提案》。建议推进元宇宙技术产业发展,建立相关监管治理体系。(华夏时报)[2022/3/4 13:37:12]

人民数字FINTECH推出区块链科普动画:人民日报数字传播发布微博称,人民数字FINTECH出品《趣味科普|区块链动画》。[2020/3/31]

▲调整公钥

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中国图书市场报告》。报告指出,AI、5G、区块链、机器人、VR、智能家居、AR这些热点词,不断点燃科技热潮,科技在改变大众生活的同时,也吸引了越来越多家长的关注,从小培养孩子对科技的兴趣和热爱。因此童书中科普百科类成交额同比增速最高,占比将近40%。[2020/1/8]

HuffmanTree?

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

声音 | 浪潮集团云南分公司总经理:云南区块链产业发展需从“科普”到“专精”不断深化:据昆明日报消息,浪潮集团云南分公司总经理郑昕表示,云南区块链产业发展需从“科普”到“专精”不断深化。下一步,浪潮将继续加大云南农业产业高质量发展体系建设力度,重点以普洱茶等云南优势产业为切入点,打造云南“绿色、有机农产品高地”的品牌形象,并在此基础上,开展基于区块链的供应链金融服务,解决中小企业贷款难、贷款贵问题。[2019/11/11]

▲哈夫曼树

哈夫曼树的构造过程是利用贪心的思想,每次选择权重最小的两个结点组合成新的节点,加入到原始集合,重复上述过程,直至结束。如上图所示,存在权重集合为(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),构造过程结束可以看出,在哈夫曼树中,权重越大的结点离根越近,权重越小的结点离根越远。

科普时报:区块链与云计算长期发展目标不谋而合:据《科普时报》今日报道,区块链与云计算两项技术的结合,从宏观上来说,一方面,利用云计算已有的基础服务设施或根据实际需求做相应改变,实现开发应用流程加速,满足未来区块链生态系统中初创企业、学术机构、开源机构、联盟和金融等机构对区块链应用的需求。另一方面,对于云计算来说,“可信、可靠、可控制”被认为是云计算发展必须要翻越的“三座山”,而区块链技术以去中心化、匿名性,以及数据不可篡改为主要特征,与云计算长期发展目标不谋而合。[2018/5/4]

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授权不得转载,欢迎转发至朋友圈。

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

银河链

波场科普 | 什么是社区贡献机会(CCO)?

社区贡献机会:这是一种为社区、项目、团队等筹集资金的新方式。 在我们之前的文章中,我们已经或多或少地提及到所谓的社区贡献机会,现在是时候阐述我们对它的想法了.

[0:15ms0-1:845ms