火星链 火星链
Ctrl+D收藏火星链
首页 > 币安下载 > 正文

EOS:一个示例来解释EIP-712

作者:

时间:1900/1/1 0:00:00

EIP-712是一种更高级、更安全的交易签名方法。我们可以在UniswapV2的Periphery合约中看到EIP-712的实现。

但对于EIP-712却很难被我们普通人所理解,本文就是根据一个示例来具体体验EIP-712,以达到对其的更好理解。

在GitHub中有许多文章和示例解释和展示了如何使用EIP-712,但在理解它作为一个整体是如何工作的以及前端代码和智能合约是如何关联的方面有很多困难。这是EIP712的一个示例(不是解释)。先决条件和使用的版本。

Solidity基础知识

npm7.19.1

节点16.2.0

Metamask9.8.4

truffle5.4.0

EIP-712

EIP-712是一种更高级、更安全的交易签名方法。使用该标准不仅可以签署交易并且可以验证签名,而且可以将数据与签名一起传递到智能合约中,并且可以根据该数据验证签名以了解签名者是否是实际发送该签名的人要在交易中调用的数据。

Polygon Labs总裁:下一个Jeff Bezos将来自Web3:金色财经报道,Polygon Labs总裁Ryan Wyatt在他的书中写道,他希望有一天能领导一家公司。现在他正在做这件事,尽管是在一个非常不同的行业。他认为下一个巨大的科技巨头或杰出人物将来自这个行业。

Wyatt表示,“我毫不怀疑,甚至就目前而言,或许下一个亚马逊已经出现了,那个人或许会成为下一个Jeff Bezos,他就在Web3中。请注意,他就要来了,希望他是在Polygon上构建。”[2023/2/19 12:15:13]

EIP-712提出了数据的标准结构和从结构化消息生成散列的定义过程。然后使用此散列生成签名。通过这种方式,为发送交易生成的签名与为验证身份或任何其他目的生成的签名之间就有了明显的区别。EIP-712草案将签名方案背后的动机表述为:

提高链上使用的链下消息签名的可用性。我们看到越来越多的人采用链下消息签名,因为它节省了gas,减少了区块链上的交易数量。

EIP-712是类型化结构化数据的哈希和签名的标准,而不仅仅是字节字符串。它包括一个

Blockstream首席执行官:Sushi就是一个退出局:Blockstream首席执行官Adam Back昨日在推特上表示:这个有点意思:Sushi:贷款,空投,先拉后砸;莱特币:比特币是黄金的话莱特币就是白银,早期挖矿/购买,顶部卖出。今日Adam Back继续发推称,鉴于昨日发生的新情况(指SushiSwap创始人Chef Nomi套现1.8万枚ETH),需要更新一下:Sushi:贷款,空投,拉盘,退出局。此前消息,有成员表示SushiSwap创始人Chef Nomi疑似套现价值600万美元的ETH,随后导致SUSHI代币暴跌。Chef Nomi回应称,套现只造成5%的滑点。他将继续推进SushiSwap的发展和流动性迁移,继续在社区提供技术支持。同时他还坚称:“我卖掉Devshare的SUSHI代币和Sushiswap是不是局没有关系,我不知道为什么现在每个人都认为我是个子。我没有偷任何人的钱。Devshare的使用方式在最初的博客文章中已经非常清楚地说明了。”[2020/9/6]

编码函数正确性的理论框架,

动态 | EOSLocally第一个点对点EOS交易平台启动,允许银行卡、微信买卖EOS:交易平台EOSLocally的第一个点对点的EOS交易平台(EOS-FIAT)启动,该平台允许各种付款系统买卖EOS代币,比如银行卡、微信支付等。[2019/10/16]

与solid结构相似并兼容的结构化数据规范,

安全哈希算法用于这些结构的实例,

在可签名消息集中安全包含这些实例,

一个可扩展的域分离机制,

新的RPC调用eth_signTypedData,

EVM中哈希算法的优化实现。

EIP-712的实现可以在UniswapV2的Periphery合约中看到,它通过许可移除流动性,最终调用UniswapV2Core中的方法来完成这一操作。

前端的签名被传递给Periphery中的方法,签名被用来代表Core中使用该方法的用户批准Router合约。

声音 | 韩国证券交易所官员:正考虑提供一个可靠的比特币指数:据《韩国先驱报》报道,韩国唯一证券交易所运营商韩国交易所(Korea exchange, KRX)的一名官员表示,该交易所正密切关注美国监管机构在比特币交易所交易基金(ETF)方面的进展。这位官员补充称,韩交所正在广泛讨论提供一个可靠的比特币指数,这将是“推出此类ETF商业化并融入市场所必需的,因为它最终会涉及投资者保护问题。[2019/2/22]

示例代码

我们的示例将使用EIP-721提案用数据(地址、storedData的值和截止日期)签署交易,这些数据用于更改合约中变量的值。

如果签名和散列给出了签署人的地址,并且没有超过截止日期,则更改storedData的值。

这是一个无用的例子,但理解了它将确保您可以在其他地方使用该标准。正确使用EIP-712是创建一个ERC20许可证,就像Uniswap团队所做的那样。

