22/10/2021

financial-pro.ru

Новости инвестиций и финансов

Как проверить транзакцию в блокчейн: проверка, способы ускорить

Как ускорить перевод в блокчейн и проверить транзакцию

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

Что такое транзакции в сети BTC

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

Транзакции в blockchain обеспечивают создание блоков. С ростом спроса на цифровые деньги число переводов увеличилось, а количество сделок, вмещающихся в элемент цепи, меняется в небольшом диапазоне. При добыче криптовалюты в состав блоков включаются приоритетные сделки, имеющие больший размер комиссионных и объем. Небольшие операции формируют очередь и выжидают своего часа. По факту создания нового элемента блокчейн майнеры получают вознаграждение в размере 12,5 коина (на 1 декабря 2018 года).

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

Цепочка блокчейн отличается отсутствием единого центра управления. История операций одновременно находится на сотнях тысяч ПК пользователей и регулярно обновляется. Зачисление денег на бумажник происходит после валидации (проверки) операции другими пользователями (майнерами). Скорость перечисления средств зависит от многих параметров и достигает от 10 и более минут.

Для проведения транзакции в сети блокчейн требуются два ключа:

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

Транзакция имеет следующий алгоритм:

  1. Отправитель с private key направляет определенное число монет другому пользователю.
  2. Информация об операции идет в блокчейн.
  3. Созданный блок добавляется к общей цепочке с информацией о переводе.
  4. Участники сети проверяют валидность.
  5. Сделка подтверждается через 2–6 блоков (для цепи блокчейн).
  6. Деньги зачисляются на бумажник получателю.

При корректном указании сведений транзакция занимает минимум времени (от 20 минут), но так происходит не всегда.

От чего зависит время транзакции

Особенность сети blockchain исключает быстрое проведение операций в сети (вне зависимости от размера и количества сделок). Причина — необходимость проверки перевода на факт валидности. В цепи блокчейн Биткоина на создание одного блока идет 10–15 минут. В среднем элемент цепи признается системой через шесть блоков, поэтому оптимальное время сделки в блокчейн — около часа.

В сети Биткоинов есть ряд факторов, влияющих на транзакции Биткоин:

  • Размер операции. При переводе небольшой суммы для проведения транзакции достаточно одного–двух блоков, поэтому сделка проходит быстрее. При большой загрузке блокчейн предпочтение майнеров отдается более крупным переводам средств, поэтому мелкие операции могут зависать.
  • Волатильность. По графику курсовой цены легко сделать вывод о сильных колебаниях цены криптовалюты. Это свидетельствует о загруженности сети и большом числе игроков (инвесторов, трейдеров ). На 30 ноября 2018 года среднее число операций в сутки достигало 250 тысяч. Участников рынка привлекают волатильные рынки, позволяющие заработать на разнице курсов. Во избежание зависаний транзакций рекомендуется проводить операции в цепи блокчейн в периоды флетов (затишья).

  • Размер комиссии. Многие участники при проведении сделок в сети блокчейн экономят и устанавливают низкий комиссионный платеж. В результате транзакция зависает, ведь майнеры выбирают переводы с большим размером комиссии. Для быстрого перечисления монет рекомендуется ставить вознаграждение выше среднего. 30 ноября 2018 года средний комиссионный платеж составил 67 центов. От этого показателя стоит отталкиваться при выборе размера вознаграждения.

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

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

Величина комиссии не зависит от размера переводимой суммы. В практике встречаются случаи, когда перевод одного BTC выгоднее транзакции с 0,01 BTC. Объем операции зависит от количества взаимосвязанных переводов. Так, Свете пришел один Биткоин от Евгения, Коли и Тараса. Далее эта монета идет Александру. В проведении сделки участвуют три адреса, поэтому увеличивается объем.

Факторы, влияющие на скорость операции, имеют косвенный характер. Главная проблема блокчейн Биткоина — небольшая величина блока (около одного мегабайта). В среднем транзакция занимает 500–600 байт. Один элемент цепочки вмещает около двух тысяч переводов. Время на создание одного блока — в среднем 10 минут. На 1 декабря 2018 года параметр немного выше — около 15 минут.

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

Как проверить транзакцию

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

  • Blockchain.com/ru/explorer — площадка с удобной навигацией и привлекательным дизайном. Для получения сведений требуется ввести адрес бумажника, номер транзакции, хеш или блок.

