区块链2.0——详解智能合约

1. 背景

智能合约之父尼克·萨博(Nick Szabo )博士在1994年创造了智能合约概念并于1997年提供的简化版,通过抵押品对抵押条约进行规范化。在区块链没有出来之前智能合约式中没有普及开来,一个重要原因是因为缺乏能够支持可编程合约的数字系统和技术。

2. 概念以及原型

2.1 概念

智能合约的最核心的概念就是;通过数字的方法控制有价值的所有类型的的任何资产,主要特性包括[1]

  1. 动态;
  2. 主动;
  3. 更好的观察和核查点;

2.2 原型1——自动售卖机

所根据的原型:自动售卖机。

1. 前提

首先需要保证的前提就是:钱箱的钱<破坏者付出的代价

2. 操作流程:

自动售卖机操作流程

2.3 原型2——车辆的抵押

应用在车辆的领域如何实现智能合约?

1. 问题1——如何防止盗窃?

车子示例.png

2. 问题2——收款人如何查收赖账的车?

  • 答:
    • 创建智能扣押权协议(智能合约很符合现在银行对于老赖的操作):
      1. 交费→正常使用
      2. 不交费→智能合约调用扣押权协议,把车钥匙控制权交给银行;
        • 事后的可能情况进行细化:
          1. 可证明的扣押权注销;
          2. 已还清;
          3. 处于困境;
          4. 意外情况;
根据问题2的回答进行细化合约

细化一个具体合约:

  1. 选择性允许业主锁定但排除第三方锁定的操作;
  2. 允许债权方接入的秘密途径;
  3. 只在违约一段时间时秘密途径被打开;
  4. 电子交付完成后永久地关闭秘密途径;

2. 实现

2.1 存在的障碍

实现智能合约的一大障碍是实现在计算机程序不能真正地触发支付,也就是支付环境不能完全地保证是安全的。

2.2 定义

  • 智能合约是一套以数字形式定义的承诺,承诺控制着数字资产并包含了合约参与者约定的权利和义务,由计算机系统自动执行。

2.3 与传统合约对比

与传统的合约对比具有以下几个特点:

  1. 自动性判断触发
  2. 客观性
  3. 事前预防
  4. 依赖于抵押财产
  5. 全球性

2.4 智能合约模型

智能合约——需要底层协议实现,并且由以下四部分组成:

  1. 合约参与者:执行智能合约的相关参与者。

  2. 合约资源集合:智能合约执行涉及的参与者资源,比如参与各方账户、拥有的数字财产等。

  3. 自动状态机:智能合约下一步执行的关键,包括当前资源状态判断、下一步合约事务执行选择等。

  4. 合约事务集合:智能合约的下一步动作或行为集合,控制着合约资产并对接收到的外界信息进行回应。

智能合约模型示意图

2.4 智能合约完美的合作者——区块链

正是由于区块链的技术到来使得智能合约实现变得可能,而区块链技术经历了3个时代,区块链1.0→区块链2.0→区块链3.0[3],其中:

  • 区块链1.0,主要是指以比特币为代表的数字化支付,是“可编程的货币”;

  • 区块链2.0,拓展至数字货币与智能合约相结合,但仍限于金融领域应用,主要代表为以太坊(Ethereum);

  • 区块链3.0,将超出金融领域,为各行各业提出去中心化解决方法,力图实现“可编程的商业经济”,即通过区块链对每一个互联网中代表价值的信息和字节进行产权确认、计量和存储,从而实现资产在区块链上可被追踪、控制和交易。

2.4.1 状态机系统

由区块链自带的共识算法构建出一套状态机系统,使之高效运行,所以基于区块链的智能合约包括[2]

  1. 事务处理和保存的机制
  2. 一个完备的状态机
  3. 事务的保存和状态处理都在区块链上完成

2.4.2 其工作原理是:

  • 事务以及事件的定义:
    • 事务主要包含需要发送的数据,而事件则是对这些数据的描述信息。
  • 进入判断:
    • 事务及事件信息传入智能合约后,合约资源集合中的资源状态会被更新,进而触发智能合约进行状态机判断。
  • 自动执行:
    • 如果自动状态机中某个或某几个动作的触发条件满足,则由状态机根据预设信息选择合约动作自动执行。

