Bitcoin транзакции проводятся между т.н. Bitcoin кошельками, которые в целях безопасности имеют цифровую подпись. Каждая транзакция в сети публична, т.е. каждый участник может не только просмотреть данные о ее отправителе и адресате, но и отследить по ней всю историю транзакций, которые предшествовали ее, вплоть до начальной точки возникновения первых криптомонет.
Некоторые предпочитают просто держать Bitcoin, надеясь на рост их стоимости в будущем, однако весь смысл криптовалют в том, чтобы ими пользоваться, т.е. тратить. Так, каким же образом осуществляются транзакции, когда вы тратите свои биткойны? Давайте в деталях разберем это.
Bitcoin как таковых нет, есть только записи о bitcoin-транзакциях
Во-первых, биткойнов, как таковых, не существует. Забавно, но это факт. Их нет даже на жестком диске. Мы говорим, что у кого-то есть биткойны, но если взглянуть на конкретный биткойн-адрес, на нем не будут храниться цифровые монеты в том виде, как хранятся, например, доллары, фунты или рубли на банковских счетах. Вы не сможете указать на какой-то физический объект или даже электронный файл и сказать «это биткойн».
Вместо этого, существуют только записи о транзакциях между различными адресами, баланс на которых, то растет, то падает. Каждая транзакция, когда-либо имевшая место, сохраняется в огромной книге учета под названием цепочка блоков (blockchain). Например, если вы хотите узнать баланс на каком-либо из биткойн-адресов, то просмотрев этот адрес вы ничего в нем не увидите. Баланс придется вычислить, просмотрев все транзакции, которые относятся к данному адресу и хранятся в цепочке блоков.
Так как что же представляют из себя bitcoin транзакции?
Давайте смотреть. Пусть Маша отправит Васе несколько биткойнов. Это действие и есть транзакция, которая будет содержать в себе три типа данных:
- Вход (Input) – запись о том, с какого адреса биткойны пришли Маше (допустим, она получила их от подруги Оли);
- Сумма (Amount) – количество биткойнов, которые Маша пересылает Васе;
- Выход (Output) – биткойн-адрес Васи.
Как происходит пересылка Bitcoin?
Чтобы переслать биткойны кому-либо, нужно две вещи: биткойн-адрес и закрытый ключ. Не стоит проводить аналогии между биткойн-адресом и счетом в банке – между ними мало общего.
В частности, для открытия биткойн-адреса нет необходимости заполнять груду бумаг и предоставлять какие-либо идентифицирующие вас документы. Фактически они создаются произвольно и представляют собой случайную последовательность букв и цифр. Закрытый ключ – это тоже последовательность из букв и цифр, но в отличие от вашего биткойн-адреса, он хранится в секрете.
Свой биткойн-адрес можно представить как прозрачную депозитную ячейку. Любой желающий может в нее заглянуть, посмотреть, что внутри, но открыть и забрать содержимое сможет только тот, у кого есть закрытый ключ.
Возвращаемся к Маше и Васе. Когда Маша хочет переслать несколько цифровых монет Васе, то с помощью закрытого ключа она подписывает “заявку” на перевод, в которую включаются, как указывалось выше, три типа данных: адрес, с которого биткойны поступили к Маше, количество и адрес друга-получателя. Затем она со своего биткойн-кошелька отправляет эту “заявку” сеть Биткойн. Там майнеры, находят, а затем подтверждают новую транзакцию в сети путем ее добавления в блок транзакций, что в конечном итоге приводит к увеличению баланса биткойн-адреса Васи.
Почему иногда подтверждение bitcoin транзакции затягивается во времени?
Ответ прост. Транзакции подтверждают майнеры, которые при этом заняты добычей новых монет. Иногда приходиться ждать, пока они закончат майнинг. Алгоритмом, заложенным в Биткойн, предусмотрено, что для майнинга каждого блока нужно примерно десять минут. Некоторые продавцы товаров или услуг могут заставить вас ждать подтверждения этого блока. Это означает, что вы успеете приготовить себе чашечку кофе и вернуться через несколько минут, прежде чем сможете скачать какой-то электронный товар или воспользоваться какой-то услугой, которую вы только что оплатили.
На самом деле далеко не все требуют подтверждения транзакции. Многие, изначально веря в вашу порядочность и отсутствие помыслов потратить одни и те же биткойны дважды, так не делают. Таким образом, они фактически берут этот риск на себя ради того, чтобы вы, нажав кнопку “оплатить”, могли бы сразу же приобрести желаемый товар или услугу. Обычно на подобный шаг продавцы идут тогда, когда речь идет о совсем небольших суммах.
Почему сумма на входе и выходе транзакции может быть разная?
Еще раз напомним, что биткойны существуют только в виде записей о транзакциях, которые совершались между адресами. В итоге в большой книге учета (цепочке блоков) с каждым конкретным адресом может соотносится множество различных транзакций.
Рассмотрим такую ситуацию. У нас есть Маша, которая, как мы писали выше отправляла биткойны Васе. Теперь представьте, что у Маши день рождения и ее друзья решили отправить ей в качестве подарка цифровые монеты. Итак, Света отправила подруге два биткойна, Дима – три и Юля – еще один, причем каждый со своего биткойн-адреса, ну и, естественно, в разное время дня. Так вот баланс биткойн-адреса Маши теперь увеличился на 6 биткойнов, однако это не означает, что транзакции от ее друзей были объединены в одну.
Они так и будут привязаны к адресу Маши как отдельные, каждая от другого адреса, транзакции.
Теперь, если Маша захочет снова отправить Васе пару биткойнов, например 4, то ее кошелек будет пытаться использовать записи транзакций с различными суммами, которые сложатся в нужное количество биткойнов, которые она шлет Васе. То есть, в соответствии с нашим примером с днем рождения Маши, на Васю могут быть подвязаны транзакции от Димы (три биткойна) и Юли (один биткойн).
Впрочем, есть вероятность, что Маша может захотеть отправить Васе такое количество биткойнов, которое нельзя будет получить от суммы других транзакций. В нашем примере такой вариант возможен, если Маша решит переслать другу 1,5 биткойна. Ее биткойн-адрес не содержит транзакций именно на эту сумму, и никакие из имеющихся не дадут это количество при сложении. Маша не может разбить транзакцию на меньшие суммы, использовать транзакции можно только целиком.
Алгоритм Биткойн сработает следующим образом. Васе придет от Маши транзакция на большую сумму, например, та, которую отсылала Маше на день рождения Света – 2 биткойна. Полбиткойна же вернутся Маше в качестве сдачи. В частности, входными данными для транзакции от Маши к Васе будут данные о транзакции от Светы к Маше. Биткойн-адрес Васи – выходные данные. Отправляя транзакцию в обработку Машин кошелек создаст новый биткойн-адрес, принадлежащий Маше, который в свою очередь создаст свою транзакцию на 0,5 биткойна только от Васи к Маше. Таким образом, получится, что транзакция на 2 биткойна от Светы к Маше перейдет к Васе, а от Васи к Маше перейдет транзакция на 0,5 биткойнов, что означает, что Маша отправила Васе 1,5 биткойна.
Нужно ли платить комиссию за bitcoin транзакции?
Иногда, но не всегда. Комиссия рассчитывается, учитывая разные факторы. Некоторые кошельки позволяют вам вручную выставлять размер вознаграждения. Любая часть транзакции, которую не берет себе получатель, или которая возвращается как сдача, считается вознаграждением. Она отходит майнеру, которому повезло решить блок транзакции в качестве дополнительной награды.
Ранее одним из запутанных фактов о комиссиях за транзакции было то, что их расчет был сложным и замысловатым. Он представлял собой результат нескольких обновлений протокола и развивался соответственно. Обновления ядра программного обеспечения, управляющего транзакциями в биткойнах, изменят способ обработки комиссий в сторону автоматического выбора минимального размера вознаграждения.
Можно ли получить чек или другой документ, подтверждающий перевод Bitcoin?
Биткойн не подразумевает чеков или квитанций. Хотя ожидающиеся обновления изменят способ работы с платежами, что сделает их более продуманными и удобными для пользователя.
Такие процессинговые компании как BitPay также предоставляют дополнительные возможности, которые обычно не предусмотрены при стандартных биткойн-транзакциях, например выписки и страницы подтверждения заказов.