С практической точки зрения хранение и передача Биткоинов сводится к управлению ключами, поэтому для успешного использования данной криптовалюты необходимо придерживаться трех правил. Необходимо, чтобы ключ всегда оставался доступным, поскольку это обязательное условие для использования Биткоинов. Во-вторых, необходимо обеспечить безопасность приватных ключей, чтобы исключить любую возможность доступа к ним третьих лиц, в том числе и злоумышленников. Третьим условием является обеспечение удобство управления ключам, поскольку без него невозможно использование Биткоинов на постоянной основе.
Разные подходы к управлению ключами предполагают различные варианты, а точнее компромиссы между тремя вышеперечисленными правилами. Наиболее простым вариантом является хранение ключей в отдельном файле на персональном устройстве - компьютере или мобильном телефоне. Данный подход имеет преимущество, а именно в простоте совершения транзакций: например, с помощью приложения на телефоне возможно совершать транзакции всего с помощью пары нажатий кнопок. Но при потере телефона можно потерять доступ ко всем своим сбережениям, которые там хранились, поэтому, как правило, некоторую часть денежных средств держат в кошельке на телефоне или на компьютере, а другую часть хранят в более надежных местах хранения, например, в виде записанного ключа на листе бумаги или на невзламываемом записывающем устройстве.
Для получения или траты Биткоинов необходимо найти способ обмена адресами с контрагентом. Для этого существуют два основных способа шифрования адресов, передаются от получателя к лицу, которое намеревается потратить денежные средства: первый - это передача текстовой строки с помощью метода шифрования base58, второй- QR-кода [29].
Для шифрования адреса в строку используются части ключа и переводятся из двоичного кода по основанию 58, а затем используется метод шифрования base58. Данный способ шифрования получил свое название, потому что при шифровке используются практически все буквы и цифры обоих регистров, за исключением тех, которые возможно спутать с другими или банально не знать. К примеру, заглавную букву "О" весьма часто путают с "0"(нулем) и поэтому ни первый, ни второй символ нельзя встретить в Биткоин-адресах. Это обстоятельство позволяет считывать адреса с телефона или распечатки, а также вводить их вручную, если для этого появилась необходимость. Первым адресом, получившим вознаграждение за блок в первом блоке, зашифрованный по протоколу base58: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa.
Вторым методом является QR-код, который собой представляет двухмерный штрих-код. Его преимущество состоит в том, что данный код возможно сфотографировать на телефон, а программное обеспечение телефона автоматически расшифрует его и переведет в последовательность битов, соответствующую зашифрованному адресу. Данный способ особенно удобен для ежедневных покупок - на кассе выдается изображение, его необходимо просканировать и отправить на адрес зашифрованные в данном QR-коде денежные средства для совершения покупки.
На современном этапе развития товарно-денежных отношений продавцам не выгодно ограничивать использование каких-либо средств платежа, поскольку это ограничивает покупки в их магазинах, и поэтому продавцы стали все более и более активно добавлять функцию оплаты товаров или услуг Биткоинами. Для удобства приема данных валют существуют специализированные сервисы для мерчантов, с помощью которых возможно добавлять на сайт возможность оплаты Биткоинами и другими криптовалютами [30].
Для продавцов получение Биткоинов с помощью платежной системы выглядит примерно таким образом:
. Потребитель выбирает какой-либо товар или услуги, и, когда приходит время платить, сайт продавца перенаправляет пользователя на страницу кнопкой оплаты Биткоинами - html сниппет от сервиса, занимающегося такими транзакциями. На странице указан ID (идентификатор) транзакции, который позволяет продавцу найти нужную запись в своей системе учета, а также сумму к оплате.
. В случае если пользователь захочет расплатиться Биткоинами, он нажимает на кнопку. Данным действием он посылает httts - запрос сервису о том, что он нажал данную кнопку и отправляет информацию о продавце, id его транзакции и суммы к оплате.
. С этого момента сервис определил, что покупатель хочет оплатить что-либо с помощью Биткоинов и перенаправляет его в новое окно или же напрямую взаимодействует с покупателем. Покупатель получает инструкцию о том, как заплатить, и создает для этого необходимую Биткоин транзакцию, в которой указывает получателем денежных средств сервис, занимающийся приемом платежей в битоинах.
. После начала транзакции сервис перенаправляет покупателя на сайт продавца, передав последнему информацию о начале транзакции. Данное обстоятельство означает то, что сервис проследил, что пользователь отправил определенную сумму на Биткоин-кошелек, но она еще не прошла процедуру подтверждения.
. В заключение, сервис передает продавцу информацию о том, что транзакция успешно проведена, и продавец отправляет товар или оказывает услугу покупателю.
Стоит отметить, что сервис только на заключительном этапе отправляет продавцу деньги, уже конвертированные в доллары или другую валюту на его депозитный счет в банке. Это происходит в конце фиксированных расчетных периодов, то есть не каждый раз после покупки, а один раз в день. Данные сервисы функционируют за счет комиссии, снимаемой при проведении такого рода транзакций - таким образом формируется прибыль данных предприятий.
Особенно важно отметить то, что покупатель платит Биткоинами, а продавец получает деньги за оказанные услуги или проданный товар в местной валюте или долларах, за исключением комиссии получаемой сервисом. Последний берет на себя все риски, связанные с безопасностью и обменным курсом. У данных компаний должна быть хорошо налаженная система безопасности, поскольку при потере или краже Биткоинов, компания ответственна не только перед продавцом, но и перед покупателем.
Также велико количество рисков, связанных с колебанием курса Биткоина к доллару и другим валютам, поскольку сервис перечисляет продавцу деньги именно в них, соответственно, от колебания данного соотношения зависит прибыль данного сервиса. Отметим, что такие сервисы работают с множеством компаний, соответственно, оборот долларов и Биткоинов у них весьма велик. Данные сервисы всегда испытывают необходимость в обмене больших сумм в Биткоинах, а от этого появляется необходимость не только в отслеживании курсов валют, но и в сбыте Биткоинов на рынке.
Изначально, при создании системы Биткоин, комиссия транзакции за совершаемые переводы не взымалась, но, когда платеж вводится в блокчейн он, обычно, включает в себя комиссию. Комиссия в данной системе представляет собой разность общей суммы Биткоинов на момент входа и выхода из системы. При входе денежная сумма обязательно должна быть не меньше чем на выходе из системы, поскольку транзакция не генерирует создание новых Биткоинов, однако в случае, когда на входе сумма больше, это означает, что данная разница уходит на оплату комиссии, то есть оплата работы майнера, который открыл блок с данной транзакцией [31].
Причина существования комиссий кроется в том, что проведение транзакций по своей природе не бесплатно. Узы обязаны транслировать вашу транзакцию, а в последующем майнер должен встроить ее в блок, что стоит определенных денег. К примеру, если блок, который разрабатывает майнер немного больше, так как он содержит данные о вашей транзакции, он будет проходить дольше по времени, соответственно, если примерно в то же самое время другой майнер найдет еще один блок, то вероятность тоже слегка вырастает. Именно поэтому данные операции не являются бесплатными - как для майнеров, так и для сети. Смысл взимания комиссий за проведение транзакций достаточно прост: компенсация затрат майнеров на обработку вашего перевода.
Стоит отметить закономерность, согласно которой, чем больше комиссия, взимаемая с вас за перевод ваших денежных средств, тем быстрее и надежнее проходит ваша транзакция. В настоящее время большинство майнеров не взимают с отправителя комиссию за транзакцию, если она соответствует 3 нижеперечисленным условиям:
. Размер транзакции менее 1000 байт
. Достаточно высокий приоритет транзакции
. Все выходы более 0,01 BTC
Приоритет транзакции определяется формулой: (сумма возраста входа*цену входа)/(размер транзакции), иначе говоря, необходимо рассчитать произведение возраста транзакции на момент входа и цены в Биткоинах, а затем ее сложить. Чем дольше простаивает выход, тем быстрее он получает приоритетный статус, соответственно, система быстрее ее проведет. Если соблюдены все условия, изложенные выше, ваша транзакция будет проведена без комиссии.
В других случаях комиссия взимается и составляет в среднем 0,0001 BTC за 1000 байт, что эквивалентно сумме
менее одного американского цента. Транзакция весит примерно 148 байт за вход,
потом прибавляются 34 байта за каждый выход и примерно 10 байтов на
дополнительные данные, таким образом, суммарно транзакция будет иметь вес
примерно 400 байт. В настоящее время, большинство майнеров поддерживают данную
систему комиссий, но есть и такие, которые заносят в блок транзакции, которые
принесут им меньше прибыли, нежели обычные операции, а в некоторых случаях
будут проведены вообще бесплатно. При совершении транзакции, не отвечающей
требованиям, за которую берут комиссию, данная транзакция все равно будет
включена в блок, но проведена гораздо медленнее, нежели транзакция, которая
облагается комиссией, и поэтому большинство электронных кошельков Биткоин
включают в сумму транзакции комиссию за ускоренное проведение операции [20].
Общая сумма комиссий за транзакции показана на рисунке 2.5.
Рисунок 2.2. Общая сумма комиссий за транзакции, BTC
Как отмечалось ранее, система Биткоин является децентрализованной денежной системой, над которой никто не имеет полного контроля. Однако внутри нее существует некоторая иерархия пользователей далеко не с равными правами, которые, в свою очередь, задают вектор развития всей системы в целом. Можно выделить пять групп таких пользователей:
. Разработчики ядра системы - они пишут и исправляют код системы и вводят правила пользования ею.
. Майнеры - они создают историю и решают, какие транзакции действительны, а какие нет. Отметим, если все майнеры будут следовать одному определенному своду правил, то все пользователи системы будут обязаны им подчинится.
. Инвесторы - основные покупатели Биткоинов, которые своими вложениями обеспечивают ценность данной валюты. Можно сказать, что именно они контролируют консенсус ценности, о котором было сказано ранее.
. Продавцы и покупатели - именно они формируют первичный спрос на Биткоины. Инвесторы поддерживают ценность данной валюты, а продавцы и покупатели управляют данной ценностью. Из желания продавцов и покупателей осуществить транзакции формируется первичный спрос, который инвесторы пытаются предугадать.
. Платежные операторы - именно данные пользователи проводят транзакции. Для большинства продавцов не имеет большой разницы то, как они пользуются валютой, им важно лишь то, чтобы платежный сервис в конце рабочего дня выплачивал им доллары. Данные сервисы берут на себя все сопутствующие риски, и с этой точки зрения можно заключить, что они тоже, от части, формируют первичный спрос.
Рассматривая всех пользователей, можно понять, что часть власти над системой есть у каждой группы. Так, чтобы вся система продолжала развитие, ей необходимо, чтобы каждая из форм консенсуса была соблюдена: были соблюдены правила, написанные разработчиками системы, майнинговая мощность для проведения транзакций, инвестиции в систему, участие продавцов и покупателей для поднятия оборота и работа платежных систем, которые в некотором роде популяризируют данную валюту и позволяют миллионам людей использовать ее в повседневной жизни. Все стороны имеют некоторую власть над данной системой, но среди них нет никого, кто бы смог взять всю систему под контроль, что доказывает ее независимость и в некотором роде автономность [32, c.33].
Так как любая система интернет платежей подвержена рискам со стороны злоумышленников, в системе Биткоин изначально запрограммированы алгоритмы, защищающие блокчейн от несанкционированных манипуляций. Перед тем как добавить проверенный блок в блокчейн, майнеры выполняют специальную криптографическую функцию, выдающую так называемый "хэш". Хэш - это уникальная последовательность букв и цифр заданной длинны, которая определяет данные любого объема (слова уравнение, числа, финансовые транзакции и т.д.). Вычислить хэш для изначальных данных достаточно простая операция, но получить по данному хэшу исходные данные невозможно.
Еще одно важнейшее свойство хешей состоит в том, что малейшее изменение исходных данных (даже одного символа) приводит к получению абсолютно нового хэша, а блочейн работает по такому принципу, что каждый блок хешируется вместе с данными предыдущего хэша, поэтому подмена в данном случае практически невозможна.
Для примера возьмем первый блок в блокчейне, созданный Сатоши Сакамото. При создании данного "генезис блока" Сатоши хешировал его и сохранил итоговый хеш в блокчейне вместе с самим первым блоком. Процесс хеширования последующего блока был выполнен вместе с хешем первого блока, а итоговый хеш был сохранен со вторым блоком. Далее хеш второго блока был сохранен с хешем третьего блока и так далее [33]. Так как хеш каждого нового блока сохраняется с хешем предыдущего блока, он отражает актуальное состояние всей системы блокчейн и играет роль контрольной пломбы. Так, при попытке поменять какой-либо из предыдущих блоков, его хеш станет неправильным, и данная манипуляция сразу будет распознана и не проведена. С помощью хешей майнеры проверяют подлинность предыдущих блоков для проведения только валидных операций.
Однако у данной системы есть и свои слабые стороны. На сегодняшний день, в системе Биткоин не было найдено уязвимостей, позволяющих проводить мошеннические манипуляции с ней. Несмотря на это, были созданы некоторые алгоритмы, которыми пользуются майнеры обладающие хорошей вычислительно мощностью и которые способны скомпрометировать сеть, не полностью контролируя ее.
При создании системы майнинг Биткоинов был уделом энтузиастов, сейчас же процесс контролируется большими "пулами", с которыми майнеры делятся своими ресурсами. Сеть напрямую зависит от владельцев-операторов крупных вычислительных мощностей, большинство из которых находятся в Китае и Монголии, где невысока цена за электричество.
В связи с этим вызывает беспокойство влияние майнинга на окружающую среду. Данный процесс требует весьма дорогих и энергозатратных вычислений (proof-to-work). Из этого вытекает проведение гигантских по объему вычислений, большинство из которых являются бесполезными. По данным blockchain.info майнеры производят в среднем по 450 тысяч триллионов вычислений для включения блока в блокчейн, а для этого необходимо потратить энергию. Так, при условии использования максимально энергоэффективного оборудования расход энергии, необходимый для совершения данных операций, составлял бы около двух террават-часов, что эквивалентно потреблению среднего города в Калифорнии. Отметим, что каждый день совершается все больше и больше транзакций, соответственно, растет потребление энергии, что никак не улучшает экологическую ситуацию [34].
Даже не смотря на такое колоссальное количество операций, возможности системы Биткоин ограничены. Так, при создании системы было ограничен максимальный размер блока - он может в себя включать около 1400 транзакций, что примерно равно одному мегабайту памяти. Система может обрабатывать до 7 транзакций в секунду, тогда как платежный оператор Visa может обработать за тоже время 1736 транзакций одновременно (только в США). Существует возможность увеличения блока, однако она влечет за собой соразмерное увеличение времени для его распространения в сети, что повышает риски разрыва цепи.