首页>资讯>正文

以太坊 智能合约 教程,以太坊智能合约是什么

2024-12-01
OKX欧易app

OKX欧易app

欧易交易所app是全球排名第一的虚拟货币交易所,注册领取6万元盲盒礼包!

APP下载 官网注册
币安app

binance币安交易所app

币安交易所app是全球排名第一的虚拟货币交易所,注册领取盲盒礼包!

APP下载 官网注册

以太坊 智能合约 教程,以太坊智能合约是什么

一、以太坊智能合约是什么

以太坊智能合约是什么?

以太坊智能合约是一种基于以太坊区块链的自执行合同,它允许在无需中介的情况下进行编程和执行。这些智能合约存储在区块链上,保证了透明性、安全性和不可篡改性。它们是由开发者使用Solidity编程语言编写,并在以太坊网络上进行部署和运行。智能合约能够自动执行合约条款,例如资产交易、支付处理以及更复杂的金融协议。

如何实现以太坊智能合约?

以太坊智能合约的实现依托于以太坊虚拟机(EVM),这是一个Turing完备的虚拟机,它负责解释和执行智能合约代码。开发者使用Solidity语言编写智能合约,将其编译成字节码,然后在以太坊网络上发布。一旦部署,智能合约将永久存在于区块链上,任何满足特定条件的事件都可以触发其执行。

以太坊智能合约的应用场景有哪些?

以太坊智能合约的应用场景非常广泛。在金融领域,它们被用于实现去中心化的金融协议,如加密货币交易、贷款和保险。在供应链管理中,智能合约可以提高透明度和追踪能力。在版权和知识产权领域,它们可以用来管理和追踪版权归属。此外,智能合约还在投票系统、身份验证和物联网(IoT)等领域有着潜在的应用。

总体而言,以太坊智能合约作为区块链技术的关键应用之一,正在逐步改变我们处理信任和交易的方式。

二、以太坊的智能合约是什么意思

以太坊智能合约是指,部署在以太坊上的智能合约,是一段程序,运行在以太坊的虚拟机EVM中,程序可以按照事先约定的某种规则自动执行操作,执行合约的条款。

同时,智能合约对接收到的信息进行反应,它既可以接收和储存价值,也可以向外发送信息和价值。

介绍

以太坊创始人V神指出过,以太坊智能合约中的“‘合约’不应被理解为需要执行或遵守的东西,而应看成是存在于以太坊执行环境中的‘自治代理’(autonomous agents),它拥有自己的以太坊账户,它们收到交易信息后就相当于被捅了一下,然后自动执行一段代码。”

智能合约可以调用其它的智能合约,这就是开启创立自治代理的能力,代理可以自己进行交易。在区块链上,我们存储的信息都是“状态”,而智能合约就是它用于状态转换的方式。

三、Web3教程:编写您的第一个“Hello, World”智能合约(3)

您为实现智能合约所做的所有艰苦工作完成了-现在是时候与世界分享它了!

通过在 Etherscan上验证您的智能合约,任何人都可以查看您的源代码并与您的智能合约进行交互。让我们开始吧!

第 1步:在您的 Etherscan帐户上生成 API密钥

需要 Etherscan API密钥来验证您是您尝试发布的智能合约的所有者。

如果您没有 Etherscan帐户,请先使用此链接[1]注册。

登录后,按右上角的用户名,然后选择“我的个人资料”按钮:

完成上述步骤后,您应该能够查看新的 API密钥,我们在下面以红色突出显示。将此 API密钥复制到剪贴板。

第 2步:Hardhat部署的智能合约步骤 2.1安装hardhat-etherscan[2]插件

在你的 hello-world目录中运行以下命令来安装hardhat-etherscan:

使用 hardhat-etherscan信息修改您的 hardhat.config.js,确保输入您的 etherscan api密钥:

第 2步:Hardhat部署的智能合约步骤 2.2在 Etherscan上验证您的智能合约!

在 hello-world目录中,在终端中运行以下命令:

确保 DEPLOYED_CONTRACT_ADDRESS是您在 goerli测试网络上部署的智能合约的地址。此外,最后一个参数“Hello World!”必须与您在第 1部分的部署步骤中使用的字符串值相同。

如果一切顺利,您应该会在终端中看到以下消息:

Congrats! Your smart contract code should be on Etherscan!

第 3步:在 Etherscan上查看您的智能合约!

当您导航到终端中提供的链接时,您应该能够看到您的智能合约代码和 ABI在 Etherscan上发布!

