Приватність на Tezos: zk-SNARKS вже є чи ні?

Приватність на Tezos: zk-SNARKS вже є чи ні?

Ще у 2019 році core-розробники Tezos говорили про включення до протоколу zk-SNARKS —  рішення для повністю анонімних транзакцій. Третя сторона не бачить адрес відправника та одержувача, а також обсягу транзакції.

Як працює zk-snarks? Навіщо потрібна приватність транзакцій? Як анонімно відправляти Tez на Tezos? Ми все пояснимо.

Як працюють zk-SNARKS

zk-SNARKS — скорочення від “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge”, простими словами — доказ з нульовим розголошенням.

Ці докази дозволяють довести істинність якоїсь події іншим людям, не розкриваючи інформації про саму подію. Наприклад, Аліса може довести Бобу, що вона вирішила судоку, не показуючи рішення.

У блокчейні Zcash, розробники якого й реалізували zk-SNARKS, відправник доводить таке:

  • він володіє приватним ключем та контролює адресу;
  • він має токени, які може відправити;
  • закриту транзакцію підписано так, що її може змінити тільки відправник.

З цим доказом валідатори можуть переконатися, що транзакція, про зміст якої їм нічого не відомо, є валідною, і її можна включити до блокчейну.

Для роботи з zk-SNARKS потрібні два ключі: spending для відправки прихованих транзакцій та viewing для перегляду. За допомогою viewing-ключа можна, наприклад, показати аудиторам історію операцій, не розкриваючи її іншим користувачам.

Модель транзакцій Zcash повторює Bitcoin. Токени існують у вигляді зобов’язань (commitments), які в принципі схожі на невикористані виходи транзакцій (UTXO) у Bitcoin. Коли користувач надсилає таке зобов’язання іншою адресою, він відразу надсилає всім нодам так званий обнулювач (nulifier), який робить відправлене зобов’язання використаним.

До операцій додається доказ нульового розголошення, яке підтверджує, що хто б не відправив зобов’язання, воно дійсно існувало, раніше не було використано, і відправник мав право передати його іншій адресі.

У результаті користувачі передають один одному зобов’язання-токени, але ніхто, крім учасників транзакції, не знає хто, кому і скільки відправив.

Навіщо потрібна приватність транзакцій

Публічні блокчейни псевдоанонімні. Власники гаманців приховані за адресами, але вони не можуть отримати криптовалюту водночас законно та анонімно. Для цього потрібний фіатний шлюз на кшталт біржі чи обмінника, який точно попросить особисті дані чи збереже номер банківської картки. За цією інформацією зацікавлені особи можуть визначити особу власника гаманця.

Також не всім користувачам подобається, що історія їх операцій у блокчейні відкрита. Наприклад, будь-яка людина може дізнатися скільки заробив NFT-художник або стежити за операціями китів, як це робить @whale_alert.

Крім того, приватність могла б стати в пригоді і для інших завдань, наприклад для анонімних голосувань у DAO, інвестування в пули ліквідності або покупки NFT.

Чи є приватні транзакції в Tezos

Так, є хоч і називаються не zk-SNARKS, а Sapling. Sapling — оновлення протоколу Zcash з покращеною версією zk-SNARKS: швидше і з новими типами прихованих адрес. Однак під Sapling маються на увазі ті ж самі докази з нульовим розголошенням.

Команда Nomadic Labs повідомила про інтеграцію Sapling до протоколу Tezos ще в 2019 році. Створенням зобов’язань займаються смарт-контракти, які ведуть баланс зобов’язань та обнулювачів. Користувач відправляє tez смарт-контракту, він перетворює їх на зобов’язання (приховує) та повертає зобов’язання на окрему sapling-адресу користувача. Операції з зобов’язаннями приховані, і при деяких запобіжних заходах sapling-адресу не можна зв’язати з основною адресою користувача.

На Gitlab Tezos є невелика інструкція про те, як задеплоїти sapling-контракт, згенерувати spending і viewing-ключі, приховати tez, відправити приватну транзакцію і перетворити отримані приховані токени назад на tez. Це можна зробити у Tezos Client.

3 листопада цього року команда гаманця AirGap опублікувала пост про те, що поки не додаватиме підтримки Sapling-транзакцій для мейннету через виявлену вразливість у протоколі. Але в мережі Ghostnet через AirGap вже можна анонімно надсилати tez. Все як і має бути: створення окремої sapling-адреси, приховування та розкриття tez через смарт-контракт.

Підписуйтесь на соціальні мережі Tezos Ukraine, щоб нічого не пропустити:

  1. Telegram-канал
  2. Facebook.
  3. Twitter російською та українською мовами
  4. Twitter англійською мовою
  5. YouTube-канал
  6. Instagram
  7. LinkedIn
  8. hub на ForkLog

наступний

Яких типів проєктів ще немає на Tezos? Розбираємось!

Читайте схожі пости

Що таке мета-транзакції без транзакційних комісій?

Що таке мета-транзакції без транзакційних комісій?

Дорога до 1 000 000 TPS: історія оновлень Tezos

Дорога до 1 000 000 TPS: історія оновлень Tezos

Бонусний урок для блокчейн-індексерів: робимо простий токен трекер

Бонусний урок для блокчейн-індексерів: робимо простий токен трекер

Читайте блог і не пропускайте новини про TezosЧитати блог

Спільнота