Биткоин. Транзакции и UTXO

Биткойн. Транзакции и UTXO Биткойн

Введение

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

Что такое биткойн-транзакции

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

Давайте разберем на простом примере. Вы оплачиваете мороженое. К примеру, оно стоит 1 единицу (не будем привязаны к какой-то конкретной валюте). Для этого вы достаете из кошелька, например, купюру в 5 единиц и даете продавцу. Он, в свою очередь, дает вам сдачу 4 единиц.

Так вот, ВСЕ действия, которые сделали, и вы и продавец – это ОДНА транзакция. В случае отмены транзакции (вы передумали покупать), вы не можете просто отменить передачу денег от вас к продавцу. Вы должны также отменить и вашу сдачу. Получается то, что вы дали деньги и то, что вам дали сдачу – это одна транзакция и, в случае отмены, должны быть отменены оба действия.

Аналогично происходит и в блокчейне Биткойна. Вы или вам перечисляются некоторая часть биткойна (а может, и целый!). И блокчейн возвращает сдачу.

Подождите, с этого места поподробнее. Какую сдачу?!

Как устроены биткойн-транзакции

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

В блокчейне биткойна хранятся не сами биткойны, а ВСЕ транзакции, которые были сделаны. Да! Именно ВСЕ! С самой первой транзакции, которая была произведена 12 января 2009 года.

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

Эта разница называется UTXO – Unspent transaction output, то есть, грубо говоря, не потраченные транзакции.

Итак, как работают транзакции биткоин? Когда вы собираетесь сделать биткойн транзакцию, ваш кошелек в первую очередь, проверяет ваш UTXO. Сколько именно вы можете потратить. Причем, как и в обычном кошельке, считаются ваши входящие транзакции. Для понимания, ваши входящие транзакции выступают в виде своего рода купюр в вашем кошельке.

Если у вас в кошельке две «входящие» транзакции – одна на 10 единиц, а вторая на 5 единиц. Ну, например, это ваша зарплата за сутки. Сколько вы можете потратить? Ну 15, конечно. Хорошо, а как вы можете их потратить?

Если вы хотите купить, то же мороженое, стоимостью 1 единицу, что вы делаете? Вы выбираете купюру поменьше (не обязательно), даете продавцу 5 единиц и получаете сдачу 4 единицы.

Вернемся к биткойну. Например, вам перевели 2 транзакции – одну на 0.003 биткойна, а вторую на 0.002 биткойна. И вы хотите перевести 0.004 биткойна магазину за какой-то товар. Что делает блокчейн? Он выбирает одну из транзакций. Но, в этом случае ни одной транзакции не хватает. Тогда он берет обе транзакции, то есть 0.003 и 0.002, получается 0.005 биткойнов, и отнимает сумму исходящей транзакции, то есть 0.004 биткойна. И возвращает вам еще одну входящую транзакцию на 0.001 биткойна в качестве сдачи.

Но! Важный момент. Никто не сможет сказать, с какой именно транзакции была возвращена сдача. Или с 0.003 или с 0.002 биткойна.

Мы не храним никаких Биткоинов

Подтверждение сети

Хорошо. Суммы определили. А что же происходит дальше? А дальше эта транзакция «пушится» в сеть блокчейна. От слова PUSH – толкать. Это пока не подтвержденная транзакция. Такие транзакции должны быть проверены на безопасность. Это называется подтверждение транзакции биткоин.

Этим занимаются специальные компьютеры в сети, которые называются нодами. От слова NODE – узел. Вернее сказать, Master Node. Они проверяют, верифицируют транзакции на безопасность. Проще говоря, тестируют, не представляет ли транзакция угрозу сети блокчейна. Не вирусная ли она.

Можно сказать, нода – это сервер обработки биткоин транзакций.

Далее, уже проверенную транзакцию соединяют с другими, тоже уже проверенными транзакциями в один блок. Отсюда, кстати, и название – блокчейн, то есть БЛОК и ЧЕЙН от слова CHAIN – цепочка.

Сколько транзакций в одном блоке биткоина? В каждом блоке свое количество. Почему? Потому что, размер блока определяется не количеством транзакции, а строго ограничен. В 2009 году размер блока был 36 Мб, в 2010 году это значение было ограничено одним мегабайтом, а в 2017 году сообщество решило увеличить размер блока до 2 Мб. Такой размер блока определен и по сей день, на момент написания статьи.

И то, сколько поместиться в блок транзакции зависит от объема самой транзакции и количества запушенных транзакций в сеть. Это может быть и 200, и 500 транзакций.

Получается, теоретически, учитывая комиссию, максимальная транзакция биткоина может составлять 750 000 байт. Обратили внимание? Не количество биткойнов, а размер в байтах. Вы спросите, почему не 2 Мб? Потому что, блок, помимо транзакций, имеет свою структуру, в которой содержится иная информация.

Blockchain
Структура блоков

Сколько транзакций в секунду у биткоина? На сегодняшний день блокчейн обрабатывает всего 7 биткойн транзакции в секунду. Для сравнения, система MasterCard обрабатывает около 5 000 транзакций в секунду. Это одна из глобальных проблем блокчейн биткойна, которую пытаются решить биткойн-сообщество.

Сформированный блок необходимо «решить». То есть, решить некоторое криптографическое уравнение, чтобы блок, а значит и все транзакции внутри него, стали «валидными», от слова valid – действительные. Этим занимаются майнеры. От слова miner — шахтёр. Кто из них первый решит блок, обычно пишут «найдёт» блок, тот и получает часть комиссии за все транзакции в этом блоке плюс некоторую награду сети.

Эта награда и есть «рождение» нового биткойна.

Скорость транзакций биткойна

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

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

Возникает логичный вопрос, можно ли увеличить скорость транзакции? Да, можно! Мы уже говорили, что майнер получает часть комиссии от транзакций.

Поэтому, майнеры стараются в первую очередь выбирать блоки с самыми высокими комиссиями.

Из этого мы делаем простой вывод – чтобы увеличить время обработки транзакции, необходимо увеличить комиссию!

Где и как можно проверить транзакцию биткойна

На самом деле, существуют множество сервисов для проверки транзакции биткоин, которые называются Blockchain Explorer. Чем-то похоже на Internet Explorer, если сделать вольный перевод, обзор транзакий биткойн. Ну или блокчейн-обозреватель. Своего рода карта транзакций биткоин. Наверное, самый известный из них, это Blockchain.com

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

Давайте посмотрим, какая информация содержится в результате проверки транзакции биткоина. Вы видите, что там можно увидеть, как сами транзакции, так и блоки, в которые транзакции объединены.

Кроме того, напротив каждого блока содержится информация, каким майнером он был решен. А где посмотреть транзакции биткоин? Для этого надо зайти внутрь блока, то есть нажать на него. Вы увидите сколько транзакций было в блоке, а также структуру этих транзакций.

И вот тут хорошо видно, что транзакции состоят из входящих транзакций и исходящих. Причем, количество входящих совсем не обязательно равно количеству исходящих.

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

А как же проверить одну проверить транзакцию биткоин блокчейн? Для этого надо нажать на саму транзакцию. Также можно осуществить поиск транзакции биткоин, введя идентификатор транзакции биткоин в соответствующее поле.

Давайте посмотрим пример биткоин транзакции.

Входы транзакции биткойн
Входы транзакции биткойн

Можно увидеть, с каких адресов были осуществлены «входы», то есть входящие транзакции и их размер. Также, видны и исходящие транзакции, то есть «выходы». Это и есть те адреса, на которые были отправлены средства.

Выходы биткойн транзакции
Выходы биткойн транзакции

Так вот, возможно, какая-то входящая транзакция является «сдачей». Некоторые blockchain explorer прямо объявляют некоторую транзакцию сдачей. Однако, на 100% никто не может знать, что именно эта транзакция была сдачей. Это лишь предположение сервиса.

Вы не забыли, что блокчейн биткойна содержит ВСЕ транзакции? С помощью blockchain explorer вы можете посмотреть всю историю транзакций биткойн.

Можно ли отменить транзакцию

Увы, нет. В этом прелесть блокчейна и в этом его же недостаток.

Транзакцию вы отменить не можете.

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

Для этого попробуйте провести следующие действия:

  • проверьте статус транзакции в Blcokchain Explorer
  • в своем кошельке откройте отладочную консоль
  • получите приватный ключ от адреса отправки: dumpprivkey <адрес отправки>
  • экспортируйте эти закрытые ключи
  • закройте кошелек
  • переименуйте и временно переместите файл wallet.dat
  • теперь перезапустите вашу ноду, будет создан новый публичный адрес
  • импортируйте ваши приватные ключи с помощью команды importprivkey
  • если вы все сделали правильно, неподтвержденных транзакций не будет

Что делать, если транзакция зависла

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

Блокчейн возвращает сдачу!

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

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

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

Но, можно ли ускорить транзакцию биткоин? Да. Для этого необходимо использовать специальные сервисы – ускорители транзакций. Например, ViaBTC. Это – майнинг пул, который может приоритетно взять вашу транзакцию в обработку. Причем, есть возможность сделать это и бесплатно. Однако, лимит бесплатных ускорений постоянно меняется.

Комиссия за транзакцию

А какова стоимость транзакции биткоин? Наверное, вы думаете, что комиссия за транзакцию биткоин напрямую зависит от переводимой суммы? А вот и нет! Давайте представим ситуацию.

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

Примерно, такая же ситуация с биткойн-транзакциями.

Комиссия берется не за сумму, которую вы хотите перевести, а за ОБЪЕМ транзакции, которую вы хотите осуществить.

От чего же зависит объем транзакции? Правильно, от количества «купюр», которые входят в состав транзакции. А мы уже знаем, что эти купюры – это входящие и исходящие транзакции. Чем их больше, тем объем транзакции будет больше.

Получается, что самые большие транзакции биткоин – это транзакции с большим количеством входов и выходов. Это наглядно видно на картинке.

Структура транзакций
Структура транзакций

Но! Хорошая новость! Вы самостоятельно назначаете комиссию.

Правда, есть несколько правил. Наверное, главное из них – комиссия не должна быть ниже, чем 0.0001 биткойна на 1 килобайт объема транзакции.

Еще одна хорошая новость! Вы можете не заморачиваться с подсчетом килобайтов и калькуляции комиссии. Есть усредненные данные по сети.

Вот рекомендуемы комиссии на сегодняшний день, в зависимости от необходимой скорости подтверждения транзакции:

  • Медленный приоритет, вероятность 10% – 0.0003438 BTC
  • Стандартный приоритет, вероятность 50% — 0.000405 BTC
  • Средний приоритет, вероятность 55% — 0.00108 BTC
  • Быстрый приоритет, вероятность 90% — 0.0018 BTC

Тут вероятность означает примерный процент подтверждения транзакции в интервал времени от 0 до 25 минут. Например, в случае Быстрого приоритета, вероятность подтверждения транзакции в первые 20 минут, составляет 90%.

Стоит ли пользоваться биткойн-транзакциями

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

Мы не задаем комиссию!

Потому что, напомним, нет никакого баланса биткойна! И никто никакие биткойны нигде не хранит! Есть лишь разница между входящими и исходящими транзакциями.

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

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

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

Заключение

Биткойн-транзакции – ключевая тема, которая дает понимание устройства биткойн изнутри. Вернее сказать, «непотраченные» транзакции, которые и являются вашим настоящим балансом.

Надеемся, что сегодня вам стало немного понятнее устройство самой известной криптовалюты в мире. Что вы по этому поводу думаете? Пишите в комментариях. Если вам понравилась статья, пожалуйста, оцените её.

А мы и дальше будем объяснять вам сложные темы из мира криптовалют простыми словам.

Поделиться с друзьями
Андрей
Оцените автора
( 1 оценка, среднее 5 из 5 )
Crypto Analys
Добавить комментарий