Как работают криптовалютные транзакции

0
260

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

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

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

Как работает биткойн-кошелек

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

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

В децентрализованной сети централизованный учет баланса каждого счета (как в банке) невозможен, для каждого адреса баланс рассчитывается заново при формировании нового перевода. На практике это выглядит так: если на кошельке находится 3 BTC, и совершается перевод на 1 BTC, то транзакция будет содержать две операции. 1 BTC отправится по указанному адресу, а еще 2 BTC – обратно отправителю. Данная схема облегчает проверку наличия достаточного количества средств на балансе при совершении следующего платежа.

Отправленный перевод попадает в пул неподтвержденных транзакций. К данному пулу обращаются майнеры, чтобы набрать определенное количество платежей для очередного блока-кандидата. Здесь нет какой-либо очереди: первыми покидают пул платежи, где указан наибольший размер комиссии. Она в полном размере будет передана майнерам, вместе с вознаграждением от системы за найденный блок. Размер комиссии не привязан к сумме перевода: решающее значение имеет длина сообщения в байтах. Для сети Биткойн размер блока составляет 1 Мб и комиссия – плата за место в блоке.

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

  1. Необходимо получить подтверждение, что деньги действительно принадлежат кошельку-отправителю. Для этого в записях блокчейн проверяются предыдущие транзакции с этим адресом. Если отправленная сумма меньше, чем было передано в данный кошелек раньше, то все ОК.
  2. Проверка безопасности. Чтобы исключить попытки перечислить куда-либо монет без использования верного приватного ключа выполняется вычисление результата простой функции. Подпись отправителя проверяется его публичным ключом: если результат истинен, платеж принимается к исполнению.Далее, рассчитывается результат специальной функции – хэш каждого добавленного элемента, которые объединяются в единый хэш блока (туда же добавляется аналогичный результат для предыдущего элемента блокчейн, чтобы цепочка получилась непрерывной). У майнеров есть примерно десять минут, чтобы добавить к аргументам функции расчета хэша такое число (nonce), чтобы он соответствовал определенным условиям. Например – имел в начале восемнадцать нулей. Данная задача может быть решена только одним способом: перебором. Тот майнерский пул, который первым подберет хэш к своему блоку-кандидату, получит вознаграждение – 12,5 BTC плюс все комиссии, уплаченные отправителями.

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

По этой причине время перечисления BTC может составлять 30-40 минут, а при высокой загруженности, когда пользователями осуществляется большое количество переводов – несколько часов. Многое зависит от суммы комиссии: если она меньше рекомендуемой, транзакция рискует «зависнуть» на очень долгое время.

Чтобы гарантировать, что транзакция попала в самую длинную цепочку блоков нужно получить 3-4 подтверждения. Иными словами – после майнинга блока должны быть сформированы еще 4 элемента в той же цепочке (на каждый из которых нужно 10 минут). Данное решение позволит гарантировать невозможность отмены платежа. Современные программы-кошельки самостоятельно учитывают этот фактор и отображают изменения баланса счета, когда будет достигнуто необходимое количество подтверждений.

Обозреватели блокчейн

Узнать, отправлены ли деньги не дожидаясь необходимого количества подтверждений, можно на специальных сервисах – блокчейн-эксплорерах. Один из них, blockchain.info позволяет искать транзакции по адресу и хэшу. Также доступен просмотр всех переводов для каждого блока.

Решения для других криптовалют

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

Есть и различия, которые порой достаточно существенны. DASH использует сразу несколько алгоритмов, позволяющих скрыть реальные адреса контрагентов, производя «перемешивание» сумм. Блокчейн Monero содержит зашифрованные адреса: благодаря использованию алгоритма CryptoNote только отправитель и получатель знают о том, что деньги были отправлены.

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

Децентрализованная криптобиржа

Добавить комментарий

Please enter your comment!
Please enter your name here