区块链中的智能合约是什么?

  • Chainlink
  • 发布于 2023-11-30 17:10
  • 阅读 75

本文介绍了智能合约的定义、工作原理、历史、优缺点、以及各种应用场景,智能合约是在区块链网络上运行的去中心化计算机程序,它能够根据预定义的条件自动执行协议,智能合约具有安全性、可靠性、公平性和高效性等优点,但也存在不可变性和需要外部数据连接等限制。

智能合约定义

定义

智能合约是一种在区块链网络上运行的去中心化计算机程序,它基于预定义的条件自动和确定性地执行协议。

智能合约由以太坊区块链以当前形式引入,是 Web3 行业的基本构建块;是 DeFi、NFT、游戏以及其他在 Web3 中获得突出地位的应用程序的基础。

无论是为了编纂互不信任的各方之间的任意协议条款,创建自动化和去中心化交易所,还是创建同质化和非同质化代币,智能合约都是开发者在区块链上构建去中心化应用程序的方式。请继续阅读,以了解智能合约的简单介绍以及它们对社会的意义。

什么是智能合约?

智能合约是在 区块链网络 上托管和执行的计算机程序。每个智能合约都包含指定预定条件的代码,当满足这些条件时,会触发结果。通过在去中心化区块链上运行而不是在中心化服务器上运行,智能合约允许多方以准确、及时和防篡改的方式达成共享结果。

智能合约是自动化的强大基础设施,因为它们不受中央管理员的控制,也不容易受到恶意实体的单点攻击。当应用于多方数字协议时,智能合约应用程序可以降低交易对手风险,提高效率,降低成本,并为流程提供新的透明度。

什么是智能合约?两分钟解释 - YouTube

Chainlink 的照片图像

Chainlink

14.8万订阅者

什么是智能合约?两分钟解释

Chainlink

搜索

信息

购物

点按取消静音

如果短时间内没有开始播放,请尝试重新启动设备。

你已退出账号

你观看的视频可能会被添加到电视的观看记录中,并影响电视的推荐内容。要避免这种情况,请在你的计算机上取消并登录 YouTube。

取消确认

分享

包括播放列表

检索分享信息时出错。请稍后重试。

稍后观看

分享

复制链接

在以下网址观看

0:00

/ •直播

在 YouTube 上观看

区块链和智能合约

支持智能合约的区块链解锁了开发者在区块链原生提供的去中心化共识之上编写任意应用程序逻辑的能力。这就是为什么区块链、智能合约和应用程序可以被认为是具有层级关系:应用程序(包括代币)由智能合约(或多个连接的智能合约)的代码创建。智能合约中定义的动作反过来由底层区块链网络执行和存储。

智能合约如何工作

智能合约是区块链上具有以下逻辑的防篡改程序:“如果/当 x 事件发生时,则执行 y 动作。” 一个智能合约可以有多个不同的条件,一个应用程序可以有多个不同的智能合约来支持一组相互连接的流程。还有多种智能合约编程语言,其中以太坊的 Solidity 是最受欢迎的。

任何开发者都可以创建智能合约并将其部署在公共区块链上以用于自己的目的,例如,自动将其资金转移到收益最高的应用程序的个人收益聚合器。但是,许多智能合约涉及多个独立的当事方,他们可能彼此认识也可能不认识,并且不一定彼此信任。智能合约精确地定义了用户如何与其交互,包括谁可以在什么时间与智能合约交互,以及什么输入导致什么输出。结果是多方数字协议从今天的概率状态(它们可能会按预期执行)演变为新的确定性状态,在这种状态下,它们保证按照其代码执行。

所有区块链都有智能合约吗?

并非所有区块链都可以运行智能合约。虽然包括 Arbitrum、Avalanche、Base、BNB Chain 和以太坊在内的区块链和Layer2网络都是支持智能合约的区块链的示例,但像基础比特币区块链这样的区块链不具有原生的智能合约功能。这些区块链之间的关键区别在于底层区块链执行和存储任意逻辑的能力。

智能合约的历史

智能合约的概念最初由美国计算机科学家 Nick Szabo 在 1994 年提出。在他的 开创性著作 中,他对智能合约给出了广泛的定义,如下所示:“一种执行合约条款的计算机化交易协议,”其总体目标是“满足常见的合同条件,最大限度地减少恶意和意外的例外情况,并最大限度地减少对可信中介的需求。”

