Bitcoin Forum
May 25, 2024, 06:50:37 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Сигнатура в keccak-256 для регистрации ETH адреса (hex string)  (Read 229 times)
adamgud (OP)
Hero Member
*****
Offline Offline

Activity: 1204
Merit: 521



View Profile
November 02, 2018, 12:33:39 PM
 #1

Привет специалистам. Столкнулся с такой проблемой. Некий проект, запустив свой кошелек, представляет на выбор две возможности. Зарегистрировать адрес (на ETH блокчейне) 1. привязав его через  импорт приватного ключа и т.п. или 2. через сигнатуру. Но вот внести сигнатуру нужно хешировав как то хитроумно, что неспецу совсем не по силам. Может кто подскажет четкий алгоритм. Конверторов в отрытом доступе много -но вот пошагово  сделать не получается. Пишет что длина знаков не соответсвует а должно быть signature hex string.

Вот задача.
Manual registration
Sign the keccak-256 hash of the message "I agree to the terms and conditions for signing up for the nahmii airdriip." the same way geth or web3js would, and enter the accociated address and signature below.


Пытался полученную через https://www.myetherwallet.com/signmsg.html подпись конвертировать в keccak-256, но вот что именно (сколько знаков  -какой формат) вставить в строку непонятно. Помогите, добрые люди!)

Модератору! Извините, если не туда запостил топик, уже совсем извелся в поисках этого решения -вот и пришел к профи за советом.
bomj
Sr. Member
****
Offline Offline

Activity: 1337
Merit: 288


0xbt


View Profile WWW
November 02, 2018, 01:44:25 PM
Last edit: November 02, 2018, 02:08:02 PM by bomj
 #2

Здесь посмотрите
https://etherscan.io/tokenupdateverifysig
How to Sign Message using MYETHERWALLET?
https://dmarket.io/info/en/message-signing-myetherwallet/
В свое время подтверждал адрес по данным мануалам на etherscan, получилось.

Coin-1
Legendary
*
Offline Offline

Activity: 2464
Merit: 2195



View Profile
November 03, 2018, 03:30:04 AM
Last edit: November 03, 2018, 03:57:09 AM by Coin-1
Merited by taikuri13 (2), Alex_Sr (1)
 #3

Вот задача.
Manual registration
Sign the keccak-256 hash of the message "I agree to the terms and conditions for signing up for the nahmii airdriip." the same way geth or web3js would, and enter the accociated address and signature below.

Пытался полученную через https://www.myetherwallet.com/signmsg.html подпись конвертировать в keccak-256, но вот что именно (сколько знаков  -какой формат) вставить в строку непонятно. Помогите, добрые люди!)

KECCAK256 это алгоритм хеширования, намного более ресурсоёмкий, чем SHA256. Широко применяется в Ethereum при генерации ETH-адресов и т.п. Результатом хеширования входной последовательности байтов является 256-битная (то есть 32-байтная) строка.

Скорее всего, сначала Вам нужно хешировать требуемый текст при помощи программы keccak256, затем, используя приватный ключ, подписать полученное 32-байтное число асимметричным шифром ECDSA secp256k1, после этого определённым образом инкрустировать полученную 64-байтную HEX-строку в ETH-транзакцию и отправить её в блокчейн Ethereum в поле DATA.
adamgud (OP)
Hero Member
*****
Offline Offline

Activity: 1204
Merit: 521



View Profile
November 03, 2018, 09:11:49 AM
Last edit: November 14, 2018, 03:32:55 PM by adamgud
 #4

Вот задача.
Manual registration
Sign the keccak-256 hash of the message "I agree to the terms and conditions for signing up for the nahmii airdriip." the same way geth or web3js would, and enter the accociated address and signature below.

Пытался полученную через https://www.myetherwallet.com/signmsg.html подпись конвертировать в keccak-256, но вот что именно (сколько знаков  -какой формат) вставить в строку непонятно. Помогите, добрые люди!)

KECCAK256 это алгоритм хеширования, намного более ресурсоёмкий, чем SHA256. Широко применяется в Ethereum при генерации ETH-адресов и т.п. Результатом хеширования входной последовательности байтов является 256-битная (то есть 32-байтная) строка.

Скорее всего, сначала Вам нужно хешировать требуемый текст при помощи программы keccak256, затем, используя приватный ключ, подписать полученное 32-байтное число асимметричным шифром ECDSA secp256k1, после этого определённым образом инкрустировать полученную 64-байтную HEX-строку в ETH-транзакцию и отправить её в блокчейн Ethereum в поле DATA.

Благодарю! Так и получилось. Только нужно в не транзакцию формировать Hex -строку а прямо в поле для заполнения в их кошельке. И при хешировании при помощи программы keccak256 нужно в ручную добавлять 0x, чего изначально не делал. Все принято системой.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!