После указания номера сделки система выдает время ее получения, размер, награду за блок и объем перевода.

  • Btc.com — не менее популярный сервис, позволяющий отследить транзакцию в цепочке блокчейн. Для получения сведений в правом верхнем окне указывается номер перевода, блок или адрес.

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

  • Blockexplorer.com — удобный проводник транзакций блокчейн с хорошим функционалом. Окно для ввода информации о переводе находится слева вверху.

Результат выводится в виде небольшой таблицы с ограниченным объемом данных. Пользователям доступны размер, время перевода и ряд других сведений.

  • Etherscan.io — площадка для проверки транзакций в сети Эфириум. Сайт отличается большим функционалом, удобным отображением необходимых сведений, бесплатностью применения.

После ввода информации система выдает размер блока, отправителя и получателя, лимит и цену Газа, другие данные.

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

Подтвержденные и неподтвержденные транзакции

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

  • Подтвержденные — переводы, включенные в блок после валидации майнерами.
  • Неподтвержденные — операции, не включенные в новый элемент цепи (к примеру, из-за большой загрузки, низкой комиссии или некорректности).

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

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

Как ускорить транзакцию Биткоин — способы

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

Двойное расходование

Распространенный вариант «проталкивания» транзакции в блокчейн — Double Spending. Суть методики заключается в повторном проведении операции, но с измененными параметрами. Пользователи увеличивают сумму или величину комиссии. Риск одновременного проведения обеих сделок исключен. При наличии двух операций система исполняет операцию с лучшими условиями. Единственная опасность — возможное разветвление сети, поэтому к использованию инструмента важно подойти с ответственностью.

Алгоритм опции двойного расходования (для кошелька Bitcoin Core):

  1. Проверка состояния транзакции. Надпись Unconfirmed transaction свидетельствует о зависании операции.
  2. Закрытие бумажника и указание в командной строчке слова zapwallettxes.
  3. Ожидание пуска кошелька. После загрузки бумажника незавершенные операции удаляются, но в сети блокчейн информация еще остается.
  4. Перечисление коинов с новыми параметрами (меняют сумму и размер комиссии). Во избежание случайного исполнения двух транзакций параметры должны быть максимально приближены друг к другу. К примеру, рекомендуется поставить аналогичный объем входа (сведения доступны в секции Input кошелька). Что касается суммы и комиссии, их желательно увеличить.
  5. Заполнение полей по принципу стандартного перевода.
  6. Завершение транзакции (проходит в более сжатые сроки).

Во многих случаях указанного метода достаточно для ускорения операции при зависании.

«Ребенок платит за родителя»

Следующий метод — CPFP. Недостаток заключается в необходимости оплаты и поддержке опции ограниченным числом пулов. Принцип ускорения — создание новой операции в блокчейн с использованием старого выхода. Монеты перечисляются по любому из адресов.

Пример ускорения с помощью Bitcoin Core:

  1. Переход к настройкам и изменению параметров.
  2. Вход в секцию кошелька и включение управления входами. Пользователь разрешает расходовать неподтвержденную сдачу. Если необходимые функции выставлены, ничего менять не требуется.
  3. Закрытие окна и отправка монет.
  4. Переход в секцию входов и выбор интересующей операции (легко распознать по количеству переданных коинов).
  5. Указание адреса получателя и подтверждение.
  6. Установка размера перевода возле команды, требующей вычета комиссии из суммы.
  7. Указание комиссионного платежа за один килобайт. Вычет комиссии осуществляется с двух операций.

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

Изменение комиссии

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

Replace by fee (RBF)

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

Опасность — вероятность блокировки перевода из-за подозрения на двойное расходование монет. Включение функции RBF в кошельке исключает риск. Опция поддерживается многими бумажниками: Green Address, Electrum и так далее. Для применения требуется перейти в хранилище и подключить функцию.

Прочие методы

Для ускорения транзакции в цепи блокчейн можно использовать еще ряд путей:

  1. Использование специальных площадок, обеспечивающих более быстрое проведение операции. Как вариант — Coinbase: пользователи проводят переводы в сети почти без задержек по времени.
  2. Применение мультиподписи. При переводов часто применяется мультиподпись, обеспечивающая быстрое проведение операции. Инструмент применяется многими бумажниками, к примеру, Green Address.
  3. Использование сайтов, имеющих максимальный уровень доверия. Особенность площадок заключается в раскрытии сведений об участниках, поэтому подтверждение в блокчейн проходит быстрее. Недостаток — нежелание пользователей раскрывать личность.
  4. Увеличение размера операции. При большой загрузке сети пользователи предпочитают сделки с большим числом коинов. Повышение размера транзакции способствует ускорению перевода.
  5. Откат. Неподтвержденную сделку можно вернуть, к примеру, в бумажнике Bitcoin Core.

Способов ускорить транзакцию блокчейн достаточно, но из приведенных вариантов наиболее популярные пути — RBF и Double Spending.

Комиссии за транзакции в сети

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

При выборе размера комиссии можно ориентироваться на ряд сервисов:

  1. Bitinfocharts.com/ru/comparison/bitcoin-transactionfees.html. Указывается средний размер премии за прошедшие сутки. На 30 ноября 2018 года показатель равен 67 центам. Это средний параметр, поэтому ориентироваться на число не очень удобно.
  2. Btc.com/stats/unconfirmed-tx — более продвинутая площадка, отражающая рекомендуемую комиссию на текущий момент и с учетом текущей загрузки блокчейн.

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

Какую комиссию ставить во избежание зависания транзакции

Более удобный сервис для определения размера комиссионного платежа — btc.com/stats/unconfirmed-tx.

На момент написания статьи (1 декабря 2018 года) система рекомендует комиссию в размере 0,0005 Биткоина. Чтобы определить время проведения транзакции в блокчейн , стоит опуститься ниже и посмотреть на приведенную таблицу.

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

Во избежание зависания транзакций стоит обратить внимание на график (Mempool Size). По информации легко сделать вывод о загрузке сети. Во избежание задержек лучше проводить перевод в периоды минимального числа сделок.

Как проводить анонимные транзакции в сети Bitcoin

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

  • Blender.io — сервис, обеспечивающий полную анонимность транзакций с Биткоином в сети блокчейн. Плюсы площадки: низкая комиссия (от 0,5 до 3 %), отсутствие JS, перемешивание с помощью обновленных алгоритмов, удобный и доступный дизайн. Участник сети вправе самостоятельно поставить сумму и время проведения транзакции. Пользователям доступен код микширования, гарантирующий отсутствие смешивания старых и новых операций. Для анонимизации перевода требуется ввести адрес получателя монет, задержку микширования, комиссию и код. После можно приступать к смешиванию.

  • Вarkwallet.is — адрес, по которому доступен специальный бумажник, обеспечивающий конфиденциальность проведения операций в сети блокчейн. Разработчиками выступают А. Тааки и К. Уилсон. Особенность заключается в улучшенной защите идентификаторов владельцев хранилищ. В процессе проведения операции система комбинирует сведения с синхронных переводов разных участников. Понять, какой перевод и к кому относится, почти нереально. Впоследствии разработчики планируют объединить большее число участников для более эффективного шифрования.

Плюс сервиса — дополнительная защита и для получателей. Речь идет о stels-адресах, направляемых на email получателя. После получения определенных сведений на почтовый ящик человек сможет получить транзакцию.

  • Zerocoin.org — проект, решающий проблему со слабой конфиденциальностью блокчейна Биткоин. Суть сервиса заключается в шифровании сведений. Площадка обеспечивает максимальный уровень анонимности (даже больший, чем другие варианты). Первоначально проект работал в виде дополнения к Биткоину, но широкой популярности не получил. Сегодня применяется только для обеспечения анонимности платежей.

  • Интеграция с Тором. Для шифрования транзакций в блокчейн все чаще применяется Тор. Это мощный инструмент, применяемый многими сервисами, в том числе blockchain.com. Сегодня появляются новые приложения, интегрируемые в браузер, обеспечивающий дополнительную анонимность. Сегодня интеграция доступна для бумажников Hive или Multibit.

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

Краткое пошаговое руководство по технологии Blockchain

Понимание трех основных технологий, лежащих в основе Bitcoin.

Сергей Базанов

Спросите 10 человек, «что такое технология blockchain?», и вы получите 10 разных ответов, — даже в самой крипто-тусовке. Лучший подход к формированию истинного понимания blockchain заключается в понимании базовых его технологий шаг за шагом.

Поэтому в этой статье мы рассмотрим три основных компонента технологии blockchain: собственно блокчейн, одноранговые (пиринговые) сети и механизм консенсуса. Bitcoin не сможет существовать, если какой-либо из этих компонентов отсутствует. Начнем с блокчейна.

«Если вы не можете объяснить это просто, вы не понимаете это достаточно хорошо». — Альберт Эйнштейн

1. Понимание собственно блокчейна

Попросту говоря, блокчейн — это всего лишь способ структурирования данных. Вот и всё! Это регистр: файл, который отслеживает записи бухгалтерского учета.

Этот файл сравним с книгой, которая никогда не заканчивается.

На каждой странице книги записана информация и номер страницы внизу. По номеру страницы вы сразу же знаете, где эта страница находится в книге. Очевидно, что страница 49 располагается между страницами 48 и 50.

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

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

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

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

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

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

2. Понимание роли одноранговых сетей

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

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

Эти компьютеры называются «узлами» или «нодами» ( nodes), и они работают совместно в одноранговой ( peer-to-peer) сети, чтобы гарантировать, что блокчейн является безопасным и актуальным. Каждый из этих узлов хранит полную, обновленную (актуальную) версию blockchain. Каждый раз, когда добавляется новый блок, все узлы обновляют свой блокчейн. Использование одноранговой сети имеет определенные преимущества:

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

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

Например, как узнать, что все транзакции в блокчейне верны? Как узнать, что в блоках нет недействительных транзакций? И если есть разные версии blockchain, откуда мы узнаем, которые из них являются истинными?

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

3. Понимание механизма консенсуса

Механизм одноранговой сети использовал еще в 1999 году Napster ( файлообменная пиринговая сеть).

Гениальный Сатоши Накамото, загадочный и анонимный основатель Биткоина, объединил блокчейн с консенсусным механизмом, основанным на криптографии. Консенсусный механизм — это то место, где происходит настоящая магия: он позволяет узлам в одноранговой сети работать вместе, не зная и не доверяя друг другу.

«Целью консенсусного алгоритма является обеспечение безопасного обновления состояния в соответствии с некоторыми конкретными правилами изменения состояния, когда право на выполнение изменения состояния распределяется среди (…) пользователей, которым предоставляется право коллективно выполнять изменение через алгоритм» — Виталик Бутерин

Теперь, если вы не совсем это поняли, механизм консенсуса — это просто набор правил, который согласовывается узлами в сети, запуская программное обеспечение сети. Эти правила обеспечивают, чтобы сеть работала по назначению и оставалась синхронизированной.

Консенсусный протокол устанавливает правила:

  • Каким образом блоки должны быть добавлены в блокчейн,
  • когда блоки считаются действительными, и
  • как разрешаются конфликты.

Добавление блоков в блокчейн

Различные блокчейны добавляют блоки в свои цепи по-разному. Наиболее известным механизмом консенсуса является Доказательство выполненной работы (PoW) Биткоина.

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

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

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

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

Доказательство работы (PoW) Биткоина — не единственный механизм консенсуса. Доказательство ставки (PoS) также широко используется в распределенных книгах. В механизме «Доказательство ставки» можно «сделать ставку» на свои монеты, чтобы получить возможность добавить следующий блок в блокчейн. В некотором смысле, делающий ставку говорит: «Я ставлю свои монеты, что я правильно добавляю этот блок». Если он солжет, то потеряет свои монеты.

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

Проверка блоков

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

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

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

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

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

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

Как разрешаются конфликты

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

Мы называем это непреднамеренным «форком» ( ‘fork’ — «вилка»): блокчейн разветвляется на две разные цепи. У кого же оказался мой 1 биткоин? У Алисы или Боба? Какая из двух ответвленных цепей блокчейна является «истинной»?

Как правило, все консенсусные протоколы решают эту проблему с помощью простого правила: выигрывают самые длинные цепочки.

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

Почему мы знаем, что это всегда произойдет?

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

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

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

Вывод

Вышеприведенное следует рассматривать как очень краткое введение в работу распределенных регистров ( distributed ledgers).

Однако, в следующий раз, когда кто-то упоминает о блокчейнах на вечеринке, пожалуйста, не делайте того, что я только что сделал, а просто скажите: «Эй, дружище, блокчейн — это всего лишь способ структурирования данных. Я думаю, вы имеете в виду распределенный регистр, используемый для ведения записей, который размещен в одноранговой сети, состоящей из узлов и майнеров, сотрудничество которых регулируется консенсусным протоколом, который устанавливает правила сети».

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

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

Если это не захватывающая перспектива, тогда я не знаю, что это…

https://kurs-bitcoina.ru/blockchain-proverit-tranzakciju/
https://medium.com/bitcoin-review/%D0%BA%D1%80%D0%B0%D1%82%D0%BA%D0%BE%D0%B5-%D0%BF%D0%BE%D1%88%D0%B0%D0%B3%D0%BE%D0%B2%D0%BE%D0%B5-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE-%D0%BF%D0%BE-%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8-blockchain-a9ff61079098