Privasi Terprogram dan Kepatuhan Onchain menggunakan Enkripsi Homomorphic

1/11/2024, 5:35:26 AM
Lanjutan
Blockchain
Artikel ini menjelaskan cara membuat token ERC20 yang sesuai menggunakan fhEVM dan mengabstraksi identitas melalui DID on-chain.

Beberapa bulan yang lalu, tim kripto di a16z menerbitkan Tantangan Nakamoto, daftar masalah paling penting untuk dipecahkan di blockchain. Yang keempat secara khusus menarik perhatian kami: "Compliant Programmable Privacy", karena kami telah secara aktif memikirkan hal ini selama beberapa waktu. Hari ini, kami mengusulkan solusi pertama menggunakan enkripsi homomorfik dan protokol kontrak pintar rahasia fhEVM kami (jika Anda tidak terbiasa dengan fhEVM, Anda dapat membaca artikel kami tentang rahasia token ERC20danlelang buta.

fhEVM adalah EVM biasa dengan beberapa precompile yang memungkinkan komputasi pada status terenkripsi menggunakan perpustakaan enkripsi homomorfik TFHE-rs kami. Dari sudut pandang pengembang, tidak ada kriptografi yang terlibat: mereka hanya menulis kode Solidity menggunakan jenis data terenkripsi yang kami sediakan (euint32, ebool, dll). Salah satu keuntungan besar fhEVM dibandingkan dengan solusi privasi lainnya adalah bahwa semua data dan komputasi terjadi onchain. Ini berarti Anda dapat memiliki tingkat komposabilitas dan ketersediaan data yang sama seperti kontrak reguler, teks polos.

Properti ini adalah kunci untuk membangun privasi yang dapat diprogram, karena semua logika kontrol akses dapat ditentukan dalam kontrak itu sendiri. Tidak ada yang perlu dimasukkan secara kaku ke dalam protokol, dan tidak ada yang harus dilakukan pengguna di luar rantai untuk patuh. Aplikasi dapat menegakkan kepatuhan secara langsung, hanya dengan beberapa baris kode Solidity!

Dalam artikel ini, kami akan menunjukkan cara membangun token ERC20 yang patuh, menggunakan DIDs onchain. Kode sumber untuk tutorial ini dapat ditemukan di folder contoh dari repositori fhEVM.

Abstraksi identitas melalui DIDs yang rahasia di onchain

Pengenal Terdesentralisasi (DID) adalah identitas digital unik yang dikeluarkan oleh entitas seperti pemerintah, pendaftar, perusahaan, atau pengguna itu sendiri. DID ini dapat dikaitkan dengan kunci kriptografi yang membuktikan pengguna memiliki DID, seperti dompet EVM. Tetapi juga dapat menyimpan sejumlah besar atribut, seperti usia pengguna, kebangsaan, nomor jaminan sosial, dll. Atribut-atribut ini pada gilirannya kemudian dapat digunakan untuk membuktikan bahwa Anda memenuhi beberapa kondisi (disebut "pengesahan"), seperti berusia di atas 18 tahun atau tidak menjadi warga negara Narnia.

Sebagian besar DIDs diimplementasikan oleh klien, dan menggunakan bukti pengetahuan nol untuk menghasilkan pernyataan. Meskipun hal ini baik dalam banyak kasus, namun menjadi rumit dengan cepat ketika Anda memiliki banyak pengguna yang terlibat dalam transaksi, ketika Anda harus menerapkan aturan kompleks pada DID, atau ketika Anda perlu mempertahankan seperangkat aturan umum untuk semua orang mengikuti. Ini pada dasarnya adalah tradeoff yang sama seperti dalam aplikasi edge vs cloud.

Namun, memiliki registri DID terpusat akan menyelesaikan masalah ini, karena Anda dapat meminta registri untuk memeriksa apakah semua orang patuh. Ini juga akan membuatnya lebih mudah untuk melacak peraturan, karena Anda hanya perlu menerapkannya di satu tempat. Blockchain akan menjadi infrastruktur yang sempurna untuk ini, karena akan memungkinkan komposabilitas antara DID dan aplikasi yang memerlukan kepatuhan, serta komposabilitas antara peraturan itu sendiri.

Masalah: semua orang akan melihat identitas semua orang!

Untungnya, kita memiliki solusi: enkripsi homomorfik, dan lebih khusus lagi fhEVM! Berkat kemampuan untuk memiliki komposabilitas pada status terenkripsi, kita dapat menyimpan DIDs pengguna langsung di rantai dalam bentuk terenkripsi, dan memiliki aplikasi yang patuh memverifikasi atribut menggunakan panggilan kontrak sederhana. Kemampuan untuk mengelola identitas melalui kontrak pintar, yang kita sebut 'Abstraksi Identitas', mirip dengan bagaimana seseorang dapat mengelola dana melalui kontrak pintar dengan Abstraksi Akun.

Tutorial ini terdiri dari 3 bagian:

  • Abstraksi Identitas dilakukan melalui kontrak registri yang bertanggung jawab atas pengelolaan identitas dan tanda pengesahan. Di sini kita mengasumsikan bahwa DIDs adalah ID resmi pemerintah. Registri itu sendiri dikelola oleh otoritas pusat (misalnya AFNIC) yang dapat membuat registrar (misalnya perusahaan KYC seperti Onfido, Jumio, dll.) yang kemudian dapat membuat DIDs pengguna. Pengguna kemudian melalui registrar mereka untuk mengelola dan memperbarui DIDs mereka.
  • Regulasi didefinisikan dalam sebuah kontrak yang mengkodekan serangkaian aturan untuk transfer token antara individu, berdasarkan informasi yang terkandung dalam DIDs mereka. Ini pada dasarnya menegakkan regulasi pada tingkat kontrak daripada tingkat pengguna.
  • Transfer Kepercayaan yang Patuh diimplementasikan dalam kontrak ERC20 yang patuh yang menggunakan kontrak regulasi untuk menegakkan kepatuhan dalam transfer token, tanpa perubahan apa pun pada API ERC20 itu sendiri. Dalam contoh ini, kami menggunakan kontrak ERC20 yang rahasia, di mana saldo dan jumlahnya tersembunyi, tetapi akan berfungsi sama baiknya dengan token ERC20 reguler, teks polos.

Arsitektur Protokol DID Rahasia Onchain Kami

Kontrak registri identitas

Kontrak IdentityRegistry adalah register DID pengguna yang diterbitkan oleh registrar dan mencakup seperangkat pengidentifikasi terenkripsi, seperti kewarganegaraan, usia, nomor kartu identitas, dll. Pengidentifikasi ini disimpan sebagai nilai 32 bit terenkripsi (euint32).

Kontrak juga menangani izin, seperti:

  • Memungkinkan pemilik kontrak (misalnya AFNIC) untuk menambahkan, menghapus, atau memperbarui registrar.
  • Mengaktifkan registrar untuk menambahkan, menghapus, atau memperbarui DIDs pengguna yang mereka buat.
  • Mengizinkan pengguna memberikan akses kontrak pintar ke atribut-atribut spesifik dari DIDs mereka. Penting untuk dicatat di sini bahwa pengguna bertanggung jawab untuk tidak memberikan akses kepada kontrak jahat, sama seperti mereka bertanggung jawab untuk tidak membiarkan kontrak jahat menghabiskan token mereka.

Sebagai langkah pertama, mari kita implementasikan logika untuk membuat dan mengelola DIDs:

Sekarang langkah berikutnya adalah mengimplementasikan logika untuk pengidentifikasi dan kontrol akses.

Pengenal hanyalah string (misalnya "tanggal lahir") dan nilai 32 bit terenkripsi. Itu dapat dibuat atau diperbarui hanya oleh registrar. Pengguna tidak dapat membuat ID mereka sendiri, karena kami ingin mereka disertifikasi oleh registrar.

Karena pengidentifikasi terenkripsi, pengguna perlu memberikan izin kepada kontrak untuk mengakses nilai-nilai tertentu, yang akan kami atasi melalui mekanisme kontrol akses sederhana yang mirip dengan cara Anda dapat mengizinkan kontrak untuk menghabiskan token ERC20 Anda.

kontrak IdentityRegistry adalah EIP712WithModifier, Ownable

Sekarang kita dapat menyelesaikan kontrak registri identitas kami dengan menambahkan getter yang diperlukan, dengan beberapa kondisi dan penanganan kesalahan.

kontrak IdentityRegistry adalah EIP712WithModifier, Ownable

Kontrak regulasi

Langkah selanjutnya adalah membuat kontrak regulasi kita.

Ketika mengimplementasikan seperangkat aturan untuk transfer antara dua individu, penting untuk menyadari bahwa aturan-aturan ini dapat berkembang seiring waktu. Memiliki kontrak pintar tunggal yang menentukan semua regulasi untuk konteks tertentu seperti transfer uang berarti bahwa kontrak ERC20 tidak perlu melacak regulasi itu sendiri. Pemerintah dapat dengan mudah memperbarui kontrak ini, dan secara otomatis akan menyebar ke semua token yang mengimplementasikannya.

Pada intinya, kontrak regulasi hanyalah sekumpulan kondisi yang dicocokkan dengan atribut identitas yang dienkripsi. Untuk menghindari penyalahgunaan, pengguna tidak akan langsung memberikan akses ke kontrak regulasi, tetapi lebih memilih memberikan akses ke kontrak token ERC20, yang kemudian melakukan panggilan delegasi ke kontrak regulasi. Pendekatan ini memastikan bahwa hanya kontrak ERC20, yang dipercayai oleh pengguna, yang dapat mengakses informasi mereka. Ingatlah bahwa baik pengirim maupun penerima harus memberikan izin kepada kontrak ERC20 sebelum transfer dapat terjadi di antara mereka.

Pada contoh ini, kami akan menerapkan beberapa aturan dasar:

  • Transfer dalam negeri tidak terbatas, tetapi transfer ke luar negeri dibatasi hingga 10.000 token.
  • Pengguna yang masuk daftar hitam tidak dapat mentransfer atau menerima token.
  • Pengguna tidak dapat mentransfer token ke negara yang masuk daftar hitam.

Daripada kegagalan transaksi, yang dapat mengungkap informasi sensitif, kami akan hanya menetapkan jumlah transfer ke 0 jika salah satu kondisi tidak terpenuhi. Ini menggunakan operator ternary homomorfik yang disebut cmux: nilai = TFHE.cmux(encryptedCondition, valueIfTrue, valueIfFalse

Kontrak ERC20 rahasia yang patuh

Sekarang bahwa kami memiliki register identitas dan kontrak regulasi, kami akhirnya dapat membuat kontrak token yang patuh dan menjaga privasi. Kontrak ini akan disebut CompliantERC20 dan memiliki fitur kunci berikut:

  • Saldo pengguna dan jumlah transfer dienkripsi.
  • Kepatuhan ditegakkan dalam transfer dengan memanggil kontrak regulasi.
  • Visibilitas saldo tertentu dapat diberikan kepada alamat yang masuk daftar putih (misalnya regulator)

Kontrak regulasi dipanggil melalui panggilan sederhana. Ini berarti bahwa pengguna harus memberikan akses ke kontrak ERC20 sebelum memulai transfer apa pun; jika tidak, transfer akan dikembalikan.

Akhirnya, sekarang kita dapat membuat kontrak ERC20 kita:

Sama seperti pengguna memberikan izin kepada protokol DeFi untuk menghabiskan token mereka, mereka akan perlu memberikan izin kepada kontrak untuk mengakses pengenal yang diperlukan oleh kontrak regulasi. Ini dilakukan melalui panggilan ke Identity.grantAccess(contractAddress, pengenal), yang dapat diambil dengan memanggil metode tampilan ERC20.identifiers(). Daftar ini berasal langsung dari kontrak ERC20Rules untuk memungkinkan pembaruan properti.

Kepatuhan dan privasi dapat hidup berdampingan!

Semoga tutorial ini telah menunjukkan kepada Anda bahwa kepatuhan bukanlah hal yang sulit untuk dibangun jika alat-alat yang tepat tersedia. Ketika awalnya kami membangun fhEVM untuk memungkinkan privasi dalam blockchain, kami dengan cepat menyadari bahwa teknologi ini dapat digunakan untuk manajemen identitas dan dengan demikian kepatuhan yang dapat diprogram.

Rancangan yang diusulkandi sinijauh dari sempurna, tetapi kami percaya itu dapat dengan mudah ditingkatkan dan diluncurkan sebagai kasus penggunaan dunia nyata, sehingga kepatuhan tidak lagi harus menjadi sinonim dari surveilans!

Tautan tambahan

Disclaimer:

  1. Artikel ini dicetak ulang dari [zama]. Semua hak cipta milik penulis asli [fhEVM]. Jika ada keberatan terhadap pencetakan ulang ini, silakan hubungi Belajar Gatetim, dan mereka akan menanganinya dengan cepat.
  2. Penafian Tanggung Jawab: Pandangan dan opini yang diungkapkan dalam artikel ini semata-mata milik penulis dan tidak merupakan saran investasi apa pun.
  3. Terjemahan artikel ke dalam bahasa lain dilakukan oleh tim Gate Learn. Kecuali disebutkan, menyalin, mendistribusikan, atau menjiplak artikel yang diterjemahkan dilarang.

Bagikan

Kalender Kripto

Pembaruan Proyek
Etherex akan meluncurkan token REX pada 6 Agustus.
REX
22.27%
2025-08-06
Hari Rare Dev & Governance di Las Vegas
Cardano akan mengadakan Rare Dev & Governance Day di Las Vegas, dari 6 hingga 7 Agustus, menampilkan lokakarya, hackathon, dan diskusi panel yang berfokus pada pengembangan teknis dan topik tata kelola.
ADA
-3.44%
2025-08-06
Blockchain.Rio di Rio De Janeiro
Stellar akan berpartisipasi dalam konferensi Blockchain.Rio, yang dijadwalkan berlangsung di Rio de Janeiro, dari 5 hingga 7 Agustus. Program ini akan mencakup pidato kunci dan diskusi panel yang menampilkan perwakilan ekosistem Stellar bekerja sama dengan mitra Cheesecake Labs dan NearX.
XLM
-3.18%
2025-08-06
Webinar
Circle telah mengumumkan webinar Executive Insights langsung berjudul "Era GENIUS Act Dimulai", yang dijadwalkan pada 7 Agustus 2025, pukul 14:00 UTC. Sesi ini akan mengeksplorasi implikasi dari GENIUS Act yang baru saja disahkan—kerangka regulasi federal pertama untuk stablecoin pembayaran di Amerika Serikat. Dante Disparte dan Corey Then dari Circle akan memimpin diskusi tentang bagaimana legislasi ini mempengaruhi inovasi aset digital, kejelasan regulasi, dan kepemimpinan AS dalam infrastruktur keuangan global.
USDC
-0.03%
2025-08-06
AMA di X
Ankr akan mengadakan AMA di X pada 7 Agustus pukul 16:00 UTC, yang berfokus pada pekerjaan DogeOS dalam membangun lapisan aplikasi untuk DOGE.
ANKR
-3.23%
2025-08-06

Artikel Terkait

Apa itu Tronscan dan Bagaimana Anda Dapat Menggunakannya pada Tahun 2025?
Pemula

Apa itu Tronscan dan Bagaimana Anda Dapat Menggunakannya pada Tahun 2025?

Tronscan adalah penjelajah blockchain yang melampaui dasar-dasar, menawarkan manajemen dompet, pelacakan token, wawasan kontrak pintar, dan partisipasi tata kelola. Pada tahun 2025, ia telah berkembang dengan fitur keamanan yang ditingkatkan, analitika yang diperluas, integrasi lintas rantai, dan pengalaman seluler yang ditingkatkan. Platform ini sekarang mencakup otentikasi biometrik tingkat lanjut, pemantauan transaksi real-time, dan dasbor DeFi yang komprehensif. Pengembang mendapatkan manfaat dari analisis kontrak pintar yang didukung AI dan lingkungan pengujian yang diperbaiki, sementara pengguna menikmati tampilan portofolio multi-rantai yang terpadu dan navigasi berbasis gerakan pada perangkat seluler.
11/22/2023, 6:27:42 PM
Apa itu USDC?
Pemula

Apa itu USDC?

Sebagai jembatan yang menghubungkan mata uang fiat dan mata uang kripto, semakin banyak stablecoin yang dibuat, dengan banyak di antaranya yang ambruk tak lama kemudian. Bagaimana dengan USDC, stablecoin terkemuka saat ini? Bagaimana itu akan berkembang di masa depan?
11/21/2022, 10:36:25 AM
Apa itu Stablecoin?
Pemula

Apa itu Stablecoin?

Stablecoin adalah mata uang kripto dengan harga stabil, yang sering dipatok ke alat pembayaran yang sah di dunia nyata. Ambil USDT, stablecoin yang paling umum digunakan saat ini, misalnya, USDT dipatok ke dolar AS, dengan 1 USDT = 1 USD.
11/21/2022, 8:35:14 AM
Penggunaan Bitcoin (BTC) di El Salvador - Analisis Keadaan Saat Ini
Pemula

Penggunaan Bitcoin (BTC) di El Salvador - Analisis Keadaan Saat Ini

Pada 7 September 2021, El Salvador menjadi negara pertama yang mengadopsi Bitcoin (BTC) sebagai alat pembayaran yang sah. Berbagai alasan mendorong El Salvador untuk melakukan reformasi moneter ini. Meskipun dampak jangka panjang dari keputusan ini masih harus dicermati, pemerintah Salvador percaya bahwa manfaat mengadopsi Bitcoin lebih besar daripada potensi risiko dan tantangannya. Dua tahun telah berlalu sejak reformasi, di mana banyak suara yang mendukung dan skeptis terhadap reformasi ini. Lantas, bagaimana status implementasi aktualnya saat ini? Berikut ini akan diberikan analisa secara detail.
12/18/2023, 3:29:33 PM
ONDO, Proyek yang Disukai oleh BlackRock
Pemula

ONDO, Proyek yang Disukai oleh BlackRock

Artikel ini mengupas tentang ONDO dan perkembangannya baru-baru ini.
2/2/2024, 10:42:34 AM
Apa itu Ethereum Terbungkus (WETH)?
Pemula

Apa itu Ethereum Terbungkus (WETH)?

Wrapped Ethereum (WETH) adalah versi ERC-20 dari mata uang asli blockchain Ethereum, Ether (ETH). Token WETH dipatok ke koin asli. Untuk setiap WETH yang beredar, ada cadangan ETH. Tujuan pembuatan WETH adalah untuk kompatibilitas di seluruh jaringan. ETH tidak mematuhi standar ERC-20 dan sebagian besar DApps yang dibangun di jaringan mengikuti standar ini. Jadi WETH digunakan untuk memfasilitasi integrasi ETH ke dalam aplikasi DeFi.
11/24/2022, 8:49:09 AM
Mulai Sekarang
Daftar dan dapatkan Voucher
$100
!