智能合约是区块链技术不可或缺的一部分,可实现无需中介的自动化功能。对于开发人员来说,它们提供了创建区块链应用(如 web3 游戏、defi 平台、NFT 等)所需的工具集。

如果您想启动任何类型的 web3 应用程序或游戏,则需要考虑智能合约开发。 但在此之前,让我们深入了解智能合约是什么、它们如何工作以及它们在区块链应用程序开发中的关键作用。
什么是智能合约?
智能合约是部署在区块链上的自动执行程序。虽然大多数计算机程序在一台机器上运行,但智能合约在区块链网络上由多个参与者维护的虚拟机上运行。对于 EVM 链,它们依靠以太坊虚拟机 (EVM)来运行智能合约。
智能合约以“如果/那么”的原则运行,当预定义条件满足时执行特定操作。例如,在付款协议中,智能合约可能会在工作标记为完成后向自由职业者发放资金。
编写并部署合约后,合约条件就已设定。当网络参与者通过某些“调用”与其交互时,智能合约便可以无需监督地执行功能。
什么是智能合约调用?
智能合约调用是用户或其他程序与智能合约本身之间的交互。调用可以检索数据(读取操作)或执行合约中的函数(写入操作)。
例如,当玩家在区块链游戏中领取游戏内奖励时,智能合约调用会处理逻辑、验证条件并触发奖励分配。
智能合约的历史
智能合约的概念最早由尼克·萨博在 20 世纪 90 年代提出,远早于加密货币成为现实。但即使在那时,他也设想了由计算机代码驱动的自动执行协议。
随着 2015 年以太坊的推出,这一愿景成为现实,引入了以太坊虚拟机并允许开发人员编写可编程合约。
早期的“Greeter Contract”是以太坊上最早的智能合约之一:它只是返回一个问候字符串。但这段简单的代码为更复杂的应用程序铺平了道路。
随着时间的推移,智能合约不断发展,为 Aave 等 DeFi 平台提供支持,彻底改变了金融业;NFT(从 2017 年的 CryptoKitties 开始)改变了数字所有权;DAO 实现了去中心化治理的自动化。如今,智能合约为各行各业的广泛区块链创新奠定了基础。
智能合约可以用于什么?
智能合约有多种用途,但对于运行去中心化应用程序 (dApp) 来说,智能合约几乎必不可少。让我们来看看智能合约的用途:
启用 web3 游戏
在区块链游戏中,智能合约用于管理代币化资产。同质化代币智能合约解锁了游戏货币等 web3 游戏必需品;而 NFT 智能合约则引入了可交易的角色和物品。
但是,用于web3 游戏开发的智能合约非常多,涵盖了各种功能。例如,一款边玩边赚的游戏可能会使用智能合约根据玩家的成就自动奖励加密货币。或者,一款宠物饲养游戏可能会使用 NFT 智能合约引入繁殖功能。可能性无穷无尽!
促进 NFT 和 NFT 市场的发展
NFT 市场和收藏品严重依赖智能合约进行所有权验证和交易。智能合约管理 NFT 的创建(或“铸造”),确保唯一性并促进二次销售。一些 NFT 智能合约还保证创作者的版税,这对创作者经济做出了巨大贡献!
NFT 市场也依赖智能合约来实现无需中间人的交易,在确保去中心化的 NFT 转移的同时,还实现了定时拍卖、收藏竞标等功能。
为 DeFi 平台提供支持
智能合约还使去中心化金融 (DeFi) 应用能够处理运营提供区块链贷款、质押、代币交易等服务的平台所需的去中心化处理。由于 DeFi 平台涉及大量资金,因此这些智能合约的稳健性和安全性至关重要。
解锁去中心化治理体系
智能合约也是去中心化自治组织 (DAO) 的核心。通过智能合约,您可以部署治理代币并实施治理机制,让任何团体都能自主运作,而无需单一领导者。未来,这可能会彻底改变无数投票系统,甚至可能是国内和国际投票系统!
智能合约的类型
智能合约有很多种类型,但让我们来看看您可能会遇到的一些最重要的类型。
可替代代币合约
同质化代币是可互换的:你可以用一个代币换取另一个相同的物品。在区块链中,同质化代币通常用作游戏内货币、治理代币、实用代币等。与所有以太坊代币一样,它们由智能合约提供支持。
ERC-20
ERC-20是同质化代币的基础标准,允许具有相同属性的代币进行交易或互换使用。它的简单性和广泛采用使其成为代币化资产的首选标准。
如今,ERC-20 仍然是可替代代币最广泛使用的标准,可实现无缝代币创建并与钱包、交易所和去中心化应用程序兼容。
ERC-4626
ERC-4626 是 ERC-20 标准的扩展,专为去中心化金融中使用的收益型代币而设计。它规范了保险库与收益生成协议的交互方式,确保了兼容性和效率。
半同质化代币(ERC-1155)
智能合约还支持ERC-1155代币,该标准支持同一合约中的可替代代币和不可替代代币。这在 web3 游戏中特别有用,开发人员可能需要可替代代币(如货币)以及独特物品(如武器)。它还允许用户为同一款游戏创建多套可互换物品,例如 200 把可互换的剑和 200 顶可互换的帽子。
NFT 智能合约
NFT(非同质化代币)是独一无二的可验证数字资产,它们也由智能合约提供支持。NFT 智能合约可以实现独特的收藏品、生成艺术项目或代币化会员资格。借助当今的各种合约,开发人员还可以集成动态元数据等高级功能,其中 NFT 会根据外部触发因素(例如游戏成就或现实世界事件)进行演变或更改。
如今,NFT 智能合约标准不计其数,但其中最受欢迎的包括:
ERC-721
ERC-721是非同质化代币的第一个标准。每个代币都是独一无二的,不能直接与其他代币交换,因此非常适合艺术品、收藏品和游戏内物品等资产。
ERC-721A
ERC-721A 是 ERC-721 的更省气版本,针对 NFT 的批量铸造进行了优化。它通常用于 NFT 收藏,使开发人员能够在保持功能的同时降低交易成本。
智能钱包合约
智能钱包合约扩展了以前使用web3 钱包的功能。智能加密钱包支持无 gas 交易、可编程钱包以及通过高级账户管理增强安全性等功能。
ERC-4337
ERC-4337引入了账户抽象所需的基础架构,让用户无需依赖传统的外部拥有账户 (EOA) 或私钥即可与区块链应用程序进行交互。出于这些原因,ERC-4337 对于引导新用户加入区块链应用程序特别有价值,消除了进入的技术障碍。
也就是说,智能钱包对于加密货币原生用户来说也很方便,它提供了实现自动支付、多重签名钱包、社交恢复等选项。
治理智能合约
治理智能合约是去中心化自治组织 (DAO) 的基础。这些智能合约有助于提案、投票和基于集体决策的链上行动的执行。例如,提案可能会更新利率或将新资产整合到 DeFi 应用或平台中。
通过将治理规则直接嵌入区块链,它们消除了对集中监督的需求,并赋予社区民主管理共享资源和协议的能力。通常,参与者必须在预定义的窗口中投票。如果提案得到大多数选民的通过,智能合约可以自动执行操作。
什么是智能合约的例子?
NFT掉落合约
NFT Drop 合约旨在简化 NFT 的创建、铸造和分发。它基于 ERC-721A 标准构建,允许开发人员推出具有以下功能的 NFT 系列:
-
批量铸造,允许您一次创建整个 NFT 集合!
-
延迟显示,这样你就可以在稍后设定的时间显示 NFT 艺术品
-
允许列表,这样您就可以授予预先批准的钱包铸造权限
MarketplaceV3 智能合约
MarketplaceV3智能合约为去中心化市场提供支持,实现 NFT 的无缝购买、销售和拍卖。它旨在实现灵活性,允许自定义交易费用并与现有收藏品集成。
marketV3 合约:
-
促进 ERC-721 和 ERC-1155 代币的交易。
-
允许创作者为二次销售设定版税,以建立经常性收入来源。
-
通过自动竞标和解决流程支持定时拍卖。
账户工厂合约
Account Factory 智能合约使开发人员能够使用 ERC-4337 标准为用户创建可编程、模块化的智能钱包。thirdweb 的智能钱包可以:
-
解锁无 gas 交易、社交恢复和多重签名功能
-
将多笔交易捆绑为一笔交易,从而节省 gas 并提高可用性。
-
启用自定义功能,例如自动支付或链上投票。
智能合约如何运作?
您已经知道智能合约是一个程序,那么让我们深入了解它的结构并分析它的实际工作原理。
智能合约是什么样的?
智能合约的核心是代码:用区块链专用编程语言(如Solidity)编写的程序。这些语言集成了 gas 优化和严格类型系统等功能,以减少错误并提高效率。
Solidity 智能合约示例
以下是促进简单代币转移的 Solidity 智能合约的基本示例:
solidityCopy code// SPDX-License-Identifier: MITpragma solidity ^0.8.0;contract SimpleToken { mapping(address => uint256) public balances; constructor() { balances[msg.sender] = 1000; // Initial supply assigned to contract creator } function transfer(address recipient, uint256 amount) public { require(balances[msg.sender] >= amount, "Insufficient balance"); balances[msg.sender] -= amount; balances[recipient] += amount; }}
在此示例中:
-
映射
balances
跟踪每个地址的令牌余额。 -
初始化
constructor
合约并将代币分配给创建者。 -
该
transfer
功能允许用户发送代币,确保他们有足够的余额。
智能合约中的函数类型
智能合约通常包括以下几种类型的功能,例如
公共职能
公共函数可由任何用户或合约调用。例如,transfer
允许用户发送代币。
私有/内部函数
私有函数仅由合约本身或其派生合约访问。这些通常用于内部逻辑。
视图或纯函数
View 或 Pure 函数是只读函数,不会修改区块链状态(例如查询余额)。
应付功能
应付功能是专门为处理传入的加密货币付款而设计的。
分步过程:调用智能合约时会发生什么?
现在您已经了解了智能合约的结构,让我们看看它在被调用时是如何工作的。
步骤 1:用户与智能合约交互
用户将发送有关智能合约的交易,通常包括:
-
要调用的函数(例如
transfer
)。 -
输入数据(例如收件人的地址和要转账的金额)。
-
可选的加密货币值(如果该功能需要付款)。
第 2 步:交易被广播并由网络验证
如果交易符合协议的规则,比如包含足够的 gas 费用来支付执行费用,那么交易就被验证。
步骤3:执行智能合约。
一旦验证通过,交易就会被添加到区块中,智能合约就会执行请求的功能。为此,智能合约将:
-
读取区块链的状态(检查发送者的地址和余额)。
-
运行合约逻辑(验证所有条件是否满足)
-
更新状态(从一个帐户中删除代币并将其添加到另一个帐户)
第五步:交易完成。
智能合约的输出记录在区块链上,交易最终完成,并根据处理交易所需的工作量向用户收取gas 费。用户可以通过区块链浏览器验证结果,例如更新的余额。
如何创建智能合约?
借助thirdweb Contracts,部署智能合约从未如此简单。thirdweb Contracts 提供模块化合约,因此您可以添加或删除任何您想要的功能。它还提供了一个智能合约模板和示例库供您参考。最后,还有部署工具,让开发人员可以轻松部署智能合约。
在此处找到有关如何通过 thirdweb 部署任何智能合约的完整文章。有关如何部署智能合约的技术流程,请在此处查看我们的支持文档。但如果您现在就想了解:以下是通过 thirdweb 部署任何合约所需执行的基本操作。
1.安装 Node.js 和 thirdweb CLI
首先,您需要准备好 Node.js 和 thirdweb CLI。
2. 选择或编写智能合约
接下来,您需要一份智能合约。您可以编写自己的智能合约,也可以使用 thirdweb 的预建智能合约模板之一。
3. 将你的钱包连接到 thirdweb CLI
将您的钱包连接到 thirdweb CLI,然后配置一个新项目。
5. 选择要部署合约的链
使用 thirdweb,您可以选择在现有的 2000 多个 EVM 链上部署智能合约!只需选择一个智能合约,然后部署到最适合您的 EVM 链上即可。
6. 部署你的智能合约
部署智能合约后,您将收到智能合约地址。将其复制下来!您可以在区块链浏览器(如 Etherscan)上验证它,然后使用 thirdweb 的 SDK 轻松将其集成到您的应用程序中。
什么是智能合约审计?
在部署智能合约之前,审计对于确保其安全性和稳健性至关重要。审计员会审查代码以识别漏洞,例如重入攻击、溢出错误或不当的访问控制。审计还会评估合约的功能,确保其在各种条件下都能按预期运行。
但是,审计确实需要成本!如果您要启动一个小项目,这可能是一个挑战。在这些情况下,使用预先审计的智能合约模板(例如您可以通过 thirdweb Explore 找到的模板)是一个不错的选择!为什么不选择性能高效、安全且具有如此多可自定义选项的模板呢?
智能合约:Web3 应用开发的支柱
对于开发者来说,智能合约不仅仅是代码,更是区块链应用的基础。它们可以实现流程自动化、执行规则并消除中介机构,从而使去中心化系统能够高效透明地运行。
无论是开发区块链游戏、发布 NFT 还是创建去中心化金融平台,掌握智能合约都至关重要。通过了解智能合约的功能并应用最佳实践,开发人员可以创建不仅能满足当前需求还能激发未来创新的应用程序。