Как обрабатываются транзакции биткоин

model 2614569 1920 Советы на день
Содержание
  1. Как обрабатываются транзакции биткоин
  2. Содержание
  3. Биткойн существует в форме записей о биткойн-транзакциях
  4. Пример биткойн-транзакции
  5. Как работает биткойн-транзакция?
  6. Почему подтверждения некоторых биткойн-транзакций занимают так много времени?
  7. Подробнее о входах и выходах биткойн-транзакций
  8. Каковы комиссионные сборы за биткойн-транзакции?
  9. Как в результате майнинга осуществляются криптовалютные транзакции в блокчейне?
  10. Как работает биткоин?
  11. Биткоинов как таковых нет, есть только записи о биткоин транзакциях
  12. Так как что же представляет из себя транзакция?
  13. Как происходит пересылка биткоинов?
  14. Иногда подтверждение транзакций затягивается во времени. Почему?
  15. А что, если сумма на входе и выходе транзакции разная?
  16. Нужно ли платить комиссию за транзакции?
  17. Могу ли я получить чек или документ, подтверждающий перевод биткоинов?
  18. Что если я хочу отправить часть биткоина?
  19. Что такое транзакция в Биткоине (криптовалютах)? Как отследить транзакцию?
  20. Содержание статьи:
  21. Децентрализованные транзакции
  22. Проверка сетью
  23. Транзакция на примере Биткоина
  24. Как совершить транзакцию с Биткоином?
  25. Как отследить транзакцию Биткоина?
  26. Механизм комиссий в Биткоине и зачем дружить с майнерами
  27. Время полного подтверждения транзакции
  28. Ограниченность пропускной способности
  29. Роль комиссий
  30. Волатильность цены записи
  31. Решение проблемы с волатильностью комиссий
  32. Повышение комиссии после отправки транзакции
  33. Как помогает Segregated Witness
  34. Вариант с другом-майнером
  35. Вариант с токенизацией места
  36. Заключение

Как обрабатываются транзакции биткоин

Bitcoin (BTC) был создан как одноранговая электронная платежная система. Независимо от того, отправляете вы или получаете платеж в BTC, стоит понимать, как происходит транзакция. Транзакции Bitcoin — это сообщения, как электронные письма, которые подписаны цифровым способом с использованием криптографии и отправлены всей сети Биткойн для подтверждения. Транзакции публичны и могут быть найдены в цифровом реестре под названием блокчейн.

История всех транзакций в BTC ведет назад, к точке, когда биткойны были впервые произведены.

Содержание

Биткойн существует в форме записей о биткойн-транзакциях

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

Здесь стоит упомянуть, что биткойны (Bitcoin) не «существуют» в физическом аспекте, а только в цифровом. Думайте о блокчейне как о записи транзакций между разными биткойн-адресами. Записи об этих транзакциях обновляются сетью Bitcoin и публикуются на всех ее узлах при изменении баланса. Вы даже можете использовать один из наших обозревателей блоков, если хотите посмотреть историю и текущий баланс любого существующего адреса BTC.

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

Марк хочет отправить биткойны Джессике. В сущности транзакция с BTC состоит из трех частей:

Ввод: Это запись адреса BTC, с которого Марк изначально получил биткойны, которые хочет отправить Джессике.

Количество: Это конкретное количество BTC, которое Марк хочет отправить Джессике.

Вывод: Это открытый ключ Джессики, также известный как ее биткойн-адрес.

Как работает биткойн-транзакция?

Отправка BTC требует доступа к открытым и закрытым ключам, связанным с требуемым количеством биткойнов. Когда мы говорим, что у кого-то есть биткойны, на самом деле мы имеем в виду, что этот человек обладает доступом к паре ключей, состоящей из:

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

Никогда не делитесь своим закрытым ключом с кем-либо, если вы на 100% не уверены, что этот человек никогда не украдет ваши средства. Также не забудьте сделать резервную копию закрытых ключей, записав их ручкой на бумаге, и храните их в безопасном месте. Ваш адрес Bitcoin по сути является прозрачным сейфом. Другие могут видеть, что внутри, но только те, у кого есть закрытый ключ, могут разблокировать сейф и получить доступ к средствам внутри. В нашем примере транзакции выше Марк хочет отправить BTC Джессике. Для этого он использует свой закрытый ключ, чтобы подписать сообщение с деталями транзакции. Затем в блокчейн отправляется это сообщение, содержащее:

