Сеть Блокчейн

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

Установление двунаправленного канала

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

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

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

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

Похожие страницы: