Подробно о Bitcoin, транзакциях и кошельках
Когда я только начал интересоваться Биткойном, я нашел в сети массу различной информации об этой сети, но не встретил ответа на вопрос, волновавший меня более всего:
Что именно мы приобретаем в собственность, когда покупаем биткойны?
На этот вопрос я и постараюсь здесь ответить. Попутно я дам определения нескольких ключевых понятий в системе Биткойн (Bitcoin). Я попробую также описать процесс биткойн-транзакции и расскажу о мерах безопасности.
Во-первых и в основных, биткойн — это счетная единица, в том же смысле, в каком литр – единица объема, а грамм – единица массы. В общем случае, вы не можете взять биткойн в руки и подержать его, как долларовую банкноту. Но это НОРМАЛЬНО, потому что важно совсем другое. Вот, что важно:
- Биткойнами можно владеть
- Биткойны можно переводить
- Биткойны невозможно подделать
В совокупности, эти 3 качества позволяют Биткойну эффективно функционировать в системе распределения материальных ценностей. И, одновременно с тем, именно эти же 3 качества наделяют биткойн полезностью, или внутренней стоимостью.
Давайте задумаемся, почему доллары удобны для распределения материальных благ? Благодаря тем же самым 3 качествам. Будучи владельцем долларовой банкноты, вы можете положить ее в карман. Вы можете ее кому-либо передать. К тому же, доллары довольно сложно подделать (хотя и не так сложно, как биткойны). Поэтому наличные купюры – это один из способов распределения ценностей, а биткойны – другой.
Поскольку биткойны являются не физическими объектами, а лишь условными единицами на вашем счету, для них нужен другой способ ведения учета. Способ бухгалтерского учёта, предусмотренный в системе Биткойн – это новейшее и необыкновенно здравое решение этой проблемы.
Почему Биткойн – это децентрализованная сеть?
Вы, наверное, уже слышали, что в биктойне не существует центрального сервера, который вёл бы учет всех транзакций. Но это не значит, что информация о транзакциях не хранится ни на каких серверах вовсе. Как раз наоборот. На самом деле, тысячи разных серверов фиксируют перемещения биткойнов. Каждый такой сервер в системе Биткойн называется полным узлом.
Полный узел – это автоматический электронный бухгалтер, кто угодно может его установить и использовать. Каждый узел хранит полную копию открытого реестра – запись всех биткойн-транзакций, совершенных когда-либо, начиная с момента появления Биткойна. На сегодняшний день открытый реестр содержит в себе 30 миллионов транзакций и запросов, для его установки требуется 13Гб дискового пространства.
Для того, чтобы использовать биткойны, вам потребуется биткойн-кошелек. В качестве кошелька можно использовать приложение на компьютере или мобильном телефоне; услугу «облачного кошелька» предоставляют многие веб-сайты, есть и другие опции. Ваш кошелек может добавить транзакцию в открытый регистр, отправив данные на один из узлов Биткойн-сети. Этот узел передаст информацию о транзакции другим узлам, и так далее — схожим образом работает BitTorrent. Информация о транзакции распространяется по всей сети в среднем за 7 секунд.
Как происходит транзакция?
Теперь вы, должно быть, уже понимаете, что когда вы отправляете кому-то биткойны, на самом деле вы ничего не посылаете. Вместо этого ваш кошелек переписывает указанное вами количество биткойнов с вашего счета на счет другого владельца, добавив эту транзакцию в открытый регистр. Например, ниже приведены записи 3 транзакций, осуществленных в декабре прошлого года.
Как вы можете убедиться, каждой транзакции соответствуют свои вводы и выводы. Вводы обозначают те биткойны, которые вы собираетесь потратить, а выводы переписывают их на нового владельца.
Каждый ввод – это цифровая отсылка к предыдущему выводу от другой транзакции. В отношении выводов действует одно очень простое правило: любой вывод может быть использован в качестве ввода в последующей транзакции, но лишь один раз. Если этот вывод использован в последующей транзакции, его называют потраченным, и дальнейшие операции с ним невозможны. Если вы пытаетесь использовать один и тот же вывод в двух транзакциях (фактически, хотите расплатиться одними и теми же деньгами дважды), Биткойн-сеть отвергнет вторую транзакцию (ведь вывод уже потрачен). Именно поэтому биткойны невозможно подделать.
Каждый непотраченный вывод соответствует определенному количеству биткойнов на чьем-то счету. Если сложить вместе все непотраченные выводы, зафиксированные в открытом реестре, вы получите общее число существующих биткойнов. В определенном смысле, можно сказать, что непотраченные выводы – это и есть биткойны в обращении.
Имейте ввиду, что никакие реальные имена не используются ни в одной транзакции. По этой причине, Биткойн иногда называют анонимной сетью. Вместо реальных имен, в Биткойне используются адреса кошельков, такие как 1PreshX6QrHmsWbSs8pHpz6kLRcj9kdPy6. Биткойн-адрес – это все равно что номер банковского счета, вот только его гораздо проще открыть — любой человек может его себе создать сам в мгновение ока. А кроме того, любой пользователь может иметь неограниченное количество адресов.
Откуда берутся биткойн-адреса?
Если вы хотите получать биткойны, вам необходим биткойн-адрес. Ваша программа-кошелек может вам в любой момент сгенерировать новый адрес. Он выглядит вот так:
Для того, чтобы создать адрес, ваш кошелек сначала генерирует личный ключ (секретный ключ). Личный ключ – это не что иное как многозначное число в интервале от 1 до 2256..Чтобы сократить это число, можно его закодировать, превратив в символьную последовательность.
Затем ваш кошелек преобразует личный ключ в Биткойн-адрес, используя хорошо известную функцию, которую современные компьютеры реализуют с легкостью. Если бы кто-то узнал ваш личный ключ, он смог бы также с легкостью узнать ваш биткойн-адрес.
Многие биткойн-кошельки обладают функцией, позволяющей импортировать частные ключи.
Вся фишка в том, что данная операция является односторонней. Чрезвычайно легко получить из секретного ключа биткойн-адрес. С другой стороны, чрезвычайно трудно провернуть обратную операцию. Чрезвычайно тут не преувеличение: раньше закончится время жизни Вселенной, чем вы успеете провернуть хоть одну обратную операцию. Если кому-либо известен только ваш биткойн-адрес, технически, вычислить ваш личный биткойн-ключ не представляется возможным.
Именно поэтому совершенно безопасно сообщать ваш биткойн адрес другим, но необычайно важно хранить личный ключ в секрете. Являясь пользователем Биткойна, большую часть времени вы не сталкиваетесь с необходимостью использовать свои биткойн-ключи. Как правило, кошельки хранят записи личных ключей в зашифрованных файлах в самом кошельке, либо на жестком диске вашего компьютера, либо на сервере в интернете. Вы также можете хранить их в любом другом месте, которое сочтете более безопасным.
Как подтверждаются транзакции?
Здесь мы вернемся к вопросу, почему так важно хранить в тайне личные ключи: ваш личный ключ дает возможность тратить ваши биткойны. Чтобы увидеть, каким образом это происходит, взгляните на вторую транзакцию в листинге, приведенном ранее. Ту самую, которая там обозначена как b6f4ec….
С помощью этой транзакции тратятся биткойны, которые были ранее посланы на адрес 1NqUaJrFeStshjad1bhrEFFzWSQw6JHbqv. Логично было бы предположить, что данную транзакцию может авторизовать только владелец этого самого биткойн-адреса. Как именно он это делает?
Тут на помощь приходит цифровая подпись. В сети Биткойн именно валидная цифровая подпись служит доказательством того, что транзакция подтверждена владельцем биткойн-адреса. Эта мера служит залогом безопасности: как для генерации биткойн-адреса был необходим личный ключ, тот же самый ключ потребуется для генерации валидной цифровой подписи транзакции.
Транзакция признается сетью действительной только в том случае, если в ней присутствуют верный биткойн-адрес, данные предыдущего вывода и правильная цифровая подпись владельца кошелька. Как вы уже догадались, каждый раз, когда узел Биткойна получает данные о новой транзакции, сеть проверяет подлинность цифровых подписей. Узел не получает данных о том, какой именно личный ключ использовался для генерации подписи, но эти данные ему ни к чему. Достаточно удостовериться в том, что подпись правильная.
В основе концепции цифровых подписей лежит старая технология: криптография с открытым ключом. Биткойн – это не первая криптовалютная технология, где применяется такой способ шифрования, но именно в Биткойне данный метод впервые стали применять без привязки к единому, центральному серверу. Это, безусловно, прорыв.
Виды кошельков
На настоящий момент уже существует довольно много различных кошельков, но в большинстве случаев назначение этих инструментов приблизительно одинаково:
- Хранение личных ключей.
- Осуществление биткойн-транзакций.
- Генерация биткойн-адресов для получения биткойнов от других пользователей.
- Доступ к истории транзакций и информации о текущем балансе.
Десктопный кошелек – это приложение для Windows, MacOSили Linux. В качестве примеров, можно привести Electrum, Multibit или Bitcoin Core. Личные ключи хранятся в локальном файле где-то на жестком диске под названием, например, wallet.dat, а безопасность ваших биткойнов напрямую зависит от сохранности этого файла. Исключением является лишь BitcoinQT, который превращает компьютер в Биткойн-узел, а значит, требует больше дискового пространства и использует ресурсы интернет соединения, чем и отличается от прочих приложений.
Существует другая разновидность кошельков: веб-кошельки, например, Coinbase или кошелек Blockchain.info. Если вы пользуетесь веб-кошельком, ваши личные ключи хранятся, обычно в зашифрованном виде, на серверах вебсайта, а не на вашем жестком диске. Некоторые веб-кошельки одновременно являются обменными биткойн-сервисами, например, Bitstamp или Virtex, где вы можете обменять биткойны на доллары или другие валюты.
Мобильный кошелёк – это приложение, которое устанавливается на смартфон или планшет. Многие мобильные кошельки, по сути, являются интерфейсом веб-кошелька, а это означает, что ваши личные ключи, при использовании подобных приложений, также будут храниться на сервере сайта. Единственное, но важное исключение — BitcoinWallet для Android, который хранит ключи непосредственно на мобильном устройстве.
Благодаря тому, что практически все смартфоны оснащены встроенной камерой, QR коды превратились в распространенный метод биткойн-коммуникации. Вы можете отправить кому-то биткойны, просто отсканировав QR-код адресата с помощью своего мобильного кошелька. QR-коды можно с лёгкостью генерировать, к тому же, они могут включать в себя дополнительную информацию, например, количество биткойнов, которое адресат ожидает получить. Это позволяет мобильным кошелькам функционировать в качестве устройств, осуществляющих процесс купли-продажи .
Существует даже такая разновидность как бумажный кошелек. Бумажный кошелек может послужить только одной цели: хранение личных ключей.
Некоторые из вышеописанных кошельков могут распечатать ваши личные ключи, но вы также можете сгенерировать новый личный ключ и адрес без реально существующего кошелька. Например, Bitaddress.org предлагает подобный сервис. Когда ваши ключи распечатаны , вы можете запереть их в банковской ячейке и стереть из своего компьютера. Такой способ защиты называют холодным хранением.
Протокол Биткойна совершенно открыт, позволяя применять любые приложения и устройства, совместимые с Биткойном. Фактически, вся экосистема состоит из привлеченных активов. Данная концепция уже вдохновила множество инноваций: существует гораздо больше биткойн-кошельков и устройств для осуществления купли-продажи, чем я здесь упомянул и несомненно появятся новые. Ландшафт мира финансов необратимо меняется.
К сожалению, открытая структура сети создает определенные возможности для мошенников. По этой причине нужно внимательно подойти к выбору кошелька. Следует изучить несколько источников перед тем как прийти к выводу, что провайдер кошелька заслуживает доверия. В случае, если вы предпочтете веб-кошелек, желательно выбрать доверенный сайт, прежде чем поручить ему хранение ваших биткойнов, как если бы вы выбирали банк, перед тем как сделать вклад. Десктопный кошелек даёт возможность самостоятельно управлять собственным счетом, но и в этом случае следует удостовериться, что кошелек работает, как заявлено провайдером. Лучше всего выбрать кошелек с открытым кодом, написанный на том же коде и имеющий хорошие отзывы на таких форумах как Bitcoinsubreddit и bitcointalk.org.
В связи с тем, что проблемы защиты биткойнов от хакеров в последнее время приобрели большое значение, многие биткойн-компании пытаются различными способами помочь пользователям защитить свои цифровые монеты. В результате, появились различные варианты гибридных кошельков. Особенно перспективными в этом плане выглядят сейчас подходы с использованием нескольких подписей.
Безопасность превыше всего
Если бы меня спросили, чем защищены биткойны, я бы сказал: «личными ключами». Конечно, каждая частица сети биткойн подкреплена другими ее частицами. И если на какой-либо адрес были отправлены биткойны, соответствующий ему личный ключ приобретает большую ценность. Возьмем следующий Биткойн адрес: 1933phfhK3ZgFQNLGSDXvqCn32k2buXY8a. На нём в данный момент находится 111 114 биткойнов. На момент написания статьи эта сумма превышает 70 млн. долларов США. Если бы вы владели личным ключом от этого кошелька, вы могли бы распоряжаться этими 70 млн как своей собственностью.
Но у вас его нет. Ни у кого нет этого личного ключа, кроме его владельца, кем бы он ни был. А чтобы подобрать этот ключ, потребуется, как мы знаем, все время жизни Вселенной и еще чуть-чуть.
Однако это не остановит попыток украсть такие ключи. Мошенники рыщут по всему миру в поисках личных ключей, применяя самые разные методы. Уже существует целый ряд вредоносных кодов для хищения биткойн-кошельков. Как обезопасить ваш кошелек – это важная тема, здесь ее сходу не раскрыть. Скажу лишь, что вы никогда не должны забывать пароль к своему электронному кошельку и периодически проверять компьютер на наличие вредоносных кодов, чтобы убедиться, что никакое шпионское оборудование и вирусы не получили доступ к биткойн-кошельку.
Выводы
Итак, … что же мы приобретаем в собственность, покупая биткойны?
Если вы владеете биткойнами, вы обладаете эксклюзивной возможностью добавлять транзакции к публичному реестру. Ваши биткойны существуют в виде неиспользованных выводов от последней в регистре транзакции, зачисленной на биткойн-адрес, сгенерированный вашим кошельком — там они ждут вашей следующей транзакции. Только ваш собственный кошелек имеет возможность подписать последующие вводы, потому что он хранит ключ, которого больше не знает никто.
Полный публичный регистр хранится в виде многочисленных копий на тысячах узлов, распределенных по всему миру. С этой точки зрения, Биткойн невозможно запретить или «зарегулировать».
Не стоит слепо доверять излишне упрощенным схемам и объяснениям, которые вы наверняка встретите в интернете. Например, в ознакомительном ролике о Биткойне присутствуют кадры, где один пользователь перебрасывает горсть монет другому. В популяризаторских статьях про биткойн часто используют фотографии и изображения реальных монет с логотипом биткойна на них. Но теперь вы, должно быть, понимаете, насколько условны такие иллюстрации. Они изображают недостоверно, как в действительности биткойны хранятся и пересылаются. Впрочем, кое-какие материальные воплощения биткойна все же существуют, но их функция совпадает с функцией бумажных кошельков.