بازیابی کلید عمومی از امضا (Ethereum)

نکته: از آدرس به‌تنهایی نمی‌توان کلید عمومی را ساخت. باید یک امضا داشته باشی (مثلاً با MetaMask پیام را امضا کن).

یا

خروجی‌ها
Public Key (uncompressed, 0x04 + X + Y):
Public Key (compressed, 0x02/0x03 + X):
Recovered ETH address (raw, 0x + 40 hex):
Address matches provided?

توضیح فنی کوتاه: ما پیام را طبق استاندارد اتریوم (prefixed with "\x19Ethereum Signed Message:\n" + len) هش می‌کنیم، سپس از امضا (r,s,v) با ethers.utils.recoverPublicKey تابع ethers.utils.recoverPublicKey استفاده می‌کنیم که پابلیک‌کی را بازمی‌گرداند. آدرس از keccak256(publicKeyBytesWithout0x04)[12..] ساخته می‌شود.