哇——你完成了,冠军!现在任何人都可以call或write给你的智能合约!我们迫不及待地想看看你接下来要建造什么!

与更传统的编程语言的大多数用例不同,Solidity合约倾向于转移大量资金作为其核心功能之一,因此容易受到攻击者的各种高风险攻击,这些攻击者试图从这些不可变的参与者身上榨取资金.

因此,强烈建议开发人员在向主网发布智能合约之前进行审计或聘请审计机构——一旦发布,就很难追溯修复安全漏洞!

潜在漏洞的类型以及执行这些攻击的方式本身就是一个完整的过程。让我们快速概述一下主要漏洞,以便您了解需要注意的事项:

Reentrancy Attacks

这种类型的攻击非常危险,可以让易受攻击的智能合约耗尽所有的以太币,并且非常容易意外提交。重入攻击的发生是因为 Solidity的两个关键特性:

1.智能合约强制执行——也就是说,它们在执行下一行之前等待每一行完成。

2.智能合约可以调用外部的、不受信任的合约并在继续之前等待结果。

因此,当一个易受攻击的合约 A对另一个不受信任的合约 B进行外部调用时,另一个合约 B可能被恶意更改为对原始合约 A进行递归调用。如果从合约 A到 B的调用涉及发送任何数量的以太币,这个无限循环都可以在函数完成之前有效地耗尽合约 A的所有资源。

这是一个简单的例子:

通常,msg.sender是普通用户,例如 Metamask帐户。在这种情况下,withdraw()函数将简单地提取一些钱,更新余额,然后结束。但是,如果msg.sender是恶意合约 B,则当合约 A运行msg.sender.call时,可以设置合约 B使其立即再次调用合约 A。在这种情况下,将重复调用**withdraw()**函数,直到合约 A没有资源或 EVM堆栈填满。很危险,对吧?

有关如何防止这种情况的一些示例,请在此处查看本文。[3]

Frontrunning

有趣的是,智能合约和交易不是在区块链上得到确认时才完全公开,而是在您将它们作为待处理交易提交到网络时。这些待处理的交易在以太坊节点的内存池中在整个网络中共享,允许一个区块的矿工选择具有最高 Gas费的交易。

这种设计的一个副作用是智能合约的预期结果在被确认进入区块链之前的一段时间内对所有人都是可见的。假设您有一个智能合约,在运行时将执行一个套利,为您赚取 1 ETH,部署成本为 0.05 ETH。监视内存池的恶意行为者可能会看到此交易,识别机会并复制您的智能合约,并以 0.06 ETH的汽油费提交。然后,他们成功地“抢先”你的合约,通过先提交他们的交易窃取你的套利机会。

在实践中,这些攻击通常是由矿工自己进行的,导致一种称为 MEV(矿工可提取价值)的现象,每天价值数千 ETH。不幸的是,它们很难避免,但本文描述了各种前沿实践。[4]

Integer Overflow& Underflow

这是许多编程语言中的常见攻击!以下是此类攻击在 Solidity中如何发生的一般要点:

1. Solidity智能合约使用 256位作为字长构建,大约相当于 43亿。

2.当减少无符号整数0的值时,它将循环回到最大值。

3.因此,可以通过让智能合约记录的恶意地址零余额尝试发送 1个单位的以太币来执行下溢攻击,迫使其余额一直循环回到允许的最大值:43亿。

4.然后,因为智能合约认为该地址有 43亿以太币的余额,它可能允许从该账户继续提款,直到智能合约的资金耗尽。

如您所见,这种黑客攻击很容易被用于内部跟踪地址余额的任何智能合约。为避免这种情况,只需确保您使用的是 0.8版本的 Solidity编译器,它会自动检查上溢和下溢。

天哪……还有什么?

不幸的是,还有几十个其他重大漏洞。正如许多开发人员所说,“学习 Solidity需要一周时间,避免编写漏洞需要三年时间”。

认识到在你编写的任何中等复杂的智能合约中很可能最终会遇到安全问题就足够了,如果你打算在合约中存储任何重要的价值,你绝对应该让专业人士对代码进行审计机构。

译者注:下一篇明天到来,保持关注。

引用链接

[1]链接: etherscan.io/register

[2] hardhat-etherscan: hardhat.org/plugins/nom...

[3]请在此处查看本文.: medium.com/coinmonks/pr...

[4]本文描述了各种前沿实践.: forum.openzeppelin.com/...

OKX欧易app

OKX欧易app

欧易交易所app是全球排名第一的虚拟货币交易所,注册领取6万元盲盒礼包!

APP下载 官网注册

binance币安交易所
已有2000万用户加入币安交易所

立即下载

2024年11月15日 FRXETH币今日行情走势¥2.2万

1.FRXETH币价格:$3091.77 2.2024年11月15日 FRXETH币今日行情走势2.2万币价格:2.2万 3.24H最高:2.3万 4.24H成交额:2161.44万 5.最大发行量:15.64万 6.24H换手:0.63% 7.24H最低:2.17万 8.24H成交量:980.77 9.当前发行量:15.64万 10.24H波幅:6.06% 11.历史最高:2.

2024年11月03日 ACX币今日行情走势¥2.38

1.ACX币价格:$0.33 2.2024年11月03日 ACX币今日行情走势2.38币价格:2.38 3.24H最高:2.38 4.24H成交额:560.76万 5.最大发行量:10.0亿 6.24H换手:0.55% 7.24H最低:2.29 8.24H成交量:235.82万 9.当前发行量:10.0亿 10.24H波幅:3.74% 11.历史最高:3.4 12.最大市值:

币圈交易所骗局,深扒“bitstamp交易所”,竟是骗钱的仿盘!

一、加密货币是不是骗局交易合法,交易所不合法首先要理清的一点,ICO在国内是不合法的,数字货币交易所也是不可以的。关于数字货币交易却没有明令禁止,但也同样做出了相关的风险提示并申明,数字货币交易是不具备相关法律效益的。但是在国外,有部分国家是支持加密货币交易

2024年11月12日 HLM币今日行情走势¥46.9

1.HLM币价格:$6.58 2.2024年11月12日 HLM币今日行情走势46.9币价格:46.9 3.24H最高:48.9 4.24H成交额:2.69亿 5.最大发行量:2.23亿 6.24H换手:3.34% 7.24H最低:45.19 8.24H成交量:574.01万 9.当前发行量:2.23亿 10.24H波幅:8.2% 11.历史最高:391.18 12.最大市值:

热爱全币交易所,怎么买到上海黄金交易所交易价格的实物黄金

一、比特币为啥这么值钱比特币为什么那么值钱?比特币疯狂升值备受关注,从高晓松的微博就能看出其火热程度。前些年零零星星的听到关于比特的报道,随着今年比特币疯狂升值,这个少数人玩的科技产物,走进了大众的视野。比特币为什么值钱,我们从这几个方面来分析。物以稀为贵

以太坊钱包教程,一步一步教你使用以太坊钱包

一、以太坊钱包账户怎么登录下载钱包登录。1、下载钱包:打开以太坊官网,找到最新版本的下载链接进行下载。2、安装钱包:把下载的压缩包解压(找个磁盘可用空间大一点的盘),假设解压后路径为D:\Ethereum-Wallet-win64-0-9-3。3、进入钱包:双击运行D:\Ethereum-Wallet-w

墨客使用教程,束定芳中国文化英语教程翻译

一、竹编插画-PS变色教程书籍设计的手稿有哪些可以画竹简是中国最具代表性的书籍,但这种书籍主要在三国时期鼎盛。现在书籍虽多样,但大部分都不具有文化的味道,装饰味儿很浓。书首先应该是一种文化的象征,是智慧的纪录,是历史内容的记载。中国文化博大精深,竹被称为四君子之一

莱特币核心钱包怎么验证,区块链怎么查钱包余额

一、区块链怎么查钱包余额追踪和管理数字资产新姿势,教你学会查看区块链账单账单记录价值流通和状态,是金融服务的基础功能。我们常用的银行、支付宝、微信支付等都会为普通用户和商家记录一笔交易,提供不同维度的查询、统计和分析服务。比如大家爱晒的支付宝年度账单,会统

可以充币虚拟币钱包,怎样给抖音号充抖币

一、什么是虚拟币钱包虚拟币钱包是一种用于存储、管理、生成和使用数字货币的工具。虚拟币钱包是数字货币用户的重要工具,具有以下功能:1.安全存储:虚拟币钱包生成一个独特的地址,用户可以安全地存储数字货币在这个地址中。这个过程确保数字资产的安全,防止被未经授权的访

普华数字货币交易平台,什么是数字货币数字货币概念股

一、走,去海外币圈淘金!2017年 9月 4日,加密货币的法币交易和 ICO融资禁令出台,当时国内交易量最大的两家交易平台被监管层约谈,随后两家交易平台发布公告称,用户资产可以保留,但停止所有相关的交易业务。不久之后,国内交易所选择了出海,也就是将公司注册地和运营主体放

