Bitcoin Forum

Local => Кодеры => Topic started by: adamgud on November 02, 2018, 12:33:39 PM



Title: Сигнатура в keccak-256 для регистрации ETH адреса (hex string)
Post by: adamgud on November 02, 2018, 12:33:39 PM
Привет специалистам. Столкнулся с такой проблемой. Некий проект, запустив свой кошелек, представляет на выбор две возможности. Зарегистрировать адрес (на 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, но вот что именно (сколько знаков  -какой формат) вставить в строку непонятно. Помогите, добрые люди!)

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


Title: Re: Сигнатура в keccak-256 для регистрации ETH адреса (hex string)
Post by: bomj on November 02, 2018, 01:44:25 PM
Здесь посмотрите
https://etherscan.io/tokenupdateverifysig
How to Sign Message using MYETHERWALLET?
https://dmarket.io/info/en/message-signing-myetherwallet/
В свое время подтверждал адрес по данным мануалам на etherscan, получилось.


Title: Re: Сигнатура в keccak-256 для регистрации ETH адреса (hex string)
Post by: Coin-1 on November 03, 2018, 03:30:04 AM
Вот задача.
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.


Title: Re: Сигнатура в keccak-256 для регистрации ETH адреса (hex string)
Post by: adamgud on November 03, 2018, 09:11:49 AM
Вот задача.
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, чего изначально не делал. Все принято системой.