Почему ethereum использует RLP-кодирование
Почему ethereum использует кодировку RLP для сериализации данных, я имею в виду, что есть особая причина не использовать уже существующие форматы? кроме того, что RLP действительно компактен и компактен.
3 ответа
RLP - это детерминированная схема, тогда как другие схемы могут давать разные результаты для одного и того же ввода, что абсолютно неприемлемо для блокчейна. Даже небольшое изменение приведет к совершенно другому хешу и приведет к проблемам с целостностью данных, которые сделают всю цепочку блоков бесполезной.
- простота реализации, построена на кодировке ASCII.
- гарантированная абсолютная байтовая согласованность. Специально для структуры данных Key / Value Map мы можем представить ее как
[[k1, v1], [k2, v2], ...]
, но тип ключа нестабилен, что означает, что использование одного и того же значения (Map) в разных устройствах приведет к разному результату. Таким образом, RLP гарантировал согласованность требований хэша Ethereum tx.
Целью RLP (Рекурсивный префикс длины) является кодирование произвольно вложенных массивов двоичных данных, а RLP является основным методом кодирования, используемым для сериализации объектов в Ethereum. Смотрите этот RLP
Как вы упомянули, RLP - это просто вариант, кто-то может быть знаком с этим форматом, а другие - нет, но как только вы выберете эту технологию, лучше быть последовательным в одном проекте, чтобы не путать других.