По сути, я хотел бы иметь уникальные записи, которые можно передавать между сторонами, и никто не знает, кому принадлежит конкретная запись, до тех пор, пока не произойдет передача, и только получатель может сказать, кому принадлежит запись.
В основном мне любопытно, возможно ли что-то подобное даже теоретически. Мне особенно интересно знать, достиг ли кто-то этого.
Я бы не исключал.
Многое будет зависеть от точной формулировки гарантий, которые должна предоставлять система. Например, «пока не произойдет передача, в этот момент только получатель может сказать, кому принадлежит запись».
Все идет нормально. Итак, должен ли получатель быть скрыт от всех остальных, чтобы этот процесс мог повториться, или можно с этого момента раскрывать право собственности на актив? Другими словами, является ли секретом только первоначальный владелец или вся цепочка поставок? Есть ли преимущество в сокрытии продавца от покупателя?
Я склонен думать, что это теоретически возможно, но нетривиально. Речь идет о разработке процессов запутывания и распутывания фактов и формулировании доказательств.
Надеюсь, поможет.
Если ваш NFT совместим с ERC721, то нет, согласно не доработанному стандарту ERC721 , это невозможно. Требование стандарта заключается в том, чтобы ваш контракт токена NFT содержал следующую функцию.
function ownerOf(uint256 _tokenId) external view returns (address);
Функция принимает один аргумент (tokenId) и возвращает адрес владельца токена.
owner
установлено что-то вроде протокола Tornado, хотя до тех пор, пока в протокол не будет добавлено достаточное количество NFT, найти владельца будет тривиально. Это единственная проблема с технологией обфускации в Ethereum, она не обеспечивает настоящей конфиденциальности для первых последователей.Чтобы добавить к ответу @anAllergyToAnalogy.
Даже если ваш токен не соответствует стандарту ERC721, вы, по сути, спрашиваете, возможно ли хранить секретную информацию в блокчейне. Вы, наверное, знаете, что ответ в значительной степени «нет».
Вы можете придумать всевозможные решения, но обычно они включают шифрование перед отправкой в блокчейн, а сам контракт не будет иметь доступа к информации без помощи извне. И в этом случае смысл использования Ethereum немного теряется.
zknifty — это рабочий пример невзаимозаменяемых токенов (NFT), основанных на доказательствах zk-SNARK. Однако он не был разработан для обеспечения конфиденциальности, поскольку его целью является « сжатие » нескольких транзакций в одно доказательство (т. е. минимизация хранимых данных в смарт-контракте). Основная идея заключается в том, что смарт-контракт хранит только корень дерева Меркла, любое изменение которого соответствует следующим требованиям:
- Фактический владелец передаваемого токена подписал сообщение
- Это сообщение состоит из идентификатора токена и адреса получателя.
- Подпись действительна
- Передача токена отражена в новом дереве merkle
Прообраз листьев этого дерева содержит открытый ключ владельца и идентификатор NFT. Это обеспечивает некоторую конфиденциальность, поскольку в контракте хранится только корень дерева, и невозможно получить информацию из этих доказательств.
Однако есть некоторые предостережения:
Отказ от ответственности : я не автор zknifty
пользователь9657
Роб Хитченс