权威证明共识¶
该章节描述权威证明共识及其在 GAChain 平台中的实现。
什么是权威证明共识¶
在区块链平台中,现有的共识机制可以分为免许可区块链(比特币,以太坊)和许可区块链(以太坊私链)。
但是 GAChain 是介于这两者之间的一种新型的共识机制,即主节点采用的是经由投票机制的“许可区块链共识”,而链上生态及其子节点采用“免许可区块链共识”,但总得来说,政务链GAChain属于许可区块链。
在区块链中,所有节点都经过预先验证。使用这种共识机制的优点除了其他优势外,还能提高交易率。这种共识机制之一就是权威证明Proof-Of-Authority(PoA)
权威证明Proof-of-Authority (PoA) 是一种新的共识算法,可提供高性能和容错性。在PoA中,生成新区块的权利被授予已经证明有权产生区块的节点,这样的节点必须通过初步验证。
PoA共识优势¶
与工作量证明Proof-of-Work(PoW)和权益证明Proof-of-Stake(PoS)共识机制相比,PoA具有以下几点优势:
- 不需要高性能硬件,与PoW共识相比,PoA共识不要求节点花费计算资源来解决复杂的数学逻辑;
- 生成新区块的时间间隔可预测,对于PoW和PoS共识,这个时间会有所不同;
- 高交易率,授权的网络节点按指定的时间间隔按顺序生成块,这提高了交易验证的速度;
- 容忍被攻击和恶意节点,只要51%的节点不受攻击。GAChain 实现了节点的禁止和撤销区块生成权的机制。
PoA共识常见攻击手段¶
拒绝服务攻击¶
攻击者向目标网络节点发送大量交易和区块,试图中断节点活动使其不可用。
PoA机制可以抵御这种攻击:
- 由于网络节点已预先通过身份验证,因此只能为可承受DoS攻击的节点授予区块生成权限;
- 如果某个验证节点在一段时间内不可用,则可以将其从验证节点列表中排除。
51%攻击¶
在PoA共识中,51%的攻击要求攻击者获得对51%的网络节点的控制权。这与攻击者需要获得51%的网络计算能力的Proof-of-Work共识的51%攻击不同。获得许可区块链网络中的节点的控制权比获得计算能力要困难得多。
例如,在PoW共识网络中,攻击者可以增加受控网络段的计算能力(性能),从而增加受控百分比。这对于PoA共识没有意义,因为节点的计算能力对区块链网络决策没有影响。
GAChain 实现PoA共识¶
领导节点¶
以下公式确定当前 领导节点(leader node),即必须在当前时间生成新区块的节点。
leader = ((time - first) / step) % nodes
-
leader
当前领导节点。
-
time
当前时间(UNIX)。
-
first
创始区块生成时间 (UNIX)。
-
step
区块生成间隔中的秒数。
-
nodes
节点总数量。
生成新区块¶
新区块由当前时间间隔的 领导节点 生成。在每个时间间隔,领导节点从验证节点列表传递到下一个验证节点。
分叉¶
分叉(fork) 是区块链的替代版本。分叉包含一个或多个独立于区块链其余部分生成的区块。
分叉通常在发生网络节点的一部分不同步,影响分叉概率的因素是高网络延迟,有意或无意的时间限制违规,节点的系统时间不同步。如果网络节点具有显着的地理分布,则必须增加区块生成间隔。
通过遵循最长的区块链规则来解析分叉。当检测到两个版本的区块链时,验证节点将回滚较短版本并接受较长版本。