比特币最大的技术进展在 Taproot/Schnorr 升级,以太坊主要表现在 2.0 上线及 Layer 2 方案发展,波卡与 Filecoin 则完成了主网上线。

原文标题:《万向区块链年度回顾:乘风破浪的 2020——公链篇》
撰文:万向区块链

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 的存在,但也只需披露被执行的那部分脚本。

头部公链乘风破浪的 2020:比特币、以太坊、波卡与 Filecoin图 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 生态总览。

头部公链乘风破浪的 2020:比特币、以太坊、波卡与 Filecoin图 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 浏览器显示矿工分布在在亚洲、欧洲、北美洲、大洋洲和非洲,但从标签和披露信息上不难看出占有多数容量的参与者为中国矿工。矿工的有效算力分布上,还没有出现像比特币矿池类似的中心化局面。

头部公链乘风破浪的 2020:比特币、以太坊、波卡与 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 方案存在的种种难题,寻找三者的平衡点仍然是公链接下来的突破口。