月亮链 月亮链
Ctrl+D收藏月亮链
首页 > 区块链 > 正文

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

作者:

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

Willy Woo:比特币接近另一个价格明显稳定的区域:9月1日消息,分析师Willy Woo表示,比特币接近另一个价格明显稳定的区域,短期技术面疲软,而在链上投资者正处于积累状态。所有的波动性挤压的构成。突破50可能是通往60的快速通道。[2021/9/1 22:52:09]

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

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

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

动态 | 观点:将区块链技术引入政府部门是一个不可逆转的趋势:Cointelegraph今日发表分析师文章称,在中国,区块链技术已经找到了应用沃土。现有基础设施的缺乏会刺激新技术的更快采用。政府对数字经济的重视,以及对区块链技术的谨慎但有希望的认可,是投资者应认真对待的重要信号。在其他国家,政府和金融机构也在考虑是否可以将区块链应用于各种系统,以降低成本并促进公民对数据的访问。2019年7月,七家大型韩国公司合作开发基于区块链的移动识别系统,该系统计划于2020年启动,区块链网络已被命名为Initial DID Association。欧盟最近几年也开始公开承认区块链技术。将区块链技术引入全球政府部门是一个不可逆转的趋势。值得回顾的是几年前各国对区块链的态度,以及现在正在发生的变化。[2019/11/25]

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

动态 | 越南初创企业建立一个区块链系统:据bizhub消息,越南一家初创企业建立了一个多连接的区块链系统,允许世界各地的部委和企业之间共享和交换信息。该系统由KardiaChain基金会有限公司建立,还允许用户与世界各地的商品和服务供应商直接互动。此外,KardiaChain还为Dapps提供了一个平台,包括出租车服务、酒店和电子商务,直接连接供应商和消费者。[2019/3/24]

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

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

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

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

新的RPC调用eth_signTypedData,

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

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

ONO将使用EOS超级节点运营第一个区块链社交网络:今日,ONO的首席执行官徐克通过官方微博正式宣布,将使用EOS超级节点运营第一个区块链社交网络。这意味着EOS全球21个超级节点正式启动。[2018/3/27]

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

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

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

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

蒙大拿州将成为比特币的一个采矿中心:本周,位于蒙大拿的Butte和Anaconda两家网站效仿比特币矿业公司Crypto Watt LLC,获得了53英亩的土地。他们计划投资至少7500万美元,建设庞大的数据中心。数据中心是比特币项目的关键,因为可供开采的硬币越来越少,计算变得越来越困难。蒙大拿的气候有利于比特币的开采,其位于美国西北部,与加拿大接壤,一年的大部分时间里都很冷。[2018/2/3]

继续克隆 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以查看所反映的变化。

标签:区块链AINMAIN比特币有人靠区块链4天就挣了30万块钱Relianz chainZomaInfinity比特币的赚钱原理

区块链热门资讯
NFT:NFT部分生态梳理:从Flow链到Axie你了解多少?_BAYC Vault (NFTX)

NFT(Nonfungible Token)意为非同质化通证/非同质化代币,是一种不可分割、独一无二的加密数字凭证.

1900/1/1 0:00:00
区块链:一文探讨去中心化预言机网络如何驱动智能合约经济_DEFI

预言机(Oracles)是加密经济的一个重要基础设施。没有预言机,区块链就像没有互联网连接的计算机。它们与外部世界隔绝,只能参考区块链内部分类帐的本地信息。这限制了加密的用例.

1900/1/1 0:00:00
LAYER:layer2的投资思路_TROLL价格

layer2胖子哥没怎么聊,今天跟各位老哥吹吹~虽然不懂技术,但从宏观面上来看(见上图),从Layer2状态同步方式,Layer2分为两类:一是侧链实现(Side Chain).

1900/1/1 0:00:00
数字人:数字人民币试点规模有序扩大 开启支付新体验_买比特币用什么app

中国人民银行日前召开2021年下半年工作会议,在谈到深化重点领域金融改革时,会议提出稳妥推进数字人民币研发试点。此前,中国人民银行数字人民币研发工作组发布中国数字人民币的研发进展白皮书.

1900/1/1 0:00:00
EDE:Eden Network:照亮黑暗森林的伊甸园_TWO

黑暗森林已经是以太坊上老生常谈的话题之一了。这是因为以太坊的设计机制是将所有的交易放置于 mempool 中,而 mempool 就像黑暗森林一般危机四伏.

1900/1/1 0:00:00
稳定币:算法稳定币:稳中求变_bitstamp有外平台吗

市场和社区对于「理想型」算法稳定币的追求仍在继续。AMPL 因 Aave 的提案再次被推至风口浪尖。7 月 4 日这天,AMPL 突破 1.042 美元,进入增发阶段.

1900/1/1 0:00:00