Есть ли более эффективный по площади способ доказать, что транзакция содержится внутри блока?

Клиенты SPV, такие как Electrum, требуют криптографического доказательства того, что транзакция содержится в блоке. Это делается путем включения каждой ветви merkle, необходимой для получения хэша, равного корню merkle блока. Это принимает log(2, N) * 32 bytes, где N - количество транзакций в блоке.

Существует ли более экономичный способ криптографического доказательства того, что транзакция содержится внутри блока?

Для аргумента предположим, что вам разрешено изменять способ вычисления заголовка блока и дерева merkle или вообще заменить его.

Примером возможного улучшения было бы изменение хэш-функции, используемой для построения деревьев merkle от SHA256d до RIPEMD-160 (или еще одна 160-битная хеш-функция, как SHA512 /160 ). Это займет только log(2, N) * 20 bytes.

6 голосов | спросил Nick ODell 8 AMpWed, 08 Apr 2015 10:29:03 +030029Wednesday 2015, 10:29:03

1 ответ


2

Помимо сокращения используемого хеша, нет никакого способа сделать доказательство меньше места.

На боковой ноте хэш можно сделать короче, просто используя первые n бит. Контрольная сумма адреса биткойна (первые 4 байта sha256 (body)) производится таким образом. Я не знаю, почему ripe160 используется вместо усеченной формы sha256 для основного тела адреса.

ответил Backspace 7 J0000006Europe/Moscow 2015, 07:07:50

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

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

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