Кошельки с временной блокировкой и смарт-контракты для них

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

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

Timelock — это тип простых смарт-контрактов, который ограничивает расходы определенной суммы криптовалюты до указанного будущего времени/номера блока/другого условия. Контракты с временной блокировкой занимают важное место во многих смарт-контрактах на Эфириуме и в сети Биткоин, включая платежные каналы и хешированные контракты (в Лайтининг).

Применение кошельков с блокировкой времени

Есть множество различных приложений Ethereum. Наиболее популярными на данный момент являются криптовалюты (реализованы как токены ERC20) и токенсейлы с обратным вводом (ICO). Также популярна идея блокировки средств в контрактах с криптокошельком. Сама эта идея имеет различные варианты использования:

На ICO

Существует несколько применений технологии, но, вероятно, наиболее распространенная причина блокировки средств — проведение ICO. Представьте, что вы только что провели успешную продажу токенов, и ваша компания по-прежнему владеет большинством из них, распределенных между членами команды. Важно, чтобы все участники гарантировали, что токены не будут немедленно проданы. Если нет контроля, любой сотрудник может передать свои токены, например, уходя из команды. Это отрицательно повлияет на рыночную стоимость и сделает всех оставшихся проигравшими, как и инвесторов.

Последняя воля и завещание

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

Пенсионный или целевой фонд

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

Личные цели

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

Представим себе, что мы хотим подарить один ETH кому-то на 18-летие. Можно записать на открытке приватный ключ и адрес кошелька, где хранятся средства. Единственное, что получателю нужно будет сделать, — это вызвать функцию по контракту со своей учетной записи, как только ему исполнится 18 лет, и все средства будут доступны. Нормально, но вместо этого мы могли бы написать DApp! 

Код time-locked контракта

Найти код можно на GitHub проектов, которые используют такие контракты на ICO (практически все).

И вот код для простейшего приложения для личных целей: ссылка.