Сколько биткойнов было отправлено на адреса с недействительным кодом Base58?

Некоторые биткойны были безвозвратно утеряны, когда они были отправлены по следующим адресам. Объяснение, которое я нашел, заключается в том, что они содержат символы, недопустимые в Base58.

В частности, base58 позволяет использовать только следующие символы (за исключением 0oiL)

static const char* pszBase58 = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"; 

Какова текущая общая сумма «потерянных» биткойнов или, если ее не хватает, каков общий процесс, необходимый для ее определения?

(Какие методы API вы бы вызвали, чтобы получить данные для определения этого?)

Ответы (2)

В Base58 исключены символы 0OIl. oL разрешены, что делает эти два адреса действительными.

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

Вероятно, с 1Boxo846yTDLHgKM94aYseHBnCjJ4eYbzb проблем нет. Проблема с 1BitcoinEaterAddressDontSendf59kuE заключается в том, что, учитывая английский словарь, он имеет очень низкую колмогоровскую сложность , что делает крайне маловероятным, что у кого-то есть закрытый ключ (или даже открытый ключ) для него.

Точно так же известно, что 1111111111111111111114oLvT2 соответствует хэшу открытого ключа 0, который настолько прост, что опять-таки маловероятно, что у кого-то есть ключи от него.

Почему ваш простой адрес «1BitcoinEater» с меньшей вероятностью будет сгенерирован случайным образом, чем «колмогоровский сложный»? Ведь просто потому что вы (или Колмогоров) так сказали, а генератор не имеет значения. Разве вы не могли взять «сложный» адрес для своей цели и добиться того же «крайне маловероятно, что у кого-то есть закрытый ключ для него»?
@Totor: мы не сравниваем случайную генерацию простого адреса со случайной генерацией сложного адреса. Мы сравниваем случайную генерацию простого адреса с «неслучайной» генерацией простого адреса. Если вы выбираете случайные буквы, у вас есть 2 ^ (-160) шанс получить адрес едока, тогда как если вы выбираете случайные фразы, это больше похоже на 2 ^ (- 40). Это отношение шансов 2 ^ 120: 1 в пользу гипотезы «случайной фразы», ​​поэтому, наблюдая за простым адресом, байесовский вывод будет заключаться в том, что адрес был сгенерирован как случайная фраза (или какой-либо другой метод, который не является случайными буквами) .
@Totor: Принимая во внимание, что для сложного адреса нет конкурирующей гипотезы, которая имела бы более высокую вероятность появления конкретного адреса. Вот что значит комплекс.

Никто. Невозможно отправить биткойны на неверный адрес. Эти адреса действительны, хотя они могут никому не принадлежать. Посмотрите внимательнее на pszBase58: допускаются 'o', 'i' и 'L'. Первые несколько сообщений в этой ветке форума неверны.

Сеть ничего не знает о биткойн-адресах. На сетевом уровне вы никогда не отправляете биткойны на адрес. Биткойны отправляются на «скрипты». Ваш клиент преобразует адреса в соответствующие сценарии. Если адрес недействителен, его нельзя преобразовать в сценарий. Так что идея отправки BTC на неверный адрес бессмысленна.

При низкоуровневой обработке транзакций можно отправить транзакцию со сценарием, который никогда не будет выполнен. Технически скрипт по-прежнему действителен (и, следовательно, добавлен в блокчейн), но на самом деле монеты будут потеряны. Я думаю, что те, кто менее технически подкован, сочли бы это «недействительным» адресом.
@ktorn Вы даже можете отправить BTC на недопустимые скрипты, которые не могут быть правильно проанализированы. Сценарии не оцениваются до тех пор, пока не будут использованы. Но нестандартные скрипты любого типа не могут быть преобразованы в биткойн-адреса версии 0. Адрес P2SH может представлять собой плохой сценарий, хотя сам адрес не будет недействительным.