步骤1

继续克隆truffle的reactbox。

欧链老狼:EOS会成为第一个可以跑起来上百个智能合约应用的平台:EOS超级节点竞选团队欧链的老狼在《欧链·宁话区块链》第二季的节目中称“我们认为区块链产业第三个里程碑是企业级智能合约平台,EOS会成为第一个可以跑起来上百个智能合约应用的平台。现在的性能测试数据显示,以太坊一秒支持20笔交易,EOS支持1900笔交易。也就是说,以太坊能够支撑起1个加密猫,EOS可以支撑起100个加密猫。”[2018/6/1]

我们将根据需要简单地调整和添加代码,以使EIP-712正常工作。

步骤2

数据是EIP-712中最关键的部分。这些要签名的数据必须符合预定义的格式。它必须有一个EIP712Domain和要签名的数据(在我们的示例中设置)。两者的组合将被签名并发送给智能合约进行验证。

在EIP-712下签名的每个数据必须有一个EIP712Domain和另一个数据。这两者的结构可以是任何东西,但必须在JS代码和SC代码上相同。

当使用该提案时,EIP712Domain的结构是一个被广泛接受的标准。

?EIP-712数据标准

EIP712Domain有一些参数,这些参数指定在哪个网络和哪个特定合约上将用于验证签名。另一份具有相同代码的合同将无法验证该签名。

步骤3

让我们添加一个按钮,当单击该按钮时,将弹出元掩码,使用eth_signTypedData_v3方法对数据进行签名。

步骤4

一旦签署了上面定义的数据使用eth_signTypedData_v3方法我们得到了签名和签名分割成其r,s,和v组件并将其发送到智能合约将使用ercrecover这些参数和数据哈希恢复签名者的公钥。

拆分签名

步骤5

编写智能合约。

就像我们定义了包含EIPdomain和要签名的数据的JS代码一样,智能合约也需要两个变量来表示每个EIPdomain的散列数据和我们的数据(在本例中是设置数据)。

使用ercrecover

在UI端,我们对数据进行签名,并将r、s和v发送给智能合约。

上面的代码做了两件事,首先它散列数据并生成它们的散列。接下来,它使用该数据的散列(在SC中称为散列)和签名,使用ercrecover方法生成签名者的公钥。

上面显示的数据的两个kecak哈希值应该类似于在outJS代码中定义的数据结构。如果两者不同,则无法恢复签名者的地址。

签名数据的结构

步骤6

将infura中的助记符添加到truffle-config.js文件(第3行),并指定部署者的地址(第18行)。上面的例子使用了rinkebytestnet,但是任何测试都可以使用,并查看truffle文档来部署到其他测试网。

然后部署合同。部署后复制simplestorage的地址,替换为verifyingContract下app.js第76行的地址。

部署代码片段

步骤7

进入client目录,运行npmrunstart启动react应用。

按下'Presstosign'按钮,然后在元掩码弹出的签名请求上签名。接下来,确认交易以设置智能合约上的值。

交易完成后,刷新webapp以查看所反映的变化。

标签:EOSUSHSHISUSHIDEOSSUSHIBULL价格Shibarium Pad3X Short Sushi Token

币安下载热门资讯
GEN:美国SEC新主席还是加密行业“友军”吗?

8月3日,美国证券交易委员会(SEC)新任主席GaryGensler传达出对加密货币领域加强监管的信号.

1900/1/1 0:00:00
Uniswap:去中心化金融成为监管重地:如何将 DeFi 前端去中心化?

运行在区块链上的智能合约可以提供抗审查和持续运营的能力,但是用户在接入这些智能合约之前,如何确保前端体验也能提供同样的去中心化特性?上周.

1900/1/1 0:00:00
TVL:DeFi锁定总价值回升 能否再次爆发?

TVL数据回升 自从BTC价格从高位回撤之后,DeFi板块也遭受了重创。但是,DeFi的实际应用使其拥有较强的基本面支撑,近一个月以来,CoinDeskDeFi指数在400附近两次出现强势反弹,

1900/1/1 0:00:00
SWAP:Uniswap与Sushiswap有什么潜在风险吗?

今天这篇文章,将要带领大家走近Uniswap与Sushiswap的另一面,看看它们有何不足之处。UniswapUniswap的经济激励机制设计不足:首先,未考虑流动性时间价值.

1900/1/1 0:00:00
亚马逊:从暗示到否认 亚马逊会跟随PayPal、特斯拉等巨头入局数字货币吗?

上周末,线上零售巨头亚马逊公司一则招聘信息引起了人们的关注,因为这个岗位是——数字货币和区块链产品负责人。此消息流出之后,比特币很快便飙升到40,000美元,亚马逊公司股价也上涨了约1%.

1900/1/1 0:00:00
APR:一文详解影响DeFi流动性提供者盈利能力、权衡和风险回报的关键因素

DeFi协议依赖于流动性,因此为任何愿意为其平台增加流动性的人建立了经济激励措施。在我们的低利率宏观经济环境中,闲置现金几乎为零,DeFi收益率变得非常诱人.

1900/1/1 0:00:00