Почему ethereum использует RLP-кодирование

Почему ethereum использует кодировку RLP для сериализации данных, я имею в виду, что есть особая причина не использовать уже существующие форматы? кроме того, что RLP действительно компактен и компактен.

3 ответа

RLP - это детерминированная схема, тогда как другие схемы могут давать разные результаты для одного и того же ввода, что абсолютно неприемлемо для блокчейна. Даже небольшое изменение приведет к совершенно другому хешу и приведет к проблемам с целостностью данных, которые сделают всю цепочку блоков бесполезной.

  1. простота реализации, построена на кодировке ASCII.
  2. гарантированная абсолютная байтовая согласованность. Специально для структуры данных Key / Value Map мы можем представить ее как [[k1, v1], [k2, v2], ...], но тип ключа нестабилен, что означает, что использование одного и того же значения (Map) в разных устройствах приведет к разному результату. Таким образом, RLP гарантировал согласованность требований хэша Ethereum tx.

Целью RLP (Рекурсивный префикс длины) является кодирование произвольно вложенных массивов двоичных данных, а RLP является основным методом кодирования, используемым для сериализации объектов в Ethereum. Смотрите этот RLP

Как вы упомянули, RLP - это просто вариант, кто-то может быть знаком с этим форматом, а другие - нет, но как только вы выберете эту технологию, лучше быть последовательным в одном проекте, чтобы не путать других.

Другие вопросы по тегам