介绍

智能合约最初由 Nick Szabo 在 20 世纪 90 年代描述。他将智能合约定义为一种通过将协议与用户界面相结合来形式化和保护计算机网络的工具。

萨博研究了智能合约在各个领域的使用,例如合同协议、信用系统、支付处理和内容所有权。

在加密货币的世界中,智慧合约是在区块链上运行的应用程式。它充当由一组规则支援的数位协定。这些规则由电脑程式码决定,并由网路上的所有节点复制和处理。

智能合约可让您建立不需要信任的协定。这意味著双方可以透过区块链进行交互,而不必相互信任。该过程的参与者可以确信,不遵守合约条款将导致合约被取消。此外,智能合约的使用消除了对中介机构的需求,显著降低了交易成本。

尽管比特币协议多年来一直支持智能合约,但它们的受欢迎程度要归功于以太坊的创建者和联合创始人 Vitalik Buterin。此外,每个区块链都可以使用自己的方式来实现智能合约。

本文的重点是在以太坊虚拟机器(EVM)上运行的智慧合约,它是以太坊区块链的关键部分。


怎么运作的?

简而言之,智能合约的工作原理就像一个确定性程序。当满足指定条件时,它会执行某些操作。基于此,智能合约系统常使用「if...then...」的表达方式。尽管有普遍接受的术语,智能合约既不是法律意义上的合约,也不是「智能」。这些只是在分散式系统(在区块链上)上运行的程式码片段。

在以太坊网路上,智能合约负责执行用户(地址)之间的交易。任何非智能合约的地址都称为个人帐户(EOA)。因此,智慧合约由程式码管理,个人帐户由使用者管理。

本质上,以太坊智能合约由合约程式码(包含执行条件)和两个公钥组成。第一个公钥由合约创建者提供。另一个密钥代表合约本身,是每个智能合约唯一的数字识别码。

任何智能合约的执行都发生在区块链交易期间,并且可以在由个人帐户(或另一个智能合约)启动时启动。然而,智慧合约序列始终是从个人帐户(即使用者)启动的。


主要特征

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

分配。智慧合约在以太坊网路的所有节点上复制和分布。这是它们与使用集中式伺服器的其他解决方案的主要区别之一。

决定论。当满足指定要求时,智能合约执行其设计执行的操作。此外,无论谁完成要求,结果总是相同的。

自治。智能合约可以自动执行各种任务,作为自动执行的程式运行。在大多数情况下,如果智能合约没有启动,它就处于「休眠」状态,不执行任何操作。

不变性。智能合约开发并启动后,您无法变更其流程。仅当开发人员之前已实现特定功能时才能进行更改。因此,我们可以说智能合约可以透过真实性证明来提供对程式码骇客攻击的保护。

个性化。智慧合约可以透过多种方式进行编码,例如创建不同类型的去中心化应用程式(DApp)。这是因为以太坊被设计为图灵完整的。

缺乏信任。两方或多方可以使用智能合约进行交互,而无需相互了解或信任。此外,区块链技术确保所有数据都是准确且可解释的。

透明度。由于智能合约是基于公共区块链,因此每个人都可以使用其原始码。


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

一旦智能合约激活,以太坊用户就无法添加新功能。然而,如果开发人员在合约程式码中包含一个名为 SELFDESTRUCT 的函数,他可以稍后将其删除并用新函数替换。如果没有这个功能,就无法删除智能合约。

值得注意的是,所谓的可升级智慧合约为开发人员提供了程式码变更的存取权限,从而与不可变合约相比提供了更大的灵活性。创建此类复杂程度不同的智能合约的方法有很多。

让我们来看一个简单的例子。我们想像一下,一个智能合约被分成了几个小合约。其中一些无法更改,而另一些则可以透过上述功能删除。这意味著部分程式码(一定数量的智慧合约)可以被删除并替换为其他程式码,而其余功能保持不变。


优点和用例

