Я думаю, все согласны, что сырые адреса Bitcoin недружелюбны для широкой публики.
Это сообщение описывает алгоритм, который сочетает в себе имена людей с идеями Firstbits, что решает эту проблему.
(Firstbits - www.firstbits.com - это элегантный способ сокращения Bitcoin адресов с использованием blockchain.)
Результаты
Вот некоторые примеры того, что Bitcoin адреса выглядят, как с помощью этого алгоритма:
Andreas.za
Mike.2j
Sam.r7
Jim.xh
google.rq
Поскольку они основаны на Firstbits я назвал их «Firstnames».
Алгоритм
Вот шаги алгоритма:
Вызвать текст, который вы в поиске ПгвЬЫата для целевой строки.
1) Возьмите первые три символа целевой строки. В приведенных выше примерах это было бы: «А», «Mik», «Сэм», «Джим», «бездна».
2) строчные их, сделать некоторые настройки, чтобы сделать с алфавитом Base58 и префиксом с «1». Это дает: 'й', '1mik', '1Цар', '1jim', '1goo'.
3) Создание ключей и вычислить его адрес. Строчной адрес и посмотреть, если первый четыре символа соответствует результату шага 2.
4) Повторите шаг 3 до тех пор, пока не найдете подходящую пару ключей (или отказаться от попыток!). Теперь у вас есть пара ключей, которая будет основой вашего FirstName.
5) Допустим, вы ищете FirstName для «Google» и адрес для пары ключей вы найдете в "1GoorQmSabgRFTSF2dGban7RqyhEXapziB. По выскабливание firstbits.com вы работаете, что firstbits для этого адреса '1goorq. Вы сдирать «1goo» (который вы уже знаете), а затем объединить целевую строку с остатком «RQ». В этом случае Firstname является "google.rq. (Вы должны разделитель выделить дополнительные символы - я использовал «»)
Вы можете работать с firstbits непосредственно из FirstName:
Andreas.za -> 1andza
Mike.2j -> 1mik2j
Sam.r7 -> 1samr7
Jim.xh -> 1jimxh
google.rq -> 1goorq
Используя firstbits вы можете посмотреть полный адрес Bitcoin.
6) Для того, чтобы претендовать на firstbits / Firstname вам нужно отправить несколько биткойнов по адресу, так что он попадает на blockchain.
Представление
Основные расходы, очевидно, поиски пары ключей. Для того, чтобы получить firstnames описанные выше (за исключением Sam.r7) взяли соответственно 12000, 3000, 43000, 26000 и 42000 итераций. Выбор с помощью первых 3-х символов, чтобы соответствовать был обусловлен числом итераций.
2 слишком легко, 4 слишком трудно. Этот алгоритм похож на vanityGen (который я предполагаю, был использован, чтобы найти 1samr7), но намеренно ограничена первыми тремя буквами адрес, чтобы ускорить его.
Псевдонимность и неформальность
Потому что вы используете только первые 3 символа в целевой строке, и вы делаете в нижнем регистре, все они эквивалентны:
Jim.xh
Джим Burton.xh
jimmyB.xh
Вы можете разнообразить свою псевдонимность и уровень официальности - суффикс остается неизменным.
Как и со всеми адресами тщеславия вы утечка информации с помощью firstnames. В любое время вы публично связать конкретный адрес Bitcoin с человеком, вы уже потеряли эту информацию.
Какие буквы и цифры вы можете использовать?
Потому что вы подходите по нижнему регистру строк, которые вы можете использовать все 26 буквы алфавита в целевой строке. Для экземпляра Firstname для 'Polly' является 'Polly.bt' (адрес = 1PoLBtjvtwxYXQQB8to6f3XWPNHebCLH5f, '1polbt' firstbits =). Строчный «л» не является допустимым Base58, но «L» есть. Для того, чтобы получить круглую «ноль» быть недопустимое Base58, она отображается в «о» для адреса соответствия. Это делает все номера действительны в FirstName.
А как насчет более коротких имен, чем 3-х символов?
Для краткости я не описал граничное условие о том, когда у вас есть короткое имя, например «Джо». Вы получаете firstnames как «Jo.zqy». Немного больше после сепаратора. Вы можете увидеть, как это рассматривается, глядя на демо-коде, который я произвел.
Демо-код
Я написал демо-код, который генерирует ПгвЬЫат из целевой строки. Это написано в Java с использованием библиотеки bitcoinj. Он доступен по адресу:
https://github.com/jim618/multibit/blob/master/multibit/src/org/multibit/firstname/FirstNameGenerator.java .
Он является открытым исходным кодом - лицензия MIT.
Если вы хотите, чтобы запустить его напрямую без использования IDE, я включил классы в многоразрядных загрузки (Я ведущий разработчик Multibit).
Если вы загрузите и установите Multibit из http://www.multibit.org/download.html Есть два файла включено:
(Windows) generateFirstName.bat
(Mac / Linux) generateFirstName.sh
Эти побегать утилиты командной строки, в которой вы вводите в целевой строке и он ищет FirstName. Он печатает пару ключей он находит, но вам придется потратить свои собственные биткойны претендовать на ПгвЬЫате. 🙂
Я проверил их на Mac и Windows XP, но не Linux. Вам придется сделать "CHMOD 777" на Mac / Linux, чтобы запустить его.
Отзывы и комментарии
Ваше мнение по этому алгоритму ценится.
Я думаю, что Bitcoin адрес, сгенерированный прост для запоминания и просты в использовании.