Подробно о Bitcoin, транзакциях и кошельках

28
ПОДЕЛИТЬСЯ

12Когда я только начал интересоваться Биткойном, я нашел в сети массу различной информации  об этой сети, но не встретил ответа на вопрос, волновавший меня более всего:

Что именно мы приобретаем в собственность, когда покупаем биткойны?

На этот вопрос я и постараюсь здесь ответить. Попутно  я дам определения нескольких ключевых понятий в системе Биткойн (Bitcoin). Я попробую также описать процесс биткойн-транзакции и  расскажу о мерах безопасности.

bitcoin-symbolВо-первых и в основных, биткойн –  это счетная единица, в том же смысле, в каком литр – единица объема, а грамм – единица массы. В общем случае, вы не можете взять биткойн в руки и подержать его, как долларовую банкноту. Но это НОРМАЛЬНО, потому что важно совсем другое. Вот, что важно:

  • Биткойнами можно владеть
  • Биткойны можно переводить
  • Биткойны невозможно подделать

В совокупности, эти 3 качества позволяют Биткойну эффективно функционировать в системе распределения материальных ценностей. И, одновременно с тем, именно эти же 3 качества наделяют биткойн полезностью, или внутренней стоимостью.

Давайте задумаемся, почему доллары удобны для распределения материальных благ? Благодаря тем же самым 3 качествам. Будучи владельцем долларовой банкноты, вы можете положить ее в карман. Вы можете ее кому-либо передать. К тому же, доллары довольно сложно подделать (хотя и не так сложно, как биткойны). Поэтому наличные купюры – это один из способов распределения ценностей, а биткойны – другой.

Поскольку биткойны являются не физическими объектами, а лишь условными единицами на вашем счету, для них нужен другой способ ведения учета. Способ бухгалтерского учёта, предусмотренный в системе Биткойн – это новейшее и необыкновенно здравое решение этой проблемы.

Почему Биткойн – это децентрализованная сеть?

Вы, наверное, уже слышали, что в биктойне не существует центрального сервера, который вёл бы учет всех  транзакций. Но это не значит, что информация о транзакциях не хранится ни на каких серверах вовсе. Как раз наоборот. На самом деле, тысячи разных серверов  фиксируют перемещения биткойнов. Каждый такой сервер в системе Биткойн называется полным узлом.

bitcoin-overviewПолный узел – это автоматический электронный бухгалтер, кто угодно может  его установить и использовать. Каждый узел хранит полную копию открытого реестра – запись всех биткойн-транзакций, совершенных когда-либо, начиная с момента появления Биткойна. На сегодняшний день открытый реестр содержит в себе 30 миллионов транзакций и запросов, для его установки требуется 13Гб дискового пространства.

Для того, чтобы использовать биткойны, вам потребуется биткойн-кошелек. В качестве кошелька можно использовать приложение на  компьютере или мобильном телефоне; услугу «облачного кошелька» предоставляют многие веб-сайты, есть и другие опции. Ваш кошелек может добавить транзакцию в открытый регистр, отправив данные на один из узлов Биткойн-сети. Этот узел передаст информацию о транзакции другим узлам, и так далее – схожим образом работает BitTorrent. Информация о транзакции распространяется по всей сети в среднем за 7 секунд.

Как происходит транзакция?

Теперь вы, должно быть, уже понимаете, что когда вы отправляете кому-то биткойны, на самом деле вы ничего не посылаете. Вместо этого ваш кошелек переписывает указанное вами количество биткойнов с вашего счета на счет другого владельца, добавив эту транзакцию в открытый регистр. Например, ниже приведены записи 3 транзакций, осуществленных в декабре прошлого года.

public-ledger

Как вы можете убедиться, каждой транзакции соответствуют свои вводы и выводы. Вводы обозначают те биткойны, которые вы собираетесь потратить, а выводы переписывают их на нового владельца.

Каждый ввод – это цифровая отсылка к предыдущему выводу от другой транзакции. В отношении выводов действует одно очень простое правило: любой вывод может быть использован в качестве ввода в последующей транзакции, но лишь один раз. Если этот вывод использован в последующей транзакции, его называют потраченным, и дальнейшие операции с ним невозможны. Если вы пытаетесь использовать один и тот же вывод в двух транзакциях (фактически, хотите расплатиться одними и теми же деньгами дважды), Биткойн-сеть отвергнет вторую транзакцию (ведь вывод уже потрачен). Именно поэтому биткойны невозможно подделать.

Каждый непотраченный вывод соответствует определенному количеству биткойнов на чьем-то счету.  Если сложить вместе все непотраченные выводы, зафиксированные в открытом реестре, вы получите общее число существующих биткойнов.  В определенном смысле, можно сказать, что непотраченные выводы – это и есть биткойны в обращении.

unspent-outputsИмейте ввиду, что никакие реальные имена не используются ни в одной транзакции. По этой причине, Биткойн иногда называют анонимной сетью. Вместо реальных имен, в Биткойне используются адреса кошельков, такие как 1PreshX6QrHmsWbSs8pHpz6kLRcj9kdPy6. Биткойн-адрес – это все равно что номер банковского счета, вот только его гораздо проще открыть – любой человек может его себе создать сам в мгновение ока. А кроме того, любой пользователь  может иметь неограниченное количество адресов.

Откуда берутся биткойн-адреса?

Если вы хотите получать биткойны, вам необходим биткойн-адрес. Ваша программа-кошелек может вам в любой момент сгенерировать новый адрес. Он выглядит вот так:

999

Для того, чтобы создать адрес, ваш кошелек сначала генерирует личный ключ (секретный ключ). Личный ключ – это не что иное как многозначное число в интервале от 1 до 2256..Чтобы сократить это число, можно его закодировать, превратив в символьную последовательность.

Затем ваш кошелек преобразует личный ключ в Биткойн-адрес, используя хорошо известную функцию, которую современные  компьютеры реализуют с легкостью. Если бы кто-то узнал ваш личный ключ, он смог бы также с легкостью узнать ваш биткойн-адрес.
Многие биткойн-кошельки обладают функцией, позволяющей импортировать частные ключи.

btc-address-gen-2Вся фишка в том, что данная операция является односторонней. Чрезвычайно легко получить из секретного ключа биткойн-адрес. С другой стороны, чрезвычайно трудно провернуть обратную операцию. Чрезвычайно тут не преувеличение: раньше закончится время жизни Вселенной, чем вы успеете провернуть хоть одну обратную операцию. Если кому-либо известен только ваш биткойн-адрес, технически, вычислить ваш личный биткойн-ключ не представляется возможным.

btc-address-gen-3Именно поэтому совершенно безопасно сообщать ваш биткойн адрес другим, но необычайно важно хранить личный ключ в секрете. Являясь пользователем Биткойна, большую часть времени вы не сталкиваетесь с необходимостью использовать свои биткойн-ключи. Как правило, кошельки хранят записи личных ключей в зашифрованных  файлах в самом кошельке, либо на жестком диске вашего компьютера, либо на сервере в интернете. Вы также можете хранить их в любом другом месте, которое сочтете более безопасным.

Как подтверждаются транзакции?

Здесь мы вернемся к вопросу, почему так важно хранить в тайне личные ключи: ваш личный ключ дает возможность тратить ваши биткойны. Чтобы увидеть, каким образом это происходит, взгляните на вторую транзакцию в листинге, приведенном ранее. Ту самую, которая там обозначена как b6f4ec….

С помощью этой транзакции тратятся биткойны, которые были ранее посланы на адрес 1NqUaJrFeStshjad1bhrEFFzWSQw6JHbqv. Логично было бы предположить, что данную транзакцию может авторизовать только владелец этого самого биткойн-адреса. Как именно он это делает?

