火星链 火星链
Ctrl+D收藏火星链
首页 > 瑞波币 > 正文

区块链:一个示例来解释EIP-712

作者:

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

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

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

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

Solidity基础知识

npm 7.19.1

节点 16.2.0

Metamask 9.8.4

truffle 5.4.0

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

Kraken联合创始人:即将到来的比特币减半可能会引发下一个牛市的开始:金色财经报道,加密货币交易所Kraken联合创始人兼前首席执行官Jesse Powell在Bankless播客中预测,即将到来的比特币减半可能会引发下一个牛市的开始。?Powell表示,从这个行业损失 100 亿美元的资本只是一个巨大的打击。如果把它偷走,那本可以成为伟大的东西并推动这个行业向前发展。所以这需要一些时间才能从中恢复过来,FTX 的后果给许多零售用户和机构造成了数十亿美元的损失,使加密行业的声誉需要修复,这最终需要一些时间。不过,他表示,下一次比特币减半预计将在 2024 年上半年发生,这可能是市场的下一个看涨催化剂。?[2022/11/22 7:53:32]

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

Kava联创:若Evmos不能免费使用,Kava将构建和维护一个免费的EVM兼容模块:金色财经消息,Kava联合创始人兼CEOScottStuart发推表示,如果Ethermint(现Evmos)不能免费使用,Kava将构建和维护一个永久免费使用的EVM兼容模块。2021年10月Cosmos开发的Ethermint由于商标问题以及范围扩大升级为Evmos,它允许通过IBC与以太坊主网、EVM兼容环境和其他BFT链互操作。[2022/8/30 12:56:55]

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

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

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

声音 | 浙江大学蔡亮:小型互联网软件将互相连接,从而构造一个更大范围的区块链网络:金色财经报道,浙江大学区块链研究中心常务副主任蔡亮表示,区块链本身构造了一种社会化的、开放式的协作经济关系。从某种角度上讲,它会改变现在的一些互联网平台,它会使得整个社会的经济重新回到大规模的、开放式的协作状态,从而进一步解放全人类的生产力。从目前看,区块链似乎是架构在互联网之上,由应用软件构造而成的一个新型网络。但随着时间的变化,将来这些小型的互联网软件它会互相连接,从而构造一个更大范围的区块链网络。等上层的区块链网络,它的覆盖应用的丰富程度和它的节点规模大到和底层的互联网尺度可以比拟的时候,这上下两层的网络一定是会相互融合的,从而构造成为下一代互联网。但是下一个50年,很有可能我们的传统互联网会走向资产互联、价值互联。[2020/1/24]

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

声音 | Alex Karasulu:天秤座是一个支付平台,不是货币:OptDyn的首席执行官和创始人Alex Karasulu在采访中,他表示,Libra,即区块链,是经过许可的区块链,这意味着只有经过授权的验证器才允许在网络上使用。天秤座基金会的100名企业成员中的每一位都充当交易验证者。它从一开始就是一个卡特尔,这可能会给基金会之外的两个组织带来问题,也不会受到顽固的比特币粉丝和密码无政府主义者的欢迎。在某种程度上,这听起来像是天秤座是一个中心平台的华丽辞藻。它不掌握在用户手中,而是由一个大约27个组织组成的协会控制,这些组织包括优步(Uber)和Visa。(livebitcoinnews)[2019/10/12]

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

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

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

声音 | 江卓尔:BCH分叉给韭菜提供了一个可骂的解释归因:莱比特矿池江卓尔回应网友“BCH分叉影响币市暴跌”时称,分叉在之前的惯例都是涨,BCH分叉的作用是 “在下跌恐慌情绪中,给韭菜提供一个可骂的解释归因”,换成其他任何一件事都可以。[2018/11/21]

新的RPC调用eth_signTypedData,

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

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

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

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

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

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

继续克隆 truffle 的react box。

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

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

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

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

 EIP-712 数据标准

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

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

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

拆分签名

编写智能合约。

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

使用 ercrecover

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

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

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

签名数据的结构

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

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

部署代码片段

进入client目录,运行npm run start启动react应用。

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

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

标签:区块链DomainAINDOM区块链是什么多选题Domain CoinworldgenechainRandom

瑞波币热门资讯
CAS:拆解比特币交易生态:都有哪些机构 都在做什么?

比特币刚诞生的时候,机构并不太感冒。但从2020年开始,机构的兴趣越来越浓。背后一大主因是疫情之下,以美国为代表的央行实行过于宽松的印钞政策,引发市场剧烈震动.

1900/1/1 0:00:00
NFT:NFT 安全吗:回顾 CryptoPunks、Meebits 历史上的合约漏洞

随着日本开放 NFT 业务平台,韩国三大娱乐公司之一的 JYP 公司将目光转向 NFT 市场,NFT 越来越受普通人的关注.

1900/1/1 0:00:00
数字人:北京市发布超前布局区块链 加快建设数字城市方案

各区委、区政府,市委各部委办,市各国家机关,各国有企业,各人民团体,各高等院校:经市委、市政府同意,现将《北京市关于加快建设全球数字经济标杆城市的实施方案》印发给你们,请结合实际认真贯彻落实.

1900/1/1 0:00:00
HAI:Chainlink Keepers正式在主网上线为dApp提供安全且低成本的链下计算资源

在各个项目纷纷将预言机功能委托给Chainlink Price Feeds等去中心化解决方案后,DeFi才真正迎来了创新潮.

1900/1/1 0:00:00
Blox:元宇宙是“方块”搭成的?

摘要本文着眼于一个问题:为什么风靡全球的Roblox、Minecraft都是乐高式的方块搭成的?为什么不能像魔兽一样有精美的人物模型?特立独行,方块构建游戏世界.

1900/1/1 0:00:00
元宇宙:在元宇宙领域中:波卡将扮演什么样的角色

今年上半年,区块链行业有1个备受关注的词语承接了去年DeFi的热潮,其以高位出圈的姿态向世人展示了一场区块链+艺术的新兴发展业态,并一度占据了各大新闻媒体的头条.

1900/1/1 0:00:00