Програмована конфіденційність та використання гомоморфного шифрування для відповідності на ланцюжку

1/11/2024, 5:35:26 AM
Розширений
Блокчейн
Стаття пояснює, як побудувати сумісний токен ERC20, використовуючи fhEVM та абстрагування ідентичності через ланцюжкові DID.

Кілька місяців тому криптозбірна команда в a16z опублікувалаВиклик Накамото, список найважливіших проблем, які потрібно вирішити в галузі блокчейну. Особливу увагу звернув четвертий: «Сумісна програмована конфіденційність», оскільки ми активно думали про це протягом певного часу. Сьогодні ми пропонуємо перше рішення з використанням гомоморфного шифрування та нашого конфіденційного протоколу розумного контракту fhEVM (якщо ви не знайомі з fhEVM, ви можете прочитати наші статті про конфіденційнітокен ERC20ісліпі аукціони).

fhEVM - це звичайний EVM з деякими попередніми компіляціями, які дозволяють обчислення на зашифрованих станах за допомогою нашої бібліотеки гомоморфного шифрування TFHE-rs. З погляду розробника тут немає криптографії: вони просто пишуть код Solidity, використовуючи надані нами типи даних (euint32, ebool і т. Д.). Однією з великих переваг fhEVM порівняно з іншими рішеннями щодо конфіденційності є те, що всі дані та обчислення відбуваються на ланцюжку. Це означає, що ви можете мати такий же рівень комбінаторності та доступності даних, як і у звичайних, текстових контрактах.

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

У цій статті ми покажемо, як побудувати сумісний токен ERC20, використовуючи onchain DIDs. Вихідний код для цього посібника можна знайти в папка зразківрепозиторію fhEVM.

Абстракція ідентичності через ланцюжок, конфіденційні DIDs

Децентралізований ідентифікатор (DID) - це унікальний цифровий ідентифікатор, який видано суб'єктом, таким як уряд, реєстратор, компанія або сам користувач. Цей DID може бути пов'язаний з криптографічним ключем, який підтверджує власність користувача DID, наприклад, гаманець EVM. Але він також може зберігати цілий ряд атрибутів, таких як вік користувача, національність, номер соціального забезпечення і т.д. Ці атрибути, з свого боку, можуть бути використані для доведення того, що ви задовольняєте певну умову (називається «атестація»), наприклад, бути повнолітнім або не бути громадянином Нарнії.

Більшість DIDs реалізовані клієнтською стороною і використовують докази з нульовим відкриттям для генерації атестацій. Хоча це прийнятно у багатьох випадках, це швидко ускладнюється, коли в операцію включені кілька користувачів, коли потрібно застосовувати складні правила до DID або коли потрібно зберігати загальний набір правил для всіх. Це в основному та сама компроміс, що й у застосунках розподілених та хмарних обчислень.

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

Проблема: кожен бачив би ідентичність кожного!

На щастя, у нас є рішення: гомоморфне шифрування, а точніше fhEVM! Завдяки можливості компонування в зашифрованому стані ми можемо розміщувати DID користувача безпосередньо в ланцюжку в зашифрованій формі, а сумісні програми перевіряють атрибути за допомогою простого виклику контракту. Можливість керувати ідентифікацією за допомогою смарт-контракту, який ми називаємо «Абстракція ідентичності», схожа на те, як можна керувати коштами за допомогою смарт-контракту з абстракцією облікового запису.

Цей посібник має 3 частини:

  • Абстракція ідентифікації виконується за допомогою реєстраційного контракту, який відповідає за управління ідентифікаціями та свідоцтвами. Тут ми припускаємо, що DIDs є офіційними урядовими ID. Сам реєстр управляється центральною владою (наприклад, AFNIC), яка може створювати реєстраторів (наприклад, компанії з KYC, такі як Onfido, Jumio і т. д.), які, з свого боку, можуть створювати користувальницькі DIDs. Користувач потім переходить до свого реєстратора, щоб управляти та оновлювати свої DIDs.
  • Регулювання визначається в контракті, який кодує набір правил для передачі токенів між особами на основі інформації, що міститься в їх DIDs. Фактично, воно забезпечує дотримання правил на рівні контракту, а не на рівні користувача.
  • Дотримуйтеся конфіденційних переказів реалізовано в дотриманні контракту ERC20, який використовує контракт регулювання для забезпечення дотримання у переказах токенів, без змін до самого API ERC20. У цьому прикладі ми використовуємо конфіденційний контракт ERC20, де баланси та суми приховані, але він працюватиме так само добре з звичайним, текстовим токеном ERC20.

Архітектура нашого протоколу конфіденційного DID Onchain

Договір реєстрації особистості

Контракт IdentityRegistry — це реєстр ідентифікаторів користувачів, які видаються реєстраторами та включають набір зашифрованих ідентифікаторів, таких як їх громадянство, вік, номер соціального страхування тощо. Ці ідентифікатори зберігаються як зашифровані 32-бітові значення (euint32).

Договір також вирішує дозволи, такі як:

  • Дозволяє власнику контракту (наприклад, AFNIC) додавати, видаляти або оновлювати реєстраторів.
  • Дозволяє реєстраторам додавати, видаляти або оновлювати створені ними користувальницькі DID.
  • Дозволяючи користувачам надавати смарт-контрактам доступ до конкретних атрибутів їх DIDs. Важливо зазначити тут, що користувач відповідальний за те, щоб не надавати доступ до зловмисних контрактів, так само, як вони відповідальні за те, щоб не допускати витрат токенів зловмисними контрактами.

Як перший крок, давайте реалізуємо логіку створення та управління DID:

Тепер наступним кроком є реалізація логіки для ідентифікаторів та контролю доступу.

Ідентифікатор - це просто рядок (наприклад, "дата народження") та зашифроване 32-бітне значення. Його може створювати або оновлювати лише реєстратор. Користувач не може створювати власні ідентифікатори, оскільки ми хочемо, щоб їх сертифікував реєстратор.

Оскільки ідентифікатори зашифровані, користувач повинен дати дозвіл контракту на доступ до конкретних значень, які ми обробимо за допомогою простого механізму контролю доступу, схожого на те, як ви можете дозволити контракту витрачати ваші токени ERC20.

контракт IdentityRegistry є EIP712WithModifier, Ownable

Тепер ми можемо завершити наш контракт реєстрації ідентичності, додавши необхідні методи доступу з деякими умовами та обробкою помилок.

контракт IdentityRegistry є EIP712WithModifier, Ownable

Договір про регулювання

Наступним кроком є створення нашого контракту про регулювання.

При впровадженні набору правил для переказів між двома особами важливо розуміти, що ці правила можуть змінюватися з часом. Наявність одного смарт-контракту, який визначає всю регуляцію для певного контексту, такого як переказ коштів, означає, що контракти ERC20 не повинні вести облік регулювання самостійно. Уряди можуть просто оновити цей контракт, і він автоматично пошириться на всі токени, які його реалізували.

На самому початку регуляторний контракт - це лише набір умов, які порівнюються з зашифрованими атрибутами ідентичності. Щоб уникнути зловживань, користувачі не надають безпосереднього доступу до регуляторного контракту, а надають доступ до контракту ERC20, який потім виконує делегований виклик до регуляторного контракту. Цей підхід забезпечує, що лише контракт ERC20, якому користувач довіряє, може отримати доступ до їхньої інформації. Пам'ятайте, що як відправник, так і отримувач повинні надати дозвіл на контракт ERC20, перш ніж може відбутися передача між ними.

У цьому прикладі ми реалізуємо деякі основні правила:

  • Перекази в межах країни необмежені, але перекази в іншу країну обмежені 10 000 токенами.
  • Користувач, внесений до чорного списку, не може переказувати або отримувати токени.
  • Користувач не може передавати токени в країну з чорного списку.