Тут на помощь приходит цифровая подпись. В сети Биткойн именно валидная цифровая подпись служит доказательством того, что транзакция подтверждена владельцем биткойн-адреса. Эта мера служит залогом безопасности: как для генерации биткойн-адреса был необходим личный ключ, тот же самый ключ потребуется для генерации валидной цифровой подписи транзакции.

signature-generate

Транзакция признается сетью действительной только в том случае, если в ней присутствуют верный биткойн-адрес, данные предыдущего вывода  и правильная цифровая подпись владельца кошелька. Как вы уже догадались,  каждый раз, когда узел Биткойна получает данные о новой транзакции, сеть проверяет подлинность цифровых подписей. Узел не получает данных о том, какой именно личный ключ использовался для генерации подписи, но эти данные ему ни к чему.   Достаточно удостовериться в том, что подпись правильная.

signature-verify (1)

В основе концепции  цифровых подписей  лежит старая технология: криптография с открытым ключом. Биткойн – это не первая криптовалютная технология, где применяется такой способ шифрования, но именно в Биткойне данный метод впервые стали применять без привязки к единому, центральному серверу. Это, безусловно, прорыв.

Виды кошельков

На настоящий момент уже существует довольно много различных кошельков, но в большинстве случаев назначение этих инструментов приблизительно одинаково:

  • Хранение личных ключей.
  • Осуществление биткойн-транзакций.
  • Генерация биткойн-адресов для получения биткойнов от других пользователей.
  • Доступ к истории транзакций и информации о текущем балансе.

local-walletДесктопный кошелек – это приложение для Windows, MacOSили Linux. В качестве примеров, можно привести ElectrumMultibit или Bitcoin Core. Личные ключи хранятся в локальном файле где-то на жестком диске под названием, например,  wallet.dat, а  безопасность ваших биткойнов напрямую зависит от сохранности этого файла.   Исключением является лишь BitcoinQT, который превращает компьютер в Биткойн-узел, а значит, требует больше дискового пространства и использует ресурсы интернет соединения, чем  и отличается от прочих приложений.

web-walletСуществует другая разновидность кошельков: веб-кошельки, например, Coinbase или кошелек Blockchain.info. Если вы пользуетесь веб-кошельком, ваши личные ключи хранятся, обычно в зашифрованном виде, на серверах вебсайта,  а не на вашем жестком диске. Некоторые веб-кошельки одновременно являются  обменными биткойн-сервисами, например, Bitstamp или Virtex, где вы можете обменять  биткойны на доллары или другие валюты.

mobile-walletМобильный кошелёк – это приложение, которое устанавливается на смартфон или  планшет. Многие мобильные кошельки, по сути, являются интерфейсом веб-кошелька, а это означает, что ваши личные ключи, при использовании подобных приложений, также будут храниться на сервере сайта. Единственное, но важное исключение –  BitcoinWallet для Android, который хранит ключи непосредственно на мобильном устройстве.

qr-posБлагодаря тому, что практически все смартфоны оснащены встроенной камерой, QR коды превратились в распространенный метод биткойн-коммуникации. Вы можете отправить кому-то биткойны, просто отсканировав QR-код адресата с помощью своего мобильного кошелька.  QR-коды можно с лёгкостью генерировать, к тому же, они могут включать в себя дополнительную информацию, например, количество биткойнов, которое адресат ожидает получить.  Это позволяет мобильным кошелькам функционировать в качестве устройств, осуществляющих процесс купли-продажи .

btc-paper-walletСуществует даже такая разновидность как бумажный кошелек.  Бумажный кошелек может послужить только одной цели: хранение личных ключей.

Некоторые из вышеописанных кошельков могут распечатать ваши личные ключи, но вы также можете сгенерировать новый личный ключ и адрес без реально существующего кошелька.  Например, Bitaddress.org предлагает подобный сервис. Когда ваши ключи распечатаны , вы можете запереть их в банковской ячейке и стереть из своего компьютера. Такой способ защиты называют холодным хранением.

