Установка и использование платформы

Обмен конфиденциальными данными

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

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

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

Важно

Если вы передаёте конфиденциальные данные в своей приватной блокчейн сети, то для перехода с версий более старых, чем 1.7.2, необходимо сначала перейти на версию 1.7.2, а затем – на версию 1.8 и выше. Это связано с изменением протокола передачи конфиденциальных данных.

Создание группы доступа

Создать группу доступа к конфиденциальным данным (которая в этой документации называется также политика или policy) может любой участник сети.

В группе существуют две роли:

  • recipient – участник обмена данными; может читать данные группы и отправлять данные другим её участникам;

  • owner – владелец (администратор) группы; помимо доступа к конфиденциальным данным, может изменять состав участников группы.

Прежде чем создавать группу доступа, определитесь со списком участников, которые будут в нее входить.

Затем подпишите и отправьте транзакцию 112 CreatePolicy:

  1. В поле recipients укажите через запятую адреса участников, которые получат доступ к конфиденциальным данным.

  2. В поле owners укажите через запятую адреса владельцев (администраторов) группы доступа.

Например:

policyName: "Private data exchange 1"
description: "This group is made to share private data..."
recipients: [
    "3AqTkL47j..."
    "5GdYrt9fD...."
]
owners: [
    "8FhBlR12g..."
]
fee: ...
timestamp: ...

При отправке транзакции вы получите идентификатор подписанной транзакции CreatePolicyTransaction; этот же идентификатор является идентификатором созданной группы доступа (policyId). Он потребуется в дальнейшем для изменения состава участников группы.

После отправки транзакции в блокчейн доступ к отправляемым в сеть конфиденциальным данным получат все участники, зарегистрированные в созданной группе доступа.

Как создатель транзакции, вы сможете изменять состав группы, как и участники, добавленные в поле owners.

Изменение группы доступа

Для изменения состава группы доступа владелец подписывает и отправляет транзакцию 113 UpdatePolicy:

  1. В поле policyId введите идентификатор изменяемой группы доступа.

  2. В поле opType введите действие, которое необходимо произвести с группой:

    • add – добавить участников;

    • remove – удалить участников.

  3. Если вы хотите добавить или удалить участников группы доступа, впишите их публичные ключи в поле recipients.

  4. Для добавления или удаления владельцев группы доступа впишите их публичные ключи в поле owners.

Информация о группе доступа обновляется после отправки транзакции в блокчейн.

Изменять состав группы доступа могут только владельцы группы доступа к конфиденциальным данным: ее участники, добавленные в поле owners при создании группы, а также сам ее создатель. Если в группе несколько владельцев, то каждый из них может изменять группу самостоятельно, то есть в транзакции 113 UpdatePolicy достаточно одной подписи.

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

Хранилище конфиденциальных данных

Для получения и отправки конфиденциальных данных необходимо настроить хранилище конфиденциальных данных. Для этого предназначен раздел privacy конфигурационного файла ноды.

Блокчейн-платформа Waves Enterprise позволяет использовать следующие типы хранилищ конфиденциальных данных:

Примечание

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

После настройки хранилища и создания группы можно отправлять конфиденциальные данные.

Отправка конфиденциальных данных в сеть

Для отправки конфиденциальных данных в сеть предусмотрены

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

Важно

Методы для отправки конфиденциальных данных в сеть недоступны при использовании PKI, то есть когда в конфигурационном файле ноды параметру node.crypto.pki.mode присвоено значение ON. В тестовом режиме PKI (node.crypto.pki.mode = TEST) или при отключенном PKI (node.crypto.pki.mode = OFF) методы можно использовать.

Эти методы требуют авторизации.