Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions task_list/task_20180705/初链黄皮书解读_梦里南轲
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
https://www.jianshu.com/p/f189e912b146

区块链是一个共享的环境,在这个环境里运行着多种共识机制,这个环境下可以让所有节点自由的加入或者退出。
我们需要在现实世界找到一个通用的公链系统,在非常庞大的用户群体上托管各种类型的应用程序。

一.诉求
1.安全性
2.高吞吐量
3.公平性

二.初链的实现
1.初链提供了一种绝佳的实现方案。它将BFT与POW结合,使这两个方面的优点结合起来。
拜占庭容错协议(BFT):只要系统中每次都不能超过三分之⼀的参与者是有意或⽆意的恶意节点,那么BFT共识协议就能够确保该系统的安全性。
POW(⼯作量证明)共识:PoW协议选择BFT委员会成员的依据是csize(挖出的区块数量)和节点权益的结合。

2.选举周期与混合选举委员会
水果链(慢链)的选举机制:初链针对委员会选举的算法进行了改进,BFT委员会成员在⼀段特定的时间后进⾏换届(以慢链作为逻辑时钟)。新的委员
会是由慢链内部产⽣最新csize区块的矿⼯组成的。虽然仍然保持在固定时间点强制切换委员会的设计,但是频率降低了,如设置每K天进行一次委员会换届。如果委员会有不当行为被慢链发现时,不用等到第K天,第二天就会触发委员会强制换届。
选举的大致流程:
1).获取选举候选人名单
2).遍历选举人,确定是否有意愿参与选举
3).添加选举候选人
4).记录总难度值
5).计算各候选人的挖矿难度在256位数值里的区间分布
6).从候选人名单中选出最终的委员会成员,加入拜占庭共识委员会

3.保证去中心化的时间交易——时间戳
公平交易是按照时间顺序有序进行的,这个排序需要被保护,而在高吞吐量的情况下很容易发生交易重排序。因此,初链尝试引进了时间戳,保证交易按照时间顺序进行。即⽤⼀个启发式参数T∆提出交易时,我们要求客户端把⼀个物理时间戳Tp放
⼊交易的元数据中,这个物理时间戳连同其他部分的交易被签名。稍后,当BFT委员会中的成
员验证交易时,它将执⾏如下的额外检查。

4.时间分片的主从模式
在混合共识中,DailyBFT委员会被索引为⼀个决定序列DailyBFT[1…R]。每个DailyBFT都是⼀个普通的分⽚,除此有⼀个由csize节点组成的主分⽚Sp,确定正常分⽚输出的顺序,并在分布式交易处理系统中实现协调。

5.初链虚拟机
初链为慢链复⽤EVM规范,并在下一个版本中为TVM添加⼀个新的规范,通过使⽤kecak -256哈希算法和椭圆曲线
加密技术(ECC)派⽣出基于堆栈的架构。
这个架构整合合EVM和类似EVM字节码执⾏引擎来运⾏智能合约,并使⽤⼀个虚
拟机来处理POW共识,另外⼀个虚拟机处理PBFT共识,都集成在全节点中,因此它们可以
处理按需调⽤。

6.激励设计
水果链结构描述:
Block
Fruit 和 Fruit set
chain
慢链区块在“初链”中包含“水果(Fruit)”的概念,而水果也是通过慢链区块来表示的。

水果链的优点:抵御1/3−ε腐败(inhashpower)随机⼩常数ε,以获得最优的适应性。我们都知道,传统的挖矿过程,需要强大的计算资源,包括投入大量的挖矿设备、 电力和带宽。而水果链将PBFT产生的大区块分成若干水果,作为其轻节点设计理念,可以让普通参与者使用普通的计算机,甚至于使用手机就能实现挖矿。“初链”提出“水果”的方式就是为了降低形成矿池的动力,从最初的“中本聪链”转变为目前的“水果链”。

公平性:水果比区块更容易挖到,矿工加入或者创建矿池的积极性降低,使得Pow成为一个更公平的进程。
高并发:水果以任意顺序开采,挖矿可以高度并行。

区块奖励:
矿工挖出的慢链区块的奖励分配是通过拜占庭委员会生成快链区块时进行检测和触发的。在触发了慢链区块的奖励分发操作时,本次对应生成的快链区块将会记录这个慢链区块的区块哈希值和区块号。