Протокол Биткойна совершенно открыт, позволяя применять любые приложения и устройства, совместимые с Биткойном. Фактически, вся экосистема состоит из привлеченных активов. Данная концепция уже вдохновила множество инноваций: существует гораздо больше биткойн-кошельков и устройств для осуществления купли-продажи, чем я здесь упомянул и несомненно появятся новые. Ландшафт мира финансов необратимо меняется.

К сожалению, открытая структура сети создает определенные возможности для мошенников. По этой причине нужно внимательно подойти к выбору кошелька. Следует изучить несколько источников перед тем как прийти к выводу, что провайдер кошелька заслуживает доверия.   В случае, если вы предпочтете веб-кошелек, желательно выбрать доверенный сайт, прежде чем поручить ему хранение ваших биткойнов, как если бы вы выбирали банк, перед тем как сделать вклад. Десктопный кошелек даёт возможность самостоятельно управлять собственным счетом, но  и в этом случае следует удостовериться, что кошелек работает, как заявлено провайдером. Лучше всего выбрать кошелек с открытым кодом, написанный на том же коде и имеющий хорошие отзывы на таких форумах как Bitcoinsubreddit и bitcointalk.org.

В связи с тем, что проблемы защиты биткойнов от хакеров в последнее время приобрели большое значение, многие биткойн-компании пытаются различными способами помочь пользователям защитить свои цифровые монеты. В результате, появились различные варианты гибридных кошельков. Особенно перспективными в этом плане выглядят сейчас подходы с использованием нескольких подписей.

Безопасность превыше всего

Если бы меня спросили, чем защищены биткойны, я бы сказал: «личными  ключами». Конечно, каждая частица сети биткойн подкреплена другими  ее частицами. И если на какой-либо адрес были отправлены биткойны, соответствующий ему личный ключ приобретает большую ценность. Возьмем следующий Биткойн адрес: 1933phfhK3ZgFQNLGSDXvqCn32k2buXY8a. На нём в данный момент находится 111 114 биткойнов. На момент написания статьи эта сумма превышает 70 млн. долларов США. Если бы вы владели личным ключом от этого кошелька, вы могли бы распоряжаться этими 70 млн как своей собственностью.

rich-keyНо у вас его нет. Ни у кого нет этого личного ключа, кроме его владельца, кем бы он ни был. А чтобы подобрать этот ключ, потребуется, как мы знаем, все время жизни Вселенной и еще чуть-чуть.

Однако это не остановит попыток украсть такие ключи. Мошенники рыщут по всему миру в поисках личных ключей, применяя самые разные методы. Уже существует целый ряд вредоносных кодов для хищения биткойн-кошельков.  Как обезопасить ваш кошелек – это важная тема, здесь ее сходу не раскрыть. Скажу лишь, что вы никогда не должны забывать пароль к своему электронному кошельку и периодически проверять компьютер на  наличие вредоносных кодов, чтобы убедиться, что никакое шпионское оборудование и вирусы  не получили доступ к биткойн-кошельку.

Выводы

Итак, … что же мы приобретаем в собственность, покупая биткойны?

Если вы владеете биткойнами, вы обладаете эксклюзивной возможностью добавлять транзакции к публичному реестру. Ваши биткойны существуют в виде неиспользованных выводов от последней в регистре транзакции, зачисленной на биткойн-адрес, сгенерированный вашим кошельком – там они ждут вашей следующей транзакции. Только ваш собственный кошелек  имеет возможность подписать последующие вводы, потому что он хранит ключ, которого больше не знает никто.

Полный публичный регистр хранится  в виде многочисленных копий на тысячах узлов, распределенных по всему миру. С этой точки зрения, Биткойн невозможно запретить или “зарегулировать”.

symbolic-bitcoinНе стоит слепо доверять излишне упрощенным схемам и объяснениям, которые вы наверняка встретите в интернете. Например, в ознакомительном ролике о Биткойне присутствуют кадры, где один пользователь перебрасывает горсть монет другому. В популяризаторских статьях про биткойн часто используют фотографии и изображения реальных монет с логотипом биткойна на них. Но теперь вы, должно быть, понимаете, насколько условны такие иллюстрации.  Они изображают недостоверно, как в действительности биткойны хранятся и пересылаются. Впрочем, кое-какие материальные воплощения биткойна все же существуют, но их функция совпадает с функцией бумажных кошельков.

Список литературы

Теперь, когда вы уже знаете, что такое биткойны, как их хранить и переводить, вы можете перейти к информации для дальнейшего изучения.

Публичный регистр Биткойна называется блокчейном. Поскольку блокчейн – полностью открытый регистр, разработчики придумали сайты-надстройки для интерактивного просмотра контента, например, Blockchain.info или BlockExplorer.

  • Я сознательно не упомянул здесь процесс майнинга и его значение для разрастающегося блокчейна. На настоящий день уже более невыгодно заниматься майнингом, используя ресурсы пользовательского компьютера. Поэтому майнинг – это не тот вопрос, в который сразу следует углубляться новичку. Если вас заинтересовала эта тематика, почитайте, как присоединиться к майнинговому пулу.
  • Khan Academy сделала подборку весьма познавательных видео роликов, дающих полное погружение в детали Биткойна.
  • Существует запись увлекательной  и глубокомысленной беседы с признанным биткойн-экспертом Андреасом Антонопулосом  от 25 сентября 2013 года. Очень рекомендую.
  • Оригинал концепции Сатоши Накамото: с чего все начиналось. Текст будет интересен всем, кто обладает базовыми познаниями в  информатике.
  •  Все существующие криптвалюты, включая лайткойны, пиркойны, неймкойны, доджкойны и прочие, тысячи их, являются клонами и производными базовой реализации биткойн технологии на Github.
  • В статье приведено упрощенное описание биткойн-транзакции. В реальности, в биткойн-транзакциях используются скрипты, которые позволяют выполнять при переводе биткойнов дополнительные вычисления. Это в будущем поможет создать целый ряд дополнительных финансовых инструментов, работающих на основе платформы Биткойн.

Источник: Preshing

Подписывайтесь на новые видео нашего канала!

28 КОММЕНТАРИИ

  1. Подскажите пожалуйста если у меня на сайте стоял старый счёт получения ,а сейчас счёт приема поменялся деньги на кошелёк попадут????????

  2. про три качества долларов(как и всех денег)- не совсем верно. есть ещё другие качества. например то что применительно к долларам-американское государство гарантирует его стоимость. а за биткоин кто возьмётся гарантом?

    • Американское государство гарантирует только выплату по своим облигациям. И только до тех пор, пока у государства на то есть доллары, которые производятся частной (то есть не имеющей отношения к государству США, кроме, возможно, дружеского) конторкой под названием ФРС и частными же коммерческими банками.

      Биткойн значительно лучше чем доллар гарантирует сохранность качества денег. Гарантом является неподкупная математика, а так же заинтересованность участников сети в ее поддержании. И есть еще кое-что.

    • то есть не имеющей отношения к государству США, кроме, возможно, дружеского

  3. не знаю, как текст с точки зрения технологии криптовалюты, но пара “экономических” вопросов – лучше бы автор их не касался.
    1. нет у денег “внутренней стоимости”. у денег – настоящих денег – есть “внутренние” физические, природные свойства – именно не “гуманитарная” стоимость (которая вообще не понятно, что за сущность), а физическое свойство
    2. “распределением” можно заниматься только если что-то сначала отобрать. этим занимается государство и благотворительные фонды, но никак не деньги и не денежные суррогаты

    • поясняю. сегодня на бирже биток идет по $600, завтра по $620, послезавтра по $580
      вы уверены, что это – внетренняя стоимость?

      булки не растут на кустах, хотя это и сельскохозяйственная продукция
      лампочка, если ее воткнуть в розетку, загорится не потому, что “в розетке есть ток”

      если слово “гуманитарный” звучит как ругательство (тому здесь есть примеры), то в этом вина технарей, которые позволяют себе говорить вещи, которые не осознали

  4. 1) “Личный ключ – это не что иное, как многозначное число, в интервале от 1 до 2^256..Чтобы сократить это число, можно его закодировать, превратив в символьную последовательность.” Извините, можно чуть поподробнее? Вот лично мой private key состоит из 52 символов, причём там встречаются самые разные буквы (т.е. это не 16-ричное число). В каком смысле личный ключ – это число, меньшее 2^256?

    2) Мой private key начинается с L. Скажите, доктор, это нормально? Вообще, с чего он должен начинаться?

    3) Когда знающие люди говорят о том, что public key – 20-байтовый адрес, что имеется в виду? Длина моего public key – 34; private key – 52.

    4) Давайте научимся вычислять вероятность “попадания в выбранный public key” точно. Сейчас будет наивное вычисление, пожалуйста, указывайте на ошибки. Итак, длина public key без учёта первого символа(1) – 33. Каждый из последующих символов случаен; вероятность того, что какой-то из символов будет, скажем, W (k, 7, Q), равна 1/58 (24 прописные буквы латинского алфавита+24 строчные+10 цифр). Таким образом, вероятность сгенерировать public key автора этой платформы в точности равна (1/58)^33. Где я ошибся? (Насколько мало это число, я понимаю, спасибо.)

    • В биткойне, для записи ключей используется не 16-ричная, а 59-ричная запись для компактности. Вернее, специальная кодировка 59Check, cодержащая чексумму, подробнее о ней вот здесь: https://en.bitcoin.it/wiki/Base58Check_encoding

      Именно поэтому, ваш личный ключ и биткойн-адрес содержат буквы и цифры, хотя по сути они представляют просто длинное число. По традиции, секретные биткойн-ключи префиксируются числом 5: https://en.bitcoin.it/wiki/Private_key

      Насчет “подбора публичного ключа” – а что, собственно, дает вам этот самый “подбор” – ведь публичные ключи и так известны. Задача взломщика состоит в подборе секретного ключа, соответствующего данному публичному, а это (1/59)^52 – то есть ничтожно малая вероятность, решать это перебором придется за время, сравнимое со временем жизни вселенной.

      • Здравствуйте. Подскажите пожалуйста как встроить QR код (открытый ключ бумажного кошелька) в блокчейн для того, чтобы видеть количество купленных ВТС. Скажите, надежный ли бумажный кошелек распечатанный на http://www.offlinefddres.com

        • Если имеется в виду blockchain.info, то там есть такая функция “Импортировать бумажный кошелек”, по-моему даже со считывателем QR кода.

          Насчет конкретного сайта, не могу ничего сказать, но общее правило – свои секретные ключи никому нельзя доверять, тем более онлайн-ресурсам непонятного происхождения. Хотите сделать действительно безопасный бумажный кошелек – пользуйтесь оффлайновыми средствами типа Piper: http://cryptographi.com/

        • Вчера по подписке (http://bitzuma.com/) получил Практическое руководство по Bitcoin. Очень подробно и понятно описаны аспекты работы с ВТС. Я думаю на вашем сайте это многим поможет

    • pub key – это 32-байтный hex в base58Check.
      priv key – это 65-байтное представление точки на эллиптической кривой Сатоси Накамото
      (байт идентификатора, координата x и координата y).
      compressed private key – это одна байт четности и одна 32-байтная координата, из которой можно восстановить вторую.
      bitcoin адрес – это байт сети + ripemd160 от sha256 открытого ключа, в base58Check.

      Выводы:
      1. Ваш public key is compressed.
      2. Т. к. private key начинается с L – он тоже compressed.
      3. Ваш private key не может иметь длину 52 символа.
      4. Но если это так – значит вы используете passphase, и секретной экспонентой для его генерации является sha256-хеш от неё.
      5. При этом самим ключом является этот хеш + байт 01 в конце, и всё это в Base58Check.

  5. В ближайшие несколько лет наши дети будут слушать подобные лекции на уроках информатики в начальных классах школы. 😉 Спасибо.

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here