区块链的基本概念
区块技术的产生和发展离不开比特币, 随着比特币的诞生, 区块链技术得以公布于众
区块链技术是一个去中心化的分布式数据库, 该数据库由一串使用密码学方法产生的数据区块有序链接而成, 区块中包含有一定时间内产生的无法被篡改的数据记录信息
区块中包含数据记录, 当前区块根哈希 (Hash), 前一区块根根哈希, 时间戳以及其他信息. 数据记录的类型可以根据场景决定, 比如资产交易记录, 资产发行记录, 清算记录, 智能合约记录甚至物联网数据记录等. 数据在记录的过程中通常组织为数形式, 比如默克尔树, 而区块哈希实际就是在数据记录树的根节点哈希, 为根据数据记录树自下而上足部通过 SHA-256 等哈希算法计算得出, 时间戳为区块的生成时间, 其他信息包括区块签名, 随机信息值等信息, 也可根据具体应用场景灵活定义
区块链技术不是一种单一的技术, 而是多种技术整合的结果, 包括密码学, 数学, 经济学, 网络科学等, 这些技术以特定的方式组合在一起, 形成了一种新的去中心化数据记录与存储体系, 并且给存储数据的区块打上时间戳使其形成一个连续的前后关联的诚实数据记录存储结构, 最终目的是创建一个保证诚实的数据系统, 可将其称为能够保证系统诚实的分布式数据库
区块链的发展体系可以划分为四个象限, 第一象限为比特币区块链; 第二象限是使用比特币区块链协议, 但不使用比特币货币的系统, 比如万事达币, 彩色币, 合约币, 以及采用合并挖矿的域名币等; 第三象限是同时使用独立货币和独立区块链的系统, 比如以太坊, 瑞波, 莱特币和未来币等, 第四象限是侧链, 采用独立的网络单笔比特币作为底层货币的系统, 比如说 BTCRealay
区块链的分类
目前已知的区块链分为三类
公共区块链 (Public Blockchain): 是指全世界任何人都可读取可大宋交易进行有效性确认, 任何人都能参与与其共识过程的区块链 (共识过程是维持区块链这种分布式数据库的一致性, 准去性的关键技术), 区块链上的数据记录公开, 所有人都可以访问, 都可以发出交易请求, 并通过验证被写入区块链, 公示过程的参与者通过密码学技术共同维护公共区块链数据的安全, 透明, 不可篡改. 公共区块链的典型应用包括比特币, 以太坊等
公共区块链是完全分布式的区块链, 区块链数据公开, 用户参与程度高, 同时易于产生网络效应, 便于应用推广. 然而系统的运行需要依赖于内建的激励机制, 公共区块链是试图保存的数据越有价值, 越要审视其安全性以及安全性带来的交易成本, 系统可扩展性问题
共同体区块链 (Consortium Blockchains): 又称为联盟链, 是指参与区块链的节点是事先选择好的, 节点间通常有良好的网络链接等合作关系, 区块链上的数据可以是公开的也可以是内部的, 为部分意义上的分布式, 可视为 "部分去中心化", 比如说有若干家金融机构之间创建了某个共同体区块链, 每一个机构都运行着一个节点, 而且为了每一个区块生效需要获取至少其中 10 个机构的确认. 区块链可以允许每个机构可读取, 或者只受限于共识验证参与者, 或者走混合路线, 例如区块的根哈希及应用程序接口对外公开. 允许外界用来进行区块链数据和区块链专题信息查询等, 其典型应用包括超级账本 (Hyperledger), 区块链联盟 R3CEV 等, 共同体区块链的参与节点间的链接状态较好, 验证效率较高, 只需要较低成本即可维持运行, 提供高速交易处理的同时较低交易费用, 有很好的扩展性, 数据可以保持一定的隐私性, 但是这也意味着在共识体达成的状态之下, 参与节点可以一起篡改数据
私有区块链 (Private Blockchain): 参与的节点只有有限的范围, 比如特定机构的自身用户等, 数据的访问及使用有严格的权限管理, 比如特定机构的自身用户等, 数据的访问及使用的有严格的权限管理, 完全私有的区块链中写入的权限仅在参与者的手里, 读取权限可以对外开放, 也可以进行任意程度的限制, 相关的应用馕括数据库管理, 数据库审计甚至公司管理, 尽管在有些情况下希望私有区块链可以具有公共的可审计行, 但是更多情况下没有公共的可读性, 由于是私有用户说了算,, 里面的数据没有无法篡改的特性, 对于第三方的保障力度大大降低, 一次目前有很多私有区块链会通过依附在比特币等已有区块链的方式存在, 定期讲系统快照数据记录到比特币系统中, 其典型应用入 Eris Industries
私有区块链可以带来规则的改变, 如果需要的花, 运行着私有区块链的机构可以很容易的修改区块链的规则, 回滚交易, 这一点似乎有违背区块链的本质, 但是却适用于一些特殊的场景需求, 由于私有区块链的验证者是内部公开的, 所以并不存在的部分验证节点工谋进行 51% 攻击的风险, 私有区块链交易成本更低, 交易只需要被几个手心的高算力节点验证即可, 而不是需要数万个节点的确认, 因此交易成本会降低, 但是从长远来看, 随着区块链技术的进步, 公共区的成本可能降低 1-2 个数量级, 大致与高效的私有区块链系统类似, 私有区块链节点间的链接情况好, 故障可以迅速通过人工干预来修复, 从而提升交易速度并且可以更好的保护隐私
总结
公共区块链, 共同体区块链和私有区块链各有优势, 公共区块链很难实现的很完美, 共同体区块链及私有区块链需要找到实际迫切需求的应用需求和场景, 至于具体选择哪一套方案取决于具体需求, 有时使用公共区块链更好, 有时又需要一定的私有控制, 适用于使用共同体区块链或者私有区块链
区块链的特征
去中心化
去中心化是区块链的基本特征, 意味着区块链不再依赖于中央处理节点, 实现了数据的分布式记录, 存储和更新; 由于存在分布式存储和算力, 不存在中心化的硬件和管理机构, 全网的节点的权利和义务均等, 系统中的数据本质是由全网节点共同维护, 由于每一个区块的节点都必须遵守同一规则, 当然这个规则基于密码算法而非信用, 同时每次数据更新需要网络内其他用户的批准, 所以不需要一套第三方中介结构或者信任结构背书. 在传统的中心化网络中, 对一个中心节点实行攻击即可破坏整个系统, 而在一个去中心化的区块链网络中, 共计单个节点无法控制或者破坏整个网络, 掌握网内超过 51% 的节点知识获取控制权的开始而已
透明性
区块链的数据记录对全网的节点是透明的, 数据记录的更新操作对全网节点也是透明的, 这是区块链系统值得信任的基础, 由于区块链系统使用开源的程序, 开放的规则和高参与度, 区块链数据记录和运行规则可以被全网节点审查, 追溯, 具有很高的透明度
开放性
区块链系统为开放性质, 除了数据直接相关各方的私有信息被加密外, 区块链的数据对所有人公开, 当然也不包括有特殊权限要求的区块链. 任何人或参与节点都可以通过公开的接口查询区块链数据记录或者开发相关应用, 因此整个系统信息高度透明
自治性
区块链采用基于协商一致的规范和协议, 使得整个系统的所有节点能够在信用的节点自由的安全交换数据, 记录数据, 更新数据, 把对个人或者机构信任改成对体系的信任, 任何人为的干预都将不起作用
信息不可篡改
区块系统一旦经过验证并且验证添加至区块链后, 就会得到永久的存储, 无法更改, 当然也有具备特殊权限更改需求的私有区块链系统除外, 除非能够同时控制系统中超过 51% 的节点, 否则单个节点对数据库的修改是无效的, 因此区块链的数据稳定性和可靠性极高
匿名性
区块链技术解决了节点间信任问题, 因此数据交换甚至交易均可在匿名的情况下进行, 由于节点间的数据交换遵循固定并且已经预知的算法, 因而数据交换是无需信任的, 可以基于地址而非个人身份进行, 因此交易双方无需通过公开身份的方式让对方产生信任
参考区块链
吃粑粑的毕教授
来源: http://www.jianshu.com/p/0277c3394a13