Или уж на то пошло, есть ли смысл в sha256'ing открытый ключ, чтобы начать с? то есть, будет замена first160bitsof (SHA256 (ключ PUB)) только с first160bitsof (Публичный) делать так же хорошо?
На самом деле да,
мог бы проблема с этим. Открытый ключ
два 256-битные числа, представляющие (х, у) точки на эллиптической кривой. Используя первые 160 бит, вы используете только кусок х значения открытого ключа, без какого-либо у-значения. Я могу взять 160 бит х, добавить еще 96 битов, а затем, вероятно, вычислить у-значение на кривой, которая соответствует этому значению х, я только что создали. Это заставляет меня новый (х, у) точки на secp256k1 эллиптической кривой.
Это не замена ключа, потому что у меня нет закрытого ключа для него, но он может открыть дверь для злоумышленника, чтобы сделать некоторые хитрости, потому что никто не может доказать, что точка
не открытый ключ. Я не знаю, какие серьезную атаки может быть получена из этого (если таковые имеется), но я видел некоторые очень творческие атаки в свое время. Это похоже добавили, ненужную неопределенность в процесс. С другой стороны, используя хэш, каждый символ конечного адреса зависит от каждого бита открытого ключа. Кроме того, это уже реализовано ... это сложный, но это одноразовая инвестиция, чтобы получить его работу.
В этом случае будет 2 ^ 96 известных pubkeys с тем же адресом, это может быть проблемой
Это на самом деле не имеет значения. Там же примерно 2 ^ 256 различных возможных открытых ключей на любой заданной эллиптической кривой. Конечно, из-за ripemd160, есть только 2 ^ 160 различных адресов, но я уверяю вас, что 2 ^ 160 уникальных адресов более чем достаточно. Таким образом, в то время как есть 2 ^ 96 одинаковых хешей на адрес, вероятность двух людей на самом деле создает два адреса, которые имеют тот же адрес еще 1 в 2 ^ 160.
Для справки, в течение всего времени, что сеть БТД была жива, с тысячами людей, вычислительных миллиардами хэш в секунду ... вся сеть вычислена составляют менее 2 ^ 70 хэш. 2 ^ 32 миллиардов людей на земле. У нас есть по крайней мере 100 лет до того, каждый атом во Вселенной нуждается в его собственный адрес BTC, и даже тогда, может быть достаточно.
Еще один комментарий о SHA256 (sha256 ()) ... Я не знаю точно, но я предположить, что причина для двойного хеширования вместо одного хэширования по соображениям безопасности (в целом, а не только для адресов). Сейчас она занимает в среднем 2 ^ 256 хэшей найти столкновение SHA256. Если кто-то находит уязвимость, которая может найти такое столкновение в 2 ^ 50 хэш, то сообщество может начать рассматривать это небезопасно. Однако, так как мы используем двойное хеширование, что уязвимость, вероятно, только ослабляет BTC-хеширование до 2 ^ 100, который еще много безопасности в течение многих десятилетий, чтобы прибыть.
-Eto