李广磊: 对区块链PoW消耗公式的分析

背景

PoW消耗现实中的算力达成区块链的共识体系,就好像需要从外界提供能量来获得一个稳定系统一样,而PoS能根据历史所产生的“权益”,使用一套算法能利用好历史中的“权益”来达成共识从而不断衍生出新的价值,使得区块链本身就能成为一个闭环,不断运行下去。

有很多不同的方式来实现权益证明的算法,但是权益证明设计的两个主要原理是基于链的PoS和基于拜占庭容错(BFT)的PoS。

“基于链的PoS”:Ouroboros

论文中的Ouroboros是一个理论:按照什么样的一个流程可以设计出一个健壮的PoS算法并给出数学上充分的证明。而Cardano中的Ouroboros是对论文的实现,工程实现上跟论文中的描述有所不同。

本质上,PoW和PoS都是一种随机选择下一个区块生产者的方式。

所以,Ouroboros的根本目的就是为了根据权益多少,随机的选出一个出块者,并且随机选择的这个过程是不可预知的。

Ouroboros运行流程

首先要对一些术语进行解释:

在Cardano的运行中,时间被分为slot每个slot只能生产一个块,若这个块有问题,或者生产这个块的“矿工”(stakeholder的候选人)不在线,或者产出的块没有广播给大多数人,那么这个slot是当作废弃的,也就是会调过这个slot的块。多个slot为一个epoch,权益的计算是以每个epoch开始前的历史来计算,也就是说在这个epoch中所产生的权益变化不影响当前这个epoch中的slot的出块者的选择和其他和历史相关的东西。当前epoch中所产生的这些历史只能在以后的epoch中生效。每个epoch的开头有个genesis block,其不会上链,而是当前这个节点(矿工)自己在内存中生成,这个genesis block会记录好当前这个epoch中的可能参与出块的stakeholder的候选人,及一个随机种子ρ。stakeholder是权益持有者,也就是潜在矿工,在Cardano的实现中权益stake并不是直接指有多少ADA(Cardano的代币),而是和有多少ADA相关联,同时要成为一个stakeholder需要有2%的ADA才行。stakeholder并不一定要参与出块,只要记录在每个epoch的genesis block中的stakeholder才能参与当前epoch中slot的出块,所以记录在每个epoch中genesis block中的stakeholder叫做“stakeholder候选人”。由这些epoch衔接而成的链就是由Ouroboros共识产生的链,这个链的基本属性和Bitcoin相同(比如每个块包含上一个块的hash等)。Slot Leader Selection是指根据权益占比选择按概率选择出当前slot的出块者。在当前epoch中,按genesis block中记录的stakeholder候选人的权益分别占用的比例为这个epoch中的每一个slot选择出块者的概率。

[图片上传失败...(image-1c939-1523805330515)]

论文中的函数表示按照权益占比为概率从st

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值