什么是智能合约?

分享
Copied to clipboard!
什么是智能合约?

早在20世纪90年代Nick Szabo就首次描述了智能合约的概念。当时,他对智能合约定义为:将协议与用户界面相结合的一种工具,从而对计算机网络进行规范化和安全加固。Szabo还探讨了涉及到合同协议等各个领域中,智能合约的潜在用途,例如信用体系、支付流程和版权管理。

在加密货币领域,我们将智能合约定义为在区块链上运行的应用或程序。通常情况下,它们为一组具有特定规则的数字化协议,且该协议能够被强制执行。这些规则由计算机源代码预先定义,所有网络节点会复制和执行这些计算机源码。

实质上,区块链智能合约支持创建无需信任的协议。这意味着执行合约的双方可以通过区块链做出承诺,而无需相互了解或取得相互信任。合约内容经双方确认后,如果没达到触发条件,合约将不会被执行。除此之外,使用智能合约可以消除对中介的需求,从而显著降低运营成本。

多年来,虽然比特币协议也一直支持智能合约,但智能合约却经以太坊联合创始人Vitalik Buterin之手,从而大受欢迎。但值得注意的是,每个区块链网络可能会提供完全不同的智能合约。 

本文将重点介绍在以太坊虚拟机(EV)上运行的智能合约,这也是以太坊区块链的重要组成部分。


智能合约是如何运行的?

简单来说,智能合约就是一个确定性的计划。当满足某些条件时,它则执行特定任务。因此,智能合约系统通常遵循“if ... then ...”语句。但是,即便智能合约成为一种主流的技术,但智能合约既不是法定的也不是智能化的。它们只是在分布式系统(区块链)上运行的一段代码。

在以太坊网络上,当用户(地址)在区块链网络中进行交易时,智能合约负责执行和管理这类操作。而非智能合约管理的地址都称为外部帐户(EOA)。因此,智能合约由计算机源代码控制,EOA由用户自己控制。

基本上,以太坊智能合约通常由合约代码和两个公钥组成。第一个公钥是合约创建者所提供的公钥。另一个公钥由合约自身创建,用于充当每个智能合约独有的数字标识。

任何智能合约的部署都是通过区块链交易进行的,只有在EOA(或其他智能合约)调用时才能激活。但是,智能合约首次触发是由EOA(用户)引起。


主要特征

以太坊智能合约通常具有以下特征:

分布式。智能合约在以太坊网络的所有节点中被复制和分发。这种方式与基于中心化服务器的其他解决方案区别显著。

一致性。在满足要求的情况下,智能合约仅执行其预先设计的操作。而且,无论任何节点执行,结果都是一致的。

自动化。智能合约可以自动执行各种任务,就像自动执行程序一样。但是,在大多数情况下,如果未触发智能合约,它将保持“休眠”状态,并且不会执行任何操作。

不可篡改。智能合约一经部署,则无法更改。只有预先实现了特定功能,才能执行“删除”。因此,我们可以说智能合约可以提供防篡改程序。

定制化。在部署之前,智能合约可以通过多种不同方式进行编码。因此,它们可用于创建许多不同的分布式应用程序(DApps)。这与以太坊具备图灵完备的区块链特征相关。

无需信任。两方或多方可以通过智能合约进行互动,而无需相互了解或取得信任。此外,区块链技术可确保数据准确无误。

透明性。由于智能合约基于公有区块链,因此其源代码不仅是不可变的,而且对任何人都是透明的。


智能合约可以被更改或删除吗?

以太坊智能合约一经部署,则无法再继续添加新功能。但是,如果其合约创建者在代码中预留了名为SELFDESTRUCT的函数,那么将来可以“删除”智能合约,也可以用新的合约替换它。如果未在合约代码中预留该函数,则它们将无法被删除。

值得注意的是,所谓的可升级智能合约支持开发人员在不可篡改方面拥有更大的灵活性。有许多方法可以创建可升级的智能合约,每个合约都可具有不同程度的复杂性。

举一个简单的例子,我们假设将智能合约分为多个较小的合约。其中一些被设计为不可变更的,而另一些则启用了“删除”功能。这意味着可以删除和替换部分代码(智能合约),而其他功能保持不变。


