以太坊:智能合约如何运作?

智能合约是使以太坊如此成功的主要特征。 

什么是智能合约以及它们的用途

比特币协议没有提供以下可能性 创建真正复杂的智能合约,因为它基本上只是为了启用事务而设计的。 

相比之下,比比特币晚 6 年诞生的以太坊从一开始就被设计成基本上是一个能够 托管和执行智能合约

2014年,以太坊联合创始人 Vitalik Buterin 明确写在 白皮书 他设计的网络是一个 基于智能合约的下一代平台并且基于区块链技术的比特币替代应用还包括使用数字资产来代表定制货币和金融工具、不可替代资产和更复杂的应用。 

特别是后者,即智能合约,被定义为涉及通过执行任意规则的代码直接控制数字资产的应用程序,或基于区块链的去中心化自治组织,即所谓的 的DAO.  

维塔利克写道: 

“以太坊打算提供的是一个带有内置图灵完备编程语言的区块链,可用于创建可用于编码任意状态转换函数的‘合约’,允许用户创建上述任何系统——以及我们还没有想象到的许多其他东西——只需用几行代码编写逻辑”。

因此,以太坊上的智能合约是代码行,通过它可以 编程指令的自动执行 通过网络, 当满足某些条件时,而不必将其执行委托给中间人。

事实上,Buterin 自己将“合同”一词放在引号中,因为它们不是当事人之间的真实合同,而是 由分散执行的计算机程序 网络。 

因此,从一般的角度来看,它们的操作并不是很复杂。 

聪明的合同
一旦其中包含的条件得到验证,就会执行智能合约

在以太坊区块链上部署智能合约

首先,一个或多个开发人员显然必须通过编写适当的代码行来创建智能合约,然后他们必须 将其发送到以太坊网络。 

从技术上讲,在以太坊区块链上发布它意味着让网络中的所有节点都接收并执行它。 一旦发布,其中的所有指令将始终由所有节点以完全相同的方式执行。 

因此,不仅出版,而且 指令的执行是不可逆的 一旦发布在区块链上。 

因此,真正重要的是它包含的说明——可能是最多样化的——以及有多少人使用它。 事实上,为了让智能合约的指令真正被执行,必须有 一个或多个调用它们的事务

还值得记住的是,这些指令通常涉及资源的使用,例如数据或令牌,因此要真正执行它们, 必须满足所有必要的条件。 

有时这些数据来自外部,这要归功于所谓的预言机,而有时它只是来自区块链上的交易。 

通常,触发执行包含在智能合约中的指令的交易 涉及支付 以 ETH 计费,并且在许多情况下,为了实际触发执行还涉及支付或发送特定于智能合约本身或其他智能合约的代币。 

从技术上讲,智能合约是一种账户类型 燕窝块,由网络而不是中央实体“控制”。 他们可以存储 ETH 或代币,也可以 自动在网络上发送交易。

如何与代码交互,更一般地与 dApp 交互

用户可以通过发送交易与智能合约进行交互 触发在其代码中定义的功能之一。 

因此,以太坊上智能合约的运作一般很简单:只需将某种类型的交易发送给智能合约,这将触发节点执行智能合约调用的函数中包含的所有指令。交易本身。 

显然,根据调用的函数中包含哪些指令,可以产生非常不同的结果,不仅因智能合约而异,而且因函数而异。 

因此,智能合约的巨大复杂性正是源于单个智能合约所做的事情,而不是通常源于以太坊网络支持和执行它们的事实。 此外,绝对不可能列出网络上所有类型的智能合约实际上是如何工作的。 


资料来源:https://en.cryptonomist.ch/2022/06/11/ethereum-smart-contracts-3/