以太坊智能合约是怎样运行的
扫描二维码
随时随地手机看文章
像区块链行业的很多概念一样,“智能合约”(Smart Contract)是一个让人困惑的词汇。作为一项由公有区块链赋能的技术,智能合约因其名称在一定程度上未能准确描述其核心的互动特性而使人难以理解。
虽然标准合约概述了关系条款(通常由法律强制执行),但智能合约使用区块链技术代码强制执行关系。换言之,智能合约就是完全按照创建者的设定而执行的程序。
1993 年,计算机学家、密码学家尼克·萨博(Nick Szabo)提出了 “智能合约” 这一概念,他将其比作一种数字化的自动贩售机。在其知名的例子中,他描述了用户如何通过输入数据与数值,从机器中接收物品的例子(在这个例子中,这些物品是指现实世界中的小吃或者软饮)。
举一个简单的例子,以太坊用户可以使用智能合约在特定的日期向其朋友发送 10 枚以太币(ETH)。在这一案例中,用户会创建一个合约,并向其中存入数据,以使其能够执行用户想要的命令。
以太坊是专门为创建智能合约而构建的平台。
但这些新的工具并非孤立使用。它们可以被用来构建去中心化应用(DApp),甚至是完全去中心化自治组织(DAO)的模块。
智能合约的工作原理
值得注意的是,就比特币网络支持 “从一个人到另一个人的价值转移” 的意义而言,它是首个支持基本智能合约的加密货币。比特币节点仅在满足某些条件的情况下才会验证交易。但比特币仅限于作为货币使用。
而以太坊以一种允许开发者编写的程序语言取代了比特币限制性更强的语言(一百多个脚本的脚本语言)。
以太坊允许开发者编写其自己的智能合约,或者如以太坊白皮书所称的那样 — — 自动化代理(autonomous agents)。该语言具有 “图灵完备”(Turing-complete)性,这意味着它支持更为宽泛的计算指令。智能合约可以:
· 以 “多签名”(multi-signature)账户运行,因此只有在达到要求比例的人数同意时,相关资金才可被花掉;
· 管理用户间的协议,例如,一用户从另一用户手中购买保险;
· 为其他合约提供实用程序(类似于软件库的工作方式);
· 存储一个应用的信息,如域名注册信息或者会员记录。
数字的力量
根据最后一点推断,一个 “智能合约” 可能需要其他 “智能合约“ 的帮助。
当有人对炎热夏日温度进行简单预测时,其可能触发一系列合约。一份合约会使用外部数据来判别天气,另一份合约可能会在相关条件满足后,基于其所接收到的第一份合约的信息,来决定如何下注。
运行每份合约需要以太币交易费用,其数额取决于所需算力的大小。
如我们在 “How Ethereum Works” 一文中所阐释的,当用户或者另一份智能合约消耗足够的交易费用向其发送信息时,以太坊会运行智能合约。然后以太坊虚拟机以 “字节码” 或一系列可以被网络读取和解释的 “0” 和 “1” 来执行智能合约。
来源: CoinDesk中文