优势和相关案例

作为可编程代码,智能合约具有高度可定制化,可以通过多种不同方式进行设计,提供不同的服务和解决方案。

作为去中心化和自动执行的程序,智能合约可以提高透明度并降低运营成本。根据不同实施情况,他们还可以提高执行效率并减少商业运营费用。

智能合约在两方或多方间的转账或资金交易时尤为实用。

换句话说,智能合约可以针对各种应用案例进行设计。一些案例包括创建代币化资产、投票系统、加密钱包、分布式交易所、游戏和移动应用程序。它们还可以与其他区块链解决方案一起部署,这些解决方案涉及医疗保健慈善供应链政府治理分布式融资(DeFi)等领域。


ERC-20

在以太坊区块链上发布的代币遵循ERC-20的标准。该标准描述了所有基于以太坊代币的核心功能。因此,这些数字资产通常被称为ERC-20代币,它们占据了现有加密货币总量的很大一部分。

许多区块链公司和初创公司都部署了智能合约,以便在以太坊网络上发行数字代币。发行后,这些公司中的大多数通过初始代币供应(ICO)活动分发其ERC-20代币。在大多数情况下,智能合约能够让用户以信任和有效的方式交换资金和分配代币。


局限性

智能合约由人工编写的计算机代码组成。这也带来了许多风险,代码容易受到攻击和漏洞的影响。理想情况下,它们应由经验丰富的程序员编写和部署,特别是涉及敏感信息和大量资金时。

除此之外,有人认为集中式系统也可以提供智能合约的大部分解决方案和功能。主要区别在于智能合约在分布式点对点网络中运行,而不是运行在中心化服务器上。因为它们基于区块链系统,所以它们往往是不可篡改且很难变更的。

在某些情况下,智能合约的不可篡改性优势十足,但某些情况下却很糟糕。例如,由于其智能合约代码存在缺陷,名为“The DAO”的分布式自治组织(DAO)在2016年被黑客攻击时,损失高达数百万以太币(ETH)。

由于他们的智能合约是不可变更的,开发人员无法修复代码。这最终导致出现了硬分叉,诞生了第二个以太坊链。简而言之,一条链“回退”了黑客的非法加以,并将资金返还给了合法的所有者(这是当前以太坊区块链的一部分)。而另一条链决定不干涉黑客,坚持区块链上发生的事情永远不可改变(这个链现在称为以太坊经典)。

需要注意的是,造成该问题并不是以太坊区块链的原因。它是由智能合约的错误实施所引发的。

智能合约的另一个限制与其不确定的法律地位有关。智能合约在大多数国家仍处于灰色地带,且不适应当前的法律监管框架。

例如,许多合约都要求交易双方彼此实名认证且具超过18岁。但区块链技术提供的匿名性,加上缺乏中间人,可能会影响这些要求。虽然有潜在的解决方案,但目前看,智能合约的法律可执行性是一项真正的挑战,尤其是在没有边际的分布式网络中。


批判

一些区块链爱好者将智能合约视为一种解决方案,并认为其将以自动化的方式取代我们现有的商业和政府体系。虽然这个想法有可能实现,但实现起来还有很多路要走。

不可否认智能合约是一项非常趣的技术。但是,在某些情况下,分布式、确定性、透明性和不可篡改会降低它的吸引力。

从本质上讲,批判来源于那些智能合约无法解决的现实问题。实际上,某些机构当前最好还是使用传统的基于服务器的替代方案。

与智能合约相比,中心化服务器的维护更为容易,成本更低,并且在速度和跨网络通信(互操作性)方面往往具有更大的优势。


总结

毫无疑问,智能合约对加密货币界产生了深远影响,它的确可以彻底改变区块链领域。虽然终端用户不会直接与智能合约进行交互,但在不远的未来,会有更为广泛的应用范围,涉及金融服务到供应链管理各个领域。

智能合约和区块链会共同颠覆我们社会中几乎所有领域。但只有时间才能证明这项突破性技术是否足够强大,能够克服大规模推广的诸多壁垒。

Loading