В этой части…
• Учимся держать биткойны в кошельках разных типов, которых насчитывается всего четыре.
– Программные кошельки: программные приложения, работающие на компьютерах и отслеживающие движение биткойнов.
– Аппаратные кошельки: физические переносимые устройства, в которые можно “сложить” свои биткойны.
– Бумажные кошельки: в действительности не совсем бумажные и позволяющие хранить биткойны чрезвычайно защищенным образом без подключения к блокчейну (иногда их называют холодными хранилищами).
– Веб-кошельки: сторонние компании, действующие как посредники, обеспечивающие хранение биткойнов клиентов и обслуживание их счетов.
• Выясняем все подробности о транзакциях биткойна, сетевых подтверждениях и сборах
• Углубляемся в технические детали технологии блокчейна и выясняем, чем это может быть нам полезно.
В этой главе…
• Как работает биткойн-кошелек
• Типы кошельков
• Правила безопасности при использовании биткойн-кошелька
Если вы прочитали хотя бы одну из предыдущих глав этой книги, то, без сомнения, уже не раз столкнулись с понятием “биткойн-кошелек”. И всякий раз вы, наверное, спрашивали себя “Что это вообще такое – биткойн-кошелек?” Эта глава все прояснит!
Как можно понять непосредственно из названия, биткойн-кошелек – это место, где хранится вся релевантная информация о ваших биткойнах. В биткойн-кошельке можно не только хранить средства, с его помощью можно также получать и пересылать активы, и в этом состоит его сходство с банковским счетом.
Всем, кто входит в мир биткойна и криптовалют, можно без преувеличения сказать, что биткойн-кошелек – это самый важный в мире цифровых финансов объект, оберегать который следует особо тщательно.
Когда вы установите биткойн-кошелек на свой компьютер или мобильное устройство (см. главу 2), программа сгенерирует для вас биткойн-адрес. Биткойн-адрес – это идентификационный номер, под которым вы будете фигурировать в сети Биткойн. Он будет использоваться как номер вашего счета для пересылки и хранения средств.
За понятием биткойн-кошелька кроется нечто большее, чем просто адрес. Оно подразумевает также открытый и закрытый (или секретный) ключи для каждого из ваших биткойн-адресов. Ваш секретный биткойн-ключ – это случайным образом сгенерированный ряд символов (числа и буквы), знание которого позволяет распоряжаться биткойнами и тратить их. Закрытый (секретный) ключ математически соотнесен с биткойн-адресом, однако воссоздать его исходя из этой связи невозможно благодаря надежному методу шифрования.
Если вы не сделаете копию закрытого ключа и потеряете оригинал, у вас больше не будет доступа к своему биткойн-кошельку и лежащим в нем средствам.
Больше информации о закрытых ключах и используемой в биткойне криптографии можно почерпнуть здесь: https://bitnovosti.com/2014/07/17/tak-chto-zhe-takoe-bitcoin/
Как уже упоминалось, существует еще и открытый ключ, и этот факт иногда приводит к недоразумениям, так как некоторые пользователи поначалу полагают, что биткойн-адрес и открытый ключ – это одно и то же. Однако это не так, хотя математически они связаны между собой. Адрес биткойн-кошелька – это хешированная версия открытого ключа.
Каждый открытый ключ содержит 256 бит информации (простите за математическое отступление), а финальный кеш (ваш биткойн-адрес) – только 160 бит. Открытый ключ используется для подтверждения владения адресом, на который можно пересылать средства. Открытый ключ также является математической производной от закрытого (секретного) ключа, однако вычисление закрытого ключа посредством обратной функции на самом мощном суперкомпьютере займет несколько триллионов лет.
Помимо этих парных ключей и адреса, биткойн-кошелек хранит отдельный регистр ваших входящих и исходящих транзакций. Информация о каждой транзакции, связанной с вашим биткойн-адресом, будет храниться в биткойн-кошельке, чтобы владелец мог проанализировать свои траты и поступления.
И наконец, биткойн-кошелек хранит информацию о предпочтениях пользователя, что также немаловажно. Впрочем, объем информации о ваших предпочтениях зависит от того, каким типом кошелька вы пользуетесь и на какой платформе. Клиент Bitcoin Core, например, не обременен дополнительными настройками, так что новичку будет нетрудно в нем разобраться.
Ваш биткойн-кошелек генерирует мастер-файл, в котором сохраняются все данные. Для пользователей компьютерной версии файл будет называться wallet.dat. На компьютерах с системой Windows он будет автоматически сохранен здесь: С: \User\yourname\Documents\AppData\Roaming\Bіtcoin\folder. Обязательно сделайте одну или несколько резервных копий этого файла на других устройствах, например на флешке или карте памяти. Программный кошелек позволит вам снова импортировать этот файл в случае повреждения или утраты оригинала без изменения текущих настроек и финансовой информации.
Больше информации об импорте открытых ключей можно найти здесь: https://en.bitcoin.it/wiki/How_to_import_private_keys. Также, возможно, вам будет интересно ознакомиться с информацией во врезке “О секретных ключах”, ниже в этой главе.
Секретный ключ от вашего биткойн-кошелька – это самая важная информация, которую нужно хранить в безопасности и тайне во веки веков. Этот “секретный номер” позволяет тратить биткойны из вашего кошелька, поскольку он подтверждает, что тот, кто знает его, является полноправным владельцем баланса электронной валюты на вашем биткойн-адресе.
Биткойн-кошельку, будь то компьютерная версия или мобильная, может принадлежать несколько секретных ключей, и все они будут храниться 8 файле wallet.dat.
Секретные ключи к биткойн-кошельку обычно представляют собой 256-битовое двоичное число, которое можно представить на бумаге различными способами. Ниже приведен пример закрытого ключа при его записи в шестнадцатеричном представлении. 256-битовый ключ в шестнадцатеричной системе исчисления – это 32 байта или 54 символа, в пределах от 0 до 9 и от А до F. Е9 87 3D 79 C6 D8 7D С0 FB 6А 57 78 63 33 89 F4 45 32 13 30 3D А6 1F 20 ВО 67 FC 23 ЗА АЗ 32 62
Без знания соответствующего закрытого ключа средства, хранящиеся на биткойн-кошельке, потратить невозможно. Восстановить закрытый ключ, зная только открытый ключ и биткойн-адрес, практически нереально, что превращает биткойн в один из самых трудных для взлома алгоритмов.
С другой стороны, чтобы узнать открытый ключ (он же биткойн-адрес), вовсе необязательно знать и соответствующий секретный ключ. Однако с помощью открытого ключа можно лишь принимать транзакции и проверять текущий баланс. А вот потратить биткойны, хранящиеся в данном биткойн-кошельке, без секретного ключа невозможно.
Если ваш секретном ключ стал известен кому-либо еще, единственный способ защитить содержимое вашего кошелька – это вывести средства на другой, безопасный счет (например, переместить в другой кошелек). Биткойны можно потратить лишь однажды, и транзакции в этой сети необратимы. Это значит, что, когда кошелек опустеет, секретный ключ к нему станет бесполезным
Когда вы снимаете бумажные деньги с карты, вам нужно куда-то их положить, как правило, в кошелек или в сумочку. Внимание, сюрприз: биткойны тоже нужно где-то хранить. Где-то, откуда вы сможете легко их достать, когда они понадобятся. Существует несколько разновидностей биткойн-кошельков: программные кошельки, аппаратные кошельки, бумажные кошельки и веб-кошельки (онлайн-кошельки). Биткойн-кошелек можно сравнить с обычным кошельком или сумочкой, вот только в нем нельзя хранить фото детей.
Все биткойны хранятся в огромной базе данных или публичном регистре под названием блокчейн. Биткойн использует программу, которая взаимодействует с блокчейном и позволяет вам проверить свой баланс в любой момент времени. Узнать больше о блокчейне можно, ознакомившись с главой 7, но, рассказывая о кошельках, упомянуть о нем необходимо, так как блокчейн – это хребет биткойна, без него система Биткойн не смогла бы существовать. Каждый биткойн-кошелек сверяется с блокчейном, чтобы подтвердить ваш баланс.
К биткойн-кошельку может быть привязано несколько биткойн-адресов, тогда он будет объединять их для вас в единый интерфейс.
Программный кошелек – это приложение биткойна, которое устанавливается на жесткий диск и обеспечивает вам полный контроль и безопасность, поскольку все ваши биткойны будут доступы только через ваш компьютер. Клиент Bitcoin Core был разработан и обслуживается организацией Bitcoin Foundation.
Когда программный кошелек установлен, он создает файл wallet.dat, который содержит данные, относящиеся к вашему биткойн-кошельку.
О том, где взять программный кошелек, читайте здесь: https://bitcoin.org/ru/choose-your-wallet.
Программный биткойн-кошелек – это открытый исходный код (имеется в виду, что его программный код полностью открыт и доступен всякому, кто хочет с ним ознакомиться). Открытый исходный код гарантирует прозрачность и позволяет пытливым пользователям проверять исходники, чтобы убедиться в том, что в них нет вирусов или иных подозрительных кодов, которые могли бы повредить компьютер или нарушить безопасность. Открытый код означает так- же, что если в вас есть сколько-нибудь от технического гения, то вы можете сочинять приложения, подобные кошельку Bitcoin Core, собственными силами (впрочем, большинство из нас – не спецы-разработчики, так что никто от нас этого не потребует).
Синхронизация кошелька
Чтобы убедиться в том, что ваш программный кошелек отображает наиболее актуальную информацию о счете, следует чаще его синхронизировать (технический термин, означающий “обновлять”, “приводить в соответствие”). Различные компьютеры и планшеты реализуют этот процесс по-разному, так что изучите, как синхронизировать эту программу именно на вашем устройстве.
Когда вы впервые загружаете и устанавливаете клиент Bitcoin Core (который придется скачать, чтобы можно было начать пользоваться программным кошельком), его синхронизация после установки может занять пару дней. Дело в том, что программе необходимо будет загрузить всю историю всех транзакций, начиная с 2009 года до самой последней зафиксированной в блокчейне.
Каждый раз после того, как вы закрыли программный кошелек, выключив компьютер или просто свернув приложение, не забывайте синхронизироваться, когда откроете программу в следующий раз.
Защита кошелька
Клиент Bitcoin Core позволяет зашифровать пароль к кошельку, и мы настоятельно рекомендуем это сделать, потому что даже если кто-либо получит доступ к вашему жесткому диску, без пароля злоумышленникам не добраться до биткойнов. Но если вы установили сложный пароль, то можете спокойно вздохнуть, зная, что ваши биткойны спрятаны так надежно, как это только возможно.
Всякий раз, когда вы захотите потратить биткойны из своего кошелька, программа спросит у вас пароль, который вы использовали для защиты, так что убедитесь в том, что вы способны его запомнить.
Резервная копия кошелька
Создавая новый биткойн-кошелек, не забудьте сделать резервную копию (в самой программе). Затем можно поместить файл с копией на флешку или внешний диск и, если его предварительно зашифровать, спать спокойно, зная, что доступ к биткойнам можно будет восстановить, даже если с вашим компьютером случится что-то неладное.
Несколько биткойн-адресов
При установке биткойн-кошелька программа позволяет генерировать несколько биткойн-адресов, что на практике означает, что у вас могут быть разные адреса для разных типов транзакций.
Ряд компаний разрабатывает различные версии аппаратных кошельков, которые позволяют хранить биткойны на отдельном материальном переносном устройстве. Если у вас есть при себе это устройство, все что необходимо сделать, чтобы потратить немного биткойнов, – это подключиться к Интернету, и можно наслаждаться шопингом (или как-то еще использовать их с более благородными целями). Узнать больше об аппаратных кошельках можно здесь: https://bitnovosti.сот/2014/10/20/trezor-bitcoin-safe/.
Бумажный кошелек в биткойн-реальности означает, что адрес, на котором лежат биткойны, не подключен к блокчейну, а следовательно, он “неактивен”. До того момента как кошелек подключится к блокчейну, биткойны находятся на холодном хранении (биткойн-жаргонизм для обозначения аккаунтов, отключенных от сети).
Вы всегда можете проверить баланс любого биткойн-адреса, заглянув в блокчейн-эксплорер. Но для того, чтобы их потратить, необходимо воссоединить номер на бумажном носителе и адрес кошелька.
Бумажные кошельки считаются наиболее безопасным средством хранения биткойнов, если вы не собираетесь тратить их в ближайшее время.
Биткойны, поступившие на адрес кошелька, будут храниться в блокчейне, но для того, чтобы их потратить, потребуется секретный ключ. Как уже отмечалось, ключ – это просто цифробуквенный ряд символов, который открывает доступ к монетам, хранящимся в вашем биткойн-кошельке и позволяет их тратить. Таким образом, бумажный кошек – это очень надежное средство хранения биткойнов, но на владельца ложится дополнительная ответственность за его сохранность, что актуально для любых финансовых документов.
Прежде чем создать новый бумажный кошелек, убедитесь в том, чтобы ваш компьютер отключен от Интернета: если вы подключены к сети, есть шанс, что программа-вирус сможет перехватить ваши данные, записать секретный ключ и впоследствии получить доступ к вашим биткойн-монетам.
Ознакомьтесь с приведенной ниже пошаговой инструкцией по созданию бумажного кошелька.
Вот краткое руководство по созданию бумажных кошельков. Сервис, которым мы воспользуемся для этих целей, называется BitAddress.org; это самое простое решение при создании новых бумажных кошельков для хранения биткойнов. В приведенном здесь списке вы найдете пошаговые инструкции, которым необходимо следовать, чтобы за несколько минут создать собственный бумажный кошелек.
1. В окне своего браузера откройте веб-страницу https://bitaddress.org.
Вы увидите экран, похожий на представленный на рис. 5.1 и предназначенный для автоматической генерации новых биткойн-адресов и секретных ключей.
Рис. 5.1. Генерация нового биткойн-адреса
2. Осмотритесь здесь, подвигайте указателем мыши, а затем введите случайный текст в поле ввода. Перемещение указателя мыши и ввод произвольного текстового фрагмента используются, чтобы повысить степень случайности при генерации секретных ключей и адресов.
3. Не сохраняя секретных ключей или QR-кодов, которые предложит программа, сразу же перейдите в этом окне на вкладку Paper wallet. Вид этой вкладки показан на рис. 5.2.
Рис 5.2. Генерация нового биткойн-адреса
4. Выберите на этой вкладке русский язык, а затем в поле Address to generate укажите количество адресов, которые вы хотите сгенерировать. Здесь же, установив флажок Без дизайна, вы при желании можете отказаться от художественного оформления, хотя стандартный шаблон выглядит довольно неплохо.
5. Щелкните на кнопке Сгенерировать. Это запустит процесс генерации указанного количества бумажных кошельков.
6. Чтобы сохранить новые бумажные кошельки, достаточно просто распечатать их изображение на экране. Для этого щелкните на кнопке Распечать. Вы также можете не только распечатать свои вновь приобретенные бумажные кошельки, но и сохранить их на жестком диске в виде PDF-файла. Впрочем, хранить сведения о бумажных кошельках в виде файлов не рекомендуется, лучше и безопаснее всего распечатать эти файлы немедленно после генерации.
7. Чтобы начать пользоваться новым кошельком, отсканируйте QR-код с левой стороны изображения на бумаге с помощью вашего мобильного биткойн-клиента либо введите значение публичного адреса в биткойн-клиент на вашем компьютере. Сделав это, вы сможете начать перемещать биткойны на свои новые бумажные кошельки. Личный ключ, который нужен для подтверждения права на владение аккаунтом и распоряжение хранящимися на нем средствами, зашит в QR-коде с правой стороны.
Компания Prypto выпустила продукт под названием “Crypto wallet” – кошелек с двумя картами: одна из них – ваш биткойн-адрес, другая – ваш секретный ключ, и обе они покрыты защитной пленкой (если пленка на месте, ключ никто не вскрывал). Это еще одна мера для повышения безопасности хранения ваших биткойнов. Более подробно об этом можно почитать здесь: https://cryptowalletcards.com.
Ряд компаний предоставляют услуги провайдеров для осуществления биткойн-платежей. Они эффективно справляются с функционалом посредников, принимают биткойны на хранение и позволяют с удобством распоряжаться ими, принимая на себя ответственность за управление и безопасность средств пользователей. Кроме того, посредники попросят предоставить личные данные, превращая всю затею в заведомо неконфиденциальную модель.
Если вы планируете все же воспользоваться услугами посреднической фирмы – провайдера кошельков, убедитесь в том, что эта компания заслуживает доверия. Бывали случаи, когда компании-посредники принимали на хранение биткойны пользователей, а затем внезапно испарялись или подвергались взлому либо разорялись. Например, в феврале 2014 года, основная на тот момент биткойн-биржа Mt.Gox внезапно прекратила все операции и закрылась, а клиенты биржи потеряли все биткойны, хранившиеся на этой площадке. Так что будьте внимательны при выборе. В целом к посредническим структурам, готовым принять ваши биткойны на хранение, еле-дует относиться с осмотрительностью. У правительств стран, где зарегистрированы биткойн-компании, зачастую бывают различные представления о том, как следует регулировать их деятельность и какие требования к ним выдвигать. Поскольку правовая основа регулирования биткойна как финансового сервиса во многих странах все еще находится на стадии разработки, следует выбирать компанию, зарегистрированную в стране с сильной правовой системой регулирования финансовых сервисов, например в США, Великобритании или на острове Мэн. Пока правовое поле вокруг криптовалют окончательно не сформировалось, мы настоятельно рекомендуем отнестись с особым вниманием к вопросу хранения своих средств у посредников – и никогда не хранить больше, чем вы собираетесь потратить в ближайшее время или что вы готовы потерять при наступлений худшего из сценариев.
В сети можно встретить самые различные типы посреднических структур, которые функционируют в качестве провайдеров веб-кошельков. Ниже приведено несколько примеров.
• Биткойн-биржи. Некоторые пользователи предпочитают хранить свои монеты (или их часть) на бирже, что дает преимущество быстрого доступа и возможность быстрой конвертации монет в любую из фиатных валют, например в доллары, фунты или евро, а также в другие альтернативные криптовалюты. Несмотря на кажущееся удобство, мы не рекомендуем вам поступать подобным образом в силу перечисленных выше причин.
• Специализированные провайдеры кошельков. Существуют веб-сайты, предлагающие пользователям выделенные биткойн-кошельки без привязки к биржам.
• Мобильные кошельки. Несмотря на существующее на рынке разнообразие программ-кошельков для мобильных устройств, некоторые компании предлагают еще и веб-кошельки для мобильных устройств.
Биткойн-адрес имеет сходство с адресом электронной почты: его тоже можно использовать для получения и пересылки данных (в данном случае биткойнов). Однако существует и принципиальное различие между ними. Пользователи биткойна, как правило, используют множество биткойн-адресов для получения и отправления транзакций. По сути, желательно использовать новый адрес для каждой новой транзакции, но такая задача не всем покажется осуществимой: многое зависит от частоты использования кошелька. Вопреки расхожему мнению генерация биткойн-адреса даже не требует подключения к Интернету.
Биткойн-адрес – это идентификатор, представляющий собой пункт назначения или отправления биткойн-транзакции. Каждый биткойн-адрес содержит в себе от 26 до 35 цифробуквенных символов и может начинаться с цифр от 1 до 3. Генерировать дополнительный или новый биткойн-адрес можно совершенно бесплатно с помощью предустановленной биткойн-программы, либо можно создать новый биткойн-адрес на бирже или с помощью веб-кошелька.
При наборе биткойн-адреса следует соблюдать регистры и достоверность данных. Биткойн-адрес, как, например, нижеследующий, содержит как строчные, так и прописные буквы в цифробуквенном ряду: lL5wSMgerhHg8GZGcsNmAx5EXMRXSKR3He. Если при вводе в этом (или любом другом) биткойн-адресе заменить строчную букву прописной (или наоборот), то введенный адрес будет недействителен, а значит, и перевод средств станет невозможным.
Существует небольшая вероятность того, что неверный адрес будет принят системой, но это возможно только раз на 4,29 миллиарда транзакций.
Мы советуем использовать новый биткойн-адрес для каждой новой транзакции. Технически нет ничего неправильного в том, чтобы использовать один и тот же адрес снова и снова. Однако применение различных адресов повышает уровень конфиденциальности.
Каждый биткойн-адрес – это выставленный счет для платежа. Как только платеж получен, отправителю нет никакого смысла хранить эту информацию. Однако, если данные кошелька будут утрачены или дискредитированы, все будущие платежи на этот адрес отправятся прямиком в “черную дыру” и будут навеки утрачены для первоначального держателя счета. Используя новый адрес для каждой новой транзакции, вы сокращаете риск возможных потерь.
Так же, как не стоит разгуливать по улицам с торчащим из кармана бумажником или хранить PIN-код от карты на листочке бумаги, вложенном в кошелек, при пользовании биткойн-кошельком следует соблюдать определенные меры безопасности. В этом разделе перечислены советы и рекомендации по защитите своею цифрового имущества.
Мобильный биткойн-коше лек удобен в использовании, потому что его можно установить на планшет или смартфон. Мобильный метод платежа в целом ближе и понятнее среднестатистическому пользователю и не требует дополнительных устройств.
Подключение к Интернету (мобильному или стационарному – не важно) будет большим плюсом при отправлении или получении транзакции на мобильный кошелек. Однако это необязательное условие, поскольку мобильные кошельки позволяют пользователям отправлять и получать средства также через NFC и Bluetooth. В свою очередь, эта особенность делает мобильные кошельки более универсальными по сравнению с компьютерными версиями, за что они и полюбились пользователям.
С точки зрения безопасности мобильные кошельки мало чем отличаются от компьютерных версий. Секретный ключ, позволяющий тратить деньги из вашего кошелька, хранится на самом мобильном устройстве. С одной стороны, эта мера уменьшает шансы на то, что ключ попадет не в те руки.
С другой стороны, эта же мера увеличивает потенциальные риски. Ввиду современного темпа развития технологий и потребительских запросов смартфоны и планшеты очень быстро будут сменять друг друга. Зная о том, что секретный ключ будет храниться в самом мобильном устройстве, при установке мобильного приложения не забудьте сделать резервную копию. Вне зависимости от того, какую версию мобильного кошелька вы предпочтете, функция резервного копирования, как правило, доступна в любой программе.
Копию ключа затем можно экспортировать в облачное хранилище, например в Dropbox или Google Drive, или даже отправить себе по почте. Теперь, после резервного копирования, приложение, которое вы установили, можно будет начать использовать.
Аутентификация – это важная мера безопасности для предотвращения кражи или нецелевого использования средств со стороны всякого, кто “позаимствует” ваш телефон. Большинство мобильных кошельков оснащены системой PIN-кодов, которая потребует от пользователя ввести 4- или 6-значный код, прежде чем предоставить доступ к кошельку. При многократном вводе неверного кода кошелек будет заблокирован. Владельцу кошелька будет выслано смс или письменное уведомление с инструкциями по разблокировке кошелька.
Говоря по существу, мобильные кошельки предоставляют пользователям оптимальное соотношение удобства и безопасности, но в конечном счете все зависит от самого пользователя. Если пользователь будет обращаться с устройством беспечно, забудет или потеряет секретный ключ, доступ к мобильному кошельку будет утрачен. Биткойн способен предоставить пользователям полный контроль – под личную ответственность, притом во всех ее проявлениях, и своевременное резервное копирование ценных данных – это одно из них.
Полагаю, вы теперь с легкостью обнаружите определенные параллели между тем, как работают провайдеры веб-кошельков и такие финансовые структуры, как, например, банки. Оба типа структур временно принимают на хранение ваши личные средства. То есть, если вы передаете деньги на хранение в банк, это означает, что вы ему доверяете, но в биткойне такой принцип не работает. В рамках концепции биткойна понятие “доверие” играло немаловажную роль на всех этапах развития этой парадигмы. Мы убеждены в том, что Сатоши Накамото предвидел, что развитие биткойна в дальнейшем приведет к отказу общества от услуг “доверенных лиц”, и все операции будут осуществляться между пользователями напрямую, в обход посредников.
Сервисы веб-кошельков довольно удобны, но они предполагают огромные риски. Возможность хранить биткойны онлайн и иметь доступ к ним в любую секунду прямо из браузера довольно заманчива, но чтобы воспользоваться ею, пользователю придется поверить на слово в кристальную честность провайдера услуг.
Провайдеры веб-кошельков – это посредники, и они готовы контролировать ваши средства вместо вас. Огромный риск, сопряженный с использованием подобных кошельков, заключается в том, что вы не знаете свой секретный ключ, только адрес. Если этот онлайн-сервис закроется или подвергнется взлому, вы будете лишены возможности сделать что-либо со средствами, хранящимися в таком кошельке.
Помимо того, на вас ложится вся ответственность за безопасность данных собственного аккаунта. Большинство провайдеров веб-кошельков предлагают такую защитную меру, как двухфакторная аутентификация (см. главу 2). И несмотря на то, что эта дополнительная мера в большинстве случаев способна обеспечить защиту аккаунта пользователя, она никак не защитит его средства, если сам сервис будет взломан, поскольку его собственная система была неидеальна.
Если вы уже решили для себя, что впредь хотите самостоятельно управлять собственными средствами, у вас нет причин пользоваться услугами провайдеров веб-кошельков. Как бы ни были удобны эти сервисы, хранить на них деньги – рискованная затея, поскольку, поступая таким образом, вы утрачиваете контроль над своими активами. Вряд ли Сатоши Накамото, проектируя сеть Биткойн, предполагал участие в ней посредников вроде провайдеров веб-кошельков.
Бумажный биткойн-кошелек можно описать как документ, содержащий в себе необходимые данные для генерации секретных ключей, а потому он представляет собой “кошелек для секретных ключей”. Однако это не единственный способ его применения – на бумажном носителе с тем же успехом можно хранить сами биткойны. В этом случае бумажный биткойн-кошелек будет содержать в себе также публичный адрес и непогашенные коды.
Смысл такого кода заключается в том, чтобы сперва обеспечить его средствами, а затем “погасить”, тем самым использовав средства, проассоциированные с данным конкретным биткойн-адресом. Однако следует помнить, что бумажный кошелек не стоит использовать повторно, потому что он отнюдь не предназначен для повседневного использования.
Бумажные кошельки могут служить для разных целей. Например, это отличный подарок для родственников, друзей и близких, которых вы хотите познакомить с миром биткойна. Их также можно использовать в качестве чаевых или поощрения за хорошо проделанную работу. Для того чтобы использовать подаренный кошелек, человеку, получившему подарок, потребуется установить компьютерную или мобильную версию кошелька на одно из своих устройств, чтобы импортировать в него ключ, ассоциированный с адресом.
К бумажным кошелькам можно относиться по-разному, но это, безусловно, надежный способ хранения биткойнов. Бумажный кошелек не подключен к Интернету, его невозможно взломать, и посредники ему не нужны. Впрочем, это бумажный кошелек, а потому его могут украсть, вода или огонь могут нанести ему повреждения, ею можно потерять или им может воспользоваться кто-то еще. Если вы решите сохранить бумажный кошелек в сейфе или депозитном боксе, это будет надежным решением для защиты средств, но многим такой способ не покажется практичным.
В этой главе…
• Узнаем все о биткойн-транзакциях
• Важность подтверждений сети
• Разбираемся с комиссией за транзакции
Идею биткойн-транзакции достаточно легко объяснить. Не правда ли, хорошие новости для начала главы?
Прежде всего, и это самое главное, биткойн-транзакция представляет собой передачу цифровых прав владения определенным количеством BTC в сети Биткойна. Например, если изначально вы владеете пятью биткойнами, а затем отправляете два из них на биткойн-адрес пользователя “Джо”, то в действительности вы передаете цифровое право владения этими двумя BTC кошельку Джо. Оставшиеся три BTC остаются в вашем кошельке, и поэтому вы остаетесь полноправным владельцем этой суммы.
В этой главе описываются основные принципы биткойн-транзакций и даются ответы на некоторые из вопросов, часто задаваемых относительно обмена BTC.
В самом простом смысле транзакция работает так, что в результате ее выполнения вы передаете другому человеку определенное количество биткойнов из числа тех, которыми владеете.
Чтобы биткойн-транзакция считалась “подлинной”, должен быть по крайней мере один вход (input), хотя вариант с несколькими входами также возможен. Вход является ссылкой на “выход” (output), оставленный предыдущей транзакцией. Запомните, что каждый вход, ассоциированный с биткойн-транзакцией, должен быть непотраченным выходом предыдущей транзакции. Помимо этого, каждый вход в биткойн-транзакции должен быть подписан, что происходит посредством использования приватного ключа, ассоциированного с инициирующим транзакцию BTC-адресом.
В случае, когда с одной биткойн-транзакцией ассоциированы несколько входов, это будет означать, что присылаемый получателю объем валюты приходит из нескольких биткойн-адресов, генерируемых одним кошельком. Как было указано в главе 5. любой пользователь криптовалюты может генерировать неограниченное количество биткойн-адресов, каждый из которых может хранить неограниченные суммы в BTC.
Вот пример: если вы снова отправите счастливчику “Джо” 2 BTC, 1 BTC будет отправлен с адреса #2 в вашем кошельке, 0,33 BTC отправится с адреса #7, а остаток – будет взят с адреса #8. В данном примере адреса #1, #3, #4, #5 и #6 не имеют биткойнов на балансе, а следовательно, не могут использоваться в качестве “входов”, так как нет неизрасходованных выходов, ассоциированных с этими адресами.
Однако биткойн-транзакция может иметь не только несколько входов, но и несколько выходов. Как вы могли ожидать, несколько выходов указывают на то, что транзакция осуществлялась с целью разделить сумму между несколькими разными адресами. Например, ваш баланс в 5 BTC вы хотите разделить между богачом Джо (2 BTC) и Мэри (1 BTC), а оставшиеся 2 BTC отправить на один из других кошельков, находящихся под вашим контролем. На блокчейне одна эта транзакция будет иметь 3 разных выхода: один пойдет Джо, другой пойдет Мэри, а третий – на биткойн-адрес вашего другого кошелька.
Сумма отправки в биткойн-платеже может быть выражена совокупностью сатоши, самых мелких частиц биткойн-транзакций (8 цифр после запятой). Так как биткойн столь хорошо делится по сравнению с традиционными фиатными валютами, цена 1 сатоши очень изменчива. Сегодня 1 сатоши практически ничего не стоит, однако он может стоить несколько центов – или даже долларов – в будущем, по мере того, как использование биткойна станет популярным трендом. (О динамике курса биткойна рассказано в главе 4.)
Проведение платежей биткойнами и наличными деньгами происходит схожим образом. Общее количество биткойнов, ассоциированное со всеми входами транзакции, может превышать количество биткойнов, необходимое для заключения сделки, что образует “сдачу”. В случае с обычными фиатными валютами сдача выдается покупателю посредством купюр либо монет. В случае биткойн-валюты сдача выдается в форме цифрового права владения на биткойны, ассоциированные с вашим адресом. Если объем биткойнов, хранящихся на адресах-входах, превышает объем, необходимый для отправки на все адреса-выходы, то будет создан дополнительный выход на адрес отправителя, куда и попадет “сдача”.
На биткойн часто ссылаются как на вариант интернет-денег не только потому, что он больше всего используется в Интернете, но и потому, что вам необходимо иметь активное соединение с Интернетом, чтобы осуществить биткойн-транзакцию. Однако нет никакой необходимости поддерживать соединение с Интернетом постоянно, даже с целью получения транзакций.
Как только ваши биткойн-адреса в кошельке были сгенерированы, они остаются активными на протяжении вечности – или по крайней мере пока существует блокчейн биткойна. Есть ли у вас синхронизированный биткойн-клиент – на компьютере или на устройстве, – не имеет значения, потому что это не влияет на механизм, с помощью которого вы можете получать биткойн-транзакции на свой адрес.
А вот когда дело касается траты биткойнов, активное интернет-соединение необходимо и для пользователей компьютеров и для пользователей мобильных устройств, поскольку выполняемая транзакция должна быть распространена по сети. Чтобы это выполнить, необходимо иметь соединение с Интернетом, подойдут как Wi-Fi, так и мобильный Интернет. Соединение даже не должно быть быстрым – вам просто необходимо быть в режиме онлайн достаточно долгое время, чтобы отправить транзакцию другим узлам в сети. Обычно весь процесс занимает менее секунды.
Представьте, что вы – получатель в биткойн-транзакции, но не подключены в этот момент к Интернету. Средства все равно будут переведены с адреса отправителя на ваш адрес, так как ваш биткойн-адрес “живет” (и будет жить) на блокчейне во все времена. Просто вы не сможете узнать, что средства были перемещены на ваш адрес, пока ваше устройство с ПО биткойна снова не будет подключено к Интернету. Когда это случится транзакция появится в вашем кошельке вместе с указанием количества ее подтверждений на текущий момент.
Каждая биткойн-транзакция отслеживается самой сетью и распространяется через разные узлы, чтобы удостоверить свою подлинности. Даже если ваш компьютер или смартфон не подсоединен к Сети на момент осуществления транзакции, трансфер все равно регистрируется блокчейном. Средства от каждого имевшего место перевода отобразятся в вашем кошельке при последующем подключении к Интернету.
Принцип получения биткойн-транзакций офлайн можно сравнить с принципом получения электронных писем, когда вы не за компьютером. Вы не узнаете, что кто-то прислал вам письмо, пока не проверите почту в Интернете с помощью того или иного устройства. Однако, как только вы откроете почтовый клиент – или биткойн-клиент в данном случае, – его информация синхронизируется с сервером (или блокчейном) и любая новая информация, направленная вам, будет получена в считанные минуты.
Существует несколько способов отправить биткойн-транзакцию другому биткойн-пользователю. Прежде всего, вы можете попросить у получателя его биткойн-адрес и отправить деньги через специальное ПО на вашем компьютере или мобильном устройстве. Для пользователей смартфонов есть более простая альтернатива в форме сканирования QR-кода, генерируемого получателем. Любой тип программного обеспечения биткойна позволяет пользователю создавать QR-коды, которые могут включать адреса для отправки средств на них, а также итоговую сумму сделки.
Например, на ваш адрес в кошельке поступило 5 биткойнов на протяжении определенного периода времени, и теперь вы отправляете 2 биткойна Джо. Транзакция будет иметь один вход (нерастраченные выходы той транзакции, через которую вы получили 5 BTC) и создаст два разных выхода во время отправки средств Джо. Первым выходом станет транзакция Джо, ему будет отправлено 2 BTC. Вторым выходом станет транзакция со “сдачей”, которая возвращает неизрасходованные 3 BTC на ваш адрес в кошельке.
Больше информации относительно биткойн-транзакций можно найти здесь: https://bitnovosti.com/2014/07/17/tak-chto-zhe-takoe-bitcoin/.
Биткойн-транзакциям необходимы подтверждения – они появляются в сети, как только транзакции включаются в новый блок майнерами. (Читайте главу 4 для получения детальной информации о майнерах; это слово является производным от англ, miner – шахтер. Подсказка: кирка и фонарик вам не понадобятся.) Каждый блок, найденный в сети, включает некоторое количество биткойн-транзакций, произошедших чуть раньше. Эти транзакции затем распространяются по сети среди всех биткойн-узлов с целью определения подлинности.
Каждый блок, найденный в биткойн-сети после того, как транзакция была распространена, сможет – при условии, что транзакция подлинная, – предоставить одно сетевое подтверждение. Как уже упоминалось, минимум шесть подтверждений сети необходимо, чтобы “официально” считать биткойн-транзакцию расходуемой (см. следующий раздел).
Подтверждение в мире биткойна означает, что транзакция была признана действительной узлами сети. Без подтверждений транзакция все еще “происходит между” пользователями, и пока на блокчейне не появится некая форма подтверждения, транзакция представляет собой риск для отправителя и получателя. Определенно, транзакциям на подтверждение понадобится время, но это требование в большей степени – мера безопасности, чем просто досадный раздражитель.
Большинство биткойн-кошельков покажут биткойн-транзакцию как “потраченную” (spent), вне зависимости от количества подтверждений сети. Пользователи ПК могут увидеть статус вида “n/unconfirmed”, где n показывает количество подтверждений, полученных транзакцией. Получение шести подтверждений в большинстве случаев может потребовать до часа времени, хотя бывают и исключения (в сторону увеличения).
Биткойн-клиент не может “заставить” сеть генерировать подтверждения, это действие всецело зависит от майнеров биткойна. Учитывая, что время между появлением биткойн-блоков равняется примерно 10 минутам, не существует способа повлиять на скорость получения подтверждения в период между блоками. Учитывая сказанное, становится понятным, что существует только один решающий фактор, т. е. момент, когда ваша транзакция будет включена в сетевой блок.
Если предположить, что информация о вашей биткойн-транзакция была распространена в сети как раз перед тем, как был найден новый блок, то первое подтверждение может быть получено довольно быстро. Однако, если ваша транзакция будет включена только в следующий блок – а данный процесс является совершенно случайным, – придется ждать чуть больше времени, чтобы получить первое подтверждение.
Главное правило в отношении транзакций следующее: биткойн-транзакция, у которой нет подтверждений, всегда является относительно высоким риском в смысле атаки двойной траты. Говоря упрощенно, двойная трата означает, что биткойн-пользователь может потратить свои средства в биткойн-кошельке дважды (подробнее о двойной трате читайте в главе 10). По факту любая транзакция, у которой еще нет шести подтверждений, несет в себе аналогичный риск. Тем не менее торговцы или платежные процессоры могут устанавливать собственное число необходимых подтверждений. Это правило не касается пользователей, которые пользуются кошельками на ПК, так как средства будут оставаться “неподтвержденными” до тех пор, пока не наберется именно шесть подтверждений сети. Пользователи мобильных устройств, в зависимости от того, какой кошелек они выбрали, обычно могут тратить поступившие им средства значительно раньше.
Учитывая, что каждое подтверждение транзакции происходит в момент, когда в биткойн-сети найден новый блок – что происходит примерно раз в 10 минут, – шесть подтверждений могут появиться только спустя час. Как только транзакция обрела эти шесть подтверждений, монеты становятся доступными к трате для получателя.
Тот час, за который транзакция будет подтверждена, в общем случае может выступать в роли как благословения, так и проклятья. К тому же ожидание появления шести (или более) подтверждений дает дополнительную уверенность, что транзакция настоящая и что вы не стали жертвой атаки двойной траты на сеть биткойна. В конце концов, транзакции биткойна – не возмещаемые, и согласие на транзакцию, не получившую шести подтверждений, может оказаться финансовой катастрофой для получателя.
Имеются сведения о случаях, когда транзакция набрала шесть подтверждений в течение нескольких часов. Тем не менее подтверждения задерживаются все реже и реже, а время зависит от общей используемой для нахождения блоков вычислительной мощности.
Даже несмотря на то, что транзакция считается “подтвержденной” биткойн кошельком по получении шести и более подтверждений, это совсем не делает ее “подлинной” для протокола биткойна. Когда биткойн был создан, в его протокол была вписана некоторая часть кода, отвечающая за признание новых намайненных монет (найденных блоков) подлинными только после того, как они наберут 100 подтверждений. По факту большинство майнинговых пулов биткойна (как было упомянуто в главе 4) не будут высылать майнерам вознаграждения за блоки, пока не получат 120 подтверждений от сети.
Сеть биткойна очень безопасна сама по себе, однако всегда присутствует риск двойной траты. С помощью двойной траты, как уже упоминалось, пользователь может потратить одну и ту же сумму дважды. Чтобы уменьшить шансы проведения подобной атаки, сеть биткойна закрепляет каждую отдельную транзакцию с помощью подтверждений.
В общих чертах самый большой потенциал для атак двойной траты появляется, когда торговцы или поставщики выдают товар или деньги сразу, как только транзакция появилась в сети. Эти неподтвержденные транзакции – также известные как транзакции нулевого подтверждения (zero confirmation transactions) – являются основным риском в смысле двойной траты. В результате всем биткойн-пользователям рекомендуется ждать как минимум 6 подтверждений перед тем, как пытаться пересылать полученные средства. Чем больше подтверждений имеет конкретная транзакция, тем выше шансы, что она подлинная и не является двойной тратой.
Шансы на успешное выполнение двойной граты биткойнов практически равны нулю. Нет системы, которая полностью устойчива к взломам, но протокол биткойна – это другая разновидность технологии, которая потребовала бы достаточно больших усилий для обеспечения успешности атаки двойной траты. Ввиду вышесказанного существует пять потенциальных форм атак, связанных с двойной тратой. О них говорится в следующих подразделах.
“Гонка” (Race attack)
Торговцы и поставщики, принимающие платеж незамедлительно после тою, как заметят “0/unconfirmed”-транзакцию в своем кошельке, открыты к атаке двойной траты, если имела место мошенническая попытка успешно переслать торговцу одну транзакцию, одновременно отправив другую транзакцию, которая тратит ту же монету, запись о передаче которой естественным образом должна была первой попасть в блокчейн.
“Атака Финни” (Finney attack)
Атака Финни – это ложная двойная трата, которая требует участия майнера, как только блок был найден. Риск атаки Финни нельзя ликвидировать, вне зависимости от предосторожностей, предпринятых торговцем, однако необходимы участие майнера и особая последовательность обстоятельств. Таким образом, эта атака не тривиальна, не дешева в исполнении и имеет смысл для атакующего только в том случае, если его ждет существенная добыча.
Атака Вектор76 (Vector76 attack)
Вариант Вектор76 также иногда называют атакой одного подтверждения. Это комбинация атак Гонка и атаки Финни, при которой транзакция, имеющая одно подтверждение, все еще может быть потрачена дважды. Те же защитные действия, которые используются против атаки Гонка, заметно уменьшают риск успешности этой операции.
Брутфорс-атака (Brute force attack)
Атака грубой силы заключается в следующем. Атакующий присылает торговцу/сети транзакцию, которая платит торговцу, и в то же время тайно майнит форк (разветвление, создание ложного дубликата) блокчейна, в котором транзакция двойной траты включается вместо настоящей. После ожидания n подтверждений торговец отправляет товар. Если атакующий сможет найти больше чем n блоков к этому моменту, он останавливает свой форк и получает свои монеты обратно: в другом случае он может продолжить расширять свой форк с надеждой, что сможет поспевать за сетью.
Атака >50 (>50 percent attack)
Также известна как атака 51 процента. Если атакующий заполучил контроль более чем над 50 % мощности сети биткойна, вышеописанная брутфорс-атака имеет гарантированный шанс на успех. Так как атакующий может генерировать блоки быстрее, чем остальные участники сети, он может упорно развивать свой личный форк до тех пор, пока его ветка не станет длиннее, чем та, которая ведется честной сетью, преодолев любые препятствия. Больше деталей по этому вопросу можно найти по адресу: https://en.bitcoin.it/wiki/Double-spending.
В мире биткойна назрел тренд: продавцы зачастую даже не беспокоятся о шести подтверждениях, сразу помечая транзакцию как завершенную. Такой отказ от ожидания шести подтверждений повышает шанс стать жертвой атаки двойной траты. Пока сама сеть биткойна не покажет подтверждения для транзакции, считать ее “выполненной” рискованно.
Тем не менее торговцы и платежные процессоры имеют право определять количество подтверждений, необходимое для подтверждения подлинности биткойн-транзакции. Тогда как большинство сервисов видят это число в пределах трех-шести подтверждений, остальные сервисы действуют, как только транзакция начинает распространяться по сети в своем неподтвержденном состоянии. Это не только позволяет быстрее завершить покупку на вебстраничке, но и вообще ускоряет завершение заказов.
Большинство торговцев, завершающих сделку при нуле подтверждений, продают недорогие или цифровые активы. Например, большинство баров и ресторанов будут считать транзакцию “завершенной” после нуля подтверждений, так как они защищены платежным процессором на случай двойной траты. Платежные процессоры вроде BitPay, BitKassa или Coinbase предоставляют торговцам некоторый вид защиты от двойной траты, даже если установлено нулевое число подтверждений для завершения транзакции.
Биткойн-транзакции нулевою подтверждения являются хорошим средством для бизнесменов и частных лиц получать биткойны быстро и безопасно, несмотря на риски, ассоциированные с таким подходом. Тем не менее раз получатель может подать в суд на платежный процессор с целью защититься от потери средств из-за атаки двойной траты, у него нет никаких причин не установить для своего сервиса нулевое число необходимых подтверждений.
На биткойн иногда ссылаются как на глобальную сеть платежей, в которой практически нет комиссий за транзакции. До определенного момента это утверждение верно, однако оно не раскрывает данную тему полностью. Да, получателю любой биткойн-транзакции никогда не придется платить комиссию. Но вот отправителю все же необходимо заплатить комиссию за перевод, чтобы майнеры включили его транзакцию в блок, хотя, как правило, речь идет о небольшой сумме (несколько центов).
От размера комиссии (которую пользователь устанавливает самостоятельно) зависит то, насколько быстро майнеры добавят ее в новый блок, а соответственно, и скорость подтверждения данной транзакции. По факту большинство биткойн-кошельков позволяют пользователю регулировать размер комиссии за транзакцию с целью ее ускорения. Под ускорением мы подразумеваем, что транзакция с прикрепленной небольшой комиссией будет приоритетно включена в следующий сетевой блок, тогда как транзакция с низкой или нулевой комиссией получает самый низкий приоритет и может “застрять” в сети, потому что у майнеров не будет никакого интереса включать ее в блоки.
Существуют некоторые исключения, связанные с включением платы за транзакцию, которые не влияют на скорость выполнения транзакции. В клиенте Bitcoin Core, если ваша транзакция имеет размер меньше 1000 байт, все суммы выходов в ней – от 0,01 BTC и выше и ей присвоен достаточно высокий приоритет, сбор за транзакцию не взимается. Чтобы это правило исключения было применимо, должны соблюдаться все указанные условия. В противном случае в операцию будет добавлена стандартная комиссия за транзакцию в размере 0,0001 BTC за каждую тысячу байтов. Пользователи клиента Bitcoin Core получат соответствующее извещение о том, что с проводимой транзакции будет взята комиссия. В подобной ситуации им предоставляется право согласиться с этим или отказаться от уплаты комиссии. Однако отклонение этой платы снижает приоритетность транзакции и в конечном счете влияет на скорость, с которой для нее будут поступать сетевые подтверждения.
Большинство биткойн-транзакций имеют размер 500–600 байт и в зависимости от выходов могут или не могут облагаться комиссией в 0,0001 BTC. Включение транзакции в сетевой блок происходит случайным образом, однако на нега влияет комиссия (если она необходима). Каждый блок оставляет 50 000 байт места для транзакций с высоким приоритетом (вне зависимости от комиссии за транзакцию (ТХ)), чтобы они были включены в него (примерно по 100 транзакций на блок). После этого в блок добавляются транзакции, у которых проставлена комиссия в размере 0,00001 BTC/Кб, при этом первыми транзакциями становятся те, у которых сумма комиссии будет сравнительно выше. Этот процесс повторяется до тех пор, пока размер блока не достигает 1 Мбайт.
Больше информации о размере комиссии за транзакции можно найти здесь:
https://bitnovosti.com/2017/03/29/bitcoin-fee-market/.
Приоритет транзакции определяется достаточно сложной математической формулой. Приоритет считается так: это взвешенная по стоимости сумма возраста входов (насколько транзакция стара), разделенная на размер транзакции в байтах. Для достижения лучшего значения взвешенная сумма должна быть более 57 600 000.
Как вы уже могли догадаться, иногда в очереди на распространение находится больше транзакций, чем можно включить в текущий блок. Любые оставшиеся транзакции будут оставаться в пуле транзакций майнера (это коллекция транзакций, которые еще не были подтверждены сетью Биткойна) и будут включены в следующие блоки с приоритетом, вычисленным согласно их комиссиям (если она взимается).
Распространение биткойн-транзакций также зависит от того, была ли назначена для нее комиссия. Процесс распространения транзакций не учитывает, является ли сумма всех выходов транзакции равной 0,01 BTC или более, а лишь проверяет, была ли транзакция помечена как “бесплатная”. “Бесплатной” транзакция помечается в зависимости от того, была ли добавлена комиссия в 0,00001 BTC. Если нет, транзакция помечается как “бесплатная” и получает низкий приоритет.
Больше информации о ретрансляции транзакций можно найти здесь:
https://en.bitcoin.it./wiki/Transaction_fees.
Биткойн-транзакции включаются в блоки благодаря майнерам (подробно о майнерах – в главе 4). Отсюда следует, что прикрепление комиссии к каждой транзакции служит стимулом для майнеров включить вашу транзакцию в следующий блок.
Каждая комиссия за транзакцию может рассматриваться как небольшая награда всем майнерам, способствовавшим решению блока, включающего вашу транзакцию (или несколько).
Процесс майнинга биткой на подойдет к концу, когда все монеты будут добыты, что запрограммировано на 2140 год. Предполагается, что далее майнеры будут продолжать заниматься добычей блоков сети (они содержат сведения о транзакциях) в обмен на комиссии, прикрепленные к каждой отдельной транзакции. Разгорелось множество споров относительно этих комиссий и того, стоит ли их увеличивать ради стимуляции майнеров. Так или иначе, пройдет еще много лет, прежде чем консенсус по данному вопросу будет достигнут, так что вам сейчас не стоит об этом волноваться.
Кроме комиссий майнерам, для них нет никаких стимулов подтверждать ваши транзакции. Несмотря на то что никто не обязан добавлять комиссию к транзакции – разве что вашим кошельком предусматривается иное, – хорошей практикой было бы всегда включать маленькую комиссию ради поддержки сети биткойна и индивидуальных майнеров.
Возможно, вы думаете, что конечный пользователь всегда единолично контролирует свои запасы биткойнов в любое время. Тем не менее, поскольку конечный пользователь является единственным лицом, владеющим приватными ключами от адресов, содержащихся в его кошельке, в общем случае должен был быть разработан и более безопасный вариант. Дело в том, что оставлять одному человеку контроль над одним кошельком – вполне нормально, но все становится немного по-другому, когда речь идет о компаниях, семьях или даже друзьях, вместе работающих над проектом. Доверие может рассеяться очень быстро.
Вот как работает типичный биткойн-кошелек. Один пользователь имеет приватный ключ и полный контроль над биткойн-адресом. В этой ситуации, если два или более людей создают проект вместе, у них будет только одна возможность: доверить одному из пользователей приватный ключ от общего адреса в кошельке. И если этот ответственный пользователь захочет вывести все средства в свою пользу, другие ничего не смогут с этим поделать, поскольку у них нет никакого контроля над кошельком.
Ясное дело, этот вариант – далеко не идеальное решение, необходим иной вариант действий, предоставляющий сразу нескольким пользователям контроль над одним кошельком. Следуя этому принципу, со временем была разработана система мультиподписи, при которой несколько пользователей контролируют один кошелек и никто не имеет полного контроля над его содержимым без согласия хотя бы одного другого человека в группе. Эта система известна как аккаунт с мулътиподписями или Multisig-аккаунт.
В противовес обычному биткойн-кошельку биткойн-адреса с мультиподписями требуют наличия нескольких приватных ключей для того, чтобы можно было потратить хранящиеся в них средства. Получение транзакций в такой кошелек с мультиподписью работает точно так же, как в обычном кошельке, просто потому что приватный ключ не используется в процедуре получения средств. А вот в случае отправки средств из кошелька каждая транзакция снабжается цифровой подписью посредством программного обеспечения биткойна на вашем компьютере.
Биткойн-адрес с мультиподписью требует указания “m–из–n” приватных ключей, чтобы разрешить трату средств, ассоциированных с данным отдельным биткойн-адресом. Например, адрес с тройной мультиподписью потребует по крайней мере двух из трех приватных ключей, относящихся к этому адресу: если трое людей создают кошелек с мультиподписью (m = 3), нужны будут по крайней мере две подписи для отправки транзакции (n = 2).
Неспособность предоставить два приватных ключа для подписи транзакции приведет к отказу в отправке транзакции. Биткойн-адреса с мультиподписью предоставляют более высокий уровень безопасности для бизнеса и групп людей, разделяющих общий адрес в кошельке, при этом для одиночных пользователей нет почти никакой разницы между обычным кошельком и его версией с мультиподписями. Так или иначе, для тех из нас, кто всерьез воспринимает проблему безопасности биткойна, было бы неплохой идеей генерировать себе кошелек с мультиподписями, даже для личного использования.
Armory, один из многих доступных пакетов ПО биткойн-клиента, был первым кошельком, внедрившим в систему мультиподписи. Более года назад компания Armory представила свою новую “фишку” Lock Boxes, которая является практической иллюстрацией того, как генерируется биткойн-адрес с мультиподписью.
Детальное видео руководство представлено здесь: https://bitcoinarmory.com/tutoriais/armory*advanced-features/lockbox/create-lockbox/.
В группе из трех человек – Джона, Дилана и Марии – есть три возможные комбинации для достижения согласия двух из трех приватных ключей.
• Джон и Дилан подписывают транзакцию с помощью своих приватных ключей.
• Джон и Мария подписывают транзакцию с помощью своих приватных ключей.
• Дилан и Мария подписывают транзакцию с помощью своих приватных ключей.
Без любой из этих процедур, проведенных правильно, транзакцию вывода биткойнов провести невозможно.
В этой главе…
• Что такое блокчейн и блоки
• Какой у блокчейна потенциал
• Какое у этой технологии будущее
Блокчейн биткойна представляет собой первое воплощение этой инновационной технологии. В данной главе будут рассмотрены различные составляющие блокчейна биткойна. Прочитав главу до конца, вы будете знать по большей части все, что следует знать о блокчейне и о том, как он взаимодействует с биткойном.
Как всегда, начнем с основ. Что такое блокчейн? Если коротко, блокчейн – это открытый распределенный реестр, предполагающий небывалую прозрачность финансовых операций в рамках экосистемы биткойна. Говоря по-простому, это полный список всех биткойн-транзакций начиная с первой, совершенной в 2009 году. Любая последующая за ней транзакция также зафиксирована в блокчейне. Однако эта технология не ограничивается простой записью транзакций, она способна на нечто гораздо большее.
Блокчейн – это уникальное достижение технической мысли: в его децентрализованной структуре отсутствует центральное управление, которое могло бы поставить всю систему под удар.
Чтобы узнать больше о принципах работы блокчейна, посмотрите это видео, где данный вопрос рассматривается подробно: https://www.youtube.com/watch?v=mcuwRUDOFRg.
Один из самых часто задаваемых вопросов по теме – “Почему эта технология называется блокчейном?” Чтобы понять, почему это так, сперва следует разобраться, что такое блок. Если бы блокчейн действительно был обычной бухгалтерской книгой, то первый блок транзакций разместился бы на первой странице. Каждый новый блок в сети биткойна содержит хеш предыдущего блока (краткую последовательность цифр и букв). В результате с тех пор, как в 2009 году появился первый блок (его еще называют генезисным), в биткойн-сети формировалась непрерывная цепь транзакций в составе блоков. С помощью этих блоков путь любой транзакции можно отследить вплоть до генезисного блока
Если вернуться к аналогии с реестровым журналом, то каждая новая страница начиналась бы с краткого описания предыдущих страниц, поэтому размер страниц со временем пришлось бы увеличивать. Эта метафора сейчас стала весьма актуальной для блокчейна, который неимоверно разросся из-за объема хранимых в нем данных.
Блокчейн биткойна получил широкую известность именно как открытый реестр: это означает, что он фиксирует все биткойн-транзакции в прошлом, настоящем и будет фиксировать в будущем. Блокчейн – это не только журнал бухучета, это невероятно прозрачная финансовая экосистема. И именно эта степень прозрачности системы расчетов внушает опасения традиционным финансовым институтам. Им не нравится раскрывать свои данные и информацию о денежных операциях, в то время как биткойн не дал бы им возможности скрыть эту информацию. Впрочем, в системе все же существует определенная прослойка конфиденциальности, так как и индивидуальные пользователи, и компании представлены только номером своего биткойн-адреса, а вовсе не именем и физическим адресом.
Блокчейн биткойна с финансовой точки зрения представляет собой распределенную базу данных, содержащую информацию обо всех транзакциях. Каждый биткойн-узел (компьютер, непрерывно подключенный к сети и работающий как программный биткойн-коше-лек, фиксируя и подтверждая транзакции) в сети Биткойн хранит полную копию всей истории биткойн-транзакций с самого начала (2009) до настоящего момента. В будущем все больше и больше транзакций будет добавляться к существующему блокчейну, формируя тайм-лайн эволюции биткойна в мире финансов.
К тому же каждый новый биткойн-блок хронологически упорядочен, поскольку содержит в себе хеш предыдущего блока. Если хеш отсутствует, сеть не примет такой блок. Более того, предыдущие блоки биткойна невозможно изменить, потому что это означало бы, что придется изменить и все последующие блоки. Функция редактирования в блокчейне недоступна и никогда не будет доступна.
В результате того, что в открытом регистре фиксировались все биткойн-транзакции начиная с 2009 года и до того самого момента, когда вы читаете эту книгу, блокчейн существенно вырос в размерах. К тому моменту, когда вы прочтете эти строки, размер блокчейна уже превысит 100 (байт. Учитывая то, что все больше и больше транзакций транслируется в сеть Биткойн, размер блока со временем придется увеличивать, а файл с блокчейном станет еще объемнее.
В 2014 году в мире биткойна и блокчейна стал выкристаллизовываться новый тренд. Блокчейн-анализ – это совершенно новый рынок, формирующийся в рамках экосистемы биткойна: его появление стало возможным исключительно благодаря прозрачным свойствам блокчейна. Чем станет блокчейн-анализ, проклятием или спасением для биткойна, еще предстоит разобраться, потому что на данный момент мнения разделились.
Наблюдая за тем, на что люди тратят свои биткойны (не только за тем, какие товары и услуги чаще покупают, но и как долго в среднем они хранят биткойны, посту пившие к ним на кошелек), можно способствовать эволюции биткойна в основное средство расчетов. Биткойн задумывался как подобное наличным платежное средство, которым можно будет воспользоваться где у годно в любой момент времени. Проанализировав, как долго пользователи обычно хранят свои средства на счетах, сообщество способно помочь распространению биткойна в разных частях мира. Для этого может пригодиться и блокчейн-анализ.
Позитивные стороны блокчейн-анализа распознать несложно. Биткойн – по-прежнему юная и незрелая финансовая система, и детальный анализ даст экспертам ценную информацию о том, что следует сделать, чтобы система перешла на следующий уровень.
• На что тратят биткойны?
• Где создают много новых кошельков?
• Проблема накопительства отступает или становится актуальнее?
Все эти вопросы заслуживают достойных ответов, и здесь на помощь приходит блокчейн-анализ.
Ни для кого уже не секрет, что “старейшие” биткойны, зарегистрированные в системе, никуда не перемещались годами. Одни полагают, что они принадлежат Сатоши Накамото, создателю биткойна, другие – что это монеты первых пользователей, которые потом просто забыли о биткойне и никогда больше не вспоминали, или просто секретные ключи от них утрачены в результате поломки жесткого диска, что делает эти монеты недоступными.
Сделать биткойн более дружелюбным к пользователям – эго еще одна задача, с которой блокчейн-анализ может помочь справиться. Например, большинство пользователей считает, что было бы уместным получать текстовое сообщение но факту отправления или получения средств. Некоторые крупные провайдеры кошельков уже предлагают такую опцию, прочие пока отстают. Текстовые сообщения могут помочь новичкам сориентироваться в своих расходах и изменениях баланса.
Блокчейн можно использовать практически для всего, что только можно придумать: отслеживание почтовых посылок по всему миру в режиме реального времени, фиксация авторских прав на интеллектуальную собственность, борьба с интернет-пиратами, тотальная расправа над рынком подделок. Здесь перечислено лишь несколько идей, которые можно реализовать с помощью технологии блокчейна. Разумеется, блокчейн получил основную известность благодаря его возможностям именно в финансовом секторе, которые стали осуществимыми ввиду уникального способа фиксации транзакций. Однако важно понимать, что технология блокчейна представляет собой нечто существенно большее, чем валюта биткойн.
Помимо финансовою аспекта, технология блокчейна сама по себе позволяет создать кое-что поинтереснее, чем глобальная книга бухучета. Сейчас находятся в разработке немало проектов, которые призваны сделать доступными такие инструменты, как смарт-контракты и цифровая регистрация передачи прав собственности, и даже авторскими правами можно будет управлять прямо на блокчейне. Приведем лишь несколько примеров интересных блокчейн-платформ.
• Stampery (https://stampery.com/). Нотаризация цифровых документов и подтверждение их подлинности и неизменности.
• Factom (https://www.factom.com/). Надстройка блокчейна биткойна, предназначенная для учета и хранения данных (например, медицинскою характера).
• Soundchain (http://soundchain.org/). Управление авторскими правами и лицензиями на использование музыкальных произведений на блокчейне.
• Storj (https://storj.io/). Децентрализованное облачное хранилище – проект вознаграждает пользователей токенами Storj за хранение данных на персональных компьютерах.
Благодаря прозрачной структуре блокчейна возможности его тех ни-ческою применения почти безграничны. В настоящее время разработчики исследуют лишь верхушку айсберга, который являет собой потенциал блокчейна. К тому же число возможных способов применения технологии растет день ото дня.
Что касается развития приложений блокчейна, то основные разработки сейчас ведутся в финансовом секторе. Это абсолютно нормально, так как одна из особенностей биткойна в том, что он способен предоставить доступ к финансовым сервисам тем людям, которые ранее были лишены финансового обслуживания. К тому же блокчейн более всею известен как открытый регистр транзакций.
Тем не менее потенциал блокчейна пока еще мало исследован в плане возможностей ею применения, так что остается только гадать, какое приложение появится следующим. Что нам известно наверняка – это то, что сейчас разнообразные блокчейн-проекты уже находятся в стадии разработки и те из них, которые не ориентированы на финансовый сектор, призваны изменить в лучшую сторону нашу повседневную жизнь. Однако до тех пор, пока эти идеи не будут облечены в достойный код, они остаются просто умозрительными построениями.
Идеи, лежащие в основе блокчейн-приложений, как правило, имеют сходство с концепцией биткойна: восстановление прав индивидуального пользователя без необходимости согласовывать свои действия с централизованными структурами и посредниками. Благодаря децентрализованной и прозрачной структуре блокчейна блокчейн-приложения обладают небывалыми преимуществами. (Подробнее о централизации и децентрализации говорится во врезке ниже в этой главе.)
Технические преимущества блокчейна станут более очевидными со временем, по мере более тесного знакомства с этой технологией всего сообщества создателей ПО. Однако разработка блокчейн-приложений – это вам не фунт изюму. Даже маститые разработчики сначала осваивают новые параметры и API-вызовы (инструмент, применяемый разработчиками для вызова определенной функции в рамках платформы или приложения), применимые в рамках блокчейн-платформ.
Основная цель разработки новых блокчейн-приложений заключается в том, чтобы сделать нашу повседневную жизнь лучше, привнося больше прозрачности и надежности в существующую инфраструктуру. Этих свойств сейчас часто катастрофически не хватает, в особенности в сфере финансов. Впрочем, и в других сферах многое можно откорректировать посредством внедрения блокчейна, и будущее подскажет, в какую сторону нам следует двигаться.
Разработка достойного блокчейн-приложения – это длительный процесс, потому что требуется написать много кода и учесть все возможные результаты его использования. Кроме того, разработка блокчейн-приложения “с нуля” потребует вложений, хотя бы потому что программистам нужно платить за их старания. В мире биткойна, впрочем, это не станет непреодолимой преградой – венчурные инвестиции в блокчейн-проекты идут непрерывным потоком, невзирая на колебания курса биткойна.
Блокчейн служит благодатной средой для формирования сообществ и возникновения таких возможностей для индивидуальных пользователей, о которых ранее не могло быть и речи. Часто схожим образом мыслящие пользователи, которые одинаково представляют себе, как можно воплотить в жизнь ту или иную идею, притягиваются друг к другу. Яркий пример – сообщества соавторов альтернативных криптовалют, иначе именуемых альткойнами. Как результат разработка блокчейн-приложений не привязана жестко к одному языку программирования: диверсификация – это большое благо для разработчиков блокчейна. Перерастет ли командный дух в нечто большее, трансформировавшись в рабочее приложение блокчейна, имеющее финансовый смысл, станет ясно со временем. Помимо прочего, существуют явные параллели между развитием Интернета в первые годы его существования и сценарием развития блокчейна в наши дни.
Существует одно колоссальное различие между централизованным и децентрализованным типами устройства системы. Централизованные системы предлагают очень узкий набор вариантов реализации повседневных операций для индивидуальных пользователей и компаний, а также моделей взаимоотношений с покупателями. Децентрализованные системы больше сосредоточены на сообществах и их потребностях, в результате участие каждого пользователя становится частью совместных усилий.
• Централизованные компании и сервисы предполагают, что лишь несколько специалистов способны предоставить товар или сервис пользователю
• Децентрализованные компании или сервисы предоставляют возможность всем участникам как получить, так и предоставить товар или услугу практически вне зависимости от местонахождения участников в любое время суток и в любом месте,
Система для пользователей, сделанная пользователями и совместно с пользователями, – это те ценности, которые подразумевает децентрализованная система.
Любое блокчейн-приложение можно написать на разных языках программирования, включая JavaScript, Ruby, Perl и РНР. А еще существуют операционные системы для мобильных устройств, такие как Android, iOS, Windows Phone, Blackberry и другие, о которых тоже не стоит забывать, поскольку их пользователи весьма заинтересованы в соответствующих блокчейн-приложениях. Чтобы узнать больше о платформах разработки блокчейн-приложений, откройте ссылку https://ethclassic.ru/.
Биткойн изначально задумывался как универсальная валюта для разнообразных целей начиная от освобождения от контроля властей и заканчивая получением инвестиционной прибыли и т. д. Однако многие пользователи еще только начинают осознавать, что биткойн является чем-то большим, чем просто методом осуществления платежей. Биткойн 2.0 – понятие, подразумевающее новое поколение биткойн-приложений и платформ, большинство которых не будут сосредоточены на финансовых потребностях. Платформы и приложения платформы Биткойн 2.0 будут использовать блокчейн-технологию, чтобы изменить нашу повседневную жизнь, в самых различных ее проявлениях.
Сам биткойн и все прочие приложения блокчейн-технологии способны на гораздо большее, чем обслуживание финансовых потребностей пользователей, несмотря на то что в этом сама соль инновационного протокола. Впрочем, весьма вероятно, что в будущем акцент на развитии блокчейн-приложений для финансовой экосистемы сохранится. В этой сфере еще многое нуждается в усовершенствовании, поскольку сектор финансов не видел серьезных инновационных изменений на протяжении последних 50 лет.
Однако существует множество других способов применения биткойна и блокчейна в пределах нашей досягаемости. Как раз о них мы и поговорим далее. Использование блокчейнов для аутентификации вместо традиционных и ненадежных механизмов аутентификации от Facebook и Twitter – это лишь один из примеров того, на что способен Биткойн 2.0.
Потенциал приложений платформы Биткойн 2.0 и блокчейна не останется незамеченным. Разнообразные финансовые институции уже ищут способы внедрения блокчейна в существующую финансовую инфраструктуру. Даже если эти финансовые институции не воспринимают биткойн как жизнеспособную валюту, блокчейн и его возможности все равно могут стать перспективной средой для их развития в самом ближайшем будущем.
Привлекательность экосистемы Биткойн 2.0 заключается в том, что блоки и данные транслируются и формируются прямо в сети. Помимо данных о самой транзакции, с помощью блоков биткойна пользователи могут передавать друг другу любую информацию иного характера в прозрачной информационной среде. Цифровые средства массовой информации, цифровые сертификаты собственности, цифровые договора страхования – вот лишь несколько идей, над которыми уже сейчас трудятся различные блокчейн-разработчики.
Приложения Биткойн 2.0 позволят радикально изменить традиционную модель биткойн-торгов, которой мы пользуемся сейчас. Современные биткойн-биржи позволяют пользователям хранить, пересылать и получать цифровую валюту без каких-либо дополнительных опций. Технологии Биткойн 2.0 позволят добавить такие возможности, как пиринговое кредитование, процентные цифровые вклады и даже покупка ценных бумаг в кредит без участия посредников, таких как брокеры или банки.
Приложения и платформы формата Биткойн 2.0 способны устранить необходимость в услугах посредников, по крайней мере в сфере продажи и покупки товаров и услуг. Права собственности на различные товары теоретически также могут быть привязаны к цифровым токенам, которые можно будет передать другим пользователям блокчейна, одновременно с проведением транзакции в рамках оплаты за этот товар. По большому счету блокчейн обладает почти неисчерпаемым потенциалом возможностей для мировой интернет-торговли.
А что вы скажете насчет применения блокчейн-технологии для выпуска виртуальных удостоверений личности, которые можно будет использовать для верификации в сети биткойна и за ее пределами? Вместо того чтобы передавать ценные документы в руки посредников, которые чаще всего хранят их на центральных серверах, подлинность виртуального удостоверения личности можно будет подтвердить прямо в блокчейне. Владельцу цифрового удостоверения не нужно будет никому передавать свои личные данные, а продавцу не нужно будет хранить копии этих данных.
Использование технологии Bitcoin 2.0 для создания нового типа децентрализованного рынка – еще одно направление технологического развития, которое в настоящее время находится в стадии разработки. Одним из примеров является торговля через блокчейн драгоценными металлами в обмен на фиатную или цифровую валюту. Но и в других аспектах нашей жизни, таких, например, как торговля цифровыми медианосителями, также можно извлечь выгоду из организации соответствующих децентрализованных рынков. Причина проста: поскольку нет посредников, накладные расходы для авторов произведений будут существенно меньше.
И последнее, но не менее важное: технология блокчейна – это, прежде всего, сообщество, поддерживающее эту новую волну инноваций. И члены этого сообщества заслуживают права голоса как в биткойн-проектах, так и в различных ситуациях реальной жизни. Предположим, что местные власти решили открыть информацию о планируемых расходах своим налогоплательщикам. Эту задачу можно решить с помощью приложения на основе технологии Bitcoin 2.0. благодаря которому планы, бюджеты, возможные варианты и наиболее благоприятные решения могут быть представлены всему сообществу, могут обсуждаться и даже быть проголосованными напрямую. У такого приложения как ни у какого другого имеется необходимый потенциал, чтобы сделать процессы и принимаемые решения открытыми, демократичными и легитимными. И это действительно так: конечный результат голосования будет абсолютно прозрачным, в то время как личная информация избирателей будет полностью скрыта.
Создание новых децентрализованных приложений и сервисов станет основной целью технологии Bitcoin 2.0. Эта волна инноваций позволит любому человеку стать его собственным боссом и создать собственный стиль и методы работы. Пусть даже пока трудно понять, что это в конечном счете – курьерское обслуживание компании или оказание транспортных услуг людям, которые не любят ждать, – компания Uber является хорошим реальным примером внедрения децентрализованного обслуживания. Мы считаем, что, как только технология Bitcoin 2.U выйдет из младенчества и обретет необходимое признание, в мире останется совсем немного того, чего нельзя было бы достигнуть.