Затем эта транзакция транслируется в сеть Bitcoin, где майнеры подтверждают, что ключи Марка имеют доступ к источникам (т. е. к адресам, с которых он ранее получал BTC), которые, по его словам, он контролирует. Этот процесс подтверждения известен как майнинг, потому что он требует ресурсоемкого вычислительного труда и вознаграждения майнеров в BTC за каждый разрешенный блок. Это также процесс, посредством которого «создаются» новые биткойны.

Почему подтверждения некоторых биткойн-транзакций занимают так много времени?

Подробнее о входах и выходах биткойн-транзакций

Хотя с монетами можно было бы обращаться по отдельности, было бы крайне неудобно совершать отдельную операцию на каждый цент при переводе. Чтобы значение можно было разделять и объединять, транзакции содержат несколько входов и выходов. Как правило, существует либо один вход от более крупной предыдущей операции, либо несколько входов, объединяющих меньшие суммы, и максимум два выхода: один для оплаты и один для возврата отправителю сдачи, если таковая имеется.

Помните, что биткоины «существуют» только в виде записей транзакций в блокчейне? Это означает, что иногда несколько транзакций заканчиваются прикреплением к определённому адресу Bitcoin. Допустим, у вас в кошельке 2 BTC. Эти 2 BTC пришли от четырех разных друзей, каждый из которых прислал вам 0,5 BTC на ваш день рождения. Для удобства интерфейс вашего кошелька будет отображать ваши сбережения как «2 BTC». Но внутри вашего кошелька эти доходы по 0,5 BTC не «складываются» в 2 BTC. Скорее ваш кошелек просто отслеживает четыре транзакции по 0,5 BTC по отдельности, и в сумме они составляют 2 BTC. Когда вы хотите купить что-то за BTC, ваш кошелек использует записи транзакций различных сумм, которые в сумме составляют сумму биткойнов, которую вы хотите потратить. Предположим, это число составляет 0,25 BTC, и вы хотите использовать эту сумму для покупки одежды у продавца. Основываясь на информации о ваших сбережениях выше, мы знаем, что у вас нет ни одной транзакции ровно на 0,25 BTC. Пользователи Bitcoin не могут разбить транзакцию на меньшие суммы, и потратить можно только всю транзакцию целиком. Поэтому когда вы открываете свой кошелек и набираете «.25» в поле количество, технически происходит так: одна из транзакций на 0,5 BTC (от вашего щедрого друга Криса) будет отправлена целиком. Затем разница вернется вам через новую транзакцию. Вот технический процесс по шагам:

Но фактически ваш кошелек создает для этой транзакции два вывода:

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

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

Комиссионные сборы в Bitcoin учитывают различные факторы. Многие кошельки позволяют пользователям вручную устанавливать комиссию за транзакции. Любая часть транзакции, которая не предназначена получателю или возвращается как «сдача», включается в расчет комиссии. Комиссии идут майнерам. Их можно использовать для увеличения скорости подтверждения, мотивируя майнеров считать ваши транзакции приоритетными. Bitcoin сборы за больште переводы иногда могут достигать значительных сумм. Bitcoin Cash, напротив, обладает копеечным транзакционным сбором, а его платежи могут быть верифицированы даже с нулем подтверждений.

Начните покупать на сумму от 30 долларов!

Выберите из Bitcoin, Bitcoin Cash, Ethereum и других криптовалют

Источник

Как в результате майнинга осуществляются криптовалютные транзакции в блокчейне?

tranzakcii v blokchejne

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

Майнинг, также известный как хэширование (алгоритм консенсуса «доказательство выполнения работы»/Proof of Work).

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

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

Хэш-функция берёт строку входных данных, состоящую из цифр и букв (любую, в прямом смысле этого слова, строку случайных букв, чисел и/или символов) и преобразовывает её в новую 32-символьную строку, состоящую из случайных букв и цифр. Эта 32-символьная строка и есть хэш-сумма. Если изменяется любая цифра или буква во входящей строке, то хэш-сумма также изменится случайным образом. Однако, одна и та же строка входных данных всегда на выходе будет иметь одну и ту же хэш-сумму.

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

Правилами блокчейна Биткойна оговаривается, что только те блоки могут быть добавлены в блокчейн, чьи подписи (хэш-сумма) начинаются с определённого количества нулей. Однако, сгенерированная выходная строка является всегда случайной для разных строк данных на входе. А что если строка данных блока в результате обработки хэш-функцией не даёт на выходе подпись (хэш-сумму), начинающуюся с того определённого количества идущих подряд нулей? Так это и является причиной того, что майнерам приходится многократно изменять некий фрагмент данных своего блока, называемый «нонс» (англ. nonce). Каждый раз, когда майнер изменяет нонс, это влечёт за собой незначительное изменение компоновки данных блока. А когда меняется структура данных внутри блока (то есть, его входные данные), также изменяется и его подпись (или его выходные данные). Итак, каждый раз, когда меняется нонс блока, этот блок получает новую случайную подпись.

Такая процедура изменения нонса повторяется майнерами бесконечное число раз, пока в конечном итоге они случайно не наткнутся на выходную строку, удовлетворяющую требованиям к подписи блока (определённое количество нулей в самом её начале).

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

mining process

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

Также следует учитывать то, что с ростом мощности хэширования (количества майнеров) в блокчейне увеличится и сложность математической задачи, что повлечёт за собой увеличение средних расходов на электричество, требуемого для решения блока. Вы большие молодцы, если дочитали до этого момента! Давайте продолжим и перейдём к шагу 5.

Примечание: На самом деле этот процесс не определяется как математическая задача, но скорее является чем-то детерминированным – компьютеры выполняют предопределённые операции над числом, чтобы выяснить, является ли результат именно тем, что требуется.

Дата публикации 16.01.2020
Поделитесь этим материалом в социальных сетях и оставьте свое мнение в комментариях ниже.

Источник

Как работает биткоин?

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

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

Биткоинов как таковых нет, есть только записи о биткоин транзакциях

Во-первых, биткоинов, как таковых, не существует. Забавно, но это факт. Их нет даже на жестком диске. Мы говорим, что у кого-то есть биткоины, но если взглянуть на конкретный биткоин адрес, на нем не будут храниться цифровые монеты в том виде, как хранятся, например, доллары, фунты или рубли на банковских счетах. Вы не сможете указать на какой-то физический объект или даже электронный файл и сказать «это биткоин».

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

Так как что же представляет из себя транзакция?

Давайте смотреть. Пусть Маша отправит Васе несколько биткоинов. Это действие и есть транзакция, которая будет содержать в себе три типа данных:

Как происходит пересылка биткоинов?

Чтобы переслать биткоины кому-либо, нужно две вещи: биткоин адрес и закрытый ключ. Не стоит проводить аналогии между биткоин адресом и счетом в банке — между ними мало общего. В частности, для открытия биткоин адреса нет необходимости заполнять груду бумаг и предоставлять какие-либо идентифицирующие вас документы. Фактически они создаются произвольно и представляют собой случайную последовательность букв и цифр. Закрытый ключ – это тоже последовательность из букв и цифр, но в отличие от вашего биткоин адреса, он хранится в секрете.

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

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

Иногда подтверждение транзакций затягивается во времени. Почему?

Ответ прост. Транзакции подтверждают майнеры, которые при этом заняты добычей новых монет. Иногда приходиться ждать, пока они закончат майнинг. Алгоритмом, заложенным в Биткоин, предусмотрено, что для майнинга каждого блока нужно примерно десять минут. Однако если вы оплачиваете через процессинговые компании, такие как BitPay, Coinbase или похожие вам не нужно не чего ждать. У них встроен механизм моментального подтверждения сделки после перевода биткоинов.

А что, если сумма на входе и выходе транзакции разная?

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

Рассмотрим такую ситуацию. У нас есть Маша, которая, как мы писали выше отправляла биткоины Васе. Теперь представьте, что у Маши день рождения и ее друзья решили отправить ей в качестве подарка цифровые монеты. Итак, Света отправила подруге два биткоина, Дима — три и Юля — еще один, причем каждый со своего биткоин адреса, ну и, естественно, в разное время дня. Так вот баланс биткоин-адреса Маши теперь увеличился на 6 биткоинов, однако это не означает, что транзакции от ее друзей были объединены в одну. Они так и будут привязаны к адресу Маши как отдельные, каждая от другого адреса, транзакции.

