论文部分内容阅读
随着资产数字化技术的快速发展,互联网端到端价值交换成为学术界和产业界关注的焦点。与信息不同,价值具有不可复制性、唯一性和归属性等特点,现有的互联网体系由于在设计之初旨在解决端到端信息交流问题,因此无法满足端到端价值交换的需要。与基于可信赖第三方价值交换方式相比,端到端价值交换具有更好的安全性、开放性和便捷性,能更好地降低交易成本。 2008年中本聪提出了比特币,运用区块链技术首次实现了互联网端到端价值交换。区块链技术采用多中心化方式维护账本信息,每个中心保存完整的账户历史,独立完成事务数据的验证和存储,并通过P2P网络交换信息,达成账本数据的强一致性。现有区块链系统中没有账户,每个用户拥有若干预先生成的公私钥对,这种设计思想在给用户带来良好匿名性的同时,也存在以下不足:1)只支持一种资产;2)用户余额计算效率低;3)无法满足监管需求。上述不足制约了区块链技术在多资产转让、资产存在性证明等领域的应用。 为了支持多资产同时提供监管,并且提高用户余额计算效率,本文设计并实现了一种账户体系结构,将用户多资产和余额单独存储在账户中,并将账户存储在树形结构中,加快账户信息检索速度。本论文的主要工作成果如下: (1)设计了一种区块链账户体系结构。将账户余额和所拥有的多资产保存在账户类中,同时记录账户最近一次交易所在位置,用于交易记录查询使用。将账户信息组织成树形结构,即账户树,加快账户检索速度和不同节点间比对速度,并将账户树的根节点哈希值存入最新区块首部中,保证账户信息不能被修改。针对不同的网络带宽应用场景,设计了两种账户树在不同节点间同步的方法:快照回放法和迭代法,快照回放法对账户树创建快照,先同步快照,再同步新创建区块;迭代法采用哈希树同步方法进行多轮迭代。 (2)实现并测试了账户体系系统。该系统由账户地址生成模块、账户结构模块、账户树模块、账户树同步模块和数据存储模块等组成。账户体系目前已经结合到区块链系统中,并已运用于实际的商业系统中。系统目前支持账户同时拥有多种不同资产以及账户间的资产转移。同时账户树也具有很好的可扩展性,账户树存储空间随账户数量线性增长,在百万账户级别时,账户树存储量仅为220MB左右。两种账户树的同步方法在不同节点间的同步时间也已经达到同业小时级别的要求。