由于智能合约是可程式码,因此具有高度可自订性,并且可以透过多种方式进行开发,从而提供不同类型的服务和解决方案。

作为一种去中心化和自我执行的程序,智慧合约可以提高透明度并降低营运成本。根据业务范围,它们还可以提高效率并降低官僚成本。

当涉及两方或多方之间的资金转移或资金交换时,智能合约的好处尤其明显。

换句话说,智能合约可以设计成适合各种用例,包括创建代币化资产、投票系统、加密钱包、去中心化交易所、游戏和行动应用程式。它们还可以与医疗保健、慈善事业、供应链、治理和去中心化金融(DeFi)领域的其他区块链解决方案一起部署。


ERC-20

以太坊区块链上发行的代币符合 ERC-20 标准,该标准描述了其主要功能。它们通常被称为 ERC-20 代币,构成了现有加密货币的大部分。

许多公司和新创公司正在开发智能合约,以在以太坊网路上发行自己的数位代币。一旦发行,大多数人都会透过首次代币发行(ICO)来分发 ERC-20 代币。智能合约使您能够可靠、有效率地交换和分配资金。


缺陷

智能合约由人们编写的电脑程式码组成。这会导致许多风险,因为程式码容易出现漏洞和错误。理想情况下,开发应该由经验丰富的程式设计师进行,特别是当涉及机密资讯或大量资金时。

人们相信中心化系统可以提供智慧合约的大部分解决方案和功能。主要区别在于智慧合约在分散式点对点 P2P 网路上执行,而不是在集中式伺服器上执行。由于智能合约是基于区块链,因此它们通常是不可变的或太复杂而无法进行更改。

有时不变性很有用,但并非总是如此。例如,2016年,骇客入侵了去中心化自治组织The DAO,并利用智慧合约程式码中的漏洞窃取了数百万美元的以太币(ETH)。

由于 DAO 的智能合约是不可变的,因此开发人员无法修复程式码。这最终导致了硬分叉和第二个以太坊链的出现。简而言之,一条链逆转了骇客攻击,并将资金返还给合法所有者(该炼是当前以太坊区块链的一部分),而另一条链则没有对骇客攻击做出反应,因为区块链中的事件永远不应该被泄漏。

需要注意的是,该问题并不是由于以太坊区块链的运作而出现的。相反,该错误是由智能合约的错误执行引起的。

智能合约的另一个缺点与其法律地位的不确定性有关。这不仅是因为在大多数国家,这项技术处于“灰色地带”,还因为智能合约不符合其当前的监管框架。

例如,许多协议和合约的主要要求是参与者的严格身分和18岁的年龄。区块链技术提供的匿名性,加上没有中介机构,可能会成为遵守此类要求的障碍。虽然这个问题有潜在的解决方案,但智慧合约的法律方面是一个主要问题,特别是在涉及全球规模和分散式网路时。


批评

一些区块链爱好者将智慧合约视为一种解决方案,可以取代和自动化大部分现有的商业和官僚系统。虽然这是可以实现的,但智能合约远未成为该领域的常态。

智能合约无疑是一项有趣的技术。但其分布式和确定性的性质,以及其透明性和部分不变性,使其在某些情况下的使用吸引力降低。

本质上,所有批评都基于这样一个事实:智能合约并不是解决许多现实问题的合适解决方案。事实上,对于某些组织来说,使用传统的替代伺服器更容易、更好。

与智慧合约相比,中心化伺服器的维护更容易、更便宜。此外,它们还可以在速度和与其他网路的互通性方面提供更高的效率。


概括

毫无疑问,智能合约对加密货币世界产生了巨大影响,也彻底改变了区块链技术领域。由于最终用户可能不会直接与智能合约交互,因此它们可能成为未来从金融服务到供应链管理等广泛应用的基础。

智慧合约和区块链的综合潜力可以对社会的几乎所有领域产生重大影响。但只有时间才能证明这些创新技术是否能克服广泛采用的障碍。