万向区块链行业研究 | 区块链2020年度回顾之公链篇:比特币、以太坊、Polkadot和Filecoin
前言: 2020年行将结束,这一年,区块链行业让你印象最深的是什么?是公链生态的爆发式增长?还是区块链应用的蓬勃发展?亦或是政策方面的重大利好?万向区块链于2020年年末,推出四篇重磅年度回顾系列文章:《公链篇》、《应用篇》、《服务实体经济篇》和《监管篇》,记录一个乘风破浪的区块链发展之年。
下文为年度回顾系列之——公链篇,作者:万向区块链首席经济学家办公室。一起看,这一年公链的风起云涌。
2020年即将结束,虽然疫情席卷全球,但没有影响到区块链行业的进步。在这一年中,公链和生态应用均有突破,各国对区块链及加密资产的政策也逐渐完善。本文是对区块链行业这一年进展的回顾,尤其是公链方面的进展,其中重点关注比特币、以太坊、Polkadot和Filecoin这四个热度比较高的公链。
比特币
今年比特币最大的技术进展在Taproot/Schnorr升级,这是由比特币开发人员Pieter Wuille提出,作为比特币改进提案(BIPs)发布,相关提案序号为BIP 340-342,现在已经正式合入比特币代码的主分支中。这是比特币自闪电网络上线后最大的技术拓展。
(一)Schnorr升级
比特币目前使用的ECDSA签名算法与即将采用的Schnorr签名算法,都属于椭圆曲线数字签名算法,它们使用的椭圆曲线都是secp256k1和哈希函数SHA256,所以在这个层面它们具有同样的安全性。
Schnorr签名算法主要有以下优点。
第一,Schnorr签名算法有可证明安全性。在假设椭圆曲线离散对数问题难度的随机寓言(Random Oracle)模型,以及假设原像抗性(Preimage Resistance)和次原像抗性(Second Preimage Resistance)的通用群模型下,Schnorr签名算法具备选择消息攻击下的强不可伪造性(Strong Unforgeability under Chosen Message Attack,SUF-CMA)。换言之,如果不知道Schnorr签名的私钥,即使有针对任意消息的有效Schnorr签名,也没法推导出其他有效Schnorr签名。而ECDSA签名算法的可证明安全性则依赖于更强的假设。
第二,Schnorr签名算法具有不可延展性(Non-malleability)。签名延展性的含义是,第三方在不知道私钥的情况下,能将针对某一公钥和消息的有效签名,改造成针对该公钥和信息的另一个有效签名。ECDSA签名算法则有内在的可延展性,这是BIP 62和BIP 146针对的问题。
第三,Schnorr签名算法是线性的,使得多个合作方能生成对他们的公钥之和也有效的签名。这一特点对多重签名、批验证(Batch Verification)等应用非常重要,既能提高效率,也有助于保护隐私。而在ECDSA签名算法下,如无额外的见证数据,批验证相对逐个验证并无效率提升。
最后,Schnorr签名算法因为使用同样的椭圆曲线secp256k1和哈希函数SHA256,能兼容目前的比特币公私钥生成机制。
(二)Taproot升级
Taproot升级可以视为默克抽象语言树(Merkelized Abstract Syntax Tree,简称MAST)的一个应用,而MAST又与支付到脚本哈希(Pay-to-Script-Hash,简称P2SH)有关。
P2SH是2012年推出的一类新型交易,使复杂脚本的使用与直接向比特币地址支付一样简单。在P2SH中,复杂的锁定脚本被其哈希值所取代,称为兑换脚本(Redeem Script)。当随后出现的一笔交易试图花费这个UTXO时,必须包含与哈希值匹配的脚本,同时解锁脚本。
P2SH的主要优点包括:一是在交易输出中,复杂脚本由哈希值取代,使得交易代码变短。二是将构建脚本的负担转移至接收方,而非发送方。三是隐私保护性更好。理论上,除了接收方,任何其他方都可以不知道兑换脚本中包含的支出条件。比如,在多重交易中,发送方可以不知道与多重签名地址有关的公钥;只在接收方支出资金时,才披露公钥。但P2SH也存在不足:一是所有可能的支出条件最终都必须被披露,包括那些实际上没有被触发的支出条件。二是在有多个可能的支出条件时,P2SH将变得繁复,会增加计算和验证的工作量。
但P2SH与常见的支付到公钥哈希(Pay-to-Public-Key-Hash,P2PKH)在表现上不一样,仍然有隐私保护问题。Taproot解决的问题就是让P2SH和P2PKH在链上看起来一样(图1):1、对“非协作式支出”脚本,采取MAST形式;2、对“协作式支出”脚本,采取基于Schnorr签名的多重签名算法;3、将“协作式支出” 与“非协作式支出”合在一起表示成P2PKH形式;4、“协作式支出”表现得如同P2PKH交易,有一个公钥和对应的私钥,而不需要披露底层的MAST,而只有在“非协作式支出”时,才需要披露MAST的存在,但也只需披露被执行的那部分脚本。
相关推荐
最新快讯
-
贝莱德BUIDL Fund向某未知地址转移100万枚USDC2024-10-30 20:46:44
-
彭博社预计明年新会计制度将使 MicroStrategy 由亏损转为盈2024-10-30 20:39:46
-
贝莱德ETHA的以太坊持仓市值接近12亿美元2024-10-30 20:31:58
-
Starknet 跨链桥 StarkGate v2.0 Beta 版在主网上线2024-10-30 20:30:01
-
Owlto发布技术白皮书,提出以意图为中心的全链流动性解决方案2024-10-30 20:20:19
-
SUI跌破2美元2024-10-30 20:17:36
-
UNI跌破8美元2024-10-30 20:15:57