Смарт-контракты в сети Lightning Network: техническое описание концепции

Делитесь и голосуйте:

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

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

Цикл статей состоит из следующих частей:

Lightning Network Часть №1: Введение: Описание предпосылок создания концепции Lightning Network, сравнительный анализ с другими платёжными системами. Lightning Network Часть №2: Области применения: Поверхностное описание технологии и примеры использования в различных областях. Lightning Network Часть №3: Смарт-контракты: Объяснение основных блоков, необходимых для углубления в техническое описание концепции. Lightning Network Часть №4: Платежный канал: Объяснение понятия платежного канала и его применения для быстрого обмена Bitcoin. Lightning Network Часть №5: Решение проблемы масштабирования: Объяснение использования платёжных каналов для построение платёжной сети и решения проблемы масштабирования.

В предыдущих статьях мы выделили свойства, присущие Lightning Network, а также дали поверхностной описание сети. Мы выделили два элемента: узел и платежный канал.

В этой статье нашей задачей будет разобраться в ключевых элементах, необходимых для понимания термина “платежный канал”. Такими элементами являются смарт-контракт, htlc, multisig, time-lock.

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

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

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

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

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

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

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

В Lightning Network используются несколько типов смарт-контрактов, а точнее их смесь:

2?2 multisig — это смарт-контракт, который открывается при условии предоставления электронной подписи двумя людьми. Как правило, это те же самые люди, которые предоставили деньги. hash time lock contract (htlc) — это смарт-контракт, который разблокирует деньги, если предоставлено секретное число x, которое первоначально есть только у создателя смарт-контракта. Передача числа x кому-либо другому по сути означает передачу денег. Важно отметить, что так как транзакции передаются в открытом виде, то число x будет видно всем, поэтому вместо числа x в смарт-контракт записывают h = H(x), где H — это хеш-функция. Мы еще вернемся к объяснению этого смарт-контракта в последней статье. time-lock — это смарт-контракт, который блокирует деньги до указанного в нем времени.

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

Когда вы хотите потратить деньги, криптовалютный кошелек сканирует блокчейн / базу данных на наличие принадлежащих вам сейфов (inputs) и генерирует доказательства владения этими сейфами (segregated witness). Далее он берет предоставленный вами адрес для отправки и генерирует смарт-контракт, который заблокирует ваши деньги в новом сейфе (outputs), и этот сейф сможет открыть только получатель.

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

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

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

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

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

 

Государство и общество

Ждем новостей

Нет новых страниц

Следующая новость