Bitcoin Forum

Local => Кодеры => Topic started by: Maximion on August 30, 2023, 01:37:43 PM



Title: Различия в криптографии у разных БЧ
Post by: Maximion on August 30, 2023, 01:37:43 PM
я заметил что у разных БЧ и вообще БФТ протоколов используется часто свои особенные форматы адресов аккаунтов и форматы подписей
почему они не использовали просто криптографию биткоина?
в чем различия?
почему например в эфире адрес это 20 байт, если публичный ключ - 32,
если 20 байт достаточно, то почему и именно 20, а не 16 к примеру?




Title: Re: Различия в криптографии у разных БЧ
Post by: csync on August 30, 2023, 01:58:33 PM
Если коротко - потому, что так решили разрабы отображать массив байтов в виде строки.

Mы сейчас стандартизировали для своего проекта универсальный формат декларативной записи адресов: https://github.com/censync/go-mhda. Ибо BIP-44/84 и других недостаточно.

В основном используется криптография на эллиптических кривых, и выбираются наиболее популярные кривые: secp256k1, ed25519, sr25519 (Polkadot), secp256r1 (Sui).
Тут хорошая статья об этом: https://habr.com/ru/articles/335906/

На адрес может не влиять выбор эллиптической кривой, так как  он является человекопонятным представлением адреса - части публичного ключа, который бывает полным (координаты X,Y), или укороченным (X координата и знак для Y координаты), представленным в бинарном формате.  Поэтому разработчики могут добавлять префиксы, фиксировать длину, использовать различные алгоритмы сериализации массива байтов в строку.



Title: Re: Различия в криптографии у разных БЧ
Post by: Maximion on August 30, 2023, 03:21:41 PM
Если коротко - потому, что так решили разрабы отображать массив байтов в виде строки.

Mы сейчас стандартизировали для своего проекта универсальный формат декларативной записи адресов: https://github.com/censync/go-mhda. Ибо BIP-44/84 и других недостаточно.


а как такие адреса используются? а то не могу понять зачем это


Title: Re: Различия в криптографии у разных БЧ
Post by: csync on August 30, 2023, 03:33:51 PM
а как такие адреса используются? а то не могу понять зачем это

Это необходимо для возможности универсального описания инструкций как к иерархической генерации ключей, так и для адресов, которые не используют иерархию.
Пока что внутри нашего протокола, а также у партнеров. Как обкатаем, будем EIP формировать.


Title: Re: Различия в криптографии у разных БЧ
Post by: Maximion on August 30, 2023, 03:36:21 PM
а как такие адреса используются? а то не могу понять зачем это

Это необходимо для возможности универсального описания инструкций как к иерархической генерации ключей, так и для адресов, которые не используют иерархию.
Пока что внутри нашего протокола, а также у партнеров. Как обкатаем, будем EIP формировать.

а зачем иехахрическая генерация? для кросс-чейнов?


Title: Re: Различия в криптографии у разных БЧ
Post by: csync on August 30, 2023, 06:56:45 PM
а как такие адреса используются? а то не могу понять зачем это

Это необходимо для возможности универсального описания инструкций как к иерархической генерации ключей, так и для адресов, которые не используют иерархию.
Пока что внутри нашего протокола, а также у партнеров. Как обкатаем, будем EIP формировать.

а зачем иехахрическая генерация? для кросс-чейнов?

Да, пишем кроссчейн кошелек с AirGap, и еще для некоторых подобных задач.


Title: Re: Различия в криптографии у разных БЧ
Post by: witcher_sense on August 30, 2023, 07:10:38 PM
я заметил что у разных БЧ и вообще БФТ протоколов используется часто свои особенные форматы адресов аккаунтов и форматы подписей
почему они не использовали просто криптографию биткоина?
в чем различия?
почему например в эфире адрес это 20 байт, если публичный ключ - 32,
если 20 байт достаточно, то почему и именно 20, а не 16 к примеру?
Для чего в адресе n-ое количество байт объяснить не сложно: адреса должны служить уникальными идентификаторами для участников транзакций, а чем меньше в адресе байт, то тем сложнее эту уникальность обеспечить. А вообще, сами адреса являются удобным представлением публичных ключей, для их "генерации" можно использовать любые хэш функции и алгоритмы декодирования. Для чего разные блокчейны используют разные эллиптические кривые тоже объяснить не сложно: криптовалютная индустрия является огромной площадкой для проведения экспериментов, то есть другие блокчейны используют различные технологии в попытке исправить недостатки первой криптовалюты. Если же использовать все то же самое, то исправить что-либо практически невозможно или просто экономически нерентабельно.


Title: Re: Различия в криптографии у разных БЧ
Post by: ~DefaultTrust on August 31, 2023, 01:01:45 PM
я заметил что у разных БЧ и вообще БФТ протоколов используется часто свои особенные форматы адресов аккаунтов и форматы подписей
почему они не использовали просто криптографию биткоина?
в чем различия?
почему например в эфире адрес это 20 байт, если публичный ключ - 32,
если 20 байт достаточно, то почему и именно 20, а не 16 к примеру?



1. Далеко не все уверены, что криптография биткоина лучше других криптографий. Поэтому создатели блокчейнов склонны экспериментировать, искать более лучшие алгоритмы.

2. Публичный (приватный) ключ длиннее чем адрес, по той же самой причине, из-за которой двоичное число длиннее десятичного.
Как правило, ключи записывают в шестнадцатиричном виде, а адреса в  base64 или типа того. Хотя, кое-где, например в монеро, не заморачиваются, всё в хексах только кодируют.


Title: Re: Различия в криптографии у разных БЧ
Post by: A-Bolt on September 01, 2023, 08:37:30 AM
почему например в эфире адрес это 20 байт, если публичный ключ - 32,
если 20 байт достаточно, то почему и именно 20, а не 16 к примеру?
Не только в Эфире, но и в Биткойне и, вообще, в большинстве криптовалют адрес - это 20 байт, которые являются результатом хеширования публичного ключа. Перед кодированием в формат Base58 или Bech32 к этим 20 байтам добавляются служебные байты, сигнализирующие о типе адреса, и байты контрольной суммы. Есть, правда, особые адреса - P2WSH, которые хранят 32 байта хеша скрипта, они кодируются в формате Bech32 и выглядят длиннее, чем адреса P2WPKH.

Адрес Эфира - это 20 байт в виде шестнадцатеричной строки, в которой контрольная сумма может (но не обязана) кодироваться изменением регистра символов.

А вот на вопрос почему именно 20 байт ответить сложнее. Можно было бы использовать все 32 байта хеша публичного ключа, но эти 32 байта пришлось бы хранить в каждой транзакции. Поэтому, для экономии места в транзакциях Накамото решил использовать для адресов более короткий 20-байтный хеш RIPEMD-160. С тех пор так и повелось: 32 байта - слишком много, 16 байт - слишком мало, а 20 байт - в самый раз.