Замість відмови в операції, що може розкрити чутливу інформацію, ми просто встановимо суму переказу на 0, якщо одна з умов не виконується. Це використовує гомоморфний тернарний оператор, який називається cmux: значення = TFHE.cmux(encryptedCondition, valueIfTrue, valueIfFalse

Дотримуючийся конфіденційний контракт ERC20

Тепер, коли у нас є реєстр ідентифікації та регуляційний договір, ми нарешті зможемо створити наш договір з токеном, який забезпечує відповідність та збереження конфіденційності. Цей договір буде називатися CompliantERC20 і матиме такі ключові функції:

  • Баланс користувача та сума переказу зашифровані.
  • Відповідність забезпечується у переказах за допомогою виклику контракту регулювання.
  • Видимість певних балансів може бути надана відміченим у білий список адресам (наприклад, регуляторам)

Договір регулювання викликається простим викликом. Це означає, що користувачі повинні надати доступ до контракту ERC20, перш ніж ініціювати будь-яку передачу; В іншому випадку переказ буде скасовано.

Нарешті, ми тепер можемо створити наш контракт ERC20:

Подібно до того, як користувачі надають дозволи протоколам DeFi на витрату своїх токенів, їм потрібно буде надати дозвіл контракту на доступ до ідентифікаторів, необхідних для регуляційного контракту. Це робиться шляхом виклику Identity.grantAccess(contractAddress, identifiers), який можна отримати, викликавши метод перегляду ERC20.identifiers(). Цей список надходить безпосередньо з контракту ERC20Rules для дозволу оновлення властивостей.

Відповідність та конфіденційність можуть існувати поруч!

Сподіваюся, цей посібник показав вам, що відповідність - не складна річ для побудови, якщо є правильні інструменти. Хоча спочатку ми створили fhEVM для забезпечення конфіденційності в блокчейні, ми швидко зрозуміли, що цю технологію можна використовувати для управління ідентичністю та програмованої відповідності.

Запропонований дизайн тут is far from perfect, but we believe it can easily be improved and launched as a real world use case, so that Відповідність no longer has to be synonymous with surveillance!

Додаткові посилання

Попередження:

  1. Ця стаття була передрукована з [ zama]。 Усі авторські права належать оригінальному авторові [fhEVM]. Якщо є заперечення до цього перевидання, будь ласка, зв'яжіться з Ворота Навчаннякоманда, і вони вирішать це негайно.
  2. Відповідальність за відмову: Погляди та думки, висловлені в цій статті, є виключно тими, хто їх написав, і не становлять жодних інвестиційних порад.
  3. Переклади статей на інші мови виконуються командою Gate Learn. Якщо не зазначено, копіювання, поширення або плагіатування перекладених статей заборонено.

Поділіться

Криптокалендар

Оновлення проекту
Etherex запустить токен REX 6 серпня.
REX
22.27%
2025-08-06
Рідкісний день розробників та управління в Лас-Вегасі
Cardano проведе Рідкісний День Розробників і Управління в Лас-Вегасі з 6 по 7 серпня, з майстер-класами, хакатонами та панельними дискусіями, зосередженими на технічному розвитку та темах управління.
ADA
-3.44%
2025-08-06
Блокчейн.Rio у Ріо-де-Жанейро
Stellar візьме участь у конференції Blockchain.Rio, яка запланована в Ріо-де-Жанейро з 5 по 7 серпня. Програма включатиме ключові виступи та панельні дискусії за участю представників екосистеми Stellar у співпраці з партнерами Cheesecake Labs та NearX.
XLM
-3.18%
2025-08-06
Вебінар
Circle оголосила про проведення вебінару Executive Insights під назвою "Ера GENIUS Act починається", запланованого на 7 серпня 2025 року о 14:00 UTC. У сесії буде розглянуто наслідки нещодавно прийнятого закону GENIUS Act — першої федеральної регуляторної рамки для платіжних стейблкоїнів у Сполучених Штатах. Обговорення, яке проведуть Дант Диспарт і Кері Тен з Circle, зосередиться на тому, як це законодавство вплине на інновації у сфері цифрових активів, регуляторну ясність та лідерство США у глобальній фінансовій інфраструктурі.
USDC
-0.03%
2025-08-06
АМА на Х
Ankr проведе AMA в X 7 серпня о 16:00 UTC, зосередившись на роботі DogeOS зі створення прикладного рівня для DOGE.
ANKR
-3.23%
2025-08-06

Статті на тему

Що таке Coti? Все, що вам потрібно знати про COTI
Початківець

Що таке Coti? Все, що вам потрібно знати про COTI

Coti (COTI) — це децентралізована та масштабована платформа, яка підтримує безперебійні платежі як для традиційних фінансів, так і для цифрових валют.
11/2/2023, 9:09:18 AM
Що таке Стейблкойн?
Початківець

Що таке Стейблкойн?

Стейблкойн — це криптовалюта зі стабільною ціною, яка часто прив’язана до законного платіжного засобу в реальному світі. Візьмемо USDT, наразі найпоширеніший стейблкоїн, наприклад, USDT прив’язаний до долара США, де 1 USDT = 1 USD.
11/21/2022, 7:48:32 AM
Все, що вам потрібно знати про Blockchain
Початківець

Все, що вам потрібно знати про Blockchain

Що таке блокчейн, його корисність, значення шарів і зведень, порівняння блокчейнів і як будуються різні криптоекосистеми?
11/21/2022, 8:25:55 AM
Що таке Gate Pay?
Початківець

Що таке Gate Pay?

Gate Pay — це безконтактна безпечна технологія платежів у криптовалюті без кордонів, повністю розроблена Gate.io. Він підтримує швидкі платежі криптовалютою та є безкоштовним у використанні. Користувачі можуть отримати доступ до Gate Pay, просто зареєструвавши обліковий запис Gate.io, щоб отримувати різноманітні послуги, такі як покупки в Інтернеті, бронювання авіаквитків і готелів, а також розважальні послуги від сторонніх ділових партнерів.
1/10/2023, 7:51:00 AM
Що таке BNB?
Середній

Що таке BNB?

Binance Coin (BNB) — це біржовий токен, випущений Binance, а також корисний токен Binance Smart Chain. Оскільки Binance перетворюється на трійку найкращих криптовалютних бірж у світі за обсягом торгів, разом із нескінченними екологічними додатками на своєму розумному ланцюжку, BNB став третьою за величиною криптовалютою після Bitcoin та Ethereum. У цій статті буде детально описано історію BNB і величезну екосистему Binance, що стоїть за нею.
11/21/2022, 8:55:52 AM
Що таке Wrapped Ethereum (WETH)?
Початківець

Що таке Wrapped Ethereum (WETH)?

Wrapped Ethereum (WETH) – це версія ERC-20 рідної валюти блокчейну Ethereum, Ether (ETH). Токен WETH прив'язаний до оригінальної монети. На кожен WETH в обігу є ETH в резерві. Метою створення WETH є сумісність у мережі. ETH не відповідає стандарту ERC-20, і більшість DApps, створених у мережі, дотримуються цього стандарту. Тому WETH використовується для полегшення інтеграції ETH у програми DeFi.
11/24/2022, 8:49:09 AM
Розпочати зараз
Зареєструйтеся та отримайте ваучер на
$100
!