Я планирую сделать приложение, использующее Ethereum, которое будет хранить личные данные о пользователе. В конце концов, я хочу, чтобы эти данные были доступны выбранным пользователям.
Я видел противоречивые ответы и обсуждения в различных темах на SE, Reddit и других статьях о том, как лучше всего подойти к этому. Хотя вот некоторые варианты, которые я рассматривал:
Я мог бы зашифровать с помощью ключа и добавить в блокчейн, но разве это не эквивалентно взлому базы данных? Данные, конечно, зашифрованы, но они общедоступны ( Виталик предполагает, что это нетехнологично . Может кто-нибудь подсказать, почему это нехороший метод?). Кроме того, это может стать дорогостоящим из-за большого количества транзакций.
Используйте Quorum, не уверен на 100%, подходит ли он для моего варианта использования.
Zcash может предложить решение для конфиденциальных данных (еще не изучал его полностью), хотя я бы предпочел, если это возможно, использовать Ethereum, у которого может быть более долгая жизнь.
Я мог бы пойти по тому же маршруту, что и лимонная электронная почта : данные транзакций сообщений в эфириуме, зашифрованные данные в IPFS, внешний интерфейс в IPFS.
Я чувствую, что 4 (лимонная электронная почта) — лучший вариант, хотя это похоже на мошенничество, потому что данные не находятся в блокчейне.
Есть ли другие варианты, которые я должен рассмотреть? Есть ли лучший способ реализовать это?
Я не думаю, что решение номер 4 является обманом. Блокчейн — это скорее механизм консенсуса, а не совсем база данных, если вы будете хранить все свои данные в общедоступном блокчейне, это тоже будет довольно дорого. Хранение основной части данных в ipfs или swarm, а затем просто хэш в блокчейне становится стандартным решением для Dapps, позволяющим избежать высоких затрат.
Во время написания моего вопроса одной вещью, которую я не учел, была ключевая особенность использования Ethereum в первую очередь... неизменность. Частные данные, которые я хочу хранить, также должны быть неизменяемыми. Это то, что может предложить только блокчейн, поэтому в данном случае я выберу вариант 1 — хранение личных данных в сети.
Меня беспокоило то, что каким-то образом данные могут быть расшифрованы, но, похоже, мне не о чем беспокоиться.
Я буду шифровать с помощью sha3 (ну, версия keccak для Эфириума), которая даже предлагает защиту от квантовых атак, поэтому этого должно быть более чем достаточно, чтобы сделать любые личные данные в цепочке безопасными. Я не могу найти много несмешных технических предложений относительно того, сколько времени может занять расшифровка, кроме этой статьи.
Если квантовую коррекцию обрабатывают ASIC, работающие со скоростью несколько миллионов хэшей в секунду (и если электронная таблица Vulture South верна), алгоритму Гровера потребуется около 10 32 лет, чтобы взломать SHA-256 или SHA3-256.
Я не нашел лучшей альтернативы, поэтому, если у кого-то есть предложения, пожалуйста, высказывайтесь.
Кроме того, я не нашел ответа, почему Виталик считает его нетехнологичным и какая есть подходящая альтернатива.
Вариант 2. Кворум кажется подходящим только для организаций, которые хотят обмениваться данными друг с другом.
Вариант 3 - я не рассматривал zcash, так как хотел придерживаться Ethereum
Вариант 4 - Мне не подходит, нужно, чтобы данные были неизменяемыми.
Изменить: поэтому я не знал, что sha3 предлагает одностороннее шифрование (да, я нуб). Поскольку я новичок в этой области, я не уверен, какой алгоритм будет лучше, поэтому мои поиски продолжаются...
Редактировать 2 (2018-04-30): Попытавшись реализовать это позже, я обнаружил, что когда вы добавляете плату за газ, цены могут быть довольно сумасшедшими. Поскольку цены непредсказуемы и очень высоки для больших объемов данных, для моих целей я счел блокчейн недоступным для моего варианта использования. Это не значит, что вы, конечно, не должны... это зависит от вашей пользовательской базы и того, сколько они готовы платить. Когда я в последний раз смотрел на цены пару месяцев назад, это примерно сработало так: что-то вроде 64 символов будет стоить ~ 1,70 фунта стерлингов для хранения хэша из 64 символов. Чем я сейчас и занимаюсь.
Джо
рудольф9