三难困境源于区块链的单链式数据结构。区块承载着区块链的目标。传统的单链式数据结构中只有一种区块,却要承载有内在冲突的三个目标,自然会产生困境。零熵通过采用双链数据结构避免了陷入三难困境,实现了在不牺牲分散性和安全性的前提下无限可扩展性。
零熵由一个矿权链和一个交易链组成,矿权链记录谁获得了挖矿的权利,交易链记录区块链上的交易。矿权链采用工作量证明机制,工作量证明难度目标为10分钟,与比特币相同。交易链不使用工作量证明。矿工按照矿权链所记录的顺序依次产生预定数量(200个)的交易链区块。由于在任何时刻谁有产生交易区块的权利都是确定的,因此无需以竞争性的方式决定合法交易区块,即交易区块不需要工作量证明,矿工签名就够了。因此可以以极高的速度处理交易。交易处理速度仅受限于节点验证打包交易的能力。
出于安全的原因,矿权区块包含产生该区块的矿工地址和一个交易区块的哈希值。矿权链中所引用的交易区块不能分属交易链中不同的侧链,不能前后颠倒。产生矿权区块需要工作量证明。由于引用关系的结果,矿权链因工作量证明而带来的安全性也传递到了交易链上,因此零熵中的交易有等同与比特币交易的安全性。
由于矿工必须先产生矿权区块然后才能获得产生交易区块的权利,因此任何时候都有一些其矿权区块已经在矿权链中,但尚未开始产生交易区块的矿工。这些矿工构成了一个等待队列。零熵用调整工作量证明难度的方式将等待队列的长度控制在40左右。这意味着当一个矿工开始产生交易区块时,他的权利已经被确认40次了,不可能被推翻。即零熵的交易链不可能因为二位矿工都宣称有权产生交易区块而出现侧链。因此除非有产矿权的矿工自己作恶,在同一高度签署了二个区块,否则任何交易区块一旦产生就是最终确认。
为阻却矿工双重签名,零熵要求矿工在产生矿权区块时提供ω币质押,为鼓励矿工多提供质押,零熵根据质押的多少调整工作量证明难度。如果真的出现了矿工双重签名的情况,零熵将没收质押的ω币用于赔偿用户的损失。赔偿额是交易费的10000倍。因此在零熵中,用户支付的交易费具有保险的性质。
质押只是为了阻却矿工双重签名。零熵并不依赖质押解决矿工双重签名造成的分岔。由于矿权区块必须引用一个交易区块,在出现双重签名造成分岔时,矿权区块只会引用到其中一个分岔中的区块,另一个分岔被舍弃。因此零熵用户也可以象比特币用户一样等待若干次矿权链的确认后再完成交易。对于质押不足以赔偿的大额交易来说,用户应当采用等待确认的方式。对于小额交易,一旦交易被记录用户可以视为最终,从而获得快速完成交易的好处。
零熵还采用调整工作量证明难度的方式激励矿工提高交易处理速度。具体方法是:在矿权区块中,矿工可以报告其他矿工打包产生交易的速度。这种报告不是依据交易区块中时间戳来计算的,而是根据该矿工实际收到区块的时间来计算的。矿工产生矿权区块时,他的工作量证明难度会根据其他矿工所报告他的交易处理速度(除去最高和最低的25%)的平均值和最近一段时间内所有矿工交易处理速度报告平均值之比而调整。因此能比其他矿工更快处理交易的矿工有更高的机会产生矿权区块。
自区块链技术出现以来,由于区块奖励远远大于区块交易费,矿工们将大量资源投入到提高哈希碰撞算力上,而不是提高交易处理速度。零熵一方面将交易费变成保险金,鼓励用户多付交易费。另一方面通过调整工作量证明难度激励矿工快速处理交易。因此矿工们会更好地平衡在提高哈希碰撞算力和提高交易处理速度能力之间的投入,使零熵发展成为一个高效的区块链。
来源:金色财经