SCR:科普 | Huffman:Taproot 的优化_ROOT

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

撰文|?Daiwei

01

Taproot回顾?

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

欧易OKEx将于3月18日推出DeFi系列科普视频:据欧易OKEx官方消息显示,欧易OKEx将正式推出DeFi系列科普视频《欧易DeFi20讲》,本系列节目由欧易OKEx亚太区CEO马克金主讲。该视频首期将于3月18日11:00(HKT)推出,用户可以在欧易OKEx官方学院、金色财经观看。

《欧易DeFi20讲》主要包含DeFi入门指南、全景解读DeFi生态及如何参与DeFi三个篇章,可以轻松使用户了解DeFi原理,洞察DeFi价值,掌握DeFi热点,更多详情请关注欧易OKEx官方学院。[2021/3/18 18:55:59]

▲调整公钥

人大附中物理老师李永乐科普拜占庭将军问题和区块链:5月14日,人大附中物理老师、科普视频网红李永乐在其公众号发布视频《拜占庭将军问题是什么?区块链如何防范恶意节点?》。李永乐老师在视频中对拜占庭将军问题和区块链进行了讲解,他表示,拜占庭将军问题本质上指的是,在分布式计算机网络中,如果存在故障和恶意节点,是否能够保持正常节点的网络一致性问题。在近40年的时间里,人们提出了许多方案解决这一问题,称为拜占庭容错法。例如兰波特自己提出了口头协议、书面协议法,后来有人提出了实用拜占庭容错PBFT算法,在2008年,中本聪发明比特币后,人们又设想了通过区块链的方法解决这一问题。区块链通过算力证明来保持账本的一致性,也就是必须计算数学题,才能得到记账的权力,其他人对这个记账结果进行验证,如果是对的,就认可你的结果。与拜占庭问题比起来,就增加了叛徒的成本。[2020/5/14]

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

动态 | 报告:区块链等热点词促使童书科普百科类成交额同比增速最高:近日,京东图书与艾瑞咨询联合发布了《2019中国图书市场报告》。报告指出,AI、5G、区块链、机器人、VR、智能家居、AR这些热点词,不断点燃科技热潮,科技在改变大众生活的同时,也吸引了越来越多家长的关注,从小培养孩子对科技的兴趣和热爱。因此童书中科普百科类成交额同比增速最高,占比将近40%。[2020/1/8]

将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交易脚本大小对数增长。

现场 | 火币中国推出数字经济及区块链产业科普新书:金色财经现场报道,12月6日,由海南省工业和信息化厅主办,南南合作金融中心协办,海南生态软件园、火币中国承办的“海南自贸港数字经济和区块链国际合作论坛”在海口举行,这是全球首次区块链部长级论坛。

在本次论坛上,火币中国举行了“数字经济及区块链产业科普系列新书发布”仪式,希望通过教材、专业教育、培训等多种方式,帮助从业者、高校、研究机构深入了解区块链,从而建立起区块链全局性知识模型,真正推动区块链应用落地。火币中国CEO袁煜明介绍,将联合机械工业出版社面向普通高等教育推出《区块链导论》、《区块链系统设计与应用》和《区块链新商业模式分析》系列教材,这是国内最早推动的区块链教材之一;火币中国还积极参与数字经济的研究,由中信出版社出版的新书《读懂Libra》已经上市;由火币中国负责编写的区块链技术科普读物《区块链技术进阶指南》将于12月面世;首本行业内最全的区块链应用案例集《区块链产业应用100例》在本次论坛进行了首次刊印。[2019/12/6]

02

动态 | 央行官微旧文重发“再科普”:范一飞详解数字货币:据中国经济网消息,今日,央行官微公众号头条重新发布央行副行长范一飞在2018年1月25日题为《关于央行数字货币的几点考虑》的文章,对央行数字货币再次进行科普。同时,微信公众号第二条发布支付司副司长穆长春8月10日在第三届中国金融四十人伊春论坛上的演讲。近年来,各主要国家和地区央行及货币当局均在对发行央行数字货币开展研究,新加坡央行和瑞典央行等已经开始进行相关试验,人民银行也在组织进行积极探索和研究。[2019/8/21]

HuffmanTree?

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

▲哈夫曼树

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

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:15ms0-4:357ms