区块链芝士 | 什么是智能合约?
早在20世纪90年代Nick Szabo就首次描述了智能合约的概念。当时,他对智能合约定义为:能够将协议与用户界面相结合的一种工具,从而对计算机网络进行规范化和安全加固。Szabo还探讨了涉及到合同协议等各个领域中,智能合约的潜在用途,例如信用体系、支付流程和版权管理。
在加密货币领域,我们将智能合约定义为在区块链上运行的应用或程序。通常情况下,它们为一组具有特定规则的数字化协议,且该协议能够被强制执行。这些规则由计算机源代码预先定义,所有网络节点会复制和执行这些计算机源码。
实质上,区块链智能合约支持创建无需信任的协议。这意味着执行合约的双方可以通过区块链做出承诺,而无需相互了解或相互信任。合约内容经双方确认后,如果没达到触发条件,合约将不会被执行。除此之外,使用智能合约可以消除对中介的需求,从而显著降低运营成本。值得注意的是,每个区块链网络可能会提供完全不同的智能合约。
智能合约是如何运行的?
简单来说,智能合约就是一个确定性的计划。当满足某些条件时,它则执行特定任务。因此,智能合约系统通常遵循“if ... then ...”的条件语句。但是,即便智能合约成为一种主流的技术,但智能合约既不是法定的也不是智能化的,它们只是在分布式系统(区块链)上运行的一段代码。
在以太坊网络上,当用户(地址)在区块链网络中进行交易时,智能合约负责执行和管理这类操作。而非智能合约管理的地址都称为外部帐户(EOA)。因此,智能合约由计算机源代码控制,EOA由用户自己控制。
基本上,以太坊智能合约通常由合约代码和两个公钥组成。一个公钥是合约创建者所提供的公钥,另一个公钥由合约自身创建,用于充当每个智能合约独有的数字标识。
任何智能合约的部署都是通过区块链交易进行的,只有在EOA(或其他智能合约)调用时才能被激活。但是,智能合约首次触发是由EOA(用户)引起的。