У Биткоин новый главнй разработчик — Владимир Ван дер Лаан, который сменил несколько дней назад на этом посту Гавина Андрессена. С растущей «экосистемой» Биткоин в предстоящее время многое будет зависеть именно от него. Владимир рассказал о том, какие главные задачи он будет решать, возглавляя разработку криптовалютной системы.
1. Выделение из кода сети Биткоин функций кошелька BitcoinQt
На данный момент, основные функции биткоин-клиента — это обработка сделок, сохранение истории старых сделок, а также распространение информации в сети о кошельке, который был установлен с помощью клиента.
Когда вы загружаете BitcoinQt, официальное программное обеспечение для биткоинов, вы можете помочь поддерживать сеть Биткоин (т.е.: запустить узел) и завести кошелек (т.е: держать/иметь деньги) — все в одной программы.
«Раньше, когда люди не знали, что такое биткоины, такой подход имел смысл», – объяснил Ван дер Лаан. «Любой человек мог бы просто установить программу для поддержания сети и иметь возможность получать отправлять эти монетки.
Это создает риск того, что кто-то может украсть секретный ключ от вашего кошелька и, следовательно, деньги тоже. Когда вы разблокируете кошелек секретным ключом, чтобы потратить деньги, то его открытая форма становится доступной для всей сети Биткоин. Это возникает из-за разницы в функциях, говорит Ван дер Лаан.
«Существует внутренний конфликт. В целях безопасности кошельк должен находится в онлайн как можно меньшее количество времени, в то время как узел сети Биткоин должен быть в сети постоянно для обеспечения более стабильной работы Р2Р-сети».
Разделение двух этих функций превратит BitcoinQt в простой кошелек для оплаты (т.е простой кусок программного когда для запуска только биткоин-кошелька), который опционально может запускать в фоновом режиме основное программное обеспечение Биткоин, сохраняя при этом кошелек в безопасности и в то же время позволяя поддерживать всю экосистему сети.
2. Детерминированный кошелек
Возможно самая главная проблема для тех, кто управляет большим количеством кошельков через BitcoinQt, — это лимит на количество секретных ключей, которые он может хранить. Когда создается очередной ключ, превышающий допустимый предел, то программное обеспечение кошелька просто перезаписывает им один из первых ключей в целях экономии места. Смысл здесь более чем понятен — случайно пользователь может потерять доступ к своему кошельку.
«Так как с помощью кошелька создаются секретные ключи, то крайне важно предусмотреть возможность их восстановления. На каждые, например, 100 новых ключей необходимо обновлять резервную копию».
Детерминированный кошелек будет генерировать ключи от одного первоисточника, что позволяет в последствии их пересоздавать. Вместо того, чтобы помнить каждый ключ, необходимо будет просто запоминать длинную и безопасную специальную фразу, которая в дальнейшем позволит получить доступ к кошельку. Поэтому будет возможность получить доступ к своим средствам даже в случае, когда был перезаписан секретный ключ от того кошелька. Ван дер Лаан говорит:
«Одного резервного копирования будет достаточно, чтобы восстановить все ключи в любой момент времени. Это хорошо для душевного спокойствия».
3. Ускорение загрузки начального блока
Любой, кто пытался синхронизировать своего клиента BitcoinQt с остальной сетью, знает что это может занять несколько дней. Бог в помощь всем, использующим операционную систему Mavericks, с включенной функцией AppNap. Ван дер Лаан поясняет:
«Причиной этого является то, что он может загружать всю цепочку блоков одновременно только с одного узла. Если этот узел медленный, дело плохо».
Лучший способ загрузки цепочки блоков — это для начала получить список всех блоков, а затем загружать каждый блок из нескольких узлов одновременно. По существу, Bitcoin Qt должен быть меньше похож на Limewire и больше на современную торрент-систему. Встроенное решение, как сказал Ван дер Лаан, могло бы быть «даже быстрее, чем обходные пути на базе BitTorrent, используемые в настоящее время».
4. Улучшение документации для разработчиков
Последняя тема менее экзотичная, но все же жизненно важная: улучшение документации Биткоин-протокола и инфраструктуры сети. Ссылаясь на Руководство разработчиков Биткоин, принадлежащую Саиванну Кэригану, Тому Геллеру и Дэвиду Хардингу, а также Bitcoin Core Oxygen, Ван дер Лаан сказал, что намерен «ввязываться тогда, когда все немного успокоится».
Сила людей
Это конечно далеко не все вопросы и инновации, над которыми работает биткоин-сообщество. Этот разговор с Ван дер Ланом произошел до того, как разговоры о т.н. «боковых» цепочках получили широкую огласку. В любом случае, Ван дер Лаан сказал, что его задача не диктовать пути развития проекта.
«Это полностью зависит от вклада людей. Я конечно настраиваю себя, но как главному руководителю проекта, моя задача в первую очередь проверять, тестировать и объединять то, что предлагают нам замечательные люди сообщества».