{"news":{"id":"633"}}

Что за смарт-контракты?

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


Юристы спорят о том, являются ли с правовой точки зрения смарт-контракты договорами либо механизмом исполнения договоров. Хотя применение кода при исполнении обязательств по договору вместо человека может быть реализовано в произвольной информационной системе, для широкого применения необходимы общепризнанные платформы. Сегодня таковыми становятся блокчейн-системы или в терминологии 259-ФЗ «распределенные реестры», среди которых наибольшую популярность и доверие в мировом масштабе завоевал Ethereum.

В 2019 году в 309 статью Гражданского кодекса было внесено положение о возможности исполнения сторонами сделки обязательств при наступлении определенных обстоятельств путем применения определенных условиями сделки информационных технологий, причем без отдельно выраженного волеизъявления сторон. Это положение, а также появление в ГК цифровых прав, действующих в рамках информационной системы, считается основой для правового признания смарт-контрактов в РФ.

8 июня 2021 года в Ethereum была осуществлена опосредованная сделка с недвижимостью. Победителю аукциона было автоматически передано право владения компанией (как NFT-токен), что влечет за собой передачу прав на принадлежащее ей помещение. По ссылке https://etherscan.io/... можно ознакомиться со сделанными на аукционе ставками, а по адресу https://etherscan.io/... доступен код примененного смарт-контракта на языке Solidity. 

В основном коде реализован механизм аукциона, а в функции end() мы видим процедуру передачи прав. После выполнения ряда проверок осуществляется передача права на токен, ассоциированный с компаний победителю, расчет комиссии платформы, её выплата, совершение платежа и команда на окончание аукциона:

  • IERC721(token).safeTransferFrom(address(seller), winning, id);
  • uint256 balance = address(this).balance;
  • uint256 hausFee = balance.div(20);
  • haus.transfer(hausFee);
  • seller.transfer(address(this).balance);
  • ended = true;
  • emit Won(winning, lastBid).

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