万向区块链行业研究 | 区块链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的存在,但也只需披露被执行的那部分脚本。
图1:Taproot
以太坊
可扩展性一直是困扰以太坊发展的问题,尤其是2020年DeFi应用爆发,网络拥堵导致了高昂的手续费。性能不足让以太坊很难达到“世界计算机”的要求,也影响了用户体验。扩容是以太坊网络的当务之急,2020年以太坊的进展主要集中在扩容方面,共分为两部分:一个是以太坊2.0的筹备与上线,另一个是Layer 2扩容方案的发展,其中Rollup路线最为突出。
(一)以太坊2.0的进展和路线
以太坊的发展路线中,转为PoS公链是“宁静”阶段的目标,也就是以太坊2.0。之后ETH的产出将由挖矿转为Staking,成为Staking节点需要抵押32个ETH。在最初的规划中,以太坊2.0将分为三个阶段上线,分别是Phase 0、Phase 1和Phase 2。以太坊2.0为信标链加分片的区块链多链结构,所有分片链都与信标链相连,信标链负责分片链间的通信,并为各分片链选举验证委员。Phase 0阶段会上线信标链并开启Staking,Phase 1会上线分片链,初步计划共有64个分片,但是不支持智能合约和转账,Phase 2阶段才会上线智能合约,正式完成以太坊2.0的部署。在以太坊2.0的路线图中,整个方案将在2022年完成。
以太坊2.0网络的启动条件是超过16384个验证者抵押32个ETH,也就是至少需要16384个节点参与。以太坊2.0的Phase 0阶段已于12月1日开启,目前活跃节点数为26861,未来还会增加。这些参与Staking的ETH只有在以太坊2.0的Phase 2阶段完成后才可以进行转账。以太坊2.0是以太坊长期的战略目标,不过以太坊创始人Vitalik多次发文支持rollup在以太坊中的应用。
在近期以太坊开发团队和Vitalik的公开发言中,他们承认以太坊2.0的路线已经有所变化,共包括以下几点:1、未来的路线图将以Rollup为中心,Phase 1阶段简化为可供Rollup使用的数据分片,由于最初设想的优势仍未实现,eWASM的路线不再强调;2、简化以太坊1.0和2.0阶段的合并,将以太坊1.0的交易直接存于信标链上而非作为分片存在于以太坊2.0中,这样合并的进程将会缩短;3、工作并行化处理,轻客户端、数据分片和1.0与2.0的合并这三者独立进行,只要每个部分准备好就可以实现。
从以太坊2.0这几点改变可以看出,整体都是在向更快落地使用方向发展。引入Rollup的解决方案不仅是要解决目前急迫的扩容需求,也有利于创新。以太坊2.0的原有路线没有完全被抛弃,只是不再具有最高优先级。
(二)以Rollup为中心的路线
Layer 2解决可扩展性问题的方式是将主链上的行为操作转移到链下进行,以节约主链资源,同时不影响公链本身。Layer 2主流方案有状态通道、侧链、Plasma和Rollup。但是前三者在近年来的发展中都遇到了种种瓶颈,例如中心化,用户操作复杂,不支持智能合约,退出机制复杂等。Rollup方案的实现方式是将交易数据在链下打包成一笔再传到链上,同时保证和Layer 1层一致的安全性。
对于如何实现Rollup,不同的团队给出了不同的解决方案。Optimistic Rollup和ZK Rollup是目前开发团队最多也是应用范围最广的两种。Optimistic Rollup通过欺诈证明机制,保证节点不会作恶,ZK Rollup则使用了零知识证明保证了和主网相同的安全性。这两种方案也各有利弊,Optimistic Rollup支持智能合约,但是退出期比较长,会影响资金的使用率,ZK Rollup的退出期比较短,但很难支持通用的智能合约。
目前以太坊上的很多应用都已经或将要进行不同Rollup的测试网试验,例如Curve、Synthetix和Uniswap等,也有一些已经基于Rollup方案上线的DeFi项目。
Polkadot
(一)技术与治理进展
2020年8月份Polkadot上线了DOT转账功能,标志着主网上线阶段正式完成。Polkadot是一种异构的多链架构,采用中继链加平行链的形式进行跨链,让链与链之间进行交互并提高可扩展性,这其中Substrate框架扮演了很重要的角色。Substrate可以理解为通用的集合各种功能的模板,开发者可以选择调用不同的模块(pallet)以节约开发时间。目前Substrate上线了2.0版本,增加了70多个pallet和链下工作机功能。
Kusama测试网在Polkadot主网上线之后仍然存在,充当先行网络的角色, Kusama的代币KSM也保留了下来,功能和DOT类似。具有风险的功能在上线主网之前,会在Kusama网络上运行反馈,例如即将上线的平行链卡槽拍卖,会先上线Kusama进行实际测试之后才会在Polkadot上启动。Rococo则是专为测试平行链而推出的测试网,目前已经上线了平行链V1.0版本,意味着距离主网平行链上线又近了一步。
在治理上,Polkadot的链上治理已经开启,但是大户权力大和公众投票率低的问题仍然存在。Polkadot的理事会由投票选出,此投票与公投和Staking不冲突,也就是大户可以选举出符合自己意愿的理事会成员,再用自己手中的DOT参与公投。虽然这种方式可以让治理结果表达最大利益相关者的意愿,但会引起治理的中心化问题。此外,在公投投票中,DOT持有者的投票率很低。在Polkadot中,Staking与治理投票互不影响,目前Staking的质押率在70%左右,但公投的投票率却在个位数左右。投票率低会影响治理的分布式程度,也无法真实地反映所有人的意愿。这可能由于投票的重复操作太复杂,也可能由于用户对提案内容不了解,无法做出选择。
(二)生态进展
虽然Polkadot主网的功能还未完善,但生态中已经涌现了许多应用。根据PolkaProject统计,与Polkadot相关的项目已经达到了近300个,包括基于Substrate开发的项目、工具、论坛、钱包等。下图2是PolkaProject总结的Polkadot生态总览。
图 2:Polkadot生态总览(图片来源:PolkaProject.com)
Polkadot的生态应用主要集中在DeFi,这也是目前全行业最热门的领域,其他的有数据、隐私和资产桥类。相对于其他公链平台,Polkadot几乎没有关于游戏、预测和社交类的应用,这与Polkadot刚上线有关,也因为有些应用在其他公链上已经证伪或是跨链意义不大。在DeFi领域,流动性释放和DEX是最热门的板块,Polkadot中的DOT锁定流动性有多种方式,包括Staking、治理和卡槽拍卖(治理和其他功能的锁定不冲突),所以存在释放流动性的需求,DEX则是在链上进行价值交换必备的应用。
目前Polkadot的生态应用几乎全部都需要基于平行链开展业务,没有上线主网的应用还需要Polkadot中继链上的验证人保证安全,所以这些项目都要参与平行链的卡槽拍卖。
Polkadot的网络资源是有限的,目前最多支持100条平行链,想要使用平行链则需要项目方租用平行链卡槽。卡槽由Polkadot官方依次放出,每隔一段时间开放一个,时间间隔不固定。租用卡槽需要锁定DOT,等待租期结束后释放。租赁锁定的DOT会在租赁期结束后返还,所以租赁成本只是DOT的机会成本。Polkadot允许其他人为项目方存入DOT,帮助项目方在拍卖中胜出,这就需要项目方设置有效的激励方式吸引DOT持有者。
一般来说,项目方会将自己的token奖励给帮助其进行平行链拍卖的用户,这也叫做平行链释放发行(Parachain Lease Offering,PLO)。同样对于用户来说,参与PLO的成本为锁定DOT的机会成本。目前DOT的场景有Staking、治理、交易和平行链租赁,未来还会有一些应用场景。对于DOT的长期持有者来说,如果项目方给与token的价值要高于参与staking(目前在10%以上)或者某些DeFi的收益,会是比较有利的。
在官方信息中,最初的平行链除了以拍卖的方式分发之外,Web3也会赞助一些公益链,包括含有基础设施或者转接桥的链。例如与智能合约相关的平行链,在卡槽使用上可能直接得到Web3的帮助。如果没有成功拿到卡槽,还有几种方案可以参与跨链,使用平行线程和部署到其他已经拿到卡槽的平行链上,如果已经拥有自己的主网,还可以通过跨链桥转接到Polkadot上。
(三)Polkadot生态中的问题
平行链的卡槽将采用租赁的方式,意味着绝大多数Polkadot项目都要付出成本(抵押DOT)换取Polkadot上的跨链资源,所以借助Polkadot中继链安全性进行平行链发行的门槛提高了很多。对于大部分项目来说,只有能够支付得起租赁跨链资源成本的项目方才可以借助Polkadot的安全性,否则要自行部署节点,这会增加早期项目的启动难度。目前项目方采用的PLO解决方案会存在可持续性的问题,如果Token分发完毕后,则必须采用其他方式吸引用户协助拍卖,项目方Token在平行链上线后的价值捕获能力也存在风险。在平行链插槽拍卖竞争激烈的情况下,项目方必须在上线前进行大面积宣传活动,冷启动在Polkadot生态中将很难存在。如果未来竞争激烈的话,出于对跨链资源的争夺,项目在上线前就会出现“优胜劣汰”的局面。
不过在Polkadot上存在有其他的跨链方案,例如平行线程或者集成到其他拥有平行链卡槽的项目中,也可以选择在Kusama网络发行来降低成本。目前平行链和平行线程的可用程度的区别,以其他方式跨链对团队的负担还需要在上线后持续观察。
Polkadot和测试网的Kusama功能差别不大,所以追求不同稳定性的团队会有不同选择,但是会造成用户和社区分散的情况。虽然两者在技术升级时不会产生分叉,但在最开始两个社区就分隔开来,这在隐形中造成了社区的分裂。
Polkadot的目标为平台的平台,公链之间的跨链是其解决的问题之一。对于公链来说,默认的跨链问题只存在于主流公链之间,目前的解决方案不断出现,Polkadot如何在众多跨链解决方案中胜出是有待观察的。Polkadot还有提高单链性能的优势,现在同样存在多种提高性能的方案,例如layer 2网络,Polkadot发挥的作用也需要时间考验。
Polkadot在企业平台与公链、企业平台与企业平台之间跨链的想象空间比较大,但是跨链的成本与意义也需要进一步考察,目前联盟链与公链之间的连通需求并不急迫。
Filecoin
Filecoin为分布式存储IPFS提供了激励机制,核心成员也包括了IPFS成员,两者均由Protocol Lab创建,一经推出便引起了全世界的关注。在2017年就以10%的份额获得了2.57亿美元的融资,创下了当时的最高纪录。上线的进程却远没有融资这么顺利,本计划2018年上线的测试网和主网一拖再拖,最终于2020年10份正式上线。虽然Filecoin项目已经推迟了两年的时间,但相关的社区热度依旧存在,尤其是矿工社区。
(一)目前进展
在Filecoin共识中,出块采用预期共识(EC)的模式,指的是每一轮选举一名或者多名矿工来创建新的区块,矿工赢得选举的可能性跟矿工当前的存储能力成正比。矿工的存储能力则是利用时空证明(PoSt)及复制证明(PoRep)来证明。时空证明可以利用证明链及时间戳证明矿工在一定时长内存储数据,即使验证者不在线,也能够在未来去验证矿工在该段时间内生成了证明链,有效防止临时生成数据攻击。复制证明可以证明数据已经在一个特定的扇区创建成功。并且防范三种攻击: 一是女巫攻击; 二是外部数据源攻击; 三是生成攻击。复制证明避免让矿工可以透过不同方法让自身存储数据小于承诺存储数据,以获得额外报酬。
矿工的奖励将线性释放,每6年产量减半。目前Filecoin的存储容量已经突破1 EiB(Exbibyte),现在达到了1.27EiB,活跃矿工的数量为789。虽然在Filecoin浏览器显示矿工分布在在亚洲、欧洲、北美洲、大洋洲和非洲,但从标签和披露信息上不难看出占有多数容量的参与者为中国矿工。矿工的有效算力分布上,还没有出现像比特币矿池类似的中心化局面。
图 3:矿工有效算力分布(图片来源:filfox.info)
(二)经济机制及现状
在Filecoin经济模型中存在两方市场:存储及检索市场,两个市场中分别存在客户及矿工。除了上述两个角色外,Filecoin经济模型生态中有开发者及投资者。
在储存市场中,矿工可以通过三个方式获得奖励: 一是交易费;二是区块奖励;三是网络交易加速费(Networking Message Transaction Fees)。交易费及网络交易加速费为客户事前支付,区块奖励为系统所生成。Filecoin与比特币网络不同的地方主要在于提供服务性质差异:存储是长时间的服务,Filecoin需要矿工长时间维持网络的稳定,而非像比特币网络一样,矿工可以自由进出。储存市场中还引入了质押机制,这是一个矿工惩罚机制,目的是保障Filecoin存储市场客户的数据不被丢失。
每一笔用户与矿工的存储协议中,存储市场矿工会将客户提供的数据存放于网络中,称为扇区(Sector)。每个矿工添加的扇区会包含存储文件内容及承诺存储时长,确保客户在约定存储时长中,可以自由运用自身存储的数据。当矿工添加一个扇区至Filecoin网络时,矿工需要质押一笔锁定资金。锁定资金由两个部分组成: 矿工自身的FIL代币以及部分区块奖励。如果矿工在承诺的存储时长中离线,他会损失一部分的锁定资金。如果矿工完全停止存储行为,他可能将失去所有锁定代币。锁定资金会在矿工履行存储协议后解锁,矿工可以在短暂的锁定期后收回所有资金。
这就意味着矿工需要质押FIL以获得区块奖励,但FIL代币为线性逐步释放。目前有效算力的增长过快,加之上线初期FIL价格过高且波动较大,线性释放时间周期长,许多矿工不愿意在高位自掏腰包购买抵押所需要的FIL,所以在上线初期引起了矿工“罢工”的事件,许多存储容量由于没有足够的FIL而无法进入Filecoin网络,但这与矿机被超卖有很大关系。矿工没有治理渠道所以选择与项目方对峙,最后的结果为项目方妥协,将挖矿的奖励由180天线性释放改为了以及释放25%,剩余75%再线性释放。除此之外,为了解决FIL的短缺问题,官方和市场中的相关服务商都在筹备或已经上线了FIL借贷服务。
(三)未来发展
由于Filecoin的复杂程度高而且是公司化集中决策引起了众多矿工不满,所以像其他公链项目一样,目前已经上线了分叉项目,例如Filecash,FileStar等。
目前很容易看出现在Filecoin目前挖矿市场热度较高,FIL的价格也与之相关。但在最初的设计中,FIL的供需和价格是靠市场服务调节的。矿工需要质押FIL以获得区块奖励,且FIL代币为线性逐步释放,因此预期供给端缓慢增长而增长率指数递减。需求端则因为服务需求逐步增长,决定了市场各参与方必须持续购买FIL。由于要维持服务价格的稳定性,无论FIL上涨或下跌,存储及检索交易费的价格需锚定法币或稳定币。当FIL价格上涨时,客户会支付较少FIL单位的交易费及网络加速费,矿工区块奖励占收益比例上升。当FIL价格下跌时,客户会支付较高FIL单位的交易费及网络加速费,矿工区块奖励占收益比例下降。假设只考虑服务需求因素,FIL价格上涨时,客户在二级市场购买FIL的速率会趋缓,FIL价格下跌时,客户在二级市场购买FIL的速率会上升,达到调节二级市场的功能。
但目前矿工数量远远大于使用者数量,储存容量的供给大于需求,这一平衡就被打破。比特币的PoW矿工的加入与否是由利润决定的,所以随着币价的上升越来越多的矿工和算力加入到比特币网络中,是一个循序渐进的过程。然而Filecoin在上线前就已经有大量矿机生产和销售,如果矿机无法进入网络进行挖矿就难以维持现金流,如果挖矿收益不理想也会影响矿机厂商的利益,目前Filecoin网络的存储市场已经不止由客户与矿工参与。未来Filecoin中的市场机制能够发挥作用,是否存在真实用户使用还需要继续观察。Filecoin存储的抗审查性是否会制约其在全球市场的发展也是需要观察的。
思考与总结
目前来看,除了Filecoin涉及到存储,现在公链项目大多采用以PoS基础的共识机制,他们的不同点在于PoS的具体实现方法、治理机制和经济模型等,未来以太坊也将采用PoS共识。虽然公链没有应用场景的限制,而链上应用趋同意味着他们处于竞争的关系。未来应用在以太坊2.0阶段的迁移和Polkadot生态应用的发展是公链领域接下来的热点。
对于公链本身而言,性能和安全、去中心化三者如何平衡还是其面临的问题,例如以太坊的Rollup方案和以太坊2.0方案存在的种种难题,寻找三者的平衡点仍然是公链接下来的突破口。