智能合约(英语:Smart contract )是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。

“智能合约”最初的概念是由计算机科学家、加密专家尼克萨博在1993年就提出来了。1994年他的著作《智能合约》,算是智能合约的雏形。在《智能合约》中,尼克萨博举了一个自动售货机的例子,来定义智能合约:“智能合约超越了自动售货机中潜入各种有价属性的范畴,通过数字方式控制合约。智能合约涉及到动弹性、频繁制动执行属性,能够提供更好的观察和验证点,其中主动积极的措施必须足够准确,丝毫不差。”

智能合约是一个很容易引起争议的概念,甚至 Vitalik 也曾经说过后悔是用smart contract(智能合约)这个名字,不如当初叫“persistent scripts”。大概意思就是这就是一段程序脚本,哪里智能了,应该改成自动合约,这跟智能没有一毛钱关系。
两个球队比赛,我赌A队赢,你赌B队赢。都怕双方互相反悔,所以找来了小明,一起把赌注交给小明,让他当监管者。比赛结束后,我赢了,于是去找小明拿赌注,结果发现小明趁我们看比赛,拿着钱跑了。那如果有智能合约是什么样子的呢?我和你写了一个合约(程序),双方的钱包都写进去,然后A赢了,你给我打钱;B赢了,我给你打钱,把这个发到区块链的分布式网络去,不可撤销也不可篡改。等比赛结果出来,合约执行,赢的人拿到钱,很完美,很赞但我们疏忽了一个点,这个比赛的结果是哪里来的???第三方权威地址给的结果
由于图灵机的特性,程序执行结果的确定性很容易保证,关键就是如何防作弊,怎么证明程序执行出的结果是没有被篡改的?有人会讲,预言机可以解决这个问题。
那假如在区块链体系的租房APP上,租客和房东达成了租赁协议,写了一个智能合约。在退房的时候,如果租客弄坏了小米的电视,就需要按退房当天小米官方的原价赔偿。退房那天,租客在APP上进行退房。APP对客厅的电视进行检查是否损坏,结果电视损坏了。智能合约中的赔偿条款就被触发了,但正逢双十二,小米天猫旗舰店正在做活动,比小米商城便宜200元。那这个时候,智能合约赔偿金额要以哪个价格为标准?所以说,程序执行结果的可信性,取决于控制程序执行硬件的组织或者个人的可信性。当前软件系统,比如银行或者互联网应用,用户只能以信任组织的方式来信任程序运行结果,也就是说约束力是单方的,最终用户受到程序约束,但服务提供方几乎不受程序约束。用户如果对结果有异议,只能诉诸其他手段,比如司法,或者如前段时间某交易所用户去公司门口拉横幅抗议。
如何去除这种信任依赖?同时实现双方的约束?这个时候可以参考司法体系(一审、二审、三审等等机制)。计算机程序上重复验证的成本比起司法体系低了很多,所以可以进行大规模重复验证。单有验证能力,并不能产生约束力,还缺少强制执行的能力,如果双方争议,那就可以直接由程序来操作,来保证验证能力和执行能力Code is law,代码既法律。智能合约是想通过通过代码构建出一套约束力体系,用代码来描述这种规则(law),并执行。或许Law is Code,法律既代码,更适合智能合约。
拙见Orz

智能合约到底是什么?_java

嗨,你还在看吗?