2.4.3 构建步骤如下:

  1. 多方用户共同参与制定一份智能合约:

    1. 用户注册,区块链返用户公钥和私钥;公钥作为账户地址,私钥作为操作该账户的唯一钥匙。
    2. 两个以及两个以上的用户根据需要,共同商定了一份承诺,承诺中包含了双方的权利和义务;经过电子化编程之后,参与者分别用各自私钥进行签名,以确保合约的有效性。
    3. 签名后的智能合约,将会根据其中的承诺内容,传入区块链网络中。
  2. 合约通过P2P网络扩散并存入区块链:

    1. 合约通过P2P扩散到每一个节点上;区块链中的验证节点会将收到的合约先保存到内存中,等待新一轮的共识时间,触发对该份合约的共识和处理。

    2. 共识时间到了,验证节点把保存的所有合约打包成一个合约集合(set),计算其Hash值组装成一个区块结构,扩散全网;其他验证节点接收提取与自己的比较;发送认可的合约集合给其他的验证节点;这样所有的都对比完就确定了唯一的可信集合;

    3. 最新达成的合约集合会以区块的形式扩散到全网,如图4-2所示。每个区块包含以下信息:

      1. 当前区块的Hash值;

      2. 前一区块的Hash值;

      3. 达成共识时的时间戳以及其他描述信息;

      4. 验证的内容主要是合约参与者的私钥签名是否与账户匹配。

        合约区块链示意图

  3. 区块链构建的智能合约自动执行:

    1. 智能合约会定期检查自动机状态,逐条遍历每个合约内包含的事务、状态机以及触发条件将条件满足的事务推送到待验证的队列中,等待共识;未满足触发条件的事务将继续存放在区块链上:
    2. 进入最新轮验证的事务,验证共识,共识成功后事务会被成功执行并通知用户;
    3. 执行后判断合约状态,事务完成即标记合约完成,移除该合约;反之将标记为进行中,继续下一轮处理;
    4. 整个事务和状态的处理都由区块链底层内置的智能合约系统自动完成,全程透明、不可簒改。

2.4.4 智能合约应用案例[2]

  1. 房屋租赁:

    1. 爱丽丝与鲍伯提交合约构建申请给智能合约服务器,生成合约并由服务器发布到区块链生效;
    2. 爱丽丝将Key以及MA提供给智能合约服务器;
    3. 鲍伯通过MB向智能合约服务器支付1000×12=12000元的资金作为抵押,或者鲍伯通过第三方机构的担保,仅向智能合约服务器支付少量资金;
    4. 合约开始执行,智能合约服务器将Key发送到鲍伯,并从鲍伯的抵押资金中扣除1000元,发送到爱丽丝的账户,并生成参与对象记录存入区块链;
    5. 每个月智能合约都会定期检查,如果合约未到期,则继续从鲍伯的抵押资金中扣除1000元发送到爱丽丝的账户并发送Key给鲍伯,并生成参与对象记录存入区块链;
    6. 整个过程受到第三方机构的监控,所有参与者、第三方机构都可以通过区块链查询合约执行情况;
    7. 租约期限到后,智能合约服务器生成一条合约记录,标示合约终止并发布到区块链,合约执行即终止。
      智能合约示例-租房
  2. 差价合约

  3. 代币系统

  4. 储蓄钱包

  5. 作物保险

  6. 金融借贷

  7. 设立遗嘱

  8. 证券登记清算

  9. 博彩发行

3. 面临的问题

智能合约,尤其是基于区块链的智能合约,目前还处在初级阶段,尚未有任何实质性突破和应用,同时也面临着问题与挑战:一是安全性问题;二是私密性问题;三是意外情景问题。

3.1 安全性问题

不可逆的性质也就导致某些类似诈骗的东西或者洗黑钱无法追回,例如:你与诈骗犯进行交易或者你已经将货币发送到错误的地址中,那么很不幸,金钱损失是无法挽回的。

  • 所以在设计的时候就要确保没有类似事情的发生

3.2 私密性问题

银行纳入区块链中便可能使得交易信息变得可见,即使对其进行加密由于信息的公开性还是会有很多手段进行解密的

3.3 意外情景问题

在理论上,智能合约有利的一面是将使金融机构更加乐意接受穷人带来的风险,再也不用担心穷人还不清贷款。对穷人是非常不利的

  • 也就是看似公平的背后,可能会对某一方造成不利(当某一方本身处于劣势的时候),因为很多时候穷人不是不愿意还,而是没钱

4. 人们概念的误解

  1. 智能合约与协议合同一样
    • 能合约能够让违反协议的一方付出昂贵代价,是通过数字形式掌控现实世界的资产。更加自动化
  2. 智能合约具有法律效力
    • 目前并不能等同于法律,但是它可以代表法律协议的一部分。其实就是现在还没有完善
    • 可以用作审计、追踪,用来证明法定协议的条款是否可以被执行
  3. 智能合约包括人工智能
    • 实际上是运行在区块链上的软件代码,由一些外部数据来触发智能合约,外部数据的接收、判断并非人工智能可以实现。与人工智能有本质的区别
  4. 智能合约只能为高水平软件开发者所用
    • 厂商和大佬们的优化使得门槛越来越低,通过调用能够轻松使用
  5. 智能合约存在应用程序限定
    • 并不会随应用程序的限制,它是一个承诺,任何程序都可以成为其中的参与者。

参考文章

  1. 1997年智能合约的鼻祖 The Idea of Smart Contracts -简化版
  1. 解码区块链
  1. 区块链1.0到3.0进化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值