Конфиденциальность данных

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

Платформа Waves Enterprise поддерживает два варианта хранения конфиденциальных данных:

../_images/policy-1.png

Группы доступа

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

Группа доступа имеет следующие параметры:

  • имя (policyName);

  • описание (Description);

  • список получателей конфиденциальных данных (Recipients);

  • список участников с правами на редактирование состава участников группы (Owners).

Создание группы доступа происходит при помощи отправки в блокчейн транзакции CreatePolicy (type = 112, создание группы).

Владельцы группы имеют право изменять состав участников группы доступа. Для изменения состава участников группы необходимо отправить в блокчейн транзакцию UpdatePolicy (type = 113, редактирование группы доступа).

Для внешних приложений в API ноды реализованы запросы, которые возвращают сведения по группе и данным, передаваемым внутри группы: GET /privacy/{policy}/recipients, GET /privacy/{policy}/getHashes, GET /privacy/getInfo/{hash}.

Отправка и получение данных

Отправляемые данные пересылаются посредством POST /privacy/sendData запросом через собственную ноду организации, в которой проверяется принадлежность отправителя к указанной им группе. Если проверка выполнена успешно, то данные записываются в хранилище ноды, и инициируется транзакция PolicyDataHash (type = 114, отправка хеш-суммы данных в сеть) с посчитанной хеш-суммой от передаваемых данных. Передать в сеть данные можно размером не более 20 МБ.

При получении транзакции с хеш-суммой от передаваемых данных принимающая сторона проверяет причастность блокчейн-узла организации к указанной в транзакции группе. Если участник состоит в группе, то выполняется запрос getPrivateData на получение конфиденциальных данных. Запрос выполняется к сетевому адресу участника группы по установленному P2P соединению. Для обеспечения безопасности при передачи данных по незащищенному каналу связи используется криптографический протокол Диффи - Хеллмана.