Ethereum开发笔记1-0: 智能合约

分类: ETHEREUM 发布于:

交易(Transaction)是人类社会迈向文明的最重要的一步。以前都是靠抢的。

智能合约的产生背景

Blockchain最重要的、最基础的两个特征

1) 数据不可变(Immutable)

旧的、已经验证过的区块是不可修改的。

2) 在一个分布式网络(P2P)中运行一个共识协议(consensus protocol)

  • 拜占庭(Byzantine agreement) 一致算法

  • POW

  • POS

  • RAFT

作为一种分布式数据库,它包含了2中独有的特征:

  • 通过共识算法验证区块的过程,它不依赖于任何第三方。

  • 参与共识的各方彼此不需互相依赖。

智能合约基于上面两个特征之上。

合约的提出

作者 Nick Szabo

http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html

Nick把Smart Contract定义为

一组数字形式的承诺(可执行),以及协议方为执行承诺所达成的协议。

简单理解,

智能合约是可用代码描述的、运行在区块链之上的交易过程。

智能合约最重要的特征

本质上”合约”是部署在区块链上的一段代码或者脚本

1) 合约必须强制地、正确地被执行(enforced)。

因为合约运行在各个分布式的Peer之中,自然避免了对第三方的依赖和参与。

当条件满足时,合约自动执行。

2) 交易执行原子化(All or Nothing)。

合约内容的执行,要么全部成功,要么全部失败。

3) 交易历史可审计(auditable)

所以数据必须存储在链上(不依赖于Off Chain的数据)

传统合约和智能合约的对比
  传统合约(tracditional) 智能合约(smart contract)
合约表述方式 自然语言 + 法律术语 代码(code)
身份标识 署名 密码学数字签名
争端解决方式 法院,律师 分布式平台投票
合约的托管方式 第三方 区块链内