【链路头条】链路课堂 智能合约(以太坊)

来源:链路财经 作者:链路财经 10-18 10:00

区块链基本理论可以简单区分为两种,一种是基于比特币底层技术衍生的区块链技术理论,而另一种是区块链技术理论衍生出的以太坊底层架构智能合约理论。
djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

 djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

智能合约djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么


djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

“智能合约”(smart contract)这个术语至少可以追溯到1995年,是由“智能合约之父”、跨领域法律学者尼克·萨博(Nick Szabo)提出来的。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

当时,尼克·萨博在自己网站的几篇原创文章中提到了智能合约的理念。他的定义是:“一个智能合约是一套以数字形式定义的承诺(promises) ,包括合约参与方可以在上面执行这些承诺的协议。”djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

由此可以看出,智能合约的关键点首先是承诺,一切参与方式和形式定义都是以完成和执行承诺为目的进行的。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么


djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

承诺djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么


djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

一套承诺指的是合约参与双方或多方同意的、签订后生效的(经常是相互的)权利和义务说明。承诺定义了整个合约的本质和目的。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

以最简单的货到付款的销售合约为典型例子,卖家承诺发送货物,并给出货物价格,买家承诺收到货物之后支付合理的货款,有了双方都同意的承诺和完成承诺时必要的操作和规则,合约才得以成立。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么


djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

数字形式(代码形式)djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么


djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

当然,在尼克·萨博对智能合约的阐述中,直接翻译成数字形式并非十分符合原文的意思,称之为代码形式或许更为贴切。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

智能合约的代码形式意味着合约需要写入计算机可读的代码中,在智能合约中这一点是必须的,因为只要参与方达成协定,确定好智能合约建立的权利和义务,最终的监管和合约条件确认,是由原本就设计好的程序来完成的。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

由此可见智能合约其实并不是特别智能,也不是严格意义上的合约。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么


djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

区块链中的智能合约djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么


djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

从区块应用的普通用户角度来讲,智能合约通常被理解为是一个自动担保账户,例如,当特定条件满足时,程序就会释放和转移资金。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

从技术角度来讲,智能合约也可以被认为是网络服务器,只是这些服务器并不是使用IP地址架设在互联网上,而是架设在区块链上。从而可以在其上面运行特定的合约程序(以太坊)。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

但区块链中的智能合约与传统互联网的网络服务器有着显著的差异,在区块链中,所有人都可以看到智能合约,因为这些智能合约的代码和状态都在区块链上(区块链公链通常是对用户公开的)。而且,传统互联网服务器需要依赖某个特定的硬件设备,比如某个实体服务器等等,如果被依赖的硬件出了问题,互联网服务器将无法完成工作。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

但在区块链上的智能合约不依赖某个单一的硬件设备。智能合约的代码会由所有参与挖矿的设备来执行——矿机!djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

单个硬件设备的损坏或不工作会影响其他矿机的挖矿难度,但只能合约的履行并不会停滞。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

智能合约可以理解为编程在区块链上的汇编语言,通常人们并不会自己写字节码,但是会从更高级的语言来编译它,例如用Solidity,与Javascript类似的专用语言。因此代码可以很容易与它进行交互,例如转移密码学货币和记录事件。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

举个例子:比如要组装一把刀,需要刀把和刀身,刀把需要伐木、修整、晾晒、削制,刀身需要采矿、冶炼、锻造、淬火、磨制。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

可以把获得刀把和刀身的一个个工序看作是一个个字节码,而高级语言就是刀把和刀身,而智能合约就是区块链上语言的汇编,组成一把刀,形成一个完整的闭环产品,具有完整的实用功能的程序。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么


djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

半完成合约djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么


djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

在传统互联网中,由于需要确认的环节过多,往往会出现合约半完成状态。比如在在证券购买交易中,证券所有者已经转移发送了证券,但是密码学证券的支付转移却失败了,最终导致的结果就是合约出现半完成状态,证券出售方已经发出证券,但证券数据无法到达接收方,交易也就无法完成,大多数这个时候需要人工确认继续完成合约。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

而在区块链智能合约中,交易要么成功执行,要么所有的状态变化都撤消(包括从当前失败的合约中已经送或接收的信息。)避免了合约半完成状态和部分执行的情况。在区块链生态环境中,智能合约的完全执行化尤为重要,因为没有办法来撤消执行错误所带来的不好的后果,合约一旦生成几乎无法逆转(比如比特币持有者之间互相转账,如果发生错误且对手不配合的话,根本没办法逆转交易)。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么


djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

天生残疾djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么


djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

智能合约无论从理论层面还是实际应用层面都还处在初级阶段,除了尼克·萨博的先进性观点之外尚未有任何实质进展。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

智能合约的实际应用阻碍最大的还是信任度的问题,由于系统都设计成了无需信任的环境,也同时意味着无法改正出现的错误。那么无论是黑客通过合约漏洞制造交易,还是用户操作失误,金钱和损失都几乎是无法挽回的。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

在现实生活中,银行转账如果遇到了黑客攻击和本身受到欺诈误操作转账等等这些事情都可以通过中心化的系统来撤消,试想如果是使用的去中心化的区块链系统,那么损失和风险则只能由用户本人承担了。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

例如,某交易所曾短暂出现系统故障,系统出现了错误的报价方式USD/ERU而不是EUR/USD让十多名投资人蒙受损失。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

智能合约的问题还在于,它的一切条款和规则都是在事前写好的,在发生故障和损失之前不会暴露任何问题,但一旦出现问题就无法挽回,这个缺陷让智能合约理念看起来像个天生的残疾,优点和缺点都同时集中在一点且同样突出。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么


djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

屠龙技djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么


djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

智能合约的缺点和优点都很明显,且都体现在分布式账本和信任建立的问题上。这个在中心化的互联网中能够轻易解决的问题却成了号称无需信任的智能合约的癌症。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

那么,智能合约到底是无需信任还是根本无信任呢?放下它建立在无需信任概念之上的无信任的合约达成方式,有一件事确定无疑:智能合约已经在缓慢发展并逐渐寻找更加适合的应用土壤。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

智能合约的理念是构筑真正的全球经济构件,使得任何人都可以接入到这一全球经济,不需要事前审查和高昂的预付成本。它从许多经济交易中,移除了对第三方的信任必要,把信任直接嫁接在代码本身上,使得交易双方能够通过代码完成一个完整的交易。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

但就如同基于比特币的区块链理念一样,以太坊的底层理念智能合约也同样有漫长的路要走。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

不过我认为,区块链技术和智能合约理念并不存在技术成熟与否,它们需要的只是一个适合实际应用场景,这或许是人类历史上第一次为屠龙技寻找恶龙的过程,或许很快、或许很漫长。djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么


djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

djuBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

链路财经
您想知道的区块链,都在这里
最新公开课