В этой главе рассматривается задача описания права владения способом, удобным для применения в полностью распределенной пиринговой системе реестров. Здесь объясняется, как блокчейн документирует право владения и выполняет процедуру передачи прав владения. Кроме того, в этой главе особенно отмечается важность порядка, в котором документируется передача прав владения. В конце главы также подчеркивается важность обеспечения целостности данных транзакций для сохранения целостности всей системы.
Эстафета – это забег команд бегунов, в котором каждый член команды пробегает только часть всей дистанции. Во время забега каждый бегун обязательно должен передать специальный предмет, так называемую эстафетную палочку, следующему бегуну в пределах определенной зоны, обозначенной на беговой дорожке. В любой момент забега только один член каждой соревнующейся команды несет эстафетную палочку. Чтобы определить, какой именно спортсмен из конкретной команды несет эстафетную палочку в текущий момент, достаточно знать, кому из членов этой команды была передана палочка во время последней передачи.
Для постоянного отслеживания владения эстафетной палочкой в любой момент времени необходимо фиксировать время каждой передачи и имена спортсменов, принимающих участие в эстафете. В этой главе рассматривается, как блокчейн трактует право владения в форме, до некоторой степени напоминающей владение и передачу палочки в эстафете.
Главной целью является документирование права владения абсолютно понятным для всех способом. Каждому читающему документацию должна быть предоставлена возможность сделать однозначное заключение о связи объектов и их владельцев.
Главная задача – поиск документации, которая не только объявляет владельца какого-либо объекта, но и предоставляет обоснование факта владения, следовательно, является доказательством права владения.
Вместо описания текущего состояния прав владения по инвентаризационным данным (то есть по списку имеющихся в настоящее время объектов собственности всех владельцев) обслуживается список всех фактов передачи права владения в реестре в оперативном режиме. Каждая передача права владения описывается данными транзакции, которые ясно указывают, какой владелец передает право владения, передаваемый объект, кому передается право и в какое время. Полная хронологическая запись данных транзакции, сохраняемая в реестре, становится контрольной журнальной записью, которая свидетельствует о том, каким образом то или иное лицо получило объект собственности [26]. Это равнозначно отслеживанию факта передачи палочки в эстафетном забеге, что позволяет впоследствии воспроизвести ход всего забега в целом.
Существуют два противоположных способа описания права владения – данные инвентаризационной ведомости и данные транзакций. Данные инвентаризационной ведомости (inventory data) описывают текущее состояние объектов собственности. Это похоже на проверку банковского счета, при которой предъявляется только денежная сумма, доступная в текущий момент. Данные транзакций (transaction data) описывают факты передачи права владения. Это похоже на проверку банковского счета, при которой предъявляется список всех операций по вкладам, снятиям и переводам денег. По полному списку данных транзакций можно сформировать данные инвентаризационной ведомости. За исключением того, что и инвентаризационная ведомость, и данные транзакций описывают права владения, основополагающие принципы этих двух подходов полностью противоположны. Данные инвентаризационной ведомости лишь утверждают или объявляют право владения, тогда как данные транзакций разъясняют, следовательно, обосновывают право владения. Тем не менее данные инвентаризационной ведомости часто считаются более удобными, так как они непосредственно отображают факт, в котором заинтересовано большинство людей, а именно текущее состояние объектов собственности.
Документирование прав владения с помощью блокчейна связано со следующими аспектами:
• описание передачи права владения;
• обслуживание хронологии передач права владения.
Описание передачи права владения
Транзакция (transaction) – это акт передачи права владения от текущего владельца другому лицу. Акт передачи права владения основан на данных, которые описывают предполагаемую передачу. Эти данные содержат всю информацию, необходимую для осуществления передачи права владения. Примером данных, описывающих предполагаемую передачу права владения, может служить форма банковского перевода, используемого для запроса к банку на перевод определенной денежной суммы от лица клиента. Форма банковского перевода предлагает предоставить всю информацию, необходимую для того, чтобы банк смог выполнить этот перевод от лица клиента. Подобным образом информация, используемая блокчейном для описания транзакции, содержит следующие элементы:
• идентификатор учетной записи, из которой право владения передается в другую учетную запись;
• идентификатор учетной записи, которая принимает право владения;
• количество передаваемых объектов владения (продукции);
• время, в которое выполняется данная транзакция;
• выплата системе за выполнение транзакции;
• подтверждение того, что владелец учетной записи, из которой передается право владения, действительно согласен с фактом передачи права.
Большинство этих данных знакомо каждому, кто когда-либо переводил деньги через банк. Но аналогия с банковским переводом перестает быть верной, когда рассматриваются платежи. Банки являются централизованными учреждениями, поэтому используют централизованную систему обслуживания платежей, применяемую для всех клиентов. В противоположность этому блокчейн представляет собой распределенную систему без центрального пункта управления. То есть блокчейн не имеет возможности централизованно выполнять платежи. При использовании блокчейна каждый пользователь должен заранее сообщить системе, сколько он собирается заплатить за выполнение планируемой транзакции. Учетная запись, передающая право владения, оплачивает также и саму транзакцию.
Обслуживание хронологии актов передачи прав
Данные транзакций предоставляют обязательную информацию, необходимую для выполнения передачи права владения в надлежащем порядке. Выполнение транзакции означает проведение процедуры передачи права владения в полном соответствии с данными этой транзакции. Выполнение транзакции означает добавление данных транзакции в реестр. После добавления данных транзакции в реестр эта транзакция становится частью хронологии транзакций, которая используется для точного определения права владения. Когда в очередной раз реестр применяется для определения права владения, объединяя все содержащиеся в нем данные транзакций, новая добавленная транзакция тоже будет включена в эту совокупность, следовательно, повлияет на итоговое состояние прав владения.
Блокчейн обслуживает полную хронологию всех выполненных транзакций, сохраняя соответствующие данные транзакций в структуре данных блокчейна в том порядке, в котором они выполнялись. Если какая-то транзакция не является частью этой хронологии, то считается, что она никогда не выполнялась. Таким образом, добавление данных транзакции в структуру данных блокчейна означает, что эта транзакция действительно имела место, и позволяет ей оказывать воздействие на результат обработки хронологии с целью точного определения текущего владельца.
Поскольку данные транзакции содержат всю информацию об учетной записи, передающей право владения, об учетной записи, принимающей право владения, об объектах передачи и передаваемом количестве, информация о текущем состоянии прав владения для каждой учетной записи может быть сформирована в любое время при условии доступности полной хронологии транзакций. Таким образом, полная хронология всех данных транзакций вполне достаточна для документирования прав владения.
Объединение данных транзакций выполняется для восстановления текущего состояния прав владения и точного определения конкретных прав владения. Важно понимать, что порядок выполнения транзакций должен быть сохранен для получения корректного результата при каждой операции объединения данных транзакций. Изменение порядка данных транзакций искажает результат их объединения. На первый взгляд, результат не должен существенно измениться, если я сначала получил от друга денежный перевод на сумму $50, затем перевел эти $50 для оплаты счета, даже если эти транзакции взять в обратном порядке. Но что произойдет, если мой банковский счет абсолютно пуст и снятие денег невозможно? В этом случае возможность оплатить счет зависит от того, получил ли я сначала перевод от друга. В противном случае банк запретит перевод денег для оплаты счета из-за отсутствия денег на банковском счете. Поэтому порядок выполнения транзакций чрезвычайно важен.
Можно без преувеличения сказать, что хронология транзакций является сердцем любой блокчейн-системы, управляющей правами владения, потому что хронология есть основа восстановления состояния прав владения. Поэтому необходимо следить за тем, чтобы хронология данных транзакций была защищенной, полной, корректной и логически согласованной для обеспечения целостности всей системы и для того, чтобы сохранять возможность вывода правильных заключений о текущем состоянии прав владения. Таким образом, блокчейн-система должна обеспечить средства защиты, гарантирующие, что в структуру данных блокчейна добавляются только действительно законные данные транзакций. При определении законности данных транзакций рассматриваются три аспекта:
• формальная корректность;
• семантическая (смысловая) корректность;
• авторизация.
Формальная корректность
Формальная корректность (formal correctness) означает, что описание транзакции содержит все требуемые данные, представленные в корректном формате.
Семантическая (смысловая) корректность
Семантическая (смысловая) корректность (semantic correctness) основное внимание уделяет смысловому значению данных транзакции и предполагаемому воздействию этих данных на результат. Таким образом, при проверке семантической корректности необходимы знания из прикладной области. Исследование семантической корректности часто основано на практических правилах ведения дел, таких как:
• не передает ли учетная запись количество объектов собственности, превышающее текущее количество объектов, находящееся в ее владении;
• предотвращение двойного расходования;
• ограничение количества объектов, передаваемых в одной транзакции;
• ограничение количества транзакций для одного пользователя;
• ограничение суммарного количества объектов, расходуемых (передаваемых) за определенный интервал времени;
• установление минимального интервала времени, в течение которого объект обязательно должен оставаться в собственности учетной записи, прежде чем появится возможность дальнейшей передачи права владения этим объектом.
Авторизация
Только владельцу учетной записи, передающей право владения, разрешено обращаться к блокчейн-системе для выполнения транзакции от своего лица. Поэтому блокчейн требует, чтобы в каждой транзакции содержалась информация, подтверждающая, что владелец учетной записи, выполняющей передачу права, действительно согласен с фактом этой передачи.
В этой главе рассматривались транзакции и их роль в определении права владения. Следующие главы в основном посвящены тому, как технология блокчейна обеспечивает добавление только проверенных корректных данных транзакций в хронологию и как осуществляется защита хронологии транзакций от искажений и подделок.
• Данные транзакций предоставляют следующую информацию для описания передачи прав владения:
– идентификатор учетной записи, из которой право владения передается в другую учетную запись;
– идентификатор учетной записи, которая принимает право владения;
– количество передаваемых объектов владения (продукции);
– время, в которое выполняется данная транзакция;
– денежный взнос, выплачиваемый системе за выполнение транзакции;
– подтверждение того, что владелец учетной записи, из которой передается право владения, действительно согласен с фактом передачи права.
• Полная хронологическая запись данных транзакции, сохраняемая в реестре, становится контрольной журнальной записью, которая свидетельствует о том, каким образом то или иное лицо получило объект собственности.
• Если какая-то транзакция не является частью хронологии транзакций, то считается, что она никогда не выполнялась.
• Добавление данных транзакции в структуру данных блокчейна означает, что эта транзакция действительно имела место, и позволяет ей оказывать воздействие на результат обработки хронологии с целью точного определения текущего владельца.
• Порядок выполнения транзакций и добавления их в хронологию должен быть сохранен для получения корректного результата при каждой операции объединения данных транзакций.
• Для обеспечения целостности в структуру данных блокчейна добавляются только данные транзакций, соответствующие следующим трем критериям:
– формальная корректность;
– семантическая (смысловая) корректность;
– авторизация.