区块见闻 区块见闻
Ctrl+D收藏区块见闻
首页 > 以太坊 > 正文

STA:一个示例来解释EIP-712_比特币

作者:

时间:

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

比特币波动指数近一个月维持下降趋势,已回落至今年2月低位水平:5月22日消息,由金融指数公司 T3 Index 联合比特币期权交易平台 LedgerX 推出的 BitVol(比特币波动)指数在近一个月内维持下降趋势,昨日已跌至 52.88,回落至今年 2 月的低位水平,较前一日回暖 0.74%。注:BitVol指数衡量从可交易的比特币期权价格中得出的30天预期隐含波动率。隐含波动率是指实际期权价格所隐含的波动率。它是利用B-S期权定价公式,将期权实际价格以及除波动率σ以外的其他参数代入公式而反推出的波动率。期权的实际价格是由众多期权交易者竞争而形成,因此,隐含波动率代表了市场参与者对于市场未来的看法和预期,从而被视为最接近当时的真实波动率。[2023/5/22 15:18:22]

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

软银金融研究院彭和平:IPFS分布式存储可能会作为一个细分赛道蓬勃发展:由开源矿池和火币主办,金色算力云、链上ChainUP、Filecoin Beijing联合主办的“分布式存储中国行暨开源矿池IPFS私享会”2020年11月25日在深圳举行。软银金融研究院彭和平在会上表示,从今年开始到未来的若干年中,IPFS分布式存储可能会作为一个细分赛道蓬勃发展。一方面是因为大众对数据应用如视频、数据存储有刚性需求,另一方面是国家把数据作为新型生产资料进行了立法,人们对这部分的认知提高了一个维度。从全局来看,IPFS虽然说代表了一种新生力量,但是全局来看金融属性比较强,目前官方已经从算法和激励机制方面进行了调整,并且不断的扩大落地应用,也证明这个项目未来可期。[2020/11/25 22:07:54]

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

观点:比特币有望成为下一个全球储备货币的候选人:4月27日,Cointelegraph发文称,新冠肺炎疫情使人们注意到需要国际合作和支持,加上经济衰退,这些事实表明,现在是建立一种现代的、可获得的储备货币的时候了。而加密货币既可以完全访问,也可以通过网络参与自由接收。这才是真正的普惠金融,它并不是简单地将法定货币兑换成加密货币,而是一种包括被金融排斥者在内的新型产品。比特币的价值超越了归属及主权,而是来自算法和可计算的价值。加密货币有潜力完全重建政府在金融领域的角色,其使命是改革和扩大市场准入,因此它有望成为下一个全球储备货币的候选人。[2020/4/27]

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

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

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

动态 | StakerDAO 上线 Tezos 主网 正在完成第一个治理周期:链上自治 StakerDAO 成功上线 Tezos 主网,目前正在完成第一个治理周期。据悉,StakerDAO 首先是一个决策平台,STKR 通证持有人可以通过该平台协作来启动和管理金融资产。同时,STKR 的持有者有责任每年选举一个管理委员会,并相当于持有 StakerDAO 在开曼群岛经营实体 Staker Services Ltd 的股份。

StakerDAO 在官方博客透露,或在今年 2 月准备启动 PoS 通证(Tezos-XTZ/Cosmos-ATOM)跟踪器的提案,并着手研究 Tezos 网络的算法稳定币。[2020/1/28]

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

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

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

声音 | 江卓尔:澳本聪成功煽动分叉 凭空造出了一个币:今天江卓尔发微博表示称,“BCH是扩容吵了3年的自然顺产结果,澳本聪直接在几个月凭空造出一个币出来,8月份时我都不相信BCH有必须分的巨大矛盾。当时相信社区里也没几个人觉得有如此巨大矛盾吧?然后澳本聪就成功煽动分出来了,你看,巨啊。”[2018/11/27]

新的RPC调用eth_signTypedData,

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

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

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

示例代码

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

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

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

步骤1

继续克隆truffle的reactbox。

我们将根据需要简单地调整和添加代码,以使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以查看所反映的变化。

标签:STAAINMAIN比特币PSTAKE价格hichainMaincoin比特币美元实时行情

以太坊热门资讯
STE:Uniswap下架部分Token引发巨大争议 或意味“DeFi监管”开始_UNI

7月23日,著名的Defi平台Uniswap发布了一则公告,称将对于部分token作出限制,此举在推特上引来巨大争议,一些用户指责Uniswap不再是一个去中心化的平台.

马斯克:一文回顾马斯克和塞勒推文影响:“渣男”和“大徒”如何搅乱加密市场_马斯克最新消息狗狗币

加密货币市场主要受投资者情绪驱动,大多数社交对话始于推特。多年来,我们在推特上看到了一些影响加密货币价格的趋势和事件,最近有两个知名人物通过他们的推特活动对加密货币市场产生了影响;埃隆·马斯克和.

STE:详解以太坊 2.0 质押协议 Lido 业务机制、生态进展与经济模型_DEF

Lido是一个以太坊2.0质押服务平台,用户可质押任意数量ETH,并1:1获得质押代币stETH,参与DeFi市场其他服务.

STA:算法稳定币:稳中求变_STAK

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

UNI:Uniswap V3用户使用分析:LP的收益特点和 LP分布对二级市场交易的辅助_uni币多少钱

DEX中的头部平台UniswapV3UniswapV3自今年5月份上线以来,迅速成为了DEX市场头部平台.

UNI:一文了解热门链游Axie Infinity的五种正确玩法_Uniswap Wallet

AxieInfinity最近很火。在过去七天里,这款基于NFT的游戏创造了超过3900万美元的收益,这几乎超过了比特币和以太坊的总和。原因是什么?嗯......首先,这是一个有趣的游戏.