智能合约(Smart contract)是一种计算机程序,它存储并运行在一个去中心化的“无需信任”的网络上,比如区块链。所谓无需信任,是指网络中的信息有效性可以被任何人验证。许多人认为智能合约只适用于像以太坊这样的新型区块链网络,但比特币同样使用智能合约,尽管功能有限。
智能合约的历史与起源
以太坊最初的构想部分是为了推广比特币智能合约的功能。因此,以太坊网络是一个“图灵完备状态机”,这是一种学术用语,意味着它既是一个通用计算机,也是去中心化的。这样的网络上的智能合约理论上可以“计算”任何普通计算机上的程序能做的事情。这意味着网络至少理论上可以托管一个消息应用、一款视频游戏,甚至是一个完整的社交媒体平台。然而,现阶段的去中心化网络在支持应用类型上有严重限制,速度和成本是主要的限制因素。同时也要注意,以太坊只是众多创建通用去中心化计算机网络中的第一个。
为什么有人会选择在去中心化网络上部署智能合约,而不是在集中式的云计算网络上,比如亚马逊网络服务(AWS)?毕竟,云计算在速度和成本上要远远超过去中心化的对应物。答案在于,集中式网络为了速度和成本做出了重要的权衡。
由于智能合约存在于去中心化的无需信任网络上,它们在程序公正执行方面提供了更大的保证。例如,您必须信任您的银行忠实地执行您的在线银行交易。即使银行是值得信赖的,也可能有银行员工恶意行事,黑客入侵银行的网络,或者计算机硬件本身就有故障。更不用说您几乎没有直接的方式来审计银行的交易,更别说它们使用的软件了。智能合约和它们所在的去中心化网络极大地减少了这些信任假设的需求。
对于许多用例来说,透明度、无需信任以及执行完整性的保证并不是必须的。例如,一个模拟天气的程序,或者一个空中交通控制监测程序,可能从智能合约中获得的好处很少,而且在速度和成本方面会承受重大的代价。然而,对于许多涉及金钱或财产的用例,速度和成本的权衡可能是值得的。比如,一个数字交易卡游戏、资产交易所,或者一个发送和接收加密资产的程序。
智能合约是如何工作的
去中心化的无需信任网络,比如以太坊,可以被看作是一台共享的计算机,智能合约就是在这台共享计算机上运行的软件程序。开发者用编程语言编写智能合约,然后将它们部署到共享计算机上。当你将一个智能合约部署到“计算机”上时,你实际上在网络上注册了一个特殊的地址。任何人都可以通过向合约地址发送该网络本身的代币来与已部署的智能合约互动。以以太坊网络为例,你需要使用ETH。这会触发合约中的代码根据其逻辑执行。代码会像任何其他编程语言一样,根据“如果这样,那么那样”的模型自动执行。
例如,在以太坊网络上,一个简单的智能合约可以编写成,当你发送1 ETH给它时,你的1 ETH会被平均分成12份,每份会按月间隔发送到指定的地址。这实际上创建了类似信托基金的东西。
对于完全存在于数字世界中的用例,智能合约允许人们完全绕过中介。例如,在我们上面的“信托基金”示例中,我们有效地消除了律师和管理托管账户的需求。我们只需向合约发送ETH,就可以放心,它将会按照合约的规定确切地发送给信托基金接收者,无需任何进一步的操作。
智能合约正在被用于更复杂的方式来创建去中心化应用程序(dApps),以做诸如允许无需许可的加密资产交换,或甚至是拥有玩家真正拥有的数字财产的游戏。
发布者:撸币侠。 转载请注明出处:
https://www.lubibi.com/archives/4257.html