Нотариат в токеномике

Материал из Montelibero

Нотариатом тут называется функия закрепления неких деклараций, контрактов, соглашений, надёжно фиксирующее соответствие подписанного документа, время и тех, кто подписал.

В токеномике Монтелиберо мы используем блокчеин Stellar. И в нём же стараемся заключать договора. Есть три основных подхода.

Хеш документа

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

Хеш — это цифровой отпечаток. Некая страка «абракадабры», которая всегда одинаковая для одного и того же документа, и совсем другая, если в этом документе заменить хоть один бит информации.

Почти всегда мы используем алгоритм SHA-256. Для определения хеша от строки текста можно воспользоваться одним из бесплатных онлайн инструментов, вроде такого https://emn178.github.io/online-tools/sha256.html. Там же есть версия для расчета хеша от файла, а также файл можно послать боту SkyNet, она в ответ пришлёт хеш.

Обратного преобразования из хеша в документ не существует, поэтому исходный документ тоже стоит сохранить в разных местах. Фисация же хеша в блокчейне позволяет в последствии утверждать, что речь шла именно вот об этом документе или тексте.

Разные методы

Чтобы эту фиксацию сделать, можно воспользоваться различными подходами.

На коленке

Послать друг-другу (или даже самому себе) 1 EURMTL, указав в MEMO (примечание к платежу) часть хеша.

Достоинства:

  • Очень легко сделать. Из любого Сталлар-кошелька.

Недостатки:

  • Часть хеша, потому что целиком хеш в текстовое MEMO не помещается, там лимит в 28 символов. В принципе, первые 28 символов хеша отлично решат ту же задачу.
  • Транзакции не будут явно связаны друг с другом.
  • Непонятно, как расторгать договор, скорее всего подписанием документа о расторжении.
  • Транзакция в истории оных пропадает где-то в глубинах истории. Более того, через год становится недоступной к нахождению и загрузки через публичные API сервера Стеллара.

Это хороший вариант для тех, кто уже созрел заключать договора не в переписке, но ещё ненастолько преисполнился, чтобы заморачиваться с «красотой» оформления.

Общая транзакция

Метод очень похож на предыдущий, но транзакция собирается внешними инструментами (не в обычных кошельках), у MEMO указывается тип HASH, и тогда туда полностью помещается SHA-256.

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

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

Такую транзакцию проще всего сделать в Лаборатория Stellar или в eurmtl.me/lab, а собрать для неё подписи через Sign Tools.

Достоинства:

  • Семантическая ясность. Транзакция не похожа на стандартные платежи, понятно, что все её участники специально заморачивались принять в ней участие. Их подписи связаны друг с другом и с общим MEMO.
  • MEMO содержит полный хеш от документа.

Недостатки:

  • Тяжело собирать транзакцию, требуются более глубокое понимание блокчеина Стеллар.
  • Не все кошельки корректно отображают MEMO с хешем.
  • Тоже не понятно, как фиксировать расторжение договора.
  • Тоже транзакция склонна теряться в истории.

Это хороший вариант, когда есть 2+ конкретных участника, которые фиксируют некий договор между ними. А сам этот договор будет актуальным в пределах года.

Публикация Data

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

Любой стеллар-аккаунт может вешать на себя произвольную пару с именем и знением. Так называемая Data Entry. Эта операция замораживает 0.5 XLM на счету, и размораживаются они обратно при удалении тега. Тег этот публичен, чаще всего его имя публикуется как есть, а вот значение часто отображается не всегда, как текст.

Именем DATA можно записать какое-нибудь стандартное название документа, например: MtlCityBuilding25Contract, или OurNAP. В значение полностью помещается SHA-256 хеш.

Достоинства:

  • Данные доступны всегда в списке основных параметров стеллар-аккаунта.
  • Их не нужно искать в истории транзакций.
  • Легко и ясно оформлять отзыв подписи: просто удаляется DATA параметр.
  • К контракту легко присоединяться независимо.

Недостатки:

  • Обычные кошельки не умеют редактировать DATA. MW умеет.
  • Если вы заключаете множество контрактов, то список DATA может быть просто огромным.

Этот метод хорош для публичных оферт с формальным подписанием, а также отлично решает проблему долгосрочных договоров и более ясно отображает статус отзыва подписи (а уж односторонее ли это расторжение, или контракт просто исполнен — можно уточнить в MEMO).

Идентификация

Все методы заключения контрактов на блокчейне не решают сами по себе задачу убедительной идентификации контрагентов. Другими словами — связь стеллар-аккаунта и конкретного человека, телеграм-аккаунта и прочее. Одним из методов решения этой задачи — участие в Ассоциации Монтелиберо. Также можно воспользоваться услугами других свидетелей.