PPT链接地址
对PPT内容理解的马马虎虎……,PCC3以及后面的POC4是纯粹的POS共识,是过渡版本,后面发展起来的叫做Casper的是Hybird Consensus(混合共识)
Ethereum的问题
1.隐私性低
2.扩展性-15tx/sec
3.成本-PoW挖矿每天会消耗$360k的电力和硬件成本
4.潜在问题-14s出块,实际上要3min确认,不是“真的”确认
其他问题:
挖矿中心化,并不是最优化的轻客户端的支持,自私挖矿的缺陷,状态转换界面不整洁(比如要求保存前256个区块的根hash)
下面解决上述问题
第一步:PoS
PoS源与2011年的Peercoin,解决了浪费电力的问题,缓和了中心化风险。
Virtual mining给人直觉上的印象
PoW:$1000->旷工->产生区块
PoS:$1000->83ETH->虚拟旷工(转化成协议) ->协议让你随机的产生区块
Casper PoC3方法
在世界状态中有一群担保的验证者,任何人可以加入验证者池通过向Casper合约发起转账Ether的交易(地址0x000...00ff),触发函数:
function deposit(bytes validation_code, bytes32 randao, address withdrawal_addr){}
如果这个函数在“epoch n”(1 epoch = 12hours)被调用,那么验证者将会在“epoch n+2”开始工作.
验证者一旦开始工作,他们将会被分配随机打包区块的权利,权利的大小依赖于他们在Casper合约存储的ether。
一个区块需要包含它的外部数据的签名。CALL_BLACKBOX(validation_code, signature)的调用结果必须是成功且非空的。Lmaport是一中生成签名的算法。
一个验证者可以调用startWithdrawal 取回存储的ether,这会在2 epochs后生效。
选择验证者
如何选择验证者?
“利益激励”:给验证者奖励金来鼓励他们完成验证者选择的计算
“旧的NXT算法”:验证者基于当前区块的签名伪随机采样,创造奖励来生成想要的签名
“旧的PoS算法”:用奖励金来鼓励发现转移一个人的coin的目标地址
“边缘成本=>边缘收益”:一些人作为打击性的论据来论证所有的共识算法都是浪费的
CAVEAT1:要求一种看似可行的机制:提高一些成本来获取差异化收益的优势
CAVEAT2:边缘成本->边缘收益并不意味着总成本=>总收益
CAVEAT3;PoS要求更低的区块奖励
解决方法:
当存储ether时,验证者需要为某个密码助记词提交sha3^1000000(x)
当创建一个区块,验证需要揭示他们hash链上的前一个的链接
Casper合约维护一个参数globalRandaom,初始化为零,并且在每个区块中显示它的异或值,这是随机验证者的随机性的来源
只有下一个区块的验证者是可知的
当被选中的验证者不在线时怎么办?不是选择一个验证者,我们选择一个序列的验证者,验证者k可以在4 + 8k秒后生成一个区块
PoW,原生PoS,Casper 共识算法的权益
PoW economics (normal case); Naive PoS economics ;Capser economics with Duncles 不理解这三页PPT的内容
Duncles = “Dark uncle” -like an uncle but it hurts you ,直译过来是像一个叔叔但是却伤害你;意思是说旷工打包了区块但是并没有成为主链的一个区块,没有得到原本打包区块可以得到的奖励。Duncles应该是叔区块的来源。
Finality终局
分叉选择,PoW选择最长链胜出,Casper 选择value-at-loss最大的区块链。
value-at-loss = 验证着在这个链上投注了多少ether = 验证者同意在除了所有除了这条链的其他链上失去多少ether
区块不仅指向前面的区块,而且对历史区块做出一定的赌注。
在低概率时开始,意味着担忧短期风险
信心和概率会随着时间增加,特别当验证者看到其他的验证者提高他们的概率
Vet-at-Loss 指数型增长,最终会毁掉“finality”终局(投注与“终局”不一致的验证者会失去他们所有的存款)
当一个区块的“finality”终局确定后,“finality cycle”(终局循环)会在新的区块重新开始。
存在快速巨额投注的限制(否则“whales”(巨大算力或巨大验证者)可以轻易的执行短期的51%攻击)
分片(sharding)
分片想要达到的目的
在链上实现每秒数以万计的交易;通过完全去中心化的点对点网络,如果有必要,什么都不执行但是会消耗便携笔记本电脑(什么意思?);因为网路中的每个节点仅仅会保存一小部分的交易/状态但是在有需要的情况下可以通过默克尔树来验证所有的交易;
分片形式
存在多重的分片,每一个都像是一个独立的区块连,但是有以下功能:共享安全(PoS);有一个共同的市场(可以转移ether和链间交叉通信);规则统一(每一个分片相同的EVM,相同的规则);即便如此,shard 0 的gas price 比 shard 57的gas price 价格更高。
采样
每一个epoch,伪随机的选择100个验证者来验证每一个分片;所有的验证者会投注所有分片的终局状态;信息源是分片验证者产生的区块头,同时也包含欺骗性的证据和捕获受到51%攻击的分片的机制
分片之间通信
状态转移函数