智能合约是一种基于区块链技术的自动化合约,它以编程代码的形式存在于区块链网络中,能够独立执行、验证和执行合约内容,智能合约的主要用途是在无需第三方介入的情况下,实现在不可更改的区块链上进行安全、透明和自动的交易,智能合约可以应用于多种领域,如金融交易、不动产管理、供应链管理以及去中心化应用程序(dApps)的开发,dApps是通过智能合约构建的分布式应用程序,它们在区块链上运行,具有去中心化、无法篡改和透明的特点,dApps可以提供各种服务,如数字货币交易、在线投票、智能投资等,为用户提供更加安全、高效和便捷的体验,智能合约与dApps的出现为各种行业带来了新的机遇和发展空间,它们将重新定义我们对合约和应用程序的认知,下面看下详细内容。
智能合约的用途
这篇将与大家分享「智能合约」的概念,我们将带领大家了解智能合约是什么、智能合约与链的互动方式。有兴趣了解的朋友请继续阅读!
本文分为以下几个部分:
- 智能合约的定义
- 智能合约的用途
- 智能合约与链的互动
智能合约的定义
智能合约(smart contract)实际上并不智能,也不是一个合约。它是在链上运行的一段程序代码,该代码遵循开发者事先编写的规则或准则,类似于一份面向签约双方的契约。编写完毕的合约会被部署到链上,并以一个地址的形式表示(与钱包类似),不同的钱包可以对该合约发送交易。在Etherscan等区块链浏览器上,我们也可以查看到该合约的程序代码以及与合约互动的地址等信息。下图是与Uniswap V2: Router2合约互动的交易记录,可以看到交易的接收者(“to”)是一个合约地址(红框中)。第二栏也显示了这些交易与合约中的哪些功能(function)进行互动,例如“Swap Exact Tokens for Tokens”是在Uniswap交易所交易代币时调用的功能。
与Uniswap V2: Router2合约互动的交易记录。资料来源:Etherscan
智能合约的用途
我们之前提到,智能合约运行着一套开发者编写的规则,那么这些规则有什么应用呢?最基本的用途之一就是发行代币。任何应用代币或NFT,都是由合约生成的,但原生代币则不是智能合约生成的。这就是$WETH和$ETH的区别,$WETH与其他代币一样,属于基于智能合约的代币,而$ETH是以太坊的原生代币。无论哪种代币,在合约中都可以定义符合其规则的代币,包括供应量、代币符号等。
链上的所有应用程序(dApp)也都是由智能合约驱动的,包括借贷协议、去中心化交易所(DEX)、预言机或NFT市场。这些协议由一个或多个智能合约组成,合约中写入了各种功能,使得协议能够正常使用。例如我们之前提到的“Swap Exact Tokens for Tokens”功能,在下图的合约中可以看到,当用户地址调用该功能时,合约会执行相应操作。
在Etherscan上可以直接查看Uniswap V2: Router2合约的功能(function)。资料来源:Etherscan
智能合约与链的互动
编写智能合约的语言有很多种,每条链支持的语言也不同,常见的语言有Solidity、Vyper和Rust。用于执行合约的环境称为虚拟机(VM),不同的链使用不同的环境(例如以太坊的EVM),每个环境只能执行特定的程序语言。例如以太坊的EVM只能执行由Solidity编写的智能合约,这也使得Solidity成为目前最常用的智能合约语言。
由Solidity编写的智能合约约占比84%。资料来源:DeFiLlama
EVM-compatible链指的是这些链的执行环境与以太坊的EVM兼容,这意味着这些链所使用的语言大多是Solidity。由于智能合约大多是开源的,因此任何兼容以太坊EVM的链都可以复制以太坊上的协议(fork),这些协议的智能合约通常不会进行更改,主要更改的是协议名称和网页界面。下图显示了Uniswap被复制了252次,Compound、Olympus DAO等以太坊上知名项目也有很多复制品。这也使得EVM-compatible链能够快速复制成功的协议,并形成丰富的生态系统,但也因此缺乏创新性的协议。一些知名的EVM-compatible链包括Polygon、币安链和Avalanche,非EVM-compatible链包括Solana、Terra等。
以太坊上的成功协议已被复制很多次。资料来源:DeFiLlama
以上就是我们关于「智能合约」这个主题的介绍,希望能帮助大家了解区块链上的应用程序是如何运作的。