什么是智能合约?
导语
20世纪90年代,Nick Szabo首次提出了智能合同的概念。当时,他将智能合同定义为规范和确保计算机网络安全的工具,将协议与用户界面相结合。
Szabo讨论了将智能合同应用于合同协议相关领域的潜在用途,如信用系统、支付流程和内容版权管理。
区块链智能合同支持创建去信任协议。这意味着合同双方在不相互理解或信任的情况下,通过区块链做出承诺。双方决定,如果不符合条件,合同将不予执行。此外,智能合同的使用不再需要中间机构,从而显著降低了运营成本。
本文将重点介绍以太坊虚拟机的运行(EVM)以太坊虚拟机是以太坊区块链的重要组成部分。
如何运行智能合约?
简单地说,智能合同是一个确定性程序,在满足某些条件时执行特定的任务。因此,智能合同系统通常遵循“如果……”的条件陈述。虽然“智能合同”的概念已经广为人知,但它既不是法定合同,也不是智能合同。它们只是区块链分布式系统中运行的代码。
在以太坊网络中,智能合约负责区块链操作,以执行和管理用户(地址)相互交互。智能合同以外的地址称为“外部账户”(EOA)因此,智能合约由计算机代码控制,而外部账户(EOA)由用户控制。
以太坊智能合同基本上由合同代码和两个公钥组成。第一个公钥由合同创建者提供,另一个公钥是合同本身,作为每个智能合同的唯一数字标识符。
所有的智能合同部署都是通过区块链交易进行的,只有在外部账户中(EOA)或者只有在调用其他智能合约时才会激活。然而,智能合约通常由外部账户组成。(EOA),也就是说,用户首次触发。
关键特性
以太坊智能合约具有以下共同特点:
分布式。智能合约在以太坊网络的所有节点中复制和分布。这与基于集中服务器的其他解决方案完全不同。
确定性。在满足要求时,智能合约只执行预设计操作。而且,无论谁执行,结果都是一致的。
自主性。与“自执行”程序相比,智能合同将自动完成各种任务。在大多数情况下,未触发的智能合同保持“休眠”,不会执行任何操作。
不变性。智能合约部署后无法更改。智能合约只有在实现特定功能后才能“删除”。因此,我们不妨说,智能合约提供防篡改代码。
去信任。双方可以通过智能合约交互,而无需相互理解或信任。此外,区块链技术将确保数据准确。
透明度。智能合同的基础是公共区块链,所以源代码不仅可以篡改,而且对所有人都是公开透明的。
智能合同可以更改或删除吗?
以太坊智能合约一旦部署,就不能添加新的函数。然而,只要合同创建者在代码中保留了“SELFDESTRUCT“函数,在该函数之后,可以“删除”智能合约,并用新合约代替。如果该函数未在代码中保留,则不能删除智能合约。
值得注意的是,通过所谓的可升级智能合同,开发人员可以更灵活地操作合同的不变性。创建可升级智能合同的方法有很多,每个合同都有不同的复杂性。
举个简单的例子,假设一个智能合同被分为多个较小的合同。有些部分是不可变的,而其他部分则使用“删除”函数。换句话说,一些代码(智能合同)可以被删除和替换,而其他功能保持不变。
优势和用例
智能合约作为一种高度可定制的可编程代码,具有多种设计方法,提供丰富多样的服务和解决方案。
智能合约作为一种分散化和自执行程序,可以提高透明度,降低运营成本。智能合约还可以提高实施效率,降低繁琐的成本。
智能合约特别实用,涉及双方或多方的资金转账或交易。
ERC-20
局限
智能合同由手动编写的计算机代码组成。代码会有缺陷和漏洞,会带来很多风险。理想情况下,智能合同应由经验丰富的程序员编写和部署,尤其是在涉及敏感信息和巨额资金时。
此外,一些人认为集中系统可以提供绝大多数的智能合同解决方案和功能。主要区别在于,智能合约在分布式P2P网络中运行,而不是集中式服务器。此外,智能合约是基于区块链系统的,因此通常不会被篡改或难以更改。
智能合约具有明显的不变性优势,但在某些情况下却适得其反。例如,分散的自治组织“The DAO”2016年遭到黑客攻击,数百万以太币(ETH)原因是智能合约代码存在缺陷。
需要注意的是,这个问题不是以太坊区块链造成的,而是智能合同执行不当造成的。
智能合约的另一个局限性与其不明确的法律效力有关。智能合约在大多数国家都处于灰色地带,不适用于当前的法律框架。
例如,许多合同要求交易双方通过适当的实名认证,年龄超过18岁。然而,区块链技术是匿名的,缺乏中间机构将与合同要求相冲突。未来可能会出现解决这个问题的方案。然而,在无国界的分布式网络中运行智能合约是非常困难的。
弊端
一些区块链爱好者将智能合同视为即将取代大多数现有商业和官僚机构的自主解决方案。虽然这个想法可能会实现,但要成为常态还有很长的路要走。
智能合约确实是一项有趣的技术。然而,分布式、确定性、透明度和不变性有时会降低智能合约的吸引力。
智能合同的本质缺点是它不能很好地解决许多实际问题。事实上,一些机构使用传统的服务器解决方案是权宜之计。
与智能合同相比,集中式服务器更容易维护,成本更低,在速度和跨网络通信(互操作)方面往往具有很大的优势。