区块链
区块链是什么?
https://v.qq.com/x/page/m0314h6mgyp.html?start=178
区块链定义
区块链(Blockchain)是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。
该技术方案让参与系统中的任意多个节点,把一段时间系统内全部信息交流的数据,通过密码学算法计算和记录到一个数据块(block),并且生成该数据块的指纹用于链接(chain)下个数据块和校验,系统所有参与节点来共同认定记录是否为真。
区块链技术
区块链是一种类似于NoSQL(非关系型数据库)这样的技术解决方案统称,并不是某种特定技术,能够通过很多编程语言和架构来实现区块链技术。并且实现区块链的方式种类也有很多,目前常见的包括POW(Proof of Work,工作量证明),POS(Proof of Stake,权益证明),DPOS(Delegate Proof of Stake,股份授权证明机制)等。
公开区块链技术要素
- 点对点的对等网络(权力对等、物理点对点连接)
- 可验证的数据结构(可验证的PKC体系,不可篡改数据库)
- 分布式的共识机制(解决拜占庭将军问题,解决双重支付)
- 纳什均衡的博弈设计(合作是演化稳定的策略)
备注:如果只具有前3点要素,我们将认为其为私有区块链技术(私有链)。
区块链特性
- 去中心化
整个网络没有中心化的硬件或者管理机构,任意节点之间的权利和义务都是均等的,且任一节点的损坏或者失去都会不影响整个系统的运作。 - 无需信任
参与整个系统中的每个节点之间进行数据交换是无需互相信任的,整个系统的运作规则是公开透明的,所有的数据内容也是公开的,因此在系统指定的规则范围和时间范围内,节点之间是不能也无法欺骗其它节点。 - 集体维护
系统中的数据块由整个系统中所有具有维护功能的节点来共同维护的,而这些具有维护功能的节点是任何人都可以参与的。 - 可靠数据库
整个系统将通过分数据库的形式,让每个参与节点都能获得一份完整数据库的拷贝。除非能够同时控制整个系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,也无法影响其他节点上的数据内容。因此参与系统中的节点越多和计算能力越强,该系统中的数据安全性越高。