## 常见问题

### 通用问题
** 问：区块链是谁发明的，安全么？**

答：区块链相关的思想最早是比特币的发明者-中本聪（化名）在论文中提出（但没有明确定义）作为比特币网络的核心支持技术。自那以后，区块链技术逐渐脱离比特币网络，成为一种通用的可以支持分布式记账能力的底层技术，具有去中心化和加密安全等特点。

** 问：区块链和比特币是啥关系？**

答：比特币是基于区块链技术的一种数字现金（cash）应用；区块链技术最早在比特币分布式系统中得到应用和验证，确保了比特币系统在 2009 年上线后，在完全自治情况下可以正常运转。

** 问：区块链和分布式数据库是啥关系？**

答：两者定位完全不同。分布式数据库是解决分布式场景下的数据存储问题；区块链则是在多方（无需彼此信任）之间提供一套可信的记账和合约履行机制。

** 问：区块链有哪些种类？**

答：根据参与者的不同，可以分为公开链、联盟链和私有链。从功能上看，可以分为以货币交易为主的初代区块链（如比特币网络）、支持智能合约的二代区块链（如以太坊网络）、面向复杂商业应用场景支持链上代码的新一代区块链或分布式账本（如超级账本）。

** 问：（公有链情况下）区块链是如何保证没有人作恶的？ **

答：区块链并没有试图保障每一个人都不作恶，每个参与者都默认在最长的链上进行扩展。当某个作恶者尝试延续一个非法链的时候，实际上在跟所有的“非作恶”者进行竞争。因此，当作恶者超过一半（还要保持选择一致）时，在概率意义上才能破坏规则。而代价是一旦延续失败，所有付出的资源（例如算力）都将浪费掉。

### 比特币网络

** 问：比特币区块链为何要设计为每 10 分钟才出来一个块，快一些不可以吗？**

答：这个主要是从公平的角度，当某一个新块被计算出来后，需要在全球的比特币网络内公布，临近的矿工将最先拿到消息并开始计算，较远的矿工则较晚得到通知。最坏情况下，可能需要数十秒的延迟。为尽量确保矿工们都处在同一起跑线上，这个时间不能太短。但太长了又会导致每个交易的“最终”确认时间过长，目前看，10 分钟左右是一个相对合适的折中。另外，也是从存储代价的角度，让拥有不太大存储的普通节点可以参与到网络的维护。

** 问：比特币区块链每个区块大小为何是 1 MB，大一些不可以吗？**

答：这个也是折中的结果。区块产生的平均时间间隔是固定的 10 分钟，大一些，意味着发生交易的吞吐量可以增加，但节点进行验证的成本会提高（hash 处理约为 100 MB/s），同时存储整个区块链的成本会快速上升。1 MB，意味着每秒可以记录 $$\frac{1 MB}{10\cdot 60}=1.7 KB$$ 的交易数据，而一般的交易数据大小在 0.2 ~ 1 KB。

实际上，之前社区也曾多次讨论过改变区块大小的提案，但都未被最终接受。

### 超级账本项目

** 问：超级账本项目与传统公有区块链有何不同？**

答：超级账本是首个面向联盟链场景的开源项目，在这种场景下，参与账本的多方存在一定的信任前提，并十分看重对接入账本各方的权限管理、审计功能、传输数据的安全可靠等特性。超级账本在考虑了商业网络的这些复杂需求后，提出了创新的架构和设计，是首个在企业应用场景中得到大规模部署和验证的开源项目。

** 问：Hyperledger Fabric 啥时候能出来？**

答：作为首个实验稳定版本的 v0.6 已经被许多场景下进行验证使用，根据得到的企业场景反馈，目前社区设计了新的 1.0 架构，在可扩展性、安全性、性能等方面做了改进。Fabric 预计在 2017 年 3 月内发布 1.0 beta 版本，修复 bug 和稳定后即推出 1.0 正式版本。

