区块链共识机制:从Nakamoto到拜占庭共识的探索
1. 智能合约编程语言
EVM(以太坊虚拟机)是一种底层编程语言,人类编写起来很不方便。因此,智能合约通常使用更高级的语言编写,最典型的是Solidity,不过也有其他选择,如Serpent和LLL。这与Java和.NET的做法类似,高级语言(如Java、C#、VB.NET等)被编译成底层语言(字节码、通用中间语言),再进行解释或即时编译。
EVM具有图灵完备的重要特性。比特币使用的Script语言不具备图灵完备性,但已支持基本编程。Hyperledger Fabric采用了一种有趣的方式,智能合约(在其术语中称为链码)在Docker容器中执行,因此可以使用多种不同的语言进行编程。
2. Nakamoto共识变体
创建比特币和Nakamoto共识的变体是区块链领域研究较多的课题,以下是一些相关的重要研究:
- 公平性问题改进 :一些节点直接从非矿工节点(轻钱包)接收交易后,会保留这些交易信息,以便将其放入区块并获得奖励。Babaioff等人通过一种收费奖励信息传播的方案增强了Nakamoto共识,并使用博弈论模型证明可以达到平衡。
- 自私挖矿攻击及应对 :自私挖矿攻击中,自私的矿池会保留交易,私下用这些交易挖矿。当公共链长度短于私有链时,矿池发布其区块,故意分叉链,使非故障节点进行无用计算。Eyal和Sirer指出比特币易受自私挖矿攻击,提出修改比特币算法来抵抗,即所有非故障节点应传播所有竞争区块信息,并随机选择下一个挖矿的区块。
- 高分叉率问题解决 :So
超级会员免费看
订阅专栏 解锁全文
2190

被折叠的 条评论
为什么被折叠?



