Как Биткойн обрабатывает коллизии адресов?

Поскольку адреса представляют собой хэши общедоступной части пары открытых/закрытых ключей ECDSA, что произойдет с двумя разными людьми с разными ключами, которые хешируются в один и тот же адрес? Как будут обрабатываться транзакции на эти адреса?

Ответы (3)

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

SCRIPT_SIG транзакции, которая тратит средства с этого адреса, должен предоставить:

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

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

Однако это очень маловероятно. Настолько, что это даже не стоит рассматривать как возможность. Лучшая метафора, которую я видел, о том, почему это не проблема, объясняется в этом видео: https://www.youtube.com/watch?v=ZloHVKk7DHk .

Оба человека будут иметь доступ к любым средствам по адресу. Выигрывает тот, кто первым потратит эти средства.

Конечно, крайне маловероятно, что такое столкновение произойдет.

Как ответил @Meni, оба человека будут иметь доступ к средствам.

Чтобы проиллюстрировать, насколько маловероятно, что это когда-либо произойдет, рассмотрим следующую простую атаку:

while True:
    genereate new keys and address
    if address has funds:
        transfer to ME

Эта атака может сканировать астрономическое количество адресов каждый день. И это так просто, любой может осуществить это и разбогатеть! За исключением того, что это не работает. Если бы это произошло, сеть биткойнов быстро рухнула бы.

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

На эту тему есть хорошая статья, в которой объясняется, насколько маловероятно провести такую ​​атаку и получить прибыль diyhpl.us/~bryan/papers2/bitcoin/bitcoin-birthday.pdf