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

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

  • процесс открытия канала – представлен регистрацией платежного канала в рамках блокчейна и формированием его первоначального состояния;
  • процесс использования канала – представлен использованием смарт-контрактов для возможности проводить платежи вне рамок блокчейна, или в оффлайн-режиме;
  • процесс закрытия канала – представлен процессом регистрации конечного состояния пользовательского счета в рамках блокчейна.

Открытие и закрытие канала

Для открытия канала пользователь А и пользователь В должны выполнить следующие шаги:

  1. необходимо провести блокировку средств в рамках multisig , или общего сейфа, при помощи создания и отправки в систему funding transaction, или фондирующей операции;
  2. нужно создать commitment transaction, которая представлена операцией, подтверждающей текущий статус и позволяющей осуществить распределение средств из общего сейфа относительно начальных пропорций;
  3. нужно произвести сохранение сформированной операции отправителем и получателем без публикации транзакции в сети на обработку для майнеров.

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

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

Ранее уже мы говорили о том, что в операциях-состояниях хранятся смарт-контракты, каждый из которых соответствует определенному сейфу. В них же и прописана схема получения дальнейшего доступа к средствам. Для описываемого случая сейф №3 доступен для пользователя А, а сейф №4 – для пользователя В.

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

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

Использование платежного канала

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

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

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

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

Приведем пример такому использованию. Вам нужно реализовать в рамках биржи 10 токенов Bitcoin, при этом есть определенные требования, которые должны быть соблюдены:

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

Для выполнения поставленных условий и проведения операции необходимо создать платежный канал, участниками которого будете вы и биржа-обменник. При этом вы блокируете 10 коинов Bitcoin для проведения транзакции – ваши средства находятся в безопасности, и вы всегда их можете получить обратно, поскольку вы являетесь создателем операции-состояния. По факту наступления прописанного времени продажи токенов производится изменение операции-состояния при назначении бирже 1-го токена. Биржа в свою очередь подтверждает наличие одной монеты ВТС и дает вам возможность приобрести другой ассет. После проведения нужного количества транзакций вы осуществляете закрытие канала и извлекаете из общего сейфа тот объем средств, который был использован в операциях для перевода.

Аннулирование транзакции-состояния

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

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

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

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

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

Кооперативное закрытие платежного канала

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

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

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

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

ОСТАВЬТЕ ОТЗЫВ

Please enter your comment!
Please enter your name here