虽然可以在自动售货机等系统中看到智能合约的一般概念(例如,特定代码导致预期的零食),但区块链构成了数字化、防篡改和无需许可的智能合约的基础。2009 年比特币区块链的引入支持了可以说是第一个 协议智能合约——建立了一组必须满足的条件,才能在网络上的用户之间转移比特币。这些条件包括用户使用与其公共地址(类似于链接到特定帐户的密码)匹配的正确 私钥 签署交易,以及用户拥有足够的资金来支付交易。

然后,比特币区块链在 2012 年演变为提供另一种主要类型的智能合约,称为 多重签名交易。多重签名交易需要定义数量的人(公钥)使用其私钥签署交易,然后才被认为是有效的。这通过减轻单个故障点(如被盗或丢失的私钥)来提高用户资金的安全性。

比特币区块链上的多重签名交易的简单框架,需要 3 个私钥中的 2 个签署交易,然后才被认为是有效的。

在接下来的几年里,区块链开始通过添加新的编程条件(称为操作码或 opcodes)进行实验。然而,智能合约的下一个重大飞跃发生在 Vitalik Buterin 于 2013 年发布 以太坊白皮书 时。2015 年,以太坊作为一种新型的区块链推出,用于 可编程智能合约。以太坊智能合约区块链不再有效地充当单个智能合约应用程序或提供一些有限的操作码,而是提供了一台“世界计算机”,可以同时运行许多独立的智能合约。

智能合约示例

智能合约的一个目的是自动化不同实体组之间的特定业务流程。这些实体共同就所有智能合约的条款达成一致,例如支付、流程和争议解决。全球贸易的简单智能合约示例可能具有如下条款:

  • 条款 1: 如果货物按时到达,则执行零售商向供应商支付全额款项。

  • 条款 2: 如果货物延迟一天到达,则执行零售商向供应商支付全额款项的 98%。

其他智能合约支持公共去中心化应用程序 (dApp),任何人都可以与之交互而无需任何权限。公共 dApp 通常是开源的,因此世界上任何人都可以在决定是否与它们交互之前准确地检查它们的功能。公共 dApp 的一个例子是去中心化借贷市场,它可能具有以下条款:

  • 条款 1: 如果用户将抵押品存入特定的智能合约,他们可以收到一笔贷款,该贷款最多为其抵押品价值的 50%(即,100 美元的存款最多可以借入 50 美元的贷款)。

  • 条款 2: 如果用户的抵押率(抵押品/未偿还贷款价值)降至 200% 以下,则用户的抵押品将自动清算并转移给贷款人,以确保他们不会赔钱。

  • 条款 3: 贷款人可以将资金存入特定合约,其他用户可以以预定义的抵押率从中借款,而贷款人可以获得一部分利率支付的权利。

智能合约的可执行性

因为它们运行在区块链之上,所以智能合约自动和确定性地按照编程的方式执行。在执行的上下文中,这在假设上意味着参与智能合约交易的 任何一方都不能更改其结果或违背智能合约中概述的条款。

实际上,具有正确设计的智能合约有可能消除交易对手风险,交易对手风险通常定义为交易对手未履行其义务的风险百分比。但是,智能合约引入了 智能合约风险,或者智能合约的代码存在漏洞或缺陷,导致不良结果的风险。智能合约始终按照编程的方式运行,因此如果程序存在缺陷,则智能合约将按预期运行有缺陷的代码。

智能合约可执行性的另一个关键考虑因素是,某些合约根本无法通过代码执行。一个关键的例子是借贷——DeFi 协议几乎只提供 超额抵押贷款,借款人必须投入 >100 美元才能借入 100 美元,因为除非全部金额已经在智能合约中,否则无法保证贷款人会偿还贷款。在这些情况下,智能合约与链下系统(如信用评分、资金证明和法律合同)的结合可以提供一种纵深防御方法来减轻交易对手风险。

智能合约的优点和局限性

毫无疑问,智能合约为世界提供了一种更安全、更可验证的方式来创建涉及价值和数据转移的社会协议。然而,区块链和智能合约的格局仍处于起步阶段,开发者在展望可验证的网络时必须面对各种局限性。

智能合约的优点

