Web3 开发系列教程—创建你的第一个智能合约什么是智能合约

Posted 前端修罗场

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web3 开发系列教程—创建你的第一个智能合约什么是智能合约相关的知识,希望对你有一定的参考价值。

本专栏至开创以来,受到了读者的热烈喜爱:

在这里,我会和你一起探索 Web3 开发,答疑解惑。同时,希望本专栏可以成为你进入 Web3 开发世界的一个帮手!

接下来,进入正题。

什么是智能合约?

以太坊在 2013 年的核心创新是允许开发人员编写称为智能合约的小代码块,这些代码可以部署到以太坊网络,独立于其创建者运行。 在以太坊中,智能合约是用 Solidity 编写的,这是一种设计用于在以太坊虚拟机上运行的高级编程语言。智能合约也成为了区块链开发领域主要的研究方向之一。

智能合约是定义一组规则或“合约”的程序,当用户在区块链上调用时,它会自动执行编码规则。 特别地,一旦部署了智能合约,它就不能被修改或控制。
因此,智能合约是运行金融应用程序的理想选择,它们可以作为独立参与者以有保证的、可重复的方式接收或发送加密货币。

真实世界的例子

但是有哪些现实世界的工具可以被智能合约取代的例子呢?我们来看看:

  • 金融工具:通常,当你在线交易股票或货币时,你需要第三方在交易发生时将这两种资产托管在委托中,例如委托给股票经纪人。 那么这种情况下,智能合约可以充当第三方,允许在没有中间人的情况下进行交易
  • 财产所有权与法律文件相比,智能合约几乎是即时执行的,可以公开访问,并且可以允许分散所有权
  • 构建额外的代币/NFT:令人难以置信的是,你实际上可以在以太坊上启动新的代币系统,例如 Tether 或 Chainlink。 同样,你可以使用智能合约启动 NFT 项目,例如 Bored Apes 或 CryptoPunks。

当然,还有很多很多。 事实上,我们可能只是触及到皮毛而已。

智能合约的特征

哪些特征使智能合约能够彻底改变或取代现有的技术模型呢? 与传统编程语言不同,智能合约具有以下属性

  • 透明度:智能合约发布到区块链,任何有权访问区块链的人都可以读写。
  • 简单性:由于智能合约部署到区块链上的成本很高,并且包含指示金融交易流程的敏感逻辑,因此它们往往比大多数代码库更小更简单。
  • 不变性一旦部署了智能合约,它(通常)就不能被修改,并且无论何时调用都保证其功能相同! 这使得智能合约可以作为可靠、受信任的第三方运行——因为没有个人控制智能合约,它可以充当金融中介、值得信赖的自动化做市商,或者通过保证公正性而发挥更多作用。

部署后,这些智能合约表现为完全透明但可以包含复杂逻辑的独立参与者。 因此,在以太坊上拥有账户的不仅是人类用户,还有两种类型的账户:

  • 由人类用户管理的外部拥有的帐户 (EOA)。
  • 由其底层智能合约代码管理的合约账户。

EOA 和合约账户有什么区别?

令人印象深刻的是,这两种类型的帐户可以做基本相同的事情! 这两种账户类型都可以:

  • 接收或发送可替代代币(以太币)到任何账户
  • 接收或发送不可替代的代币(加密猫)到任何账户
  • 触发另一个合约账户——允许一个智能合约运行其他智能合约。
  • 生成新的智能合约——让智能合约充当合约工厂!

但是,合约账户有一些限制:

  • 合约账户不能自行实例化操作——它们只能响应他们收到的交易(通常来自 EOA)。
  • 合约账户完全由其代码控制,而 EOA 则由其关联的私钥控制。

接下来, 让我们开始构建你自己的智能合约吧!

以上是关于Web3 开发系列教程—创建你的第一个智能合约什么是智能合约的主要内容,如果未能解决你的问题,请参考以下文章

Web3 开发系列教程—创建你的第一个智能合约什么是 Gas,它是如何使用的?

Web3 开发系列教程—创建你的第一个智能合约部署第一个智能合约

Web3 开发系列教程—创建你的第一个智能合约与智能合约交互

Web3 开发系列教程—创建你的第一个智能合约将你的智能合约与前端集成

Web3 开发系列教程—创建你的第一个智能合约将你的智能合约发布到 Etherscan

Web3 开发系列教程—创建你的第一个智能合约部署第一个智能合约