-
一文读懂CasperLabs:智能合约平台的突围之路
Coinsuper官方 / 2020-04-16 10:03 发布
有消息称,4月底CasperLabs将在Coinsuper开启认购,作为智能合约领域近期备受关注的项目,我们今天就来盘点该项目的具体情况。
常有人问,当前的智能合约平台(如以太坊)虽然不错,但整体来说,智能合约平台的扩展性限制了它的大规模采用,如果是这样,新的智能合约平台是否有机会?这是个好的问题。
一方面,以太坊和EOS等先发者已经具有了一定的开发者生态,还有不错的应用场景探索。例如以太坊的DeFi和EOS的游戏和社交,尤其是以太坊DeFi锁定超过10亿美元的资产,在这方面的探索如火如茶。但另一方面,整个加密应用的用户规模还很小。基于以太坊的dApp的日活用户当前不到2万,其他用户数相对较多的平台如EOS,也没能超越这一级别。从目前看,所有智能合约平台,还没有出现突破百万活跃用户的dApp,如果那一天到来,将会是整个加密领域的真正里程碑时刻。
谁能率先实现百万活跃用户的dApp,谁就能在加密领域占据领先位置。如果说,这是加密世界的网景时刻,那么要抵达这一个时刻,需要两个方面的条件。一是dApp场景的继续挖掘,以寻求产品和市场的契合度,这方面当前的以太坊和EOS等公链一直在努力,试图找到能够引爆主流人群需求的场景和应用。二是需要真正去中心化的且是可扩展的区块链。只有满足安全和可扩展性两方面的条件,智能合约平台才能既有独特价值,也能承载主流人群规模的应用。
所以,在接下来的几年时间,加密领域最重要的命题之一依然是:如何实现安全和可扩展性兼具的智能合约平台?
虽然以太坊和EOS等公链是先行者,但不妨碍其他公链的探索和努力,这其中包括Tezos、Nervos、Solana、Polkadot、Harmony等平台从不同的技术路线和场景方向进行探索。虽然先行者已经取得了领先,不过,如果我们把视野再放大,就会发现,今天的市场规模还很小,用户数还很少。在这样的情况下,很难说已经是市场的终局。如果从技术发展和商业发展角度看,今天依然处于早期的拓荒阶段。在这一阶段,有先行者,有领先者,不过,其他后发者并非没有机会。至于什么时候格局确定?这个可能需要三年,也可能需要五年。中间什么时候杀出程咬金?谁也不知道。但可以肯定的是,今天的格局肯定不是终局。
智能合约平台CasperLabs,就是一个颇具潜力的新来者。为了方便大家记忆,CasperLabs以下简称为Casper。跟其他公链一样,它也有自己的大梦想,它想成为受开发者欢迎的平台,为大规模用户提供去中心化服务的平台,据悉,该项目近期将在Coinsuper交易所开启。那么,它又有什么不同,靠什么安身立命?
Casper如何安身立命:Highway协议
首先,Casper是一个智能合约平台,跟其他智能合约平台一样,为开发者提供运行协议和应用的基础设施。而另外一方面,它强调的不是单纯的高tps,而是要安全和可扩展性兼得。
目前已经有了这么多智能合约平台,Casper如何安身立命?有什么杀手锏?它最核心的技术选择是基于CBC Casper PoS的共识算法,并在此基础上扩展出Highway共识协议。
Casper之所以声称自己可以真正兼顾安全和可扩展性,很大程度上源于其技术路线的选择。而这个技术路线的核心之一就是CBC Casper PoS。CBC 英文为“correct-by-construction”,大意是按照构建逐步校正的意思,它是一种验证架构正确性的流程,通过构建数学模型推演,确保最终的正确交付。CBC Casper是“correct-by-construction”共识协议系列,这些共识协议共享相同的异步证明以及拜占庭容错。这一系列协议通过定义其协议状态和协议状态转移来描述。
Casper的计算模型支持检测何时可以并行合约的执行,且区块消息格式允许在链中“合并”分叉,可以避免不必要的孤块。CBC Casper PoS跟以太坊的Casper-FFG不同,以太坊需要考虑从PoW向PoS的过渡,而是CBC Casper是纯粹的PoS机制,不包含任何PoW,只有提议区块和实现区块最终性的验证者才能获得奖励。
Casper的Highway共识协议是基于CBC Casper PoS的扩展。Highway共识协议是Daniel Kane、Vlad Zamfir以及Andreas Fackler三人的研究成果。其中,Vlad Zamfir是以太坊知名的核心研究人员。
Highway共识协议最与众不同的地方在于:兼具安全和活性。它跟PoW不同(完全同步的协议),Highway是部分同步的协议,可以实现更高频次的出块,换言之,具有更好的吞吐量和可扩展性。
什么是兼具安全和活性?安全就是说Highway共识协议的决定不会前后矛盾,活性则是说共识协议的节点会永远保持做决策,区块不断增长。
总结来说,Highway协议对CBC Casper进行了两个方面的扩展:一是,通过高效方法实现对不同阀值下安全性的检测;二是,提出在CBC Casper框架下的活性策略,也就是针对网络参与者何时创建协议消息所制定的策略规范。
简单来说,Casper的Highway协议如何运作?
1.summit结构
Highway协议为实现最终性,它提供了一种全新的summit(峰顶)结构。与此同时,为了实现活性,它使用伪随机生成的领导者序列限制消息的生成来实现,这导致产生blockdag的可预测结构。
Casper的共识协议采用的是blockdag的数据结构,如下图:
在上图中,消息被放置到相关的“泳道”上,也可以看到每个“泳道”上消息的创建者。由于创世区块是区块链初始化产生的,它位于“泳道”之外。每个普通区块都指向其主要父块,上图用红色箭头表示。这些区块形成了树结构,称为主树。任何普通区块都可以指向任意数量的区块作为次级父块,如上图中蓝色箭头所表示的。区块+红色箭头+蓝色箭头一起形成有向无环图,也就是Casper协议中的p-dag。所有的箭头和所有的顶点一起形成有向无环图,这就是Casper中所谓的j-dag。
Summit(峰顶)是指j-dag中某个共识值已经确定最终性的情况。为什么会有这个概念?因为它有很多层,不同层代表不同的共识程度,最后的Summit意味着在某个范围内所有节点都达成共识,也就是最高点,形成了峰顶。在这个最高的层面上,具有最大程度的共识。反过来理解,这也说明Highway是具有安全阀值的。每个轮次都有领导者,首先由领导者发送消息给每个人。其他验证者在收到领导者消息后立即发送消息给其他人。在经过一些轮次后,每个验证者都会再次向所有人发送消息。这样,第一条消息确认的投票成为level-0的消息,第二条确认足够数量的第一条消息,形成level-1消息,由此类推形成summit(峰顶)。一旦验证者在其本地协议状态达到峰顶水平,他们知道最终每个诚实验证者将会看到所有状态。
下图是最终性的示意图,可以帮助我们理解summit(峰顶)。
上图左侧的矩形代表验证者,圆点代表消息。它展示了验证者0的本地j-dag,对应于j-daglevel的排列(消息的X坐标对应于j-daglevel)。“泳道”上显示消息的Y坐标与创建者相同。圆点颜色则代表此消息正在投票支持的共识值。在诚实验证者的“泳道”内,0-level消息是从上一次该验证者投票赞成的共识值改变以来的所有消息。消息的第一层投票支持同一个区块,其他层会引用第一层的消息及其哈希,参与“峰顶”的验证者越多,层次越多,这些消息投票的区块就越安全。
2.有弹性的轮次时长
跟大多数的PoS机制一样,Casper也会将时间划分为轮次。每个轮次,首先有一个伪随机选择的领导者生成消息,其他人等待领头人的消息,收到该消息之后,才生成自己的消息。在这一轮次快结束时,每个人都会再发送一条消息。也就是说,验证者为该区块发送了两次验证消息。每个轮次的时长并不固定,不是所有验证者都采用相同的轮次时长。
为实现活性,Highway协议采用非固定轮次时长的机制。它用“高速公路”作为比喻,这也是协议名称Highway的来源。Highway类似于“数字高速公路”,它有很多车道,每条车道的汽车速度恒定。不同车道的汽车相互之间会发送消息。消息在不同车辆间传递的速度不同,协议达成共识的程度也不同。
在任何给定的车道n中,车在1米距离进行2n频次的跳跃,信息在不同车道的汽车间的传递是动态进行的。由于跳跃频次不同,消息传递频次也不同。例如,如果消息传到左侧的车道,频次将加倍,传到右侧车道则频次将减半。这样,每次跳跃时,都可以遇到左侧车道的汽车,而右侧则需要两次跳跃才会遇到。通过这样的方式,可以保证一定的安全性,同时也可以提高达成共识的速度。
要理解Highway的有弹性的轮次时长,需要理解时间“滴答”、生成区块的领导者以及轮次的概念。在Highway共识协议中,时间划分为“滴答”,每个“滴答”相当于一毫秒。领导者从当前验证者中选出,基于领导者的系统,需要有轮次,这也是基于安全的考虑,生成区块的领导者是无法固定的。因此,不同轮次会有不同的领导者。
在这种情况下,多数PoS链采用的是固定轮次时长的方法。而Highway协议与众不同的是其可调整的轮次时长。每个验证者选择轮次指数值。随着时间的推移,将会自动调整轮次指数值(round exponent),以实现最优性能。
举个例子,假设轮次指数值为n,验证者用于操作的轮次时长为2^n“滴答”。具有相同轮次指数n的所有验证者都有相同的轮次时间表。不过,如果轮次指数n不同,验证者在轮次时长上也不同。
假设A使用的轮次指数为n,B使用的轮次指数为m,其中n为5,m为7。这意味着,A的轮次时长是32个时间“滴答”(2^5),而B的轮次时长为128个时间“滴答”(2^7)。这意味着,A的轮次时长只持续32毫秒,而B的轮次时长持续128毫秒。也就是说,A的速度要快于B,因此,A可以参与B了解的所有轮次,而B只能了解A知道的部分轮次。通过调整轮次指数可以增加或减少轮次时长,以实现最佳性能。
此外,Highway协议还提出一个“era”(时代)的概念,era时长也用区块链的时间“滴答”来表示,例如一周(604800000个滴答),其主要目的是在更长的一段时间内(如一周)保持验证者权重的相对恒定,由此实现所有验证者都可以同意的伪随机领导者序列,同时防止攻击者对领导者选择进行攻击。
Highway协议跟传统的BFT协议不同,一般来说,拜占庭容错协议主要在交易顺序上达成共识,而Highway协议仅就区块的有效性和区块的权重达成共识,对区块投票的验证者越多权重越大。在这种情况下,系统可以处理同时发生的事件,因为交易顺序不重要。Highway也支持区块合并,在合并过程中也可以检测是否有冲突的交易。
之所以可以实现这些,Highway协议有两个核心的设计选择:
*没有只发给特定节点的目标消息,所有消息最终会发送给所有人,且可以验证较早的消息。所有节点看到的都是相同的,这算是不断增长的消息图,有点类似于哈希图。
*决策方式简单:投票。通过在消息图中执行防止僵持状态的特定结构,可确保网络的活性。
在这里,消息被视为是对共识值的投票,且验证者遵循多个明确的验证者最新投票。
总结来说,Highway协议的如下特性值得关注:
无须许可性,任何人都可以安装所要求的软件并作为新验证者加入网络(在平台执行绑定交易以后,并在绑定拍卖中赢得其中的slot)。
有弹性:可自动调整轮次时长,以使网络的整体性能达到最佳。
部分同步:区块领导者无需收到已产生的所有消息即可生成区块,未收到的区块交易记录可在下游进行协调。
广播消息:协议假定能将任何消息广播到区块链网络中的所有其他验证者,可以处理消息的延迟,而无需直接的点对点通信。
可证明的最终性:协议提供“最终性检测器”的形式化计算,它可以发现由总权益大比重支持的交易。当验证者使用其“最终性检测器”,发现一些交易具有最终性,那么其他的验证者也会将其视为具有最终性的交易。
可证明的活性:由于恶意验证者的总权益不超过1/3,网络将持续产生具有最终性的区块,且共识的收敛不会停止下来。
·
总言之,Highway的特色是安全和活性兼备。它区块的创建是围绕伪随机生成的领导者序列进行的,领导者负责区块的产生。同时,它还采用可变的轮次时长机制,这让Casper具备弹性,可自我调整网络,以获得最佳性能。
Casper的开发者友好的整体策略
对任何智能合约平台来说,最终的价值来源于使用它的用户数量和频次。而要吸引用户进来,首先需要有dApp开发者构建出符合用户需求的产品和服务。
这对于Casper来说也一样,除了其技术路线的选择之外,Casper最核心的策略之一就是其对开发者友好的整体策略。策略讲究聚焦和取舍。这一点从Casper的Slogan也可以看出,它的Slogan是“筑梦者的区块链”。换句话说,Casper试图成为开发者构建各种美好产品和服务的坚实平台。从其目前的技术基础和运营方面看,Casper的开发者友好的整体策略值得关注。
1.业务开销可预测
在区块链上进行交易需要成本,用户的操作会产生费用。在Casper上,被选中的验证者需要从交易池中收集交易,并按照一定的次序执行,最后发布到新区块上。而用户提交的费用会按比例分配给所有验证者。
在Casper上,为了让dApp的体验更好,它试图要达成业务开销可预测。不受监管的费用市场会导致交易费用的高度波动。在2017年加密猫时代,以太坊的转账费用曾经高得吓人。Casper协议内置的gas价格下限设置足够高,可以减轻这种波动性。可以防止gas跌至某个特定价格下,让价格在某个值上自由浮动。
Casper的代币CLX代币可用来支付gas费用,而CLX代币价值是波动的,由此Casper设定了价格下限,虽然消耗的是CLX,但设置的值是法币值,其基准是单个CLX账户之间的转账费用花费0.05美元。为了实现这一点,Casper使用去中心化预言机来提供价格数据。
实现业务开销的可预测,有利于dApp开发者构建自己的商业模式,例如由dApp开发者负担用户的交易费用,而dApp通过其他方式向用户收取费用。由于交易费用的相对可预测,这样对于构建可持续的商业模式,并实现更好的用户体验都有直接帮助。
2.绝大多数开发者无须培训即可编写Casper区块链应用
对于智能合约平台来说,降低开发者进入的门槛非常重要。这也是Casper的重要竞争策略。首先它支持Rust作为Casper智能合约的主要编程语言,用于智能合约的Rust开发套件包括了测试环境、合约运行环境等。
此外,Casper对wasm有很好的支持。平台也支持其他编程语言进行智能合约的开发。这样对于开发者来说,无需太多的学习成本,用自己熟悉的语言即可开发dApp。
3.开发者所需的各种功能
除了开发门槛的降低,还有一些功能也可以帮助开发者更好的构建。例如它的GraphQL接口、账户结构、无限多重签名、可定制支付方式、可读性好的账户名等。
Casper内置GraphQL接口,可用于状态查询,方便开发者随时了解合约的内部状态,降低开发和运营dApp的门槛。
Casper的账户结构比较灵活,有多级账户结构,可以从子账户中收回丢失资金。它支持开发者所需的各类授权,其中包括针对丢失密钥恢复的账户权限模型,在账户和合约之间安全共享状态的权限模式等。
加权的密钥功能和阀值,可以实现无限多重签名功能。
Casper支持开发者制定交易的支付方式。普通区块链通常采用“发送人付费”模式,而Casper的开发者可设置支持接收人付费的模式。
Casper用户名是可读性好的账户名,方便构建应用,也有更好的用户体验。
Casper节点内置了遥测和监视功能,可以方便节点运营者和验证者测试系统性能。
4.可升级的基础设施
Casper区块链支持将合约存储在不可变的地址中,支持合约版本控制和升级。这对于开发者来说是很有用,因为合约更新几乎是必不可免的。同时,Casper还在设计协议和虚拟机,以实现对并发执行、侧链、分片的支持。
从Casper的整体来看,跟其他项目相比,以上的两点有其独特之处。虽然Casper很关心可扩展性,但它同样重视安全性和去中心化,这是它实现可扩展性的前提。Casper的Highway协议是实现这一目标的关键,通过“summit”和blockdag结构、伪随机领导者序列(pseudorandom leader sequence)、弹性的轮次时长等多种设计,实现了安全性和活性。
为了构建生态,Casper的开发者友好的整体策略也让人印象深刻。它在降低开发者门槛,丰富开发者工具方面、设施可升级等方面都下了不少功夫。
那么,在众多的智能合约平台中,Casper有没有机会脱颖而出?现在还无法下定论,但由于它在共识机制设计上的特色和对开发者友好的策略,它的探索值得持续关注。4月底,Casperlabs在Coinsuper交易所开启认购,也可以通过认购情况关注该项目的市场关注程度。