钱卫宁,邵奇峰,朱燕超,等.区块链与可信数据管理: 问题与方法[J].软件学报,2018,29(1):150—159.

摘要

作为支撑比特币实现无中心高可信的账本管理的技术,区块链在金融领域得到了广泛关注,区块链实现了不完全可信环境中的可信数据管理,具有去中心化、防篡改、不可抵赖、强一致和完整性等特性,但同时也存在高延迟和低吞吐率的性能问题,在互联网技术发展、新型应用层出不穷的大背景下,借鉴区块链在数字加密货币应用中的成功经验,探索可信数据管理的理论、技术,并设计、实现系统,是学术界所面临的重要问题.从可信数据管理角度,介绍了区块链相关的技术和研究进展,包括分布式共识、智能合约、数据溯源等,并分析了应用对可信数据管理所提出的需求和研究挑战.
关键词: 区块链 可信数据管理 智能合约 数据溯源 分布式共识


  • 从数据管理角度看,区块链的本质是一个构建在对等网络上、提供了可信数据管理功能的数据库系统.一个可信数据库管理系统从3个层面确保系统的可信性,即存储的可信性处理的可信性以及外部访问的可信性
    • 存储可信性是指数据处理结果一旦被确认,不会丢失或被篡改.它要求系统提供传统数据库管理系统和事务处理中所要求的事务持久性(durability),但同时也要求系统在存储、通信故障,甚至在蓄意攻击时,仍能确 保数据存储的正确性。
    • 处理可信性一方面是指数据处理的正确性,另一方面是指处理过程和结果可审计与可溯源.前者要求事务的并发控制,而后者则要求系统不仅保存数据的最终状态,还要保存数据处理的过程.
    • 外部访问可信性是指对用户访问的认证.在实现机制上,它依赖于分布式身份认证等技术,也与具体的应用 场景和业务紧密相关.本文的综述不涉及外部访问可信性.

1 区块链基础

  • 区块链的基本数据结构包括两部分,即区块内结构区块间链式结构.
  • 一个区块包含头信息和体信息.头信息是区块的元数据,用于验证区块,并与其前驱和后继区块建立关联.通常,头信息包含自身时间戳、前驱区块的签名值、一个特殊值(称为 nonce)、验证要求(如难度目标).体信息则是交易的序列. 区块内的交易序列常通过特殊的数据结构,如 Merkle-tree进行组织.其叶子节点为数据项或数据项的散列值,每一个内部节点的值为其所有子节点的散列值,从而根节点的值可被视为整棵树的签名.
  • 区块链仅承认链最长的那条链.
  • 区块链系统的另一个重要方面是其提供服务的接口.在比特币应用中,区块链仅提供转账,即事务的执行与查询.而随着应用需求以及以太坊和 HyperLedger 等系统的发展,新的区块链平台提供了称为“智能合约(smart contract)”的用户代码执行机制.从可信性角度看,智能合约不仅可被执行,且其执行历史将被记录,执行过程和 结果可审计、可追溯.

2 存储可信性

2.1 工作量证明机制

由于比特币区块链为“公有链”,即其参与读取、交易以及共识机制的用户是开放的,其用户规模是动态的,参与者是匿名的.这直接导致了 PoW 机制的低吐率和高延迟.但从另一个角度看,PoW 机制实现了系统的高可扩展性,支持从数千到数十万个参与者,这一网络规模远远大于绝大多数金融机构信息系统的规模.

2.2 实用拜占庭容错机制

在私有链或联盟链中,节点(参与者)就不再是匿名的,节点规模远小于公有链,且可信程度也远比在公有链中要高.实用拜占庭容错机制可被用于该场景.

2.3 Paxos和BVP

Paxos是重要的非拜占庭场景下的共识机制,可被用于私有链场景.Paxos 的改进版本也能处理拜占庭容错场景,被称为拜占庭 Paxos.Abraham 和 Malkhi 提出了 BVP,用 以利用 TPM(trusted platform module)加密处理器提供高性能的拜占庭容错.

以前写的共识算法总结


3 处理可信性

3.1 智能合约

比特币区块链仅提供非常简单的脚本语言,用以实现智能合约;Ripple不提供智能合约;以太坊提供图灵完备的智能合约脚本语言;而HyperLedger Fabric则提供 Go 和 Java 撰写智能合约的功能.

3.2 数据溯源

  • 数据溯源方法可分成两大类,即基于批注和非批注。对于非批注的方法,在处理数据的过程中,不需要对源数据和目标数据(处理的结果)附加额外的信息. 但是,此时需要了解存储、维护数据进行了何种处理。基于批注的方法将每个数据项变换为s,d,i三元组标签,其中,s 表示数据项源,d 表示目标数据(当前数据), 而 i 则表示中间数据结果.通过在数据处理过程中进行标签传播,实现数据的勾连,以支持数据溯源。
  • 数据溯源的理论和技术与数据的结构化模式之间关联紧密.虽然在当前的区块链应用中,数据未必一定是 结构化的,但是,随着应用的发展,区块链数据管理中数据模式的管理将成为一个重要的问题,也将是现有数据 溯源方法能否被成功应用的关键问题.

3.3 可认证数据查询与处理

随着区块链上查询需求的增长,在链式日志结构上的索引技术也正在成为重要的研究问题。(Haven 和 VC3 )


4 区块链数据管理系统与应用

  • 除比特币、以太坊和 HyperLedger 以外,近年来还出现了一大批区块链相关的系统.
    • BigChainDB同时实现传统数据库管理系统的高性能和区块链系统的可伸缩性
    • Bitcoin-NG 的设计目标为“下一代”比特币,以具备更好的可伸缩性
    • Blockstack 将用于控制的元数据管理 与数据存储分开管理,并用 skip-list 管理区块,以避免大规模地扫描区块链.

5 小结与展望

当前所直接面临的研究问题包括:在特定场景下的高性能分布式共识机制、区块链上的结构化数据管理方法、区块链上的分布式数据索引构造和维护方法、链式结构或日志结构上的高效查询处理和优化技术等。

 posted on 2020-05-24 22:05  捞起月亮的渔民  阅读(628)  评论(0编辑  收藏  举报