Как сделать транзакцию в Hyperledger Sawtooth частной?
Есть ли способ сделать транзакции в SawTooth приватными?
Я знаю, что у HyperLedger Fabric есть "каналы", а у Quorum есть частные транзакции, поэтому ищу что-то подобное, но не вижу этого:
https://sawtooth.hyperledger.org/docs/core/releases/latest/architecture.html
Конечно, теоретически можно реализовать процесс шифрования / дешифрования, но это громоздко для отслеживания (если это зашифрованная или дешифрованная полезная нагрузка)
2 ответа
Поскольку Sawtooth разрешен, можно настроить пользователей с разными ролями и правами доступа. Это позволит вам создавать транзакции, которые являются частными для конкретных идентификаторов.
Вы можете настроить валидатор так, чтобы он принимал транзакции только от идентификаторов, перечисленных в локальном файле конфигурации. Или используйте пространство имен идентификаторов, чтобы установить разрешенные идентификаторы, которые будут проверяться при получении транзакции от клиента или при проверке блока.
Посмотрите семейство транзакций идентификации для более подробной информации о том, как Sawtooth управляет идентификацией и разрешениями:
Описанная здесь система идентификации является расширяемой системой на основе ролей и политик для определения разрешений способом, который может использоваться другими частями архитектуры. Это включает в себя существующие компоненты разрешения для ключа транзакции и ключа валидатора, но в будущем могут также использоваться реализациями семейства транзакций.
Пространство имен идентичности:
- Включает в себя способы идентификации участников на основе открытых ключей
- Хранит набор разрешений и запрещающих правил, называемых "политиками"
- Хранит роли, к которым применяются эти политики
Существует экспериментальная функция, называемая Sawtooth Private Data Objects (PDO). Объекты блокчейна, которые хранятся в секрете с помощью шифрования.
Для получения дополнительной информации см. https://github.com/hyperledger-labs/private-data-objects/tree/master/sawtooth Документы см. В этом твите: https://twitter.com/kellymolson/status/1019299515646406656
Кроме того, вы можете зашифровать свою полезную нагрузку, чтобы другие пользователи, не имеющие закрытого ключа, не могли увидеть его в блокчейне. Или вы можете просто сохранить хэш / контрольную сумму в вашей полезной нагрузке.
Мы можем использовать Семейства частных транзакций, предоставленные лабораториями Hyperledger.
https://github.com/hyperledger-labs/private-transaction-families
Система основана на общей инфраструктуре распределенной бухгалтерской книги (Hyperledger Sawtooth) и защищенном процессоре транзакций Intel® SGX (Software Guard Extensions), который обеспечивает механизм, позволяющий Hyperledger Sawtooth содержать личную информацию, которая одновременно не является общедоступной, но требуется для проверять транзакции.
Для получения дополнительной информации о том, как работают частные семейства транзакций, см. Следующую ссылку
https://github.com/hyperledger-labs/private-transaction-families/blob/master/SPECIFICATION.md