阅读《基于区块链的智能合约技术与应用综述 》总结

摘要

随着以比特币为代表的区块链技术的蓬勃发展,区块链技术已经开始逐步超越可编程货币时代而进入智能合约时代.智能合约(smart contract)是一种由事件驱动的、具有状态的代码合约和算法合同,随着区块链技术的深入发展而受到广泛关注和研究.智能合约利用协议和用户接口完成合约过程的所有步骤,允许用户在区块链上实现个性化的代码逻辑.基于区块链的智能合约技术具有去中心化、自治化、可观察、可验证、可信息共享等特点,可以有效构建可编程金融和可编程社会,广泛应用于数字支付、金融资产处置、多重签名合约、云计算、物联网、共享经济等多个领域.首先阐述了智能合约技术的基本概念、全生命周期、基本分类、基本架构、关键技术、发展现状以及智能合约的主要技术平台;然后探讨了智能合约技术的应用场景以及发展中所存在的问题;最后,基于智能合约的理论知识,搭建了以太坊实验环境并开发了一个众筹智能合约系统,旨在为基于区块链的智能合约技术的研究与发展提供参考与借鉴.

1 智能合约背景知识

1.1 区块链知识简介

  • 区块链技术的出现为解决双花问题拜占庭问题提供了有效途径。
  • 双花问题:同一笔钱在两次或多次交易中使用。
  • 拜占庭问题:在缺少可信任中心节点的情况下,分布式系统如何达成共识和建立互信。
  • 区块链的共识算法的理论基础是拜占庭容错。
  • 共识算法
  • 区块结构
  • 默克尔树(Merkle tree,MT)是一种哈希二叉树。与标准二叉树一样,由一组叶节点,一组中间节点和一个根节点构成。叶节点包含存储数据或其哈希值,中间节点是其两个子节点内容的哈希值,最上层的根节点同样也是由它的两个子节点内容的哈希值组成。

1.2 智能合约概述

  • 智能合约是一种计算机协议,一旦部署就能实现自我执行和自我验证。
  • 智能合约区块链示意图
  • 智能合约的实现,本质上是通过赋予对象数字特性,即将对象程序化并部署在区块链上,成为全网共享的资源,再通过外部事件触发合约的自动生成与执行,进而改变区块链网络中数字对象的状态和数值。
  • 优点:确定性、一致性、可终止性、可观察性和可验证性、去中心化、高效率性和实时性、低成本。
  • 分类:链上代码、智能法律合约、智能应用合约。

2 智能合约的基本架构

  • 数据加载方式
  • 链上方式:代码和应用发布到链上,从链上加载执行,不利于更新维护。
  • 链下方式:将散列值存储在链上。
  • 虚拟机和容器的作用都是在一个沙箱中执行合约代码,并对合约所使用的资源进行隔离和限制。智能合约的每次调用,都要在新的虚拟机或容器中进行,运行环境启动时间对整个智能合约系统影响较大。
  • 验证方法:形式化验证是智能合约领域的主流验证方式。
  • 形式化验证方法有两种:演绎验证和模型检测。
  • 形式化验证4部分:代码生成、形式化描述、形式化验证、一致性测试。
  • 可扩展性

3 智能合约主流平台

3.1 以太坊

  • 以太坊虚拟机(EVM)是在以太坊智能合约及其应用的运行环境
  • 以太坊智能合约的核心要素

区块链智能合约架构 区块链智能合约技术_智能合约

3.2 Hyperledger Fabric 超级账本

  • 设计原则:用例驱动
  • 5种用例:数字支付、金融资产管存、供应链、主数据管理、共享经济。
  • Fabric智能合约实质上是在验证节点上运行的分布式交易程序,用以自动执行特定的业务规则,最终更新账本状态。
  • 三种类型:公开、保密和访问控制,由拥有不同权限的成员发起。
  • 执行过程

4 智能合约研究现状与应用场景

应用场景

  • 数字身份
  • 数字记录
  • 证券
  • 金融贸易
  • 物联网
  • 供应链
  • 保险
  • 分布式计算

5 现存问题

  • 效率问题
  • 数据存储量庞大。轻量化意味着牺牲可靠性和安全性
  • 状态确认是存在双重确认和闭锁确认问题。
  • 隐私问题
  • 智能合约用户的匿名性难以保证
  • 数据公开,地址之间相互联系,一旦泄露所有信息都将被公开。区块链的隐私保护机制可分为3 类:网络层、交易层和应用层的隐私保护。
  • 安全问题
  • 合约代码(和合约文本)的不确定性和不一致性会导致存在漏洞
  • 标准不统一问题