宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > 世界币 > 正文

Solidity 中的 ecrecover 的应用

作者:

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

译文出自:登链翻译计划

译者:翻译小组

校对:Tiny熊

有没有想过Solidity中的ecrecover命令到底是怎么回事?

这都是关于签名和密钥的...

PublicKeyXKCD

什么是ecrecover?

你可能在Solidity合约中看到过ecrecover,并想知道这到底是什么。那么你遇到了EVM预编译ecrecover。预编译是一些提前被编译的智能合约的通用函数,所以Ethereum节点可以有效地运行这个函数。从合约的角度来看,这只是一个像操作码一样的单一命令。

看看下面的代码:

functionrecoverSignerFromSignature(uint8v,bytes32r,bytes32s,bytes32hash)external{addresssigner=ecrecover(hash,v,r,s);require(signer!=address(0),"ECDSA:invalidsignature");}

基本上,大家就是这样使用它,尽管还有更多的内容。不要在生产中实际使用上述代码,PatricioPalladino正确地指出了这一点。正确的方法是在本文底部的最后一个例子中。

DontUnderstandMeme

那么,这一切意味着什么呢?假设你熟悉公钥密码学的基本概念,这将很容易理解。

你可能知道,每当你向以太坊网络发送一笔交易时,必须用你的私钥签署这笔交易。自然也假设以太坊节点有某种方式来验证签名是正确的。

这种验证签名的功能也同样添加到了智能合约上。有了这个功能,你可以验证更多的东西,而不仅仅是交易签名本身。事实上,你可以将任何数据传递给智能合约,对其进行散列,然后根据数据验证其签名。上面的代码中的签名是v、r和s的组合。

Solana基金会持有约343万枚FTT和1

Solana上DeFi协议总锁仓量为71

}

远程招聘公司Deel支持使用USDC、Solana支付工资:12月14日消息,远程招聘公司Deel已扩展其加密功能,使用Deel平台获取报酬的承包商现在能够以USDC或者Solana的形式领取工资。该平台此前已经支持比特币、以太坊和XRP工资支付。用户需要拥有Coinbase交易所账户才能使用新功能。

Deel联合创始人兼首席执行官Alex Bouaziz称,Deel的企业客户包括Coinbase、BlockFi、Rarible和OpenSea等公司。

据此前报道,加密友好的远程招聘公司Deel在完成4.25亿美元D轮融资之后,估值已达到55亿美元。(The Block)[2021/12/14 7:37:12]

这就是目前最新的EIP-721的第四版标准。如果你在其他合约中遇到EIP-712的实现,要注意使用的是哪个版本。

另外,最后也说明一下,调试无效的签名是非常痛苦的,因为任何数值的微小差异都会导致无效的签名,但你不知道哪些数据可能是错误的。因此,如果你遇到无效签名,一定要仔细检查你的所有输入。

另一个有趣的标准是EIP-1271。由于以太坊的智能合约背后没有私钥,所以它们不能创建那些v、r、s签名。但有了这个标准,仍然可以让合约本身创建签名,见我之前的文章的底部。

来源:WhatisecrecoverinSolidity?

参考资料

登链翻译计划:https://github.com/lbc-team/Pioneer

翻译小组:https://learnblockchain.cn/people/412

Tiny熊:https://learnblockchain.cn/people/15

EVM预编译:https://ethervm.io/#3F

ecrecover:https://docs.klaytn.com/smart-contract/precompiled-contracts#address-0x-01-ecrecover-hash-v-r-s

PatricioPalladino:https://twitter.com/alcuadrado

公钥密码学:https://en.wikipedia.org/wiki/Public-key_cryptography

MetaTransactions:https://soliditydeveloper.com/meta-transactions

无需gas代币和ERC20-Permit还任重而道远:https://learnblockchain.cn/article/1790

eip-712:https://github.com/Mrtenz/eip-712

ERC20-Permit:https://learnblockchain.cn/article/1790

例子:https://github.com/danfinlay/js-eth-personal-sign-examples

eth-sig-util:https://github.com/MetaMask/eth-sig-util

可塑的:http://coders-errand.com/malleability-ecdsa-signatures/

EIP-1271:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1271.md

之前的文章:https://soliditydeveloper.com/meta-transactions

WhatisecrecoverinSolidity?:https://soliditydeveloper.com/ecrecover

免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。

本文来源于非小号媒体平台:

登链社区

现已在非小号资讯平台发布105篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/10138004.html

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

巨鲸的资金涌向哪里,哪里就是热点!

标签:HTTTPSRECECOhtt币价格https://etherscan.ioFutureCoinSprinkleCoin

世界币热门资讯
影响力即财富,a16z的崛起给予我们的启示

6月24日,随着安德森·霍洛维茨宣布推出规模超过22亿美元的第三支加密资产投资基金CryptoFundIII,以硅谷坏小子著称的a16z再一次吸引了人们的眼球.

1900/1/1 0:00:00
Visa 加密卡今年上半年消费活动超过 10 亿美元,计划添加 USDC 结算功能

链闻消息,支付巨头Visa宣布公司2021年上半年,加密货币相关的Visa卡消费活动超过10亿美元。Visa与50多家加密货币公司合作开发加密Visa卡,让全球7000万商家交易和使用数字货币.

1900/1/1 0:00:00
Litentry与MathChain达成合作,共同发掘DID在DeFi、跨链应用场景

巴比特讯,7月5日,去中心化的身份聚合器Litentry发文宣布与由麦子钱包开发基于Substrate的Layer2平行链MathChain达成合作,双方将共同发掘去中心化身份认证在DeFi、跨链中更多的应用场景.

1900/1/1 0:00:00
中币暂停BTC提币业务

尊敬的中币用户: ???由于BTC钱包维护,维护期间暂停BTC提币业务,给您带来的不便敬请谅解!???感谢您对中币的支持与信任!中币(ZB)早行情:BTC现报18224美元:据中币(ZB)交易平台行情数据,截止到今日09:50时.

1900/1/1 0:00:00
FIL币是建立在IPFS基础上,先有IPFS,再有FIL币

先说说最主要的IPFS是什么吧在这里我也不用官方的专业术语来表达了,就根据我自己的理解来讲一下(可能不太专业,哈哈).

1900/1/1 0:00:00
首期大客户专属空投活动公告

尊敬的ZT用户: ????ZT大客户权益已值三周年之际正式重装上线,大客户将享受ZT所有最优权益.

1900/1/1 0:00:00