区块链与数据库如何结合?
一、区块链介绍
区块链中的数据以区块为单位产生和存储,按时间顺序连成链式数据结构。所有节点共同参与区块链系统的数据验证、存储和维护,新区块的创建需得到共识确认,通过广播实现全网同步,之后就不能更改或删除。中本聪2009年发明的比特币是区块链的第一个应用。
区块链没有理论创新,是多种已有技术的集成创新,主要解决多方信任与高效协同问题。从技术角度包括哈希运算、数字签名、P2P网络和共识算法四部分内容。区块链所记录的数据不变(immutable),区块链通过密码学和时间戳保障区块链数据不被恶意篡改。
根据参与区块链的个体是否受限,区块链又分为公有链、联盟链和私有链。例如比特币就是典型的公有链,任何人都可以加入。因为没有准入限制,比特币设计了算力非常昂贵的挖矿算法,消耗了大量资源,效率也比较慢。因此,对于企业应用来说,首选联盟链和私有链。
共识协议是区块链重要概念。比特币采用PoW的形式,即算力挖矿,利用哈希算法不停运算直到找到小于某个值的数值即可。还可以选择拜占庭容错式协议,如bigchainDB的共识采用的就是tendermint共识。此外,常见的共识方法还包括Proof of Stake,Delegated Proof of stake、Raft等。
除比特币外,区块链的典型应用包括Hyperledger Fabric,Ethereum,R3 Corda、Quorum、Fisco。主流的国际区块链联盟组织包括Libra(Facebook、mastercard、visa、paypal参与,支付领域)、B3i(安联、苏黎世保险、太平洋保险等,保险领域)、fnality(瑞银、巴克莱,证券、跨境支付领域),MOBI(宝马、福特等,汽车领域),mediledger(基因泰克、辉瑞、医药领域),Tradelents(航运领域),tradeix marcopolo(供应链领域)。可以预见,未来在这些领域,区块链都将带来改变和变革。
二、区块链主流应用
区块链的应用最早来自金融行业,后面慢慢扩展到很多传统行业,如供应链、物联网等。2019年11月,华为的政府区块链目录在北京上线,链接了50多个北京市机构,提供了更有效的数据查询、数据共享和权限管理。蚂蚁区块链提供电子票据应用,招商银行使用区块链实现跨境支付等。
如何判断你的业务是否适合区块链?可参考如下图。
三、区块链政策解读
1. 1025讲话:2019 年 10 月 25 日,***的讲话称,我们要把区块链作为核心技术自主创新的重要突破口,明确主攻方向,加大投入力度。
2. 密码法发布:10月26日下午,十三届全国人大常委会第十四次会议表决通过密码法,并表示该法将自2020年1月1日起施行
四、区块链与数据库的对比
NUS的Ooi教授认为,区块链和数据库的主要区别在于,区块链的设计首要目的是安全,数据库的首要目的是效率,因此,有如下详细对比分析:
对比点 | 设计选择 | 原因 | |
共识协议 | 区块链 | 拜占庭故障容忍 | 互不信任的运行环境 |
数据库 | 宕机故障容忍 | 高可用的运行要求 | |
共识层位置 | 区块链 | 顶层 | 去中心化,防单点 |
数据库 | 存储层之上 | 数据完备性 | |
事务层 | 区块链 | 顺序执行 | 易于理解、易用 |
数据库 | 并发执行 | 高吞吐 | |
存储 | 区块链 | 历史(账本)+状态 | 溯源,解决争议 |
数据库 | 状态 | 节约存储 | |
索引 | 区块链 | Merkle Tree等 | 篡改可见性 |
数据库 | B树 | 硬件友好 | |
Sharding | 区块链 | 基于节点的分片 | 防止恶意分区 |
数据库 | 基于服务的分片 | 负载均衡 |
五、区块链与数据库如何结合
我认为,区块链不可能替代数据库,区块链和数据库的结合有两种思路:
1) 应用数据库的技术改进区块链的性能、可用性。例如,BigchainDB就是这一方向的典型应用,数据库学术界的研究大多基于这个方向。
2) 利用区块链的不可变特性开发不可变数据库。例如,AWS的QLDB。
六、Bengchin Ooi在区块链方面研究成果简介
1. Blockbench:发表在2017年SIGMOD,业界首个评估私链性能的标准化测试套件,由新加坡国立大学和浙江大学联合开源发布。
2. ForkBase,发表在2018年VLDB,是业界首个针对区块链设计的原生存储系统
3. Improving performance bottleneck with trusted h/w and sharding (SIGMOD 2019)
- 点赞
- 收藏
- 关注作者
评论(0)