技术的演化与分类
区块链技术自比特币网络设计中被大家发掘关注,从最初服务数字货币系统,到今天在分布式账本场景下发挥着越来越大的技术潜力。
区块链的演化
比特币区块链已经支持了简单的脚本计算,但仅限于数字货币相关的处理。除了支持数字货币外,还可以将区块链上执行的处理过程进一步泛化,即提供智能合约(Smart Contract)。智能合约可以提供除了货币交易功能外更灵活的合约功能,执行更为复杂的操作。
这样扩展之后的区块链,已经超越了单纯数据记录的功能了,实际上带有点“智能计算”的意味了;更进一步地,还可以为区块链加入权限管理,高级编程语言支持等,实现更强大的、支持更多商用场景的分布式账本。
从计算特点上,可以看到现有区块链技术的三种典型演化场景:
场景 | 功能 | 智能合约 | 一致性 | 权限 | 类型 | 性能 | 编程语言 | 代表 |
---|---|---|---|---|---|---|---|---|
公信的数字货币 | 记账功能 | 不带有或较弱 | PoW | 无 | 公有链 | 较低 | 简单脚本 | 比特币网络 |
公信的交易处理 | 智能合约 | 图灵完备 | PoW、PoS | 无 | 公有链 | 受限 | 特定语言 | 以太坊网络 |
带权限的分布式账本处理 | 商业处理 | 多种语言,图灵完备 | 包括 CFT、BFT 在内的多种机制,可插拔 | 支持 | 联盟链 | 可扩展 | 高级编程语言 | 超级账本 |
区块链与分布式记账
记账技术历史悠久,现代复式记账系统(Double Entry Bookkeeping)是由意大利数学家卢卡·帕西奥利 1494 年在《Summa de arithmetica, geometrica, proportioni et proportionalità》一书中最早制定。复式记账法对每一笔账目同时记录来源和去向,首次将对账验证功能引入记账过程,提升了记账过程的可靠性。
从这个角度来看,区块链是首个自带对账功能的数字记账技术实现。
更广泛地,区块链属于一种去中心化的记录技术。参与到系统上的节点,可能不属于同一组织,彼此无需信任;区块链数据由所有节点共同维护,每个维护节点都能复制获得一份完整或部分记录的拷贝。
跟传统的记账技术相比,基于区块链的分布式账本应该包括如下特点:
- 维护一条不断增长的链,只可能添加记录,而发生过的记录都不可篡改;
- 去中心化,或者说多中心化,无需集中的控制而能达成共识,实现上尽量分布式;
- 通过密码学的机制来确保交易无法被抵赖和破坏,并尽量保护用户信息和记录的隐私性。
分类
根据参与者的不同,可以分为公有(Public)链、联盟(Consortium)链和私有(Private)链。
公有链,顾名思义,任何人都可以参与使用和维护,典型的如比特币区块链,信息是完全公开的。
如果进一步引入许可机制,可以实现私有链和联盟链两种类型。
私有链,由集中管理者进行管理限制,只有内部少数人可以使用,信息不公开。
联盟链则介于两者之间,由若干组织一起合作维护一条区块链,该区块链的使用必须是带有权限的限制访问,相关信息会得到保护,典型如供应链机构或银行联盟。
目前来看,公有链更容易吸引市场和媒体的眼球,但更多的商业价值会在联盟链和私有链上落地。
根据使用目的和场景的不同,又可以分为以数字货币为目的的货币链,以记录产权为目的的产权链,以众筹为目的的众筹链等……,也有不局限特定应用场景的通用链。
现有大部分区块链实现都至少包括了网络层、共识层、智能合约和应用层等结构,联盟链实现往往还会引入一定的权限管理机制。