Citadel

Di dunia digital saat ini, di mana berbagai pihak berinteraksi secara masif satu sama lain dan bertukar sejumlah besar informasi pribadi dan sensitif, sangat penting bagi para peserta tersebut untuk memiliki kendali penuh atas informasi yang mereka ungkapkan dan bagikan. Karena alasan inilah, istilah Identitas Mandiri (Self-Sovereign Identity/SSI) mulai digunakan untuk menggambarkan sistem di mana penggunanya dapat mengelola identitas mereka secara sepenuhnya transparan dan pribadi. Ini berarti bahwa, setiap saat, setiap pengguna mengetahui informasi apa tentang mereka yang dibagikan saat menggunakan identitas mereka.

Citadel adalah sistem manajemen SSI berbasis bukti tanpa pengetahuan (zero-knowledge proofs) di mana identitas pengguna disimpan dengan cara yang tepercaya dan pribadi menggunakan jaringan terdesentralisasi. Dalam kasus khusus kami, menggunakan Dusk Blockchain.

Ada tiga pihak berbeda yang terlibat dalam protokol kami:

  • Pengguna: Pihak yang ingin mendapatkan lisensi yang memungkinkan mereka untuk menggunakan layanan tertentu. Mereka meminta lisensi di blockchain kepada penyedia lisensi, dan setelah menerima lisensi tersebut, mereka dapat menggunakan lisensi tersebut di blockchain untuk membangun koneksi pribadi di luar blockchain dengan penyedia layanan.

  • Penyedia Lisensi (LP): Pihak yang menerima permintaan on-chain dari pengguna. Mereka dapat menerima permintaan dan menerbitkan lisensi on-chain, yang akan ditujukan kepada pengguna yang memintanya.

  • Penyedia Layanan (SP): Pihak yang menerima permintaan di luar rantai (off-chain) dari pengguna untuk memberikan layanan, dan permintaan tersebut dapat diverifikasi melalui informasi yang tersimpan di dalam rantai (on-chain).

Bagaimana cara kerja Citadel?

Citadel terdiri dari dua protokol utama: protokol permintaan lisensi , dan protokol permintaan layanan . Gambaran umum dari protokol-protokol ini adalah sebagai berikut.

  • Protokol Permintaan Lisensi: ini adalah proses di mana pengguna meminta lisensi ke LP, melalui langkah-langkah berikut:

    • (user) request_license : mengirimkan transaksi on-chain, termasuk alamat stealth yang telah dihitung sebelumnya tempat lisensi akan diterima.

    • (LP) fetch_license_request : LP terus-menerus memindai Blockchain untuk permintaan masuk yang ditujukan kepada mereka.

    • (LP) issue_license : LP, setelah memverifikasi permintaan, menerbitkan lisensi on-chain ke dalam transaksi, menggunakan alamat stealth yang disertakan dalam permintaan.

    • (user) fetch_license : pengguna memindai Blockchain untuk lisensi yang masuk.

  • Protokol Permintaan Layanan: ini adalah proses di mana pengguna meminta layanan kepada SP, melalui langkah-langkah berikut:

    • (user) use_license : mengirimkan transaksi on-chain, termasuk bukti zero-knowledge yang membuktikan bahwa pengguna memiliki lisensi yang valid. Dalam proses ini, sesi untuk layanan tertentu dibuka, dan cookie sesi dihitung: nilai yang dibutuhkan untuk memverifikasi bahwa lisensi telah digunakan dengan benar, dan karenanya, hanya boleh dibagikan dengan SP yang diinginkan.

    • (user) request_service : pengguna meminta layanan dengan mengirimkan cookie sesi ke SP, menggunakan saluran yang aman (misalnya koneksi HTTPS).

    • (SP) fetch_session : SP, setelah menerima cookie sesi, memindai jaringan untuk mencari sesi dengan ID yang sama dengan ID cookie sesi tersebut.

    • (SP) pemberian layanan : SP memverifikasi secara lokal cookie sesi menggunakan sesi yang diambil dari Blockchain, dan memberikan akses ke layanan atau menolaknya berdasarkan hasil verifikasi.#Dusk/usdt✅ $DUSK