Рассмотрение возможностей smart-контрактов на примере контракта, автоматизирующего взаимодействие между арендодателем и арендатором жилья
Журнал: Научный журнал «Студенческий форум» выпуск №1(22)
Рубрика: Технические науки
Научный журнал «Студенческий форум» выпуск №1(22)
Рассмотрение возможностей smart-контрактов на примере контракта, автоматизирующего взаимодействие между арендодателем и арендатором жилья
Сегодня все системы работают по централизованной модели, и необходимо привлечь большое количество посредников для заключения контракта между двумя сторонами: необходимо составить договор, обе стороны должны принять его условия, в случае разногласий и невыполнения одной из сторон условий договора необходимо вмешательство со стороны государства, а для выполнения всех финансовых операций необходимо задействовать финансовые учреждения.
Все это влечет за собой дополнительные траты с обеих сторон, замедляет процесс заключения контракта и не дает ни одной из сторон уверенности в том, что, в случае разногласий, с ней поступят справедливо, ведь решение в конечном итоге принимает посредник. Умные контракты позволяют избежать всего этого, именно поэтому можно предположить, что в ближайшее время их начнут использовать повсеместно.
Несмотря на то, что умные контракты – относительно новая технология, задумываться о ней начали еще в далеком 1994-м году, но в то время не было необходимого инструмента, децентрализованного реестра, который позволял бы в полной мере реализовать эту идею. Ситуация изменилась в 2008 году с появлением технологии Blockchain.
Blockchain (block chain – цепочка блоков) – своего рода база данных, которая хранится одновременно на множестве компьютеров. Каждый новый блок содержит группу новых записей (транзакций):
Рисунок 1. Структура блока в Blockchain
Перед тем, как сформированный блок присоединяется к цепи блоков, он проверяется другими участниками сети. После этого внести изменения в блок невозможно. Таким образом, можно сформулировать основные принципы Blockchain:
· Децентрализация (благодаря чему отсутствует возможность подмены блоков).
· Безопасность и защищенность (данные шифруются с помощью алгоритма шифрования с использованием хэш-функций, а также используются цифровые подписи, состоящие из двух частей: открытый и закрытый ключи).
· Прозрачность (посмотреть данные того или иного блока может любой желающий).
Теперь можно перейти непосредственно к smart-контрактам. Умный контракт – это фрагмент программного кода, хранящийся в Blockchain. Умные контракты позволяют заключать сделки (обмениваться деньгами, собственностью и т.д.) не прибегая к услугам посредников. Участники сделки могут быть уверены в том, что условия контракта будут выполнены, ведь это контролируется математическим алгоритмом.
Рисунок 2. Образец умного контакта, написанного на платформе Ethereum.
Источник: www.ethereum.org/token
Программный код следит за выполнением условий контракта и автоматически определяет, что делать с указанным активом (передать участнику сделки, вернуть и т.д.). Достоверность и защищенность условий контракта обеспечивается тем, что его копия хранится в децентрализованном реестре, благодаря чему ни одна из сторон не может изменить заранее установленные условия контракта.
«Умные контракты не делают возможным то, что ранее было невозможным, они просто позволяют решать распространенные проблемы, сводя к минимуму необходимость доверия. Зачастую минимум доверия бывает весьма удобным, так как при этом устраняется «человеческий фактор» и обеспечивается полная автоматизация» [3, c.45]
В основном smart-контракты пишутся на языке программирования Solidity. Разберем принципы их написания на реальном примере: контракт, заключаемый при аренде квартиры.
Арендатор заключает договор с арендодателем на определенный промежуток времени, условия которого фиксируются в Blockchain. После этого арендатор получает ключи от квартиры. Для полноценной работы умного контракта необходима возможность управления замком арендуемого жилья с помощью управляющего устройства (компьютера, управляющей платы и т.д.), подключенного к интернету. Если арендатор нарушает условия договора (например, не заплатил за следующий месяц аренды), замок автоматически блокируется до тех пор, пока на счет арендодателя не поступит перевод необходимых средств от арендатора. Залог возвращается после окончания срока аренды.
Для написания контракта воспользуемся средой Remix. В качестве устройства, управляющего замком, выберем плату Arduino Leonardo по причине простоты использования и существования большого количества готовых библиотек. Подключение к интернету можно осуществить или с помощью компьютера (подойдет и Raspberry Pi), или с помощью модуля ESP8266, подключенного к сети Wi-Fi. В нашей работе выберем первый способ подключения. Arduino «общается» с компьютером по интерфейсу UART.
Рисунок 3. Часть контакта, осуществляющая контроль за своевременной оплатой аренды
Далее, получив одно из значений true или false, по интерфейсу UART передаем это значение на плату Arduino Leonardo, которая управляет замком в соответствии с представленной ниже программой.
Рисунок 4. Управление замком с помощью Arduino Leonardo
Рисунок 5. Схема подключения сервопривода, осуществляющего защелкивание замка
Таким образом, мы получаем неприкосновенный цифровой договор, в котором предусмотрены все возможные исходы, и возможности для обмана не существует.