大多数传统的数字协议都涉及两个互不认识的当事方,从而引入了任何一方不履行其承诺的风险。为了解决交易对手风险,数字协议通常由更大的中心化机构(如银行)托管和执行,这些机构可以执行合同条款。这些数字合约可以直接在用户和一家大公司之间进行,也可以涉及一家大公司充当两个用户之间值得信赖的中介。虽然这种动态允许许多合约的存在,否则不会承担这样的风险,但它也创造了一种局面,即更大的中心化机构对合约施加不对称的影响。

通过区块链与银行系统进行支付时,用户资金处理方式的差异

智能合约通过提供以下几个优点来改进数字协议。

  • 安全性 – 在去中心化区块链基础设施上运行合约可确保不存在可攻击的中心故障点,不存在可贿赂的中心化中介,并且不存在任何一方或中心管理员可用于篡改结果的机制。

  • 可靠性 – 让去中心化节点网络冗余地处理和验证合约逻辑,可提供强大的防篡改、正常运行时间和正确性保证,确保合约按时按照其条款执行。

  • 公平性 – 使用去中心化网络来托管和执行协议条款,可降低盈利性中间人利用其特权地位进行寻租和转移价值的能力。

  • 效率 – 自动化协议的后端流程(托管、维护、执行和/或结算)意味着任何一方都不必等待手动输入数据、交易对手履行其义务或中间人处理交易。

智能合约的局限性

智能合约开发的一个显着局限性是其不可更改的性质:一旦创建,智能合约代码就无法更改。这可以被视为一个强大的功能和一个根本的局限性:不可更改的应用程序只要运行它的区块链处于活动状态就会自动运行,但它们无法升级以获得新功能、功能、错误修复或扩展。这突出了智能合约的另一个局限性和风险——部署了一个未发现的错误或漏洞的智能合约无法及时更改(或有时根本无法更改),这使得 智能合约审计 成为智能合约开发过程的核心部分。

许多开发者用来克服这一局限性的一种解决方法是创建 可升级的智能合约,其中使用代理合约来指向新的、更新的智能合约。这不会破坏智能合约的不可更改性,而是解锁了将用户定向到新的、升级的智能合约的能力。

智能合约和链下资源

区块链是孤立的网络,这意味着区块链没有与外部世界的内置连接。如果没有 外部连接,智能合约无法与外部系统通信以确认真实世界事件的发生,也无法访问经济高效的计算资源。与没有互联网的计算机类似,没有真实世界连接的智能合约受到极大限制。例如,他们无法在执行交易之前知道资产的价格,他们无法在支付作物保险索赔之前检查平均每月降雨量,并且他们无法在与供应商结算之前验证货物是否已到达。

因此,区块链行业正在进行的主要演变是可编程智能合约,这些合约连接到区块链之外的真实世界数据和传统系统,从而扩展了智能合约逻辑中使用的输入和输出。这些 混合智能合约 使用 Chainlink 将链上代码与链下基础设施相结合——例如,使用外部数据触发智能合约或在传统支付渠道上链下结算合约。

预言机将输入和输出连接到区块链以创建混合智能合约

与互联网对计算机的影响类似,Chainlink 的去中心化计算平台是将新兴区块链网络与当今的传统系统连接起来的关键,从而实现互连、高性能和保护隐私的智能合约,这些智能合约保留了底层区块链网络的安全性和可靠性。通过启用外部连接的智能合约,Chainlink 大大扩展和增强了区块链的宝贵属性,从而在更多行业和用例中实现了卓越的、可验证的数字协议。

智能合约用例

权限管理(代币)

代币智能合约用于创建、跟踪和分配特定数字代币的所有权,这些代币存在于区块链网络上。代币合约将功能编程到其发行的代币中,为持有者提供诸如 dApp 中的实用程序/保险(实用程序代币)、协议中的投票权重(治理代币)、公司中的股权(证券型代币)、对唯一真实世界或数字资产的所有权声明(非同质化代币)等功能。例如,FIL 代币用于支付 Filecoin 的去中心化存储服务,而 COMP 代币允许用户参与 Compound 协议的治理。

金融产品 (DeFi)

去中心化金融 (DeFi) 由使用智能合约来重建传统金融产品和服务的应用程序组成,例如货币市场、期权、稳定币、交易所和资产管理,以及通过 无需许可的组合性 组合多种服务以创建新的金融原语。智能合约可以将用户的资金保存在托管中,并根据预定义的条件在用户之间分配这些资金。例如,BarnBridge 使用智能合约为希望获得价格对的固定资产敞口(例如,45% 代币 A,55% 代币 B)的用户自动执行交易,而 Aave 使用智能合约以无需许可和去中心化的方式促进借贷。

Aave 通过使用资产价格来确定用户的借款人和查看贷款是否抵押不足并需要清算来支持去中心化借贷市场

游戏和 NFT

基于区块链的游戏使用智能合约来防篡改地执行游戏内操作。一个例子是 PoolTogether,这是一款无损储蓄游戏,用户将其资金抵押在一个共享池中,然后将其路由到货币市场以赚取利息。在预定义的时间段后,游戏结束,一名获胜者随机获得所有累积的利息,而其他所有人都可以提取他们的原始存款。同样,限量版 NFT 可以具有公平的分配模型,RPG 可以支持使用随机性进行不可预测的战利品掉落,从而帮助确保所有用户都有公平的机会获得稀有数字资产。许多项目使用 Chainlink 可验证随机函数 (VRF) 访问随机性——一种使用密码术来证明其防篡改的随机数生成器 (RNG),这意味着 RNG 过程可以公开审计。

MLB 棒球运动员 Trey Mancini 进行了 NFT 投放,以筹集资金来支持癌症患者,其中 Chainlink VRF 用于随机分配一些 NFT 的额外实用程序

保险

参数化保险是一种保险类型,其中支付直接与特定的预定义事件相关联。智能合约为创建参数化 保险合同 提供了防篡改的基础设施,这些合同根据数据输入触发。例如,可以使用智能合约创建作物保险,用户可以根据特定天气信息(如地理位置的季节性降雨量)购买保单。在保单结束时,如果特定位置的降雨量超过原始声明数量,智能合约将自动发出支付。最终用户不仅可以及时获得支付并减少管理费用,而且保险的供应方可以通过智能合约向公众开放。智能合约允许用户将资金存入池中,然后根据其对池的贡献百分比将收取的保费分配给池参与者。

Arbol 使用以太坊智能合约和 Chainlink 预言机来实现基于特定地理区域的天气数据的参数化保险 blog.chain.link\ \ Chainlink 启用的 77+ 个智能合约用例\ \ 了解区块链开发者正在使用 Chainlink 预言机构建的各种智能合约应用程序,从 DeFi 协议到 NFT、参数化保险和去中心化身份解决方案。\ \

关于智能合约的常见问题 (FAQ)

如何创建智能合约?

创建智能合约需要具备智能合约开发的初步知识。该博客 提供了一个用 Solidity 编写的简陋的“Hello World”智能合约的示例。

如何部署智能合约?

许多智能合约开发都发生在测试网络 (testnets) 上,开发者在测试网络上测试他们的代码,然后再在主网上部署。阅读 该博客,获取部署你的第一个智能合约的指南。

智能合约是如何执行的?

智能合约需要外部方根据预设的触发器触发功能,这需要专门的自动化服务。要了解如何自动执行智能合约功能,请阅读 该博客

如何审计智能合约?

智能合约安全性不仅仅是锦上添花,而是必不可少的。通过阅读 该博客 了解审计智能合约的基础知识。

如何开始学习智能合约开发?

要了解智能合约开发,最好的资源之一是 Chainlink 智能合约训练营,该训练营提供了智能合约编码基础知识的分步指导。

什么是智能合约 ABI?

ABI 是应用程序二进制接口。它们定义了智能合约中可用的方法和变量,我们可以使用这些方法和变量与该智能合约交互。要深入了解 Solidity、以太坊虚拟机 (EVM)、字节码和 ABI,请阅读 该博客

什么是智能合约预言机?

智能合约预言机 为智能合约提供与链下数据、计算和系统的连接,这对于开发者构建真实世界的用例是必需的。

什么是最好的智能合约编程语言?

有各种流行的智能合约编程语言,包括 Solidity、Vyper、Rust 等。该博客 介绍了最流行的编程语言。

Chainlink VRF 启用的 35 多个区块链 RNG 用例

如何审计智能合约

混合智能合约

智能合约自动化解释

智能合约平台

Chainlink 自动化解锁的智能合约用例

2024 年前 6 大智能合约语言

什么是Layer2?

  • 原文链接: chain.link/education/sma...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Chainlink
Chainlink
顶尖的智能合约去中心化预言机网络解决方案 https://chain.link/