-----НАЧАТЬ 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 -----