Теперь, если Маша захочет снова отправить Васе пару биткоинов, например 4, то ее кошелек будет пытаться использовать записи транзакций с различными суммами, которые сложатся в нужное количество биткоинов, которые она шлет Васе. То есть, в соответствии с нашим примером с днем рождения Маши, на Васю могут быть подвязаны транзакции от Димы (три биткоина) и Юли (один биткоин).

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

Нужно ли платить комиссию за транзакции?

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

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

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

Могу ли я получить чек или документ, подтверждающий перевод биткоинов?

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

Что если я хочу отправить часть биткоина?

Вполне. Биткоины — делимые единицы, вплоть до стомиллионных. Например 1 сатоши это 0,00000001 биткоина.

Хотите больше новостей? Facebook. Быстрее всех? Telegram и Twitter. Подписывайтесь!

Источник

Что такое транзакция в Биткоине (криптовалютах)? Как отследить транзакцию?

Содержание статьи:

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

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

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

Децентрализованные транзакции

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

Проверка сетью

Транзакция на примере Биткоина

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

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

Если человек A хочет отправить Биткоины человеку B, то эта транзакция будет содержать три ключевых элемента информации:

Как совершить транзакцию с Биткоином?

Для начала Вы должны получить цифровой адрес монеты, это можно сделать 2 способами:

Далее на этом кошельке должны быть монеты. Их можно купить на бирже за Фиат, или добыть при помощи майнинга на Асиках (или видеокартах в случае с другими монетами, такими, как Эфир, Monero и так далее).

Пример цифрового кошелька Bitcoin:

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

Как отследить транзакцию Биткоина?

Отследить транзакцию Биткоина очень просто, для этого нужно воспользоваться специальным сайтом – Block Explorer.

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

Откроется страница с нужным кошельком и всей информацией о нем.

Теперь, даже если у Вас временно нет доступа к кошельку, Вы с легкостью сможете отследить баланс своего кошелька, а также поступление средств на него.

Источник

Механизм комиссий в Биткоине и зачем дружить с майнерами

Время полного подтверждения транзакции


Важно отличать процесс обработки транзакций (verification) от процесса их подтверждения (confirmation). В сети Bitcoin транзакции обрабатываются практически мгновенно, а подтверждаются – целый час. В других цифровых валютах все может осуществляться в течение пары секунд. От чего же зависит время полного подтверждения транзакции в децентрализованной среде? Главным образом, от механизма достижения консенсуса.

image loader

Согласно правилам протокола Bitcoin владельцы большей части вычислительной мощности должны подтвердить транзакцию (блок в котором содержится эта транзакция), чтобы она считалась полностью подтвержденной. То есть, на основании блока, в котором транзакция получила первое подтверждение, должно быть построено еще несколько блоков. Причем эта цепочка должна быть самой длинной, а конкурентных цепочек быть не должно. Количество этих блоков (подтверждений транзакции) определяет сам получатель платежа на свое усмотрение. Он руководствуется правилом, которое гласит, что чем больше подтверждений у транзакции, тем меньше вероятность ее последующей отмены.

Ограниченность пропускной способности


С ростом популярности Биткоина значительно увеличился поток новых транзакций в сети. Известно, что размер блока определен правилами протокола и строго ограничен. В Биткоине максимальный размер блока составляет 1 MB, следовательно, пропускная способность ограничена (1.7 KB/s). Если поток новых транзакций превысит пропускную способность, то не все из них будут обработаны. И такие ситуации случаются нередко. Какие транзакции получат подтверждение первыми, а какие останутся ждать – это вопрос, который требует четкого ответа. Суть его в том, что транзакции должны конкурировать друг с другом.

Роль комиссий


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

image loader

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

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

Волатильность цены записи


Пользователи сети Биткоин время от времени сталкиваются с непривычно высокой волатильностью комиссий. Например, в 2017 году усредненная цена записи одного байта данных в блокчейн Биткоина колебалась в диапазоне от 1 до 500 satoshi. А очередь неподтвержденных транзакций варьировалась от нескольких KiB до десятков, и даже сотен, MiB.

По причине того, что цена на запись данных может резко изменится, пользователи вынуждены конкурировать друг с другом почти вслепую. Это обусловлено тем, что фактически транзакция будет подтверждена в среднем в течение 8 минут, тогда как комиссию за обработку нужно установить еще до ее подписания. Поэтому вопрос правильно установленной комиссии все равно остается актуальным, потому что все хотят быстрого подтверждения своих транзакций с минимальными затратами. Естественно, платить больше 50 USD за типичную транзакцию – не лучший вариант, особенно, когда можно сэкономить до 90% этой суммы, если грамотно рассчитать комиссию.

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

Решение проблемы с волатильностью комиссий


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

Стоит отметить, что прогнозирование цены на запись также возможно, но зачастую такие прогнозы работают только на очень коротких промежутках времени (в среднем несколько минут). Если же прогноз устарел, а транзакция не подтвердилась, то вполне вероятно, что ожидать ее подтверждения можно еще долго – чаще всего несколько часов, а иногда и суток.

transaction fee = transaction size * byte price

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

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

Повышение комиссии после отправки транзакции


Отметим, что протокол Биткоин весьма гибкий и в отношении комиссий. Например, есть два улучшения протокола: replace-by-fee и child-pays-for-parent, – которые позволяют повысить комиссию уже сформированной и отправленной транзакции. К сожалению, очень немногие кошельки реализуют эту функциональность для удобства своих пользователей, хотя со временем их становится больше.

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

Как помогает Segregated Witness


Одним из изменений протокола, которое внесло обновление Segregated Witness, является введение нового формата транзакции и ее веса (transaction weight). До появления Segregated Witness при расчете комиссии обычно учитывали только размер транзакции. Теперь важными являются и размер, транзакции и ее вес. Новая транзакция хранит доказательства владения монетами в отдельной структуре (witness data). Чтобы перевести размер транзакции (total size) в ее вес, размер witness data умножается на меньший коэффициент, чем остальные данные транзакции. Вес транзакции рассчитывается по специальной формуле:

weight = base size * 3 + total size.

В этом случае base size – это размер транзакции без учета размера witness data. Как можно догадаться, любые данные, которые включаются в witness data, требуют в 4 раза меньшей комиссии, чем остальные данные транзакции. Подобный подход позволяет майнерам определить более выгодную транзакцию в отношении занимаемого в блоке места и получаемого вознаграждения.

Известно, что около 60% всех данных транзакции составляют именно данные доказательства владения монетами (т. е. такие, которые можно записать в witness data). Соответственно, вес транзакций нового формата значительно уменьшится. Таким образом, пользователь может платить меньше за подтверждение новой транзакции, при этом она будет иметь тот же приоритет у майнеров при включении в блок, что и старая транзакция с большей комиссией.

image loader

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

Вариант с другом-майнером


Представьте, что у вас есть друг, который занимается майнингом и контролирует 10% всей вычислительной мощности, задействованной в сети Биткоин. В среднем он генерирует блок один раз в 100 минут. В этом случае вы можете сформировать свою транзакцию, в которой установите нулевую комиссию, после чего отправите эту транзакцию своему другу для подтверждения.

image loader

Первое подтверждение ваша транзакция с вероятностью 50% получит в течение 50 минут, а полное подтверждение – в среднем через 50 минут после первого. В итоге ваши транзакции будут получать полное подтверждение приблизительно в течение 100 минут. Если бы у вас такого друга не было, полное подтверждение транзакция получала бы приблизительно в течение 60 минут, но уже с оплатой полноценной комиссии.

Как видите, если речь идет об экономии средств, то вам повезло, если у вас есть друг майнер. Но если такого друга нет, то могут существовать альтернативные варианты оплаты места в блоке.

Вариант с токенизацией места


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

Такой подход предполагает, что пользователи будут платить майнеру за подтверждение своих транзакций не через заранее установленную комиссию, а непосредственно (по собственной схеме).

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

Заключение


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

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

Источник

Оцените статью
Добавить комментарий

Adblock
detector