Транзакции в блокчейне: что это такое и зачем нужны

Блог

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

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

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

Суть блокчейна

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

Технология блокчейн построена на следующих принципах:

  • децентрализации;
  • распределенности;
  • прозрачности;
  • безопасности;
  • неизменности.

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

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

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

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

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

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

Транзакции в блокчейне на примере биткоина

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

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

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

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

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

  • адрес отправителя денег (вход);
  • число монет в транзакции (сумма);
  • адрес получателя перевода (выход).

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

Транзакции в блокчейне на примере биткоина

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

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

  • либо она не подтверждена и ожидает подтверждения;
  • либо уже подтверждена и тогда включается в блокчейн.

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

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

Именно в блокчейне можно найти транзакцию биткоина в любой момент времени вне зависимости от давности совершения сделки.

  • Ознакомиться с транзакциями внутри блокчейна биткоина можно на специальных сайтах, где в открытом доступе выложена вся эта информация. Даже нет необходимости регистрироваться для этого. Самые актуальные среди них — это Chain.so и Blockchain.info.
  • Транзакции находятся в специальном разделе. Достаточно кликнуть на нужную вкладку.
  • Ввести хеш транзакции в строку поиска. Хеш создается при проведении перевода биткоинов через любой кошелек.
  • Посмотреть детали транзакции.

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

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

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

Неподтвержденная транзакция в блокчейне

Если транзакцию не подтвердили, она не будет включена в блок и не подлежит обработке.

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

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

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

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

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

  • Ускорение транзакции (об этом далее).
  • Подождать еще: вдруг повезет и ее все-таки подтвердят.
  • Применить метод CPFP (Child Pays for Parent): отправить еще немного монет с того же кошелька, но с более высокой комиссией. Тогда новая транзакция будет, с большой вероятностью, добавлена в блок вместе с первой.
  • Попросить помощи у поставщика сервиса, хранящего криптовалюту.

Ускорение транзакций в блокчейне

Чтобы «подтолкнуть» зависший перевод, можно увеличить комиссию. Это делается так:

  1. На сайте blockchain.info или аналогичном проверить, присутствует ли транзакция в очереди.
  2. Выйти из кошелька. Перезапустить программу, добавив в командной строке команду «-zapwallettxes», удаляющую неподтвержденные транзакции.
  3. Завести новый платеж с более высокой комиссией.

Кроме того, для ускорения прохождения транзакции в блокчейне применяют алгоритм «ребенок платит за родителей» (Child Pays for Parent). Отправитель повышает комиссию.

Есть несколько способов сэкономить деньги при транзакциях:

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

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

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

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

Off-chain транзакции

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

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

Протоколы off-chain довольно многочисленны. Это, к примеру, Liquid Network, Lightning Network и т. д. Рассмотрим их поподробнее.

Lightning Network

Этот протокол второго уровня, который основан на блокчейне биткоина и позволяет проводить платежи на любые суммы недорого и быстро. Кроме того, с помощью Lightning Network можно меняться криптовалютой между блокчейнами, не ограничивая себя только биткоином (это называется cross-chain atomic swaps). Ждать помощи от посредников больше не придется. Поэтому данный протокол столь универсален и удобен.

Lightning Network является децентрализованной p2p-сетью. То есть, пользователи могут отправлять друг другу криптовалюту, блокируя ее на адресе, связанном с несколькими парами ключей, посредством транзакций финансирования. Можно повторять транзакции сколько угодно раз на адрес вне блокчейна, пока информация о балансах отправителя и получателя не попадет в блокчейн.

Liquid Network

С предыдущим off-chain протолоком его роднит то, что оба они основаны на биткоине и дают возможность сделок вне блокчейна, и при этом транзакции конфиденциальны и безопасны. Суммы, переводимые в той или иной транзакции, скрыты. Но есть и минус: эта сеть не децентрализована.

Практический пример. Пользователь А создает peg-in транзакцию, чтобы переслать один биткоин (1 BTC) пользователю Б. Этот биткоин привязывается сетью Liquid Network к Liquid (L-BTC), который является эквивалентом настоящего биткоина внутри сети. С помощью L-BTC можно делать переводы на любые суммы в Liquid Network, пока сделка не будет завершена. С этого момента все L-BTC обмениваются обратно на BTC (в пропорции 1:1).

Ethereum Plasma

У Эфира есть свой аналог Liquid Network, и это off-chain протокол Plasma Chain. Этот протокол независим от главного блокчейна Ethereum, поскольку сеть Plasma является дочерней. С помощью нее можно быстрее и экономнее переводить свопы, токены и т. д. за пределами сети Ethereum. В Plasma Chain предусмотрены алгоритмы независимой проверки транзакций, чтобы обеспечить их безопасность, и «fraud proofs».

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