火星链 火星链
Ctrl+D收藏火星链
首页 > 区块链 > 正文

OOT:科普 | Huffman:Taproot 的优化

作者:

时间:1900/1/1 0:00:00

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

撰文|?Daiwei

01

Taproot回顾?

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

国务院:推进科普与区块链技术深度融合:为贯彻落实党中央、国务院关于科普和科学素质建设的重要部署,依据《中华人民共和国科学技术进步法》、《中华人民共和国科学技术普及法》制定《全民科学素质行动规划纲要(2021-2035年)》,其中要求实施智慧科普建设工程。推进科普与区块链等技术深度融合,强化需求感知、用户分层、情景应用理念,推动传播方式、组织动员、运营服务等创新升级,加强“科普中国”建设,强化科普信息落地应用,与智慧教育、智慧城市、智慧社区等深度融合。(新华社)[2021/7/10 0:40:52]

▲调整公钥

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

动态 | 链客社区联合北京交通广播推出区块链技术科普节目:12月11日15:15—16:00,区块链技术社区——链客区块链技术社区将联合北京交通广播FM103.9从零开始为大众科普解码区块链技术,蜻蜓FM及北京广播网同期进行全球直播。首期做客嘉宾为链客区块链技术社区创始人郄建军和百度区块链产品负责人于雅楠。[2019/12/11]

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

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

02

HuffmanTree?

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

中科院自动化研究所将面向大中小学生开展区块链等主题的科普讲座:5月21日,新华网讯,今年,中国科学院自动化研究所将举办第十四届“自动化之光”公众科学开放日活动。届时,自动化所将面向大中小学生分别开展《脑与智能》、《区块链技术与平行智能》、《大数据时代的视觉智能》、《动画真奇妙》等4个主题报告,用实例和生动的演示深入浅出地为大家揭示智能技术的原理和奥妙。[2018/5/21]

▲哈夫曼树

哈夫曼树的构造过程是利用贪心的思想,每次选择权重最小的两个结点组合成新的节点,加入到原始集合,重复上述过程,直至结束。如上图所示,存在权重集合为(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年会上,财政部副部长朱光耀表示:“数字经济还处在发展的过程中,要以科普、推动的态度来推进数字经济发展。也要关注数字经济的其他影响,包括税收征管、反监管措施等要跟上。”[2018/3/25]

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

标签:ROOOOTROOTPROProof Of MemesRootkit FinancegROOT币Apron Network

区块链热门资讯
加密货币:调查:韩国超半数受访加密投资者收益率低于10%

据韩联社7月6日消息,韩华资管和CrossAngle对537名成年男女进行了网络调查,以了解加密货币等数字资产的投资现状.

1900/1/1 0:00:00
NKS:那个已经赚到6910个ETH的NFT早期玩家,如何看待NFT?

原标题:《早期玩家眼中的NFT》在NFT的市场上,我们看到一些早期的持有者收益很高,但大多数后期进入者难以获利。相对而言,对于多数加密用户来说,NFT市场是一个进入门槛较高的领域.

1900/1/1 0:00:00
NTS:在线支付处理商Stripe筹划上市,估值950亿美元

巴比特讯,7月9日,据海外媒体TheIrishTimes报道,在线支付处理商Stripe已经聘请律师事务所协助上市准备工作,即将在股市首次亮相。据消息人士透露,今年不太可能上市.

1900/1/1 0:00:00
LUS:美国参议员Elizabeth Warren:加密货币就像过去发行的“野猫银行债券”

据Coindesk消息,尽管CBDC在周三的参议院银行委员会听证会上引起了一些关注,但围绕比特币的问题引起了立法者团体的更多关注,其中以参议员ElizabethWarren为首.

1900/1/1 0:00:00
BLOCK:财新:国内虚拟货币面临严厉整顿,政府正全面治理乱象

6月26日,财新发表最新社论称,国内虚拟货币乱象面临空前严厉的整顿,特别是因为近日央行有关部门就为虚拟货币交易炒作提供服务问题,约谈部分银行和支付机构,这意味着不止是ICO.

1900/1/1 0:00:00
PPL:一些海外专家学者如何看待加密资产未来的?

毫无疑问,加密货币对社会产生了非常重要的影响。然而加密货币仍然面临许多挑战。对一些专家来说,加密货币未来是什么呢?随着越来越多的人了解加密货币,加密货币越来越受欢迎.

1900/1/1 0:00:00