智能合约与可编程性
智能合约
智能合约是一段存放在区块链上的小程序,每当有人调用它,它都会严格按照写好的方式运行。别被名字误导:它不是法律文件,也没有律师参与;把它想成一台用代码做成的自动售货机更贴切。自动售货机内置了规则(「投入这么多钱,取走那件商品」),并自己执行,不需要店主。智能合约对数字约定也是如此:它保管着规则和资金,一旦满足约定条件,就自动放出或转移它们。它要解决的问题,正是「不得不信任某个中间人会兑现承诺」。
由于合约的代码以及它做过的一切记录都存在区块链上,每个参与者都能事先读到规则,并核实它是否诚实地运行过。一旦部署,合约通常无法被悄悄改动,所以它会一直做它当初声明要做的事。人们通过发送交易来调用它的功能;网络运行这段代码,更新所保存的余额和数据,并把结果记录下来供所有人查看。许多合约还能相互调用,于是简单的部件像小程序拼成更大服务那样,组合成更庞大的系统。
智能合约的重要之处在于,它让互不相识的人无需依赖居中的可信权威就能合作。它驱动着借贷池、交易所、数字收藏品、投票,以及按公开规则(而非某家公司的承诺)来托管和支付资金的担保。代价是:代码是最终的权威——如果其中含有错误,合约依然会忠实地照着这段有缺陷的逻辑执行,因此谨慎的设计与审查确实至关重要。
一份简单的担保合约会扣住买家的付款,只有在买家确认收货后才把钱放给卖家;如果在约定时间内双方都没确认,它就把钱退回。规则是公开的,并且自动执行,所以双方都不必指望对方会讲公道。
大多数智能合约在部署后无法更改,因此其中的漏洞通常不能像普通软件那样直接打补丁修复。
又称
另见