Открытие платежного канала. Чтобы открыть платежный канал, участники вносят депозит — фиксированную сумму, допустим, 100 TON. Они могут переводить друг другу монеты в рамках этой суммы.
Депозит одновременно выступает и как залог, который гарантирует, что каждый пользователь будет действовать честно. Если в процессе обмена монетами один из участников попробует обмануть другого, по условиям смарт-контракта он лишится части депозита.
Борис и Алиса подкрепляют свое намерение открыть канал, подписав смарт-контракт уникальными личными ключами. Такой ключ — аналог электронной цифровой подписи, которой мы подписываем документы в электронном виде, например, на Госуслугах.
После того, как пользователи подписали смарт-контракт, информация о платежном канале фиксируется в блокчейне и канал считается открытым, а участники канала платят небольшую комиссию.
Использование платежного канала. Допустим, Борис хочет перевести Алисе 5 TON. Он создает транзакцию на эту сумму, то есть сообщение, что хочет перевести Алисе 5 TON, и отправляет это сообщение в канал с Алисой.
Если Алиса согласна, она принимает это сообщение. После этого баланс участников меняется: на балансе Бориса блокируется 5 TON, а баланс Алисы увеличивается на 5 TON.
Каждая транзакция имеет уникальный идентификатор, а также содержит информацию о прежнем состоянии канала, информацию о новом состоянии канала и триггер, который запускает переход канала из одного состояния в другой.
Пока участники соглашаются на изменение состояния канала, между ними происходят транзакции. Информация о платежах находится внутри канала и не отражается в блокчейне.
Закрытие платежного канала. Борис и Алиса закончили переводить друг другу монеты: у Бориса теперь 130 монет, а у Алисы — 70 монет. Пришло время закрыть платежный канал, то есть передать окончательное и согласованное между двумя пользователями состояние канала в блокчейн.
Пользователи подтверждают, что согласны со всеми транзакциями друг друга, и подписывают смарт-контракт. После этого система окончательно распределяет монеты между Борисом и Алисой исходя из всех платежей, запись о закрытии канала фиксируется в блокчейне и участники снова оплачивают комиссию.
Чтобы опять переводить друг другу криптовалюту, Борис и Алиса должны открыть новый платежный канал.
Если что-то пошло не так. Бывает, что пользователи жульничают. Например, один из участников может запустить закрытие канала, отправив не самое последнее состояние, и недоплатить значительную сумму.
Если Борис попытается обмануть Алису, она сможет самостоятельно закрыть канал, чтобы получить все причитающиеся ей монеты. Для этого Алисе нужно будет доказать, что Борис пытался ее обмануть, и отправить в качестве доказательства более позднее состояние канала. Cмарт-контракт гарантирует, что монеты на канале будут распределены честно.