以太坊的智能合约是如何工作的?
与区块链行业的许多想法一样,一种普遍的困惑笼罩着“智能合约”。
智能合约是一种由公共区块链实现的新技术,它很难理解,因为这个术语在一定程度上混淆了所描述的核心交互。标准合同概括了一种关系的条款(通常是法律可以强制执行的),而智能合约则是用密码加密的一种关系。换句话说,智能合约是完全按照其创建者所设置的程序执行的程序。这个想法最初是在1993年构思出来的,由计算机科学家和密码学家Nick Szabo描述为一种数字自动售货机。 在他着名的例子中,他描述了用户如何输入数据或价值,并从机器接收有限的物品,在这种情况下物品可以是真实世界的零食或饮料。
一个简单的例子,以太坊用户可以使用智能合约在特定日期向朋友发送10个以太(请参阅我们的指南“以太是什么?”)。在这种情况下,用户将创建一个合约,并将数据推送到该合约,以便执行所需的命令。 以太坊是一个专门为创建智能合约而构建的平台。
但这些新工具并不打算单独使用。人们认为,它们还可以构成“去中心化应用程序”(参见:“Dapp是什么?”)甚至是整个去中心化自治公司(参见:“DAO是什么?”)的构建块。
智能合约如何运作?
值得注意的是,比特币是第一个支持基本智能合约的,因为网络可以将价值从一个人转移到另一个人。节点网络只有在满足某些条件时才会验证事务。但是,比特币受限于货币用例。
相比之下,以太坊则用一种允许开发者编写自己程序的语言取代了比特币的限制性更强的语言(一种包含100多个脚本的脚本语言)。以太坊允许开发人员编写自己的智能合约,或“自主代理”(以太坊白皮书这样称呼它们)。该语言是“图灵完备”的,这意味着它支持更广泛的计算指令集。
智能合约有以下功能:
- 作为“多重签名”账户,只有在一定比例的人同意的情况下才能使用资金。
- 管理用户之间的协议,例如,如果一方从另一方购买保险。
- 为其他合约提供实用程序(类似于软件库的工作方式)。
- 存储关于应用程序的信息,例如域名注册信息或成员记录。
数字的力量
根据上述最后一点推断,智能合约可能需要其他智能合约的帮助。
当有人在炎热的夏天对温度进行简单的下注时,可能会触发一系列合约。一份合同将使用外部数据来确定天气,另一份合同可以根据在满足条件时从第一份合同收到的信息来结算赌注。
运行每个合同需要以太交易费,这取决于所需的计算能力。正如我们的指南“以太坊如何运作”中所解释的那样,当用户或其他合同向其发送具有足够交易费用的消息时,以太坊会运行智能合约代码。然后,以太坊虚拟机以“字节码”或一系列可由网络读取和解释的"1"和"0"执行智能合约。
文章原地址: https://www.coindesk.com/information/ethereum-smart-contracts-work
- 【附代码】如何在私有链上编写、部署与以太坊进行交互的智能合约
- 如何打造安全的以太坊智能合约
- 如何打造安全的以太坊智能合约
- 如何通过以太坊智能合约来进行众筹(ICO)
- php程序员如何开发区块链、以太坊、智能合约的教程
- 如何通过以太坊智能合约来进行众筹(ICO)
- 如何通过以太坊智能合约来进行众筹(ICO)
- python如何使用web3py与以太坊投资智能合约交互
- 如何通过以太坊智能合约来进行众筹(ICO)
- 【附代码】如何在私有链上编写、部署与以太坊进行交互的智能合约
- 如何在私有区块链上编写、部署以及与以太坊进行交互的智能合约
- 第一行代码:以太坊(3)-使用更多的工具编写和测试智能合约
- 以太坊智能合约编程之菜鸟教程
- 『0005』- 以太坊智能合约生命周期(Ethereum smart contracts lifecycle)
- 以太坊智能合约Hello World示例程序
- 开发智能合约的注意事项(以太坊-Ethereum)
- 以太坊预言机与智能合约开发
- 以太坊智能合约常用开发资源
- 以太坊智能合约编程之菜鸟教程
- 以太坊智能合约学习1-My Token