Почему последние 20 байтов открытого ключа используются в качестве адреса?

В соответствии с этим сообщением о том, как вывести адрес Ethereum из открытый ключ:

  

Возьмите последние 40 символов /20 байтов этого открытого ключа   (Keccak-256). Или, другими словами, отбросить первые 24 символа /12   байт. Этими 40 символами /20 байтами являются адрес. Когда префикс   с 0x он становится длиной 42 символа.

Мой вопрос в том, почему последние 20 байтов (в отличие от чего-то другого, чем 20), является ли это произвольным решением или есть ли для него математическая цель?

5 голосов | спросил delos 7 PM000000100000005131 2018, 22:29:51

1 ответ


4

Полные открытые ключи на самом деле не так полезны в Ethereum *, поскольку они не служат никому практическому использованию. Взятие последних 20 байтов:

  1. Эвристика направлена ​​на упрощение управления ключом; то есть копировать и вставлять, контрольные суммы или подтверждения по телефону в больших передачах.

  2. Предотвращение механизма безопасности. Хеширующие функции ломаются каждые десять лет или около того, поэтому сокращение полного открытого ключа - отличный дополнительный уровень защиты. Сатоши сделал то же самое в биткойне, так как адрес хэшируется дважды: SHA-256 и RIPEMD-160 (если кто-то сломается, у вас все еще есть другой в качестве щита).

* Вы можете использовать Ethereum для отправки сообщений, но зачем вам? Это дорого, и вы можете использовать PGP.

ответил PaulRBerg 8 AM000000120000000531 2018, 00:27:05

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132