免费领比特币的交易所,现在比特币很流行,有什么免费领取的地方吗

一、全球前十比特币交易所是哪几个比特币(Bitcoin)的概念最初由中本聪在2008年11月1日提出,并于2009年1月3日正式诞生。根据中本聪的思路设计发布的开源软件以及建构其上的P2P网络。比特币是一种P2P形式的虚拟的加密数字货币。点对点的传输意味着一个去中心化的支付系统。根

钱包如何添加节点,区块链钱包如何创建

一、区块链钱包如何创建Metamask手机端:手把手教你注册以太坊钱包第一步:前面几个安全提示,向下滚动到最底部表示全部阅读,一步一步点击“接受”就行了2.下面是创建一个8位数的密码,每次打开MetaMask可能都需要,如果忘记了密码,可以用助记词找回钱包3.接下来是显示的助

能兑换币的钱包,五大数字货币钱包有哪些

一、五大数字货币钱包有哪些1、安猫钱包2、imToken3、比特派4、麦子钱包5、Atoken温馨提示:以上解释仅供参考,不作任何建议。入市有风险,投资需谨慎。您在做任何投资之前,应确保自己完全明白该产品的投资性质和所涉及的风险,详细了解和谨慎评估产品后,再自身判断是否参与

2024年10月29日 JASMY币今日行情走势¥0.13

1.JASMY币价格:$0.02 2.2024年10月29日 JASMY币今日行情走势0.13币价格:0.13 3.24H最高:0.13 4.24H成交额:5.57亿 5.最大发行量:500.0亿 6.24H换手:8.59% 7.24H最低:0.12 8.24H成交量:41.59亿 9.当前发行量:500.0亿 10.24H波幅:8.77% 11.历史最高:34.04 12.最大市

2024年11月12日 WLD币今日行情走势¥16.47

1.WLD币价格:$2.31 2.2024年11月12日 WLD币今日行情走势16.47币价格:16.47 3.24H最高:16.96 4.24H成交额:84.38亿 5.最大发行量:100.0亿 6.24H换手:81.03% 7.24H最低:14.75 8.24H成交量:5.12亿 9.当前发行量:100.0亿 10.24H波幅:14.98% 11.历史最高:83.68 12.最大

2024年11月02日 EURS币今日行情走势¥7.72

1.EURS币价格:$1.09 2.2024年11月02日 EURS币今日行情走势7.72币价格:7.72 3.24H最高:7.76 4.24H成交额:898.62万 5.最大发行量:1.24亿 6.24H换手:0.94% 7.24H最低:7.66 8.24H成交量:116.43万 9.当前发行量:1.24亿 10.24H波幅:1.3% 11.历史最高:12.72 12.最大市值

钱包路径设置,华为钱包的公交卡怎么转移另一部手机上

一、vivo钱包在哪卸载啊vivo钱包是vivo手机自带的预装应用,无法直接卸载。作为vivo手机的一部分,它预先安装在手机系统中,通常是手机制造商与特定应用开发商之间的合作协议的一部分。因此,这些应用被设置为系统应用,无法像普通用户应用一样简单地通过长按应用图标并选择“

云币网eth钱包,如何把云币网的币转到imtoken钱包参加ico

一、如何从OTCBTC提币到itoken钱包从OTCBTC提币到itoken钱包的方法是:1、初次打开该软件需要进行以太坊钱包的创建或导入。点击“创建钱包”,设置钱包名称(随便填写)并设置密码(一定要记好,一旦忘记无法重置);2、钱包创建好后必须备份:点击导出助记词――输入密码――

数字货币交易app下载安装,数字货币 交易 app

在数字经济飞速发展的今天,数字货币作为一种创新性的金融资产,逐渐走入了大众视野。无论是比特币、以太坊,还是其他各种加密货币,数字货币市场的热度持续攀升,吸引了成千上万的投资者参与其中。想要顺利进入这一市场,选择一个稳定、安全且操作简便的数字货币交易平台成为

比特钻石挖矿教程,比特币挖矿教程

一、比特币怎么挖矿挖矿就是做矿工用自己的电脑生产比特币,在早期的客户端中还有挖矿这一选项,但现在已经取消了,原因很简单,随着参与挖矿的人数越来越多,自己一个人挖矿可能要挖上几年才有50个币,所以现在矿工一般都组织成矿工行会,大家一起挖。具体的挖矿方法,你可以