比特币白皮书
以太坊白皮书
Tangle 白皮书
详细的内容见 Tangle白皮书中文版
tangle 是 IOTA 所用的技术,为物联网和小额支付提供支持。不同于常见的区块链,它使用一个DAG(有向无环图)作为结构,这里称为Tangle。
传统区块链系统的单链结构在交易认证,吞吐量,资源消耗等方面存在缺陷,DAG结构的区块链是一个有效的解决方案。
Fabric 白皮书
Hyperledger Fabric 是 Linux 基金会 的 一个项目,是Hyperledger下面的一个子项目。作为一个开源联盟链,被很多项目应用。
它的主要特点是模块化的共识机制,相对高性能,和可以使用常规语言编写智能合约(golang)。
概念
联盟链
文中划分联盟链和公链的标准是: 是否发币和节点身份是否可知
状态机复制(SMR)是建设弹性应用众所周知的方式,但是如果我们把运行在区块链上的智能合约看作一种分布式应用,与传统的SMR区别在于:
- 许多应用并发运行
- 这些应用可以被任何人动态地部署
- 这些应用的代码是不被信任的,可能有恶意
order-execute
现有的大部分可以运行智能合约的区块链遵循SMR实现一种order-execute的架构: 节点先将交易排序再将它们广播给其他节点,然后每个节点顺序执行。
这个架构存在的一些问题:
所有节点按照顺序执行交易会限制性能(例如TPS),通常将不相关的操作并发执行可以提升性能,但是对智能合约很难做到并发,因为代码之间的依赖关系很难确定
order-execute最大的限制是,所有节点所执行的交易必须满足确定性.类似以太坊这样采用Solidity这样的编程语言可以一定程度上保证代码确定性,但对于更流行的语言(例如Go,Java,C/C++),则很难保证确定性(比如Go中的map iterator就无法保证确定性)。