Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
17 февраля 2014, 5:41:52 PM   # 1
 
 
Сообщения: 905
Цитировать по имени
цитировать ответ
по умолчанию Re: Нормированный / канонический идентификатор транзакции для использования службы поддержки новая кодировка base32

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
-----НАЧАТЬ PGP MESSAGE ----- ПОДПИСАЛИ
Hash: SHA1

Pieter Wuille предложил "нормативное идентификатор транзакции" (Ntxid) [1] - хэш охватывающего те же данные, который подписан в стандартных типах транзакций. Сделка не может быть изменена таким образом, чтобы изменить это ntxid без одновременного признания недействительной подписи SIGHASH_ALL, как правило, используемой программного обеспечение бумажника в стандартных типах транзакций.

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

Я предложил и реализовал [2] альтернативный формат кодирование для этих нормативных идентификаторов транзакций. Он также доступен как патч против самого bitcoind [3] (я не был уверен, что, если я должен открыть отдельный запрос тянуть от СИПА). Она отличается от предполагаемого по умолчанию 64-символьное шестнадцатеричное кодирования следующих способов:

1. Всегда начинается с двух символов: "Техас",
2. 64-разрядные Base32 вместо base16, и поэтому визуально отличается тем, что она включает в себя полный набор буквенно-цифровых знаков.
3. Автоматическая коррекция до 2-х символов входных данных, а также высокой степенью вероятности обнаружения дальнейших невосстанавливаемых ошибок (приблизительно 1: 1000000 шанса ложного положительного результата).
4. Использование г-основанием 32 кодирования алфавита Фил Циммерман [4], что обеспечивает лучшую устойчивость к transcriptive ошибок по сравнению со стандартом RFC 3548.

Формат кодирования является фактически полностью общей. Она способна превратить любую строку размера мощности из-двух (>= 16 байт в длину) в строку base32 кратно 31 цифр в длину, при этом каждый 31-значный группировке, содержащей коды коррекции ошибок, способных восстановления после ошибки однозначных на входе base32. Он использует полиномы CRC для возможности исправления ошибок [5], что требует 5 ошибок коррекции цифр за 26 цифр ввода, вместо того, чтобы теоретически оптимальных 4, но гораздо, гораздо легче реализовать правильно, то доступную НЕПАТЕНТОВАННУЮ коду коррекции ошибок.

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

Кроме: если вам нравится эта работа, пожалуйста, поддержите несколько монет 1DeZqzJ2f472VaGG6qAVzw5FNq5v4eL7pb. Я работаю полный рабочий день на улучшение ядра Bitcoin, финансирование себя исключительно за счет общественных пожертвований. Любые пожертвования, полученные по этому адресу будет использоваться для дальнейших проблем адрес пластичности, например, возможная мягкая вилка, чтобы исключить известные формы податливости полностью.

[1] https://github.com/bitcoin/bitcoin/pull/3656
[2] https://gist.github.com/maaku/8996338
[3] https://github.com/maaku/bitcoin/tree/normtxid
[4] http://philzimmermann.com/docs/human-oriented-base-32-encoding.txt
[5] http://www.drdobbs.com/article/print?articleId=184401662&siteSectionName =
-----НАЧАТЬ PGP SIGNATURE -----

iQIcBAEBAgAGBQJTAlzpAAoJECsa1YSJj / UD2EMP / RXBPu9hTaWKBi2Lg3YQ8WIv
IdonshPAFq6YDx / dREPJZqIK / DXTORxcc0sNkmL7wfHSssz8A6cXzlQne + kqX2sf
g5 + 6W7Vn0WOTAbWYKNufnktbcm / 5teH0yvXBfNoVpei76Z5NIjWbE9HVS0Ib8tys
Xr8d69 + ufKB2TdM5NLRVmxtdyVXvSlo7706m1lNbTEDVZ5qM / Biv8YZsLqXVJN4j
pPdTxQ4jQrOOklUEWLGQ18EnGj5fAggSG0 + ijdkxdFFYmmjlq / D3ucmSmRlBTeJE
aCdokV8ZFqmalvHMfjmawLB0faGtYDRnDIcKwlNHAES1XCRS4vVWGPHmXP12SjjA
PItuirf7G14UHEcKzFLqaF3j / XP4y0BZd9 / J38VbvTEumwsMw6 + UVMSFIytTkKIL
raS1zRVLf + г / Xkq7X4NFSIQx + N9Svzs03 / iIxCF8eafC4vEQNZaSqwkXqmbLWmrQ
byRlE459BaPM0Bh + aykxMTfFcguZbK / 7t0NuXawcJBJCrBvApvzCQfyDQXOM4LDr
8T7uvRcoFnOOnLr5zjXKREmVhtEKgl3Zl5rRbGW0EfJbiyX03U6OmDxwsw4EIh72
ToHEBNSAsq6lDvMT / bTitA5 + yqx8k0E3ztYsgn6DkfFGXr2m8dKBYTDF5jh6HAS1
Fu + 7gMV5ZfQ + 3T / MLGvb
= xmVG
-----END PGP SIGNATURE -----
maaku сейчас офлайн Пожаловаться на maaku   Ответить с цитированием Мультицитирование сообщения от maaku Быстрый ответ на сообщение maaku


Как заработать Биткоины?
Без вложений. Не майнинг.


18 февраля 2014, 12:27:20 AM   # 2
 
 
Сообщений: 22
Цитировать по имени
цитировать ответ
по умолчанию Re: Нормированный / канонический идентификатор транзакции для использования службы поддержки новая кодировка base32

Получил 1806 Биткоинов
Реальная история.





Молодцы Марк, хороший синтез криптографических и коды коррекции ошибок. А код выглядит хорошо на этом.
Sundance сейчас офлайн Пожаловаться на Sundance   Ответить с цитированием Мультицитирование сообщения от Sundance Быстрый ответ на сообщение Sundance

18 февраля 2014, 3:06:08 AM   # 3
 
 
Сообщения: 905
Цитировать по имени
цитировать ответ
по умолчанию Re: Нормированный / канонический идентификатор транзакции для использования службы поддержки новая кодировка base32

Благодаря Sundance!

Я просто толкнул код, который добавляет юнит-тесты, а также позволяет защиту от ошибок кода для строк base32 произвольной длины.

Я также понял, что я просто забыл, чтобы продемонстрировать, что новый ntxid выглядит. Вот ntxid для 6988d5fd2735b86e005ee9249a8b8053c91cd31fd1bfeadcf678093d1b710223:

котировка
txbtsogbjjuimfqas7sgkbaqqkjxygyixk3deuxmrm1uqte8nukemm6yxujjjzbr
maaku сейчас офлайн Пожаловаться на maaku   Ответить с цитированием Мультицитирование сообщения от maaku Быстрый ответ на сообщение maaku

18 февраля 2014, 1:07:14 PM   # 4
 
 
Сообщения: 714
Цитировать по имени
цитировать ответ
по умолчанию Re: Нормированный / канонический идентификатор транзакции для использования службы поддержки новая кодировка base32

котировка
txbtsogbjjuimfqas7sgkbaqqkjxygyixk3deuxmrm1uqte8nukemm6yxujjjzbr

Может быть, добавить некоторые штрихи каждые четыре символа, чтобы сделать его легче отслеживать, где вы находитесь в TXID, когда вы читаете вслух?
mmeijeri сейчас офлайн Пожаловаться на mmeijeri   Ответить с цитированием Мультицитирование сообщения от mmeijeri Быстрый ответ на сообщение mmeijeri

18 февраля 2014, 6:46:50 PM   # 5
 
 
Сообщения: 905
Цитировать по имени
цитировать ответ
по умолчанию Re: Нормированный / канонический идентификатор транзакции для использования службы поддержки новая кодировка base32

Может быть, добавить некоторые штрихи каждые четыре символа, чтобы сделать его легче отслеживать, где вы находитесь в TXID, когда вы читаете вслух?

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

Но это действительно напоминает мне: я должен сделать декодер принимать и игнорировать дефис, так что люди могут свободно использовать это в своих системах, когда это имеет смысл.
maaku сейчас офлайн Пожаловаться на maaku   Ответить с цитированием Мультицитирование сообщения от maaku Быстрый ответ на сообщение maaku

18 февраля 2014, 7:26:19 PM   # 6
 
 
Сообщения: 116
Цитировать по имени
цитировать ответ
по умолчанию Re: Нормированный / канонический идентификатор транзакции для использования службы поддержки новая кодировка base32



txbtsogb_jjuimfqa_s7sgkbaq_qkjxygyi_xk3deuxm_rm1uqte8_nukemm6y_xujjjzbr

работает отлично.
riplin сейчас офлайн Пожаловаться на riplin   Ответить с цитированием Мультицитирование сообщения от riplin Быстрый ответ на сообщение riplin

18 февраля 2014, 7:28:09 PM   # 7
 
 
Сообщения: 905
Цитировать по имени
цитировать ответ
по умолчанию Re: Нормированный / канонический идентификатор транзакции для использования службы поддержки новая кодировка base32

не в моем браузере (Firefox) ...
maaku сейчас офлайн Пожаловаться на maaku   Ответить с цитированием Мультицитирование сообщения от maaku Быстрый ответ на сообщение maaku

18 февраля 2014, 7:28:55 PM   # 8
 
 
Сообщения: 116
Цитировать по имени
цитировать ответ
по умолчанию Re: Нормированный / канонический идентификатор транзакции для использования службы поддержки новая кодировка base32

Штопать. Ну что ж, стоит выстрел.
riplin сейчас офлайн Пожаловаться на riplin   Ответить с цитированием Мультицитирование сообщения от riplin Быстрый ответ на сообщение riplin

18 февраля 2014, 7:30:46 PM   # 9
 
 
Сообщения: 905
Цитировать по имени
цитировать ответ
по умолчанию Re: Нормированный / канонический идентификатор транзакции для использования службы поддержки новая кодировка base32

Ну это не работает в Chrome на Android. Интересно, работает ли он в прошивке? (У меня нет устройства для проверки). Поскольку беспокойство мобильных пользователей, может быть, достаточно.
maaku сейчас офлайн Пожаловаться на maaku   Ответить с цитированием Мультицитирование сообщения от maaku Быстрый ответ на сообщение maaku

18 февраля 2014, 7:38:52 PM   # 10
 
 
Сообщения: 116
Цитировать по имени
цитировать ответ
по умолчанию Re: Нормированный / канонический идентификатор транзакции для использования службы поддержки новая кодировка base32

Нет, не работает на iPhone.
riplin сейчас офлайн Пожаловаться на riplin   Ответить с цитированием Мультицитирование сообщения от riplin Быстрый ответ на сообщение riplin

18 февраля 2014, 9:09:23 PM   # 11
 
 
Сообщения: 714
Цитировать по имени
цитировать ответ
по умолчанию Re: Нормированный / канонический идентификатор транзакции для использования службы поддержки новая кодировка base32

Может быть, вы могли бы сделать что-то с прописной строчными буквами вместо этого? Прописной каждое первое, пятое и т.д. письмо? Или альтернативные блоки четырех прописных с четырьмя строчными буквами.
mmeijeri сейчас офлайн Пожаловаться на mmeijeri   Ответить с цитированием Мультицитирование сообщения от mmeijeri Быстрый ответ на сообщение mmeijeri

19 февраля 2014, 12:05:32 AM   # 12
 
 
Сообщения: 905
Цитировать по имени
цитировать ответ
по умолчанию Re: Нормированный / канонический идентификатор транзакции для использования службы поддержки новая кодировка base32

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

Я думал об этом, но я не думаю, что это будет очевидно для каждого пользователя, что чувствительность к регистру является только для отображения. С помощью одного случая равномерно пользователь не чувствует запрос квалифицироваться с "большой"/"немного" или "столица"/"в нижнем регистре", Это также менее надежно, как визуальное различие, поскольку существует не обсаженные цифры брошенных как хорошо.
maaku сейчас офлайн Пожаловаться на maaku   Ответить с цитированием Мультицитирование сообщения от maaku Быстрый ответ на сообщение maaku

19 февраля 2014, 1:05:14 AM   # 13
 
 
Сообщения: 2212
Цитировать по имени
цитировать ответ
по умолчанию Re: Нормированный / канонический идентификатор транзакции для использования службы поддержки новая кодировка base32

Не будет ли более очевидная вещь, чтобы попросить целевой адрес клиента, а не TXID?

В любом случае, делает это ID действительно должны быть уникальными, ЧТО? Почему не 32-битный хэш, как CRC32 или Adler32 и просто имеет службу поддержки взгляда через кучку сделок, которые имеют этот хэш в mempool / последний 3 дня блоков в настоящее время?
Sukrim сейчас офлайн Пожаловаться на Sukrim   Ответить с цитированием Мультицитирование сообщения от Sukrim Быстрый ответ на сообщение Sukrim

19 февраля 2014, 1:10:06 AM   # 14
 
 
Сообщения: 905
Цитировать по имени
цитировать ответ
по умолчанию Re: Нормированный / канонический идентификатор транзакции для использования службы поддержки новая кодировка base32

Не будет ли более очевидная вещь, чтобы попросить целевой адрес клиента, а не TXID?

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

В любом случае, делает это ID действительно должны быть уникальными, ЧТО? Почему не 32-битный хэш, как CRC32 или Adler32 и просто имеет службу поддержки взгляда через кучку сделок, которые имеют этот хэш в mempool / последний 3 дня блоков в настоящее время?

Если это все, что вам нужно, то вы можете взять небольшой хэш над нормированной TXID, чтобы получить то, что вы хотите. Опять же, хотя, есть много приложений, где требуется действительно уникальный ntxid и 32-битная контрольная сумма не будет поставлять это.
maaku сейчас офлайн Пожаловаться на maaku   Ответить с цитированием Мультицитирование сообщения от maaku Быстрый ответ на сообщение maaku

20 февраля 2014, 10:35:59 AM   # 15
 
 
Сообщения: 905
Цитировать по имени
цитировать ответ
по умолчанию Re: Нормированный / канонический идентификатор транзакции для использования службы поддержки новая кодировка base32



Я нажал, надеюсь, окончательный вариант коррекции ошибок кодированного нормативной идентификатор транзакции филиала в общедоступный репозиторий:

https://github.com/maaku/bitcoin/tree/normtxid

Такое поведение версии ломается от того, что описано в этом тяговом-запросе, используя обычный (не SignatureHash) идентификатор транзакции для coinbase операций. В это время я не могу понять, почему вы должны нормированный идентификатор транзакции для coinbase сделки. Но только потому, что я не могу представить себе использование не означает, что там не один, а также услуги индексации блок цепочки должны принимать решение об этом случае края. Патч в запросе тягового имеет потенциал, чтобы привести к дублированию ntxid лет для coinbase сделок, так как coinbase строка, которая содержит высоту блока BIP-34 является scriptSig и, следовательно, раздела от нормативной структуры данных.

Кроме того, код теперь обеспечивает исправление ошибок кодирования для произвольных строк длины Base32 и полное покрытие с набором модульных тестов. Он также исправляет две ошибки, которые были найдены в алгоритме кодирования, которые были обнаружены в процессе написания тестов. Все, что осталось сделать, это написать BIP документирующий свои внутренние работы.
maaku сейчас офлайн Пожаловаться на maaku   Ответить с цитированием Мультицитирование сообщения от maaku Быстрый ответ на сообщение maaku

21 февраля 2014, 2:44:48 AM   # 16
kjj
 
 
Сообщения: 1302
Цитировать по имени
цитировать ответ
по умолчанию Re: Нормированный / канонический идентификатор транзакции для использования службы поддержки новая кодировка base32

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

У меня очень, очень трудно придумать ситуацию, когда кто-нибудь когда-нибудь нужно передавать ntxid по телефону.

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

Имя, которое является чисто именем не является полезным для перемещения информации вокруг, но только для сравнения и поиска. Например, если вы ищете свой локальный узел или какой-либо веб-сайт для сделки, первые несколько букв будет достаточно, и если они не дают нужного результата, а остальные буквы не являются какой-либо помощи вообще. Эти случаи использования являются общими и обильны, и мы можем сделать их лучше, не добавляя еще один объект в наш пантеон специальных идентификаторов и строк.
kjj сейчас офлайн Пожаловаться на kjj   Ответить с цитированием Мультицитирование сообщения от kjj Быстрый ответ на сообщение kjj

21 февраля 2014, 2:46:54 AM   # 17
 
 
Сообщения: 905
Цитировать по имени
цитировать ответ
по умолчанию Re: Нормированный / канонический идентификатор транзакции для использования службы поддержки новая кодировка base32

Исправление ошибок аспекты этого предложения были порваны в свой собственный проект BIP:

https://gist.github.com/maaku/8996338#file-bip-ecc32-mediawiki

И тянуть-запрос:

https://github.com/bitcoin/bitcoin/pull/3713
maaku сейчас офлайн Пожаловаться на maaku   Ответить с цитированием Мультицитирование сообщения от maaku Быстрый ответ на сообщение maaku

21 февраля 2014, 8:59:36 AM   # 18
 
 
Сообщения: 1512
Цитировать по имени
цитировать ответ
по умолчанию Re: Нормированный / канонический идентификатор транзакции для использования службы поддержки новая кодировка base32

Небольшая коррекция - base32-человек возник с Zooko:
http://zgp.org/pipermail/p2p-hackers/2002-November/000924.html

Я не знаю, почему кодирование повторного вообразил - Base58 Bitcoin является естественным развитием предыдущих человеческих считываемый кодировок, включает в себя пример контрольной суммы, и это уже в коде. Он не использует группировки, в частности, таким образом двойной щелчок выбирает целиком.

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

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

Я также понял, что я просто забыл, чтобы продемонстрировать, что новый ntxid выглядит. Вот ntxid для 6988d5fd2735b86e005ee9249a8b8053c91cd31fd1bfeadcf678093d1b710223:

ntxid
txbtsogbjjuimfqas7sgkbaqqkjxygyixk3deuxmrm1uqte8nukemm6yxujjjzbr

Base58 (без контейнера):
86xpwm8Q5zCGUD844C2WZeWEn8tMadWbAG3pxBmfBea6

Выше, могут быть завернуты в ASCII в контейнере, "BTCTX" + base58 из TXID и любая схема ЕСС
deepceleron сейчас офлайн Пожаловаться на deepceleron   Ответить с цитированием Мультицитирование сообщения от deepceleron Быстрый ответ на сообщение deepceleron

21 февраля 2014, 10:34:18 AM   # 19
 
 
Сообщения: 905
Цитировать по имени
цитировать ответ
по умолчанию Re: Нормированный / канонический идентификатор транзакции для использования службы поддержки новая кодировка base32

Чувствительность случай base58 является помехой везде, не только по телефону. Многие люди не отличают чувствительность к регистру хорошо почерк, а некоторые шрифты имеют проблемы. Base58 была стойкой болевая точка с момента создания Bitcoin. Случайное перемешивание верхнего и нижнего регистра не делает для очень хороших заполнителей, по сравнению с альтернативными вариантами, как регулярной группировке по пространству или дефис.
maaku сейчас офлайн Пожаловаться на maaku   Ответить с цитированием Мультицитирование сообщения от maaku Быстрый ответ на сообщение maaku

22 февраля 2014, 4:59:50 AM   # 20
 
 
Сообщения: 126
Цитировать по имени
цитировать ответ
по умолчанию Re: Нормированный / канонический идентификатор транзакции для использования службы поддержки новая кодировка base32

Хорошая работа maaku. 
Я собираюсь посмотреть через этот код и, вероятно, приходят и задают много вопросов.
WASPJoe сейчас офлайн Пожаловаться на WASPJoe   Ответить с цитированием Мультицитирование сообщения от WASPJoe Быстрый ответ на сообщение WASPJoe



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW