Vitalik: Bagaimana Bursa Terpusat Dapat Membuktikan Dana Mereka?

Menengah12/4/2023, 1:55:58 PM
Artikel ini menyelidiki upaya historis untuk menjadikan transaksi semakin tidak dapat dipercaya, keterbatasan teknologi ini, dan beberapa ide baru yang lebih kuat menggunakan ZK-SNARK dan teknologi canggih lainnya.

Setiap kali bursa terpusat yang signifikan runtuh, pertanyaan umum muncul: bisakah kita menggunakan teknologi kriptografi untuk memecahkan masalah tersebut? Pertukaran dapat membuat bukti kriptografi yang menunjukkan bahwa dana yang mereka miliki cukup untuk menutupi kewajiban mereka kepada pengguna, daripada hanya mengandalkan metode “legal” seperti izin pemerintah, tinjauan auditor, dan memeriksa latar belakang pribadi mereka yang mengelola dan mengoperasikan bursa. menukarkan. Bursa dapat membentuk sistem yang pada dasarnya tidak mungkin menarik dana deposan tanpa persetujuan mereka. Secara potensial, kita dapat mengeksplorasi keseluruhan spektrum antara CEX yang ambisius dan baik hati yang “tidak melakukan hal buruk” dan DEX on-chain yang “tidak dapat melakukan hal buruk” tetapi saat ini tidak efisien dan membocorkan privasi. Artikel ini akan menyelidiki upaya historis untuk menjadikan transaksi semakin tidak dapat dipercaya, keterbatasan teknologi ini, dan beberapa ide baru yang lebih kuat menggunakan ZK-SNARK dan teknologi canggih lainnya.

Neraca dan Pohon Merkle: Bukti Solvabilitas Kuno

Upaya paling awal yang dilakukan bursa untuk menggunakan metode kriptografi untuk membuktikan bahwa mereka tidak menipu penggunanya dapat ditelusuri ke masa lalu. Pada tahun 2011, pertukaran Bitcoin terbesar pada saat itu, MtGox, membuktikan bahwa mereka memiliki dana dengan mentransfer 424242 BTC ke alamat yang telah diumumkan sebelumnya. Pada tahun 2013, diskusi dimulai tentang bagaimana membuktikan sisi lain dari persamaan tersebut: jumlah total simpanan nasabah. Jika Anda membuktikan simpanan pelanggan sama dengan X (“bukti kewajiban”) dan membuktikan kepemilikan kunci pribadi untuk koin X (“bukti aset”), Anda memiliki bukti solvabilitas: Anda telah menunjukkan bahwa bursa memiliki dana untuk membayar kembali semua deposan.

Metode paling sederhana untuk membuktikan setoran adalah dengan mempublikasikan daftar pasangan (nama pengguna, saldo). Setiap pengguna dapat memeriksa apakah saldo mereka disertakan, dan siapa pun dapat memverifikasi seluruh daftar untuk memastikan (i) setiap saldo tidak negatif, dan (ii) totalnya sama dengan jumlah yang diklaim. Namun, hal ini melanggar privasi, sehingga sedikit modifikasi dapat dilakukan: mempublikasikan daftar pasangan (hash(nama pengguna, garam), saldo) dan secara pribadi mengirimkan nilai garam mereka kepada setiap pengguna. Namun hal ini pun membocorkan informasi keseimbangan dan pola perubahan keseimbangan. Keinginan untuk melindungi privasi membawa kita pada penemuan berikutnya: teknologi pohon Merkle (juga dikenal sebagai pohon hash).

Hijau: simpul Charlie. Biru: Node David, yang juga merupakan node yang akan diterima Charlie sebagai bagian dari pembuktiannya. Kuning: Node akar, ditampilkan secara publik kepada semua orang.

Teknologi pohon Merkle melibatkan penempatan neraca klien ke dalam pohon jumlah Merkle. Di pohon ini, setiap node adalah pasangan (keseimbangan, hash). Node daun lapisan bawah mewakili saldo masing-masing klien dan nilai hash asin dari nama pengguna mereka. Di setiap node dengan level yang lebih tinggi, saldonya adalah jumlah dari dua saldo di bawahnya, dan nilai hashnya adalah hash dari dua node di bawahnya. Bukti jumlah Merkle, seperti bukti Merkle, adalah “cabang” pohon, terdiri dari simpul saudara pada jalur dari daun ke akar.

Bursa mengirimkan bukti saldo Merkle kepada setiap pengguna untuk membuktikan kepemilikan mereka. Pengguna kemudian mendapat jaminan bahwa saldo mereka dimasukkan dengan benar sebagai bagian dari total. Contoh kode sederhana dapat ditemukan di sini.

Kebocoran privasi dalam desain ini jauh lebih rendah daripada daftar publik sepenuhnya dan dapat dikurangi lebih lanjut dengan mengacak cabang setiap kali root dipublikasikan. Namun, masih ada beberapa kebocoran privasi. Charlie dapat mengetahui bahwa seseorang memiliki saldo 164 ETH, jumlah saldo dua pengguna adalah 70 ETH, dan seterusnya. Seorang penyerang yang mengendalikan banyak akun masih bisa belajar banyak tentang pengguna bursa.

Aspek halus namun penting dari skema ini adalah kemungkinan saldo negatif: Bagaimana jika pertukaran dengan saldo pelanggan 1390 ETH hanya memiliki cadangan 890 ETH dan mencoba menutupi kekurangan tersebut dengan menambahkan saldo -500 ETH di bawah akun fiktif di pohon? Ternyata kemungkinan ini tidak mematahkan skema tersebut, meskipun inilah alasan mengapa kita membutuhkan pohon Merkle sum dibandingkan pohon Merkle biasa. Misalkan Henry adalah akun fiktif yang dikendalikan oleh bursa, di mana -500 ETH ditempatkan.

Verifikasi bukti Greta akan gagal: bursa harus menawarkan node -500 ETH milik Henry, yang akan dia tolak karena tidak valid. Verifikasi Eve dan Fred juga akan gagal karena total ETH pada node perantara di atas Henry adalah -230, sehingga menjadikannya tidak valid juga! Untuk menghindari pencurian, bursa harus berharap bahwa tidak ada seorang pun di bagian kanan seluruh pohon yang memeriksa bukti saldo mereka.

Jika bursa dapat mengidentifikasi pengguna senilai 500ETH, dan mereka yakin pengguna tersebut tidak akan repot-repot memeriksa bukti atau tidak akan dipercaya ketika mereka mengeluh karena tidak pernah menerima bukti, maka bursa dapat dengan yakin lolos dari hukuman pencurian. Namun, pertukaran juga dapat mencapai efek yang sama dengan mengecualikan pengguna ini dari pohon.

Oleh karena itu, dengan tujuan menunjukkan bukti kewajiban, teknologi pohon Merkle pada dasarnya sama baiknya dengan skema bukti kewajiban. Namun atribut privasinya masih belum ideal. Anda dapat menggunakan pohon Merkle dengan lebih cerdik, misalnya dengan membuat setiap satoshi atau wei menjadi satu daun, namun pada akhirnya, dengan teknik yang lebih modern, ada cara yang lebih baik untuk mencapai hal ini.

Meningkatkan Privasi dan Kekokohan dengan ZK-SNARKs

ZK-SNARK adalah teknologi yang kuat, berpotensi untuk kriptografi seperti halnya transformator terhadap kecerdasan buatan: sebuah teknologi yang ampuh secara universal yang benar-benar mengatasi banyak masalah dalam teknologi spesifik yang dikembangkan beberapa dekade lalu. Tentu saja, kita dapat menggunakan ZK-SNARK untuk menyederhanakan dan meningkatkan privasi dalam protokol pembuktian pertanggungjawaban.

Hal paling sederhana yang dapat kita lakukan adalah menempatkan semua simpanan pengguna di pohon Merkle (atau lebih sederhananya, komitmen KZG) dan menggunakan ZK-SNARK untuk membuktikan bahwa semua saldo di pohon tersebut tidak negatif dan secara kolektif berjumlah hingga nilai yang diklaim . Menambahkan lapisan hashing untuk privasi, memberikan setiap pengguna cabang Merkle (atau bukti KZG) tidak akan mengungkapkan saldo pengguna lain.

Menggunakan komitmen KZG adalah metode untuk menghindari kebocoran privasi, karena menghilangkan kebutuhan untuk memberikan “simpul saudara” sebagai bukti. ZK-SNARK sederhana dapat digunakan untuk membuktikan jumlah saldo dan setiap saldo tidak negatif. Kita dapat menggunakan ZK-SNARK khusus untuk membuktikan jumlah dan non-negatif saldo pada KZG tersebut di atas. Berikut adalah contoh sederhana yang mencapai hal ini. Kami memperkenalkan polinomial tambahan, yang “menetapkan bit dari setiap saldo” (untuk tujuan ilustrasi, mari kita asumsikan saldo berada dalam ), dan setiap 16 posisi melacak total berjalan dengan offset, sehingga jumlahnya nol hanya ketika total sebenarnya adalah konsisten dengan total yang dinyatakan. Jika z adalah akar kesatuan -128, kita dapat membuktikan persamaan berikut.

Nilai pertama dalam pengaturan efektif adalah 0 0 0 0 0 0 0 0 0 0 1 2 5 10 20 -165 0 0 0 0 0 0 0 0 1 3 6 12 25 50 -300… Untuk memahami bagaimana persamaan tersebut dapat ditransformasikan menjadi pemeriksaan polinomial dan kemudian menjadi ZK-SNARKs, lihat artikel saya di ZK-SNARKs untuk penjelasan lebih lanjut di sini dan di sini . Meskipun bukan merupakan protokol yang optimal, protokol ini menunjukkan bahwa bukti kriptografi jenis ini tidak begitu misterius saat ini!

Hanya dengan beberapa rumus tambahan, sistem batasan tersebut dapat disesuaikan dengan skenario yang lebih kompleks. Misalnya, dalam sistem perdagangan leverage, pengguna individu diperbolehkan memiliki saldo negatif, asalkan mereka memiliki aset lain yang cukup untuk menutupi dana dengan sejumlah jaminan. SNARK dapat digunakan untuk membuktikan kendala yang lebih kompleks ini, meyakinkan pengguna bahwa bursa tidak akan mempertaruhkan dana mereka dengan secara diam-diam mengecualikan pengguna lain dari aturan tersebut.

Dalam jangka panjang, bukti utang ZK semacam ini berpotensi digunakan tidak hanya untuk simpanan nasabah di bursa tetapi juga untuk pinjaman yang lebih luas. Setiap kali seseorang mengambil pinjaman, mereka akan memasukkan catatan ke dalam polinomial atau pohon yang berisi pinjaman tersebut, dengan akar struktur ini dipublikasikan pada rantai. Hal ini akan memungkinkan siapa pun yang mencari pinjaman untuk memberikan bukti ZK kepada pemberi pinjaman bahwa mereka tidak meminjam terlalu banyak dari pinjaman lain. Pada akhirnya, inovasi hukum bahkan mungkin membuat pinjaman dengan komitmen seperti ini memiliki prioritas lebih tinggi dibandingkan pinjaman tanpa komitmen. Hal ini membawa kita ke arah yang sama dengan gagasan yang dibahas dalam “Masyarakat Terdesentralisasi: Menemukan Jiwa Web3“: membangun konsep reputasi negatif atau jaminan pada rantai melalui beberapa bentuk “token yang terikat pada jiwa”.

Bukti Aset

Versi bukti aset yang paling sederhana adalah protokol yang telah kita lihat di atas: untuk membuktikan bahwa Anda memiliki koin dalam jumlah X, Anda hanya perlu memindahkan koin X pada waktu yang telah disepakati sebelumnya atau dalam transaksi yang menyertakan pesan “Dana ini milik Binance” di bidang datanya. Untuk menghindari biaya transaksi, Anda juga dapat menandatangani pesan off-chain; baik Bitcoin dan Ethereum memiliki standar untuk pesan tanda tangan off-chain.

Teknik pembuktian aset sederhana ini memiliki dua masalah praktis:

  1. Pemrosesan “penyimpanan dingin”.

  2. Penggunaan ganda agunan.

Untuk alasan keamanan, sebagian besar bursa menyimpan sebagian besar dana klien mereka di “cold storage”: di komputer offline di mana transaksi perlu ditandatangani secara manual dan ditransfer ke internet. Pengaturan penyimpanan dingin yang pernah saya gunakan untuk dana pribadi melibatkan komputer yang offline secara permanen, menghasilkan kode QR yang berisi transaksi yang ditandatangani, yang dapat saya pindai dengan ponsel saya. Protokol pertukaran modern lebih kompleks, sering kali melibatkan komputasi multipihak antara beberapa perangkat. Mengingat pengaturan seperti itu, bahkan pesan tambahan untuk membuktikan kendali atas suatu alamat adalah operasi yang mahal!

Suatu transaksi dapat mengambil beberapa jalur:

  • Pertahankan beberapa alamat jangka panjang yang diketahui publik. Pertukaran menghasilkan beberapa alamat, menerbitkan bukti kepemilikan untuk masing-masing alamat satu kali, dan kemudian menggunakan kembali alamat-alamat ini. Sejauh ini, ini adalah skema yang paling sederhana, meskipun skema ini menambahkan beberapa batasan tentang cara melindungi keamanan dan privasi.

  • Siapkan banyak alamat, buktikan beberapa secara acak. Pertukaran tersebut dapat memiliki banyak alamat, mungkin menggunakan masing-masing alamat hanya sekali dan menghentikannya setelah transaksi. Dalam hal ini, bursa mungkin memiliki protokol untuk memilih secara acak beberapa alamat yang harus “dibuka” untuk membuktikan kepemilikan. Beberapa bursa telah melakukan hal serupa dengan auditor, namun pada prinsipnya, teknik ini dapat menjadi proses yang sepenuhnya otomatis.

  • Opsi ZKP yang lebih kompleks. Misalnya, sebuah bursa dapat menetapkan semua alamatnya sebagai 1/2 multi-tanda tangan, dengan kunci setiap alamat berbeda, dan alamat lainnya merupakan versi tersembunyi dari beberapa kunci cadangan darurat “utama”, yang disimpan dengan cara yang kompleks namun sangat aman, seperti multi-tanda tangan 12/16. Untuk melindungi privasi dan menghindari pemaparan seluruh rangkaian alamatnya, sebuah bursa bahkan dapat menjalankan bukti tanpa pengetahuan (zero-knowledge proof) di blockchain, yang membuktikan saldo total semua alamat dengan format ini di rantai tersebut.

Permasalahan besar lainnya adalah mencegah penggunaan ganda agunan. Pertukaran dapat dengan mudah memindahkan agunan bolak-balik antara satu sama lain untuk bukti cadangan, berpura-pura menjadi pelarut padahal sebenarnya tidak. Idealnya, bukti solvabilitas akan bersifat real-time dan memperbarui bukti tersebut setelah setiap blok. Jika hal ini tidak praktis, opsi yang kurang ideal adalah mengoordinasikan jadwal tetap di antara bursa-bursa yang berbeda, misalnya, membuktikan cadangan setiap hari Selasa pukul 14:00 UTC.

Pertanyaan terakhir adalah: bisakah kita melakukan pembuktian aset pada mata uang fiat? Bursa tidak hanya menampung mata uang kripto; mereka juga menyimpan mata uang fiat dalam sistem perbankan. Di sini, jawabannya adalah: ya, tetapi proses seperti itu pasti akan bergantung pada model kepercayaan “fiat”: bank itu sendiri dapat membuktikan saldo, auditor dapat membuktikan neraca, dll. Mengingat fiat tidak dapat diverifikasi secara kriptografis, inilah yang terbaik yang bisa dilakukan. dapat dilakukan dalam kerangka itu, namun tetap layak dilakukan.

Pendekatan lainnya adalah dengan memisahkan secara jelas entitas yang menjalankan bursa dan menangani stablecoin yang didukung aset seperti USDC dari entitas lain yang menangani proses arus masuk dan arus kas keluar antara mata uang kripto dan sistem perbankan tradisional (USDC itu sendiri). Karena “kewajiban” USDC hanyalah token ERC20 on-chain, bukti kewajiban bersifat “gratis”, hanya memerlukan bukti aset.

Plasma dan Validium: Bisakah Kita Membuat CEX Tidak Terkekang?

Misalkan kita ingin melangkah lebih jauh: kita tidak hanya ingin membuktikan bahwa bursa memiliki dana untuk membayar kembali uang pengguna. Sebaliknya, kami ingin sepenuhnya mencegah bursa mencuri dana pengguna.

Upaya besar pertama dalam hal ini adalah Plasma, solusi ekstensi yang populer di komunitas riset Ethereum pada tahun 2017 dan 2018. Plasma bekerja dengan membagi saldo menjadi satu set “koin” individual, yang masing-masing diberi indeks dan ditempatkan pada posisi tertentu di pohon Merkle di blok Plasma. Transfer koin yang valid memerlukan penempatan transaksi pada posisi yang benar di pohon, dengan akar pohon dipublikasikan di rantai.

Skema sederhana dari versi Plasma. Koin disimpan dalam kontrak pintar, dan aturan protokol Plasma dijalankan secara paksa selama penarikan.

OmiseGo berusaha membangun pertukaran terdesentralisasi pada protokol ini, namun sejak itu, mereka beralih ke ide lain. Dalam hal ini, grup Plasma sendiri juga telah berevolusi, kini menjadi proyek Optimisme, dengan fokus pada rollup EVM yang optimis.

Keterbatasan teknologi Plasma, seperti yang direncanakan pada tahun 2018 (seperti pembuktian fragmentasi koin), tidak layak untuk dipertimbangkan. Sejak puncak wacana Plasma pada tahun 2018, ZK-SNARK menjadi lebih layak digunakan dalam kasus penggunaan terkait ekspansi. Seperti disebutkan sebelumnya, ZK-SNARK telah mengubah segalanya.

Versi yang lebih modern dari konsep Plasma adalah apa yang disebut Starkware sebagai validium: pada dasarnya sama dengan ZK-rollup, kecuali datanya disimpan secara off-chain. Struktur ini dapat digunakan untuk banyak kasus penggunaan, khususnya ketika server terpusat perlu menjalankan beberapa kode dan membuktikan eksekusi yang benar. Dalam validium, operator tidak dapat mencuri dana, namun bergantung pada detail penerapannya, sebagian dana pengguna mungkin tersangkut jika operator menghilang.

Semua ini sangat menjanjikan: hubungan antara CEX dan DEX jauh dari oposisi biner. Faktanya, terdapat beragam pilihan, termasuk berbagai bentuk sentralisasi hibrid, di mana Anda dapat menikmati manfaat seperti efisiensi sambil tetap memiliki banyak perlindungan kriptografi untuk mencegah operator terpusat dari sebagian besar bentuk penyalahgunaan.

Namun, di bagian kanan ruang desain ini, penting untuk membahas masalah mendasar: menangani kesalahan pengguna. Sejauh ini, jenis kesalahan yang paling kritis adalah: Apa yang harus dilakukan jika pengguna lupa kata sandi, kehilangan perangkat, diretas, atau kehilangan akses ke akun mereka?

Pertukaran dapat mengatasi masalah ini: pertama melalui pemulihan email, dan jika gagal, melalui bentuk pemulihan yang lebih kompleks melalui KYC. Namun, untuk dapat menyelesaikan masalah tersebut, bursa harus memiliki kendali nyata atas koin tersebut. Agar dapat memulihkan akses ke akun pengguna secara sah, bursa harus memiliki kekuatan yang juga berpotensi disalahgunakan untuk mencuri dana dari akun tersebut. Ini adalah trade-off yang tidak bisa dihindari.

Solusi ideal jangka panjang bergantung pada hak asuh mandiri, yang dilengkapi dengan teknologi seperti dompet multi-tanda tangan dan pemulihan sosial, untuk membantu pengguna menangani keadaan darurat. Namun dalam jangka pendek, terdapat dua solusi alternatif, yang masing-masing memiliki biaya dan manfaat yang berbeda.

Kesimpulan: Pertukaran yang Lebih Baik di Masa Depan

Dalam jangka pendek, ada dua kategori pertukaran yang berbeda: kustodian dan non-penahanan. Saat ini, yang terakhir diwakili oleh DEX seperti Uniswap. Di masa depan, kita mungkin juga melihat CEX yang “dibatasi” secara kriptografis, di mana dana pengguna disimpan dalam sesuatu yang mirip dengan kontrak pintar validium. Kita mungkin juga menyaksikan munculnya bursa semi-penahanan, di mana kita mempercayai mereka dengan fiat dibandingkan mata uang kripto.

Kedua jenis pertukaran ini akan terus ada. Cara paling sederhana untuk meningkatkan keamanan bursa kustodian adalah dengan meningkatkan bukti cadangan. Ini melibatkan kombinasi bukti aset dan bukti kewajiban. Mengembangkan protokol yang terstruktur dengan baik untuk keduanya menghadirkan tantangan teknis, namun kita harus membuat kemajuan di kedua bidang tersebut sebanyak mungkin, dan menjadikan perangkat lunak dan proses open source sehingga semua pertukaran dapat memperoleh manfaat.

Dalam jangka panjang, saya berharap kita semakin bergerak menuju semua bursa yang bersifat non-penahanan, setidaknya dalam hal mata uang kripto. Pemulihan dompet akan tersedia untuk pengguna baru yang berurusan dengan jumlah kecil dan untuk institusi yang memerlukan pengaturan tersebut karena alasan hukum. Opsi pemulihan yang sangat terpusat mungkin diperlukan, namun hal ini dapat dilakukan di tingkat dompet, bukan di dalam bursa itu sendiri. Cara magic.link berinteraksi dengan platform seperti Polymarket adalah contoh dari pendekatan ini. Dalam hal fiat, aliran antara sistem perbankan tradisional dan ekosistem kripto dapat difasilitasi oleh proses arus masuk/keluar kas lokal untuk stablecoin yang didukung aset, seperti USDC. Namun, mencapai tujuan ini sepenuhnya memerlukan waktu.

Terima kasih khusus kepada Balaji Srinivasan, serta staf di Coinbase, Kraken, dan Binance atas diskusi mereka.

Penafian:

  1. Artikel ini dicetak ulang dari [Chaincatcher] . Semua hak cipta milik penulis asli [Vitalik]. Jika ada keberatan terhadap cetak ulang ini, silakan menghubungi tim Gate Learn, dan mereka akan segera menanganinya.
  2. Penafian Tanggung Jawab: Pandangan dan pendapat yang diungkapkan dalam artikel ini adalah sepenuhnya milik penulis dan bukan merupakan nasihat investasi apa pun.
  3. Terjemahan artikel ke bahasa lain dilakukan oleh tim Gate Learn. Kecuali disebutkan, dilarang menyalin, mendistribusikan, atau menjiplak artikel terjemahan.

Vitalik: Bagaimana Bursa Terpusat Dapat Membuktikan Dana Mereka?

Menengah12/4/2023, 1:55:58 PM
Artikel ini menyelidiki upaya historis untuk menjadikan transaksi semakin tidak dapat dipercaya, keterbatasan teknologi ini, dan beberapa ide baru yang lebih kuat menggunakan ZK-SNARK dan teknologi canggih lainnya.

Setiap kali bursa terpusat yang signifikan runtuh, pertanyaan umum muncul: bisakah kita menggunakan teknologi kriptografi untuk memecahkan masalah tersebut? Pertukaran dapat membuat bukti kriptografi yang menunjukkan bahwa dana yang mereka miliki cukup untuk menutupi kewajiban mereka kepada pengguna, daripada hanya mengandalkan metode “legal” seperti izin pemerintah, tinjauan auditor, dan memeriksa latar belakang pribadi mereka yang mengelola dan mengoperasikan bursa. menukarkan. Bursa dapat membentuk sistem yang pada dasarnya tidak mungkin menarik dana deposan tanpa persetujuan mereka. Secara potensial, kita dapat mengeksplorasi keseluruhan spektrum antara CEX yang ambisius dan baik hati yang “tidak melakukan hal buruk” dan DEX on-chain yang “tidak dapat melakukan hal buruk” tetapi saat ini tidak efisien dan membocorkan privasi. Artikel ini akan menyelidiki upaya historis untuk menjadikan transaksi semakin tidak dapat dipercaya, keterbatasan teknologi ini, dan beberapa ide baru yang lebih kuat menggunakan ZK-SNARK dan teknologi canggih lainnya.

Neraca dan Pohon Merkle: Bukti Solvabilitas Kuno

Upaya paling awal yang dilakukan bursa untuk menggunakan metode kriptografi untuk membuktikan bahwa mereka tidak menipu penggunanya dapat ditelusuri ke masa lalu. Pada tahun 2011, pertukaran Bitcoin terbesar pada saat itu, MtGox, membuktikan bahwa mereka memiliki dana dengan mentransfer 424242 BTC ke alamat yang telah diumumkan sebelumnya. Pada tahun 2013, diskusi dimulai tentang bagaimana membuktikan sisi lain dari persamaan tersebut: jumlah total simpanan nasabah. Jika Anda membuktikan simpanan pelanggan sama dengan X (“bukti kewajiban”) dan membuktikan kepemilikan kunci pribadi untuk koin X (“bukti aset”), Anda memiliki bukti solvabilitas: Anda telah menunjukkan bahwa bursa memiliki dana untuk membayar kembali semua deposan.

Metode paling sederhana untuk membuktikan setoran adalah dengan mempublikasikan daftar pasangan (nama pengguna, saldo). Setiap pengguna dapat memeriksa apakah saldo mereka disertakan, dan siapa pun dapat memverifikasi seluruh daftar untuk memastikan (i) setiap saldo tidak negatif, dan (ii) totalnya sama dengan jumlah yang diklaim. Namun, hal ini melanggar privasi, sehingga sedikit modifikasi dapat dilakukan: mempublikasikan daftar pasangan (hash(nama pengguna, garam), saldo) dan secara pribadi mengirimkan nilai garam mereka kepada setiap pengguna. Namun hal ini pun membocorkan informasi keseimbangan dan pola perubahan keseimbangan. Keinginan untuk melindungi privasi membawa kita pada penemuan berikutnya: teknologi pohon Merkle (juga dikenal sebagai pohon hash).

Hijau: simpul Charlie. Biru: Node David, yang juga merupakan node yang akan diterima Charlie sebagai bagian dari pembuktiannya. Kuning: Node akar, ditampilkan secara publik kepada semua orang.

Teknologi pohon Merkle melibatkan penempatan neraca klien ke dalam pohon jumlah Merkle. Di pohon ini, setiap node adalah pasangan (keseimbangan, hash). Node daun lapisan bawah mewakili saldo masing-masing klien dan nilai hash asin dari nama pengguna mereka. Di setiap node dengan level yang lebih tinggi, saldonya adalah jumlah dari dua saldo di bawahnya, dan nilai hashnya adalah hash dari dua node di bawahnya. Bukti jumlah Merkle, seperti bukti Merkle, adalah “cabang” pohon, terdiri dari simpul saudara pada jalur dari daun ke akar.

Bursa mengirimkan bukti saldo Merkle kepada setiap pengguna untuk membuktikan kepemilikan mereka. Pengguna kemudian mendapat jaminan bahwa saldo mereka dimasukkan dengan benar sebagai bagian dari total. Contoh kode sederhana dapat ditemukan di sini.

Kebocoran privasi dalam desain ini jauh lebih rendah daripada daftar publik sepenuhnya dan dapat dikurangi lebih lanjut dengan mengacak cabang setiap kali root dipublikasikan. Namun, masih ada beberapa kebocoran privasi. Charlie dapat mengetahui bahwa seseorang memiliki saldo 164 ETH, jumlah saldo dua pengguna adalah 70 ETH, dan seterusnya. Seorang penyerang yang mengendalikan banyak akun masih bisa belajar banyak tentang pengguna bursa.

Aspek halus namun penting dari skema ini adalah kemungkinan saldo negatif: Bagaimana jika pertukaran dengan saldo pelanggan 1390 ETH hanya memiliki cadangan 890 ETH dan mencoba menutupi kekurangan tersebut dengan menambahkan saldo -500 ETH di bawah akun fiktif di pohon? Ternyata kemungkinan ini tidak mematahkan skema tersebut, meskipun inilah alasan mengapa kita membutuhkan pohon Merkle sum dibandingkan pohon Merkle biasa. Misalkan Henry adalah akun fiktif yang dikendalikan oleh bursa, di mana -500 ETH ditempatkan.

Verifikasi bukti Greta akan gagal: bursa harus menawarkan node -500 ETH milik Henry, yang akan dia tolak karena tidak valid. Verifikasi Eve dan Fred juga akan gagal karena total ETH pada node perantara di atas Henry adalah -230, sehingga menjadikannya tidak valid juga! Untuk menghindari pencurian, bursa harus berharap bahwa tidak ada seorang pun di bagian kanan seluruh pohon yang memeriksa bukti saldo mereka.

Jika bursa dapat mengidentifikasi pengguna senilai 500ETH, dan mereka yakin pengguna tersebut tidak akan repot-repot memeriksa bukti atau tidak akan dipercaya ketika mereka mengeluh karena tidak pernah menerima bukti, maka bursa dapat dengan yakin lolos dari hukuman pencurian. Namun, pertukaran juga dapat mencapai efek yang sama dengan mengecualikan pengguna ini dari pohon.

Oleh karena itu, dengan tujuan menunjukkan bukti kewajiban, teknologi pohon Merkle pada dasarnya sama baiknya dengan skema bukti kewajiban. Namun atribut privasinya masih belum ideal. Anda dapat menggunakan pohon Merkle dengan lebih cerdik, misalnya dengan membuat setiap satoshi atau wei menjadi satu daun, namun pada akhirnya, dengan teknik yang lebih modern, ada cara yang lebih baik untuk mencapai hal ini.

Meningkatkan Privasi dan Kekokohan dengan ZK-SNARKs

ZK-SNARK adalah teknologi yang kuat, berpotensi untuk kriptografi seperti halnya transformator terhadap kecerdasan buatan: sebuah teknologi yang ampuh secara universal yang benar-benar mengatasi banyak masalah dalam teknologi spesifik yang dikembangkan beberapa dekade lalu. Tentu saja, kita dapat menggunakan ZK-SNARK untuk menyederhanakan dan meningkatkan privasi dalam protokol pembuktian pertanggungjawaban.

Hal paling sederhana yang dapat kita lakukan adalah menempatkan semua simpanan pengguna di pohon Merkle (atau lebih sederhananya, komitmen KZG) dan menggunakan ZK-SNARK untuk membuktikan bahwa semua saldo di pohon tersebut tidak negatif dan secara kolektif berjumlah hingga nilai yang diklaim . Menambahkan lapisan hashing untuk privasi, memberikan setiap pengguna cabang Merkle (atau bukti KZG) tidak akan mengungkapkan saldo pengguna lain.

Menggunakan komitmen KZG adalah metode untuk menghindari kebocoran privasi, karena menghilangkan kebutuhan untuk memberikan “simpul saudara” sebagai bukti. ZK-SNARK sederhana dapat digunakan untuk membuktikan jumlah saldo dan setiap saldo tidak negatif. Kita dapat menggunakan ZK-SNARK khusus untuk membuktikan jumlah dan non-negatif saldo pada KZG tersebut di atas. Berikut adalah contoh sederhana yang mencapai hal ini. Kami memperkenalkan polinomial tambahan, yang “menetapkan bit dari setiap saldo” (untuk tujuan ilustrasi, mari kita asumsikan saldo berada dalam ), dan setiap 16 posisi melacak total berjalan dengan offset, sehingga jumlahnya nol hanya ketika total sebenarnya adalah konsisten dengan total yang dinyatakan. Jika z adalah akar kesatuan -128, kita dapat membuktikan persamaan berikut.

Nilai pertama dalam pengaturan efektif adalah 0 0 0 0 0 0 0 0 0 0 1 2 5 10 20 -165 0 0 0 0 0 0 0 0 1 3 6 12 25 50 -300… Untuk memahami bagaimana persamaan tersebut dapat ditransformasikan menjadi pemeriksaan polinomial dan kemudian menjadi ZK-SNARKs, lihat artikel saya di ZK-SNARKs untuk penjelasan lebih lanjut di sini dan di sini . Meskipun bukan merupakan protokol yang optimal, protokol ini menunjukkan bahwa bukti kriptografi jenis ini tidak begitu misterius saat ini!

Hanya dengan beberapa rumus tambahan, sistem batasan tersebut dapat disesuaikan dengan skenario yang lebih kompleks. Misalnya, dalam sistem perdagangan leverage, pengguna individu diperbolehkan memiliki saldo negatif, asalkan mereka memiliki aset lain yang cukup untuk menutupi dana dengan sejumlah jaminan. SNARK dapat digunakan untuk membuktikan kendala yang lebih kompleks ini, meyakinkan pengguna bahwa bursa tidak akan mempertaruhkan dana mereka dengan secara diam-diam mengecualikan pengguna lain dari aturan tersebut.

Dalam jangka panjang, bukti utang ZK semacam ini berpotensi digunakan tidak hanya untuk simpanan nasabah di bursa tetapi juga untuk pinjaman yang lebih luas. Setiap kali seseorang mengambil pinjaman, mereka akan memasukkan catatan ke dalam polinomial atau pohon yang berisi pinjaman tersebut, dengan akar struktur ini dipublikasikan pada rantai. Hal ini akan memungkinkan siapa pun yang mencari pinjaman untuk memberikan bukti ZK kepada pemberi pinjaman bahwa mereka tidak meminjam terlalu banyak dari pinjaman lain. Pada akhirnya, inovasi hukum bahkan mungkin membuat pinjaman dengan komitmen seperti ini memiliki prioritas lebih tinggi dibandingkan pinjaman tanpa komitmen. Hal ini membawa kita ke arah yang sama dengan gagasan yang dibahas dalam “Masyarakat Terdesentralisasi: Menemukan Jiwa Web3“: membangun konsep reputasi negatif atau jaminan pada rantai melalui beberapa bentuk “token yang terikat pada jiwa”.

Bukti Aset

Versi bukti aset yang paling sederhana adalah protokol yang telah kita lihat di atas: untuk membuktikan bahwa Anda memiliki koin dalam jumlah X, Anda hanya perlu memindahkan koin X pada waktu yang telah disepakati sebelumnya atau dalam transaksi yang menyertakan pesan “Dana ini milik Binance” di bidang datanya. Untuk menghindari biaya transaksi, Anda juga dapat menandatangani pesan off-chain; baik Bitcoin dan Ethereum memiliki standar untuk pesan tanda tangan off-chain.

Teknik pembuktian aset sederhana ini memiliki dua masalah praktis:

  1. Pemrosesan “penyimpanan dingin”.

  2. Penggunaan ganda agunan.

Untuk alasan keamanan, sebagian besar bursa menyimpan sebagian besar dana klien mereka di “cold storage”: di komputer offline di mana transaksi perlu ditandatangani secara manual dan ditransfer ke internet. Pengaturan penyimpanan dingin yang pernah saya gunakan untuk dana pribadi melibatkan komputer yang offline secara permanen, menghasilkan kode QR yang berisi transaksi yang ditandatangani, yang dapat saya pindai dengan ponsel saya. Protokol pertukaran modern lebih kompleks, sering kali melibatkan komputasi multipihak antara beberapa perangkat. Mengingat pengaturan seperti itu, bahkan pesan tambahan untuk membuktikan kendali atas suatu alamat adalah operasi yang mahal!

Suatu transaksi dapat mengambil beberapa jalur:

  • Pertahankan beberapa alamat jangka panjang yang diketahui publik. Pertukaran menghasilkan beberapa alamat, menerbitkan bukti kepemilikan untuk masing-masing alamat satu kali, dan kemudian menggunakan kembali alamat-alamat ini. Sejauh ini, ini adalah skema yang paling sederhana, meskipun skema ini menambahkan beberapa batasan tentang cara melindungi keamanan dan privasi.

  • Siapkan banyak alamat, buktikan beberapa secara acak. Pertukaran tersebut dapat memiliki banyak alamat, mungkin menggunakan masing-masing alamat hanya sekali dan menghentikannya setelah transaksi. Dalam hal ini, bursa mungkin memiliki protokol untuk memilih secara acak beberapa alamat yang harus “dibuka” untuk membuktikan kepemilikan. Beberapa bursa telah melakukan hal serupa dengan auditor, namun pada prinsipnya, teknik ini dapat menjadi proses yang sepenuhnya otomatis.

  • Opsi ZKP yang lebih kompleks. Misalnya, sebuah bursa dapat menetapkan semua alamatnya sebagai 1/2 multi-tanda tangan, dengan kunci setiap alamat berbeda, dan alamat lainnya merupakan versi tersembunyi dari beberapa kunci cadangan darurat “utama”, yang disimpan dengan cara yang kompleks namun sangat aman, seperti multi-tanda tangan 12/16. Untuk melindungi privasi dan menghindari pemaparan seluruh rangkaian alamatnya, sebuah bursa bahkan dapat menjalankan bukti tanpa pengetahuan (zero-knowledge proof) di blockchain, yang membuktikan saldo total semua alamat dengan format ini di rantai tersebut.

Permasalahan besar lainnya adalah mencegah penggunaan ganda agunan. Pertukaran dapat dengan mudah memindahkan agunan bolak-balik antara satu sama lain untuk bukti cadangan, berpura-pura menjadi pelarut padahal sebenarnya tidak. Idealnya, bukti solvabilitas akan bersifat real-time dan memperbarui bukti tersebut setelah setiap blok. Jika hal ini tidak praktis, opsi yang kurang ideal adalah mengoordinasikan jadwal tetap di antara bursa-bursa yang berbeda, misalnya, membuktikan cadangan setiap hari Selasa pukul 14:00 UTC.

Pertanyaan terakhir adalah: bisakah kita melakukan pembuktian aset pada mata uang fiat? Bursa tidak hanya menampung mata uang kripto; mereka juga menyimpan mata uang fiat dalam sistem perbankan. Di sini, jawabannya adalah: ya, tetapi proses seperti itu pasti akan bergantung pada model kepercayaan “fiat”: bank itu sendiri dapat membuktikan saldo, auditor dapat membuktikan neraca, dll. Mengingat fiat tidak dapat diverifikasi secara kriptografis, inilah yang terbaik yang bisa dilakukan. dapat dilakukan dalam kerangka itu, namun tetap layak dilakukan.

Pendekatan lainnya adalah dengan memisahkan secara jelas entitas yang menjalankan bursa dan menangani stablecoin yang didukung aset seperti USDC dari entitas lain yang menangani proses arus masuk dan arus kas keluar antara mata uang kripto dan sistem perbankan tradisional (USDC itu sendiri). Karena “kewajiban” USDC hanyalah token ERC20 on-chain, bukti kewajiban bersifat “gratis”, hanya memerlukan bukti aset.

Plasma dan Validium: Bisakah Kita Membuat CEX Tidak Terkekang?

Misalkan kita ingin melangkah lebih jauh: kita tidak hanya ingin membuktikan bahwa bursa memiliki dana untuk membayar kembali uang pengguna. Sebaliknya, kami ingin sepenuhnya mencegah bursa mencuri dana pengguna.

Upaya besar pertama dalam hal ini adalah Plasma, solusi ekstensi yang populer di komunitas riset Ethereum pada tahun 2017 dan 2018. Plasma bekerja dengan membagi saldo menjadi satu set “koin” individual, yang masing-masing diberi indeks dan ditempatkan pada posisi tertentu di pohon Merkle di blok Plasma. Transfer koin yang valid memerlukan penempatan transaksi pada posisi yang benar di pohon, dengan akar pohon dipublikasikan di rantai.

Skema sederhana dari versi Plasma. Koin disimpan dalam kontrak pintar, dan aturan protokol Plasma dijalankan secara paksa selama penarikan.

OmiseGo berusaha membangun pertukaran terdesentralisasi pada protokol ini, namun sejak itu, mereka beralih ke ide lain. Dalam hal ini, grup Plasma sendiri juga telah berevolusi, kini menjadi proyek Optimisme, dengan fokus pada rollup EVM yang optimis.

Keterbatasan teknologi Plasma, seperti yang direncanakan pada tahun 2018 (seperti pembuktian fragmentasi koin), tidak layak untuk dipertimbangkan. Sejak puncak wacana Plasma pada tahun 2018, ZK-SNARK menjadi lebih layak digunakan dalam kasus penggunaan terkait ekspansi. Seperti disebutkan sebelumnya, ZK-SNARK telah mengubah segalanya.

Versi yang lebih modern dari konsep Plasma adalah apa yang disebut Starkware sebagai validium: pada dasarnya sama dengan ZK-rollup, kecuali datanya disimpan secara off-chain. Struktur ini dapat digunakan untuk banyak kasus penggunaan, khususnya ketika server terpusat perlu menjalankan beberapa kode dan membuktikan eksekusi yang benar. Dalam validium, operator tidak dapat mencuri dana, namun bergantung pada detail penerapannya, sebagian dana pengguna mungkin tersangkut jika operator menghilang.

Semua ini sangat menjanjikan: hubungan antara CEX dan DEX jauh dari oposisi biner. Faktanya, terdapat beragam pilihan, termasuk berbagai bentuk sentralisasi hibrid, di mana Anda dapat menikmati manfaat seperti efisiensi sambil tetap memiliki banyak perlindungan kriptografi untuk mencegah operator terpusat dari sebagian besar bentuk penyalahgunaan.

Namun, di bagian kanan ruang desain ini, penting untuk membahas masalah mendasar: menangani kesalahan pengguna. Sejauh ini, jenis kesalahan yang paling kritis adalah: Apa yang harus dilakukan jika pengguna lupa kata sandi, kehilangan perangkat, diretas, atau kehilangan akses ke akun mereka?

Pertukaran dapat mengatasi masalah ini: pertama melalui pemulihan email, dan jika gagal, melalui bentuk pemulihan yang lebih kompleks melalui KYC. Namun, untuk dapat menyelesaikan masalah tersebut, bursa harus memiliki kendali nyata atas koin tersebut. Agar dapat memulihkan akses ke akun pengguna secara sah, bursa harus memiliki kekuatan yang juga berpotensi disalahgunakan untuk mencuri dana dari akun tersebut. Ini adalah trade-off yang tidak bisa dihindari.

Solusi ideal jangka panjang bergantung pada hak asuh mandiri, yang dilengkapi dengan teknologi seperti dompet multi-tanda tangan dan pemulihan sosial, untuk membantu pengguna menangani keadaan darurat. Namun dalam jangka pendek, terdapat dua solusi alternatif, yang masing-masing memiliki biaya dan manfaat yang berbeda.

Kesimpulan: Pertukaran yang Lebih Baik di Masa Depan

Dalam jangka pendek, ada dua kategori pertukaran yang berbeda: kustodian dan non-penahanan. Saat ini, yang terakhir diwakili oleh DEX seperti Uniswap. Di masa depan, kita mungkin juga melihat CEX yang “dibatasi” secara kriptografis, di mana dana pengguna disimpan dalam sesuatu yang mirip dengan kontrak pintar validium. Kita mungkin juga menyaksikan munculnya bursa semi-penahanan, di mana kita mempercayai mereka dengan fiat dibandingkan mata uang kripto.

Kedua jenis pertukaran ini akan terus ada. Cara paling sederhana untuk meningkatkan keamanan bursa kustodian adalah dengan meningkatkan bukti cadangan. Ini melibatkan kombinasi bukti aset dan bukti kewajiban. Mengembangkan protokol yang terstruktur dengan baik untuk keduanya menghadirkan tantangan teknis, namun kita harus membuat kemajuan di kedua bidang tersebut sebanyak mungkin, dan menjadikan perangkat lunak dan proses open source sehingga semua pertukaran dapat memperoleh manfaat.

Dalam jangka panjang, saya berharap kita semakin bergerak menuju semua bursa yang bersifat non-penahanan, setidaknya dalam hal mata uang kripto. Pemulihan dompet akan tersedia untuk pengguna baru yang berurusan dengan jumlah kecil dan untuk institusi yang memerlukan pengaturan tersebut karena alasan hukum. Opsi pemulihan yang sangat terpusat mungkin diperlukan, namun hal ini dapat dilakukan di tingkat dompet, bukan di dalam bursa itu sendiri. Cara magic.link berinteraksi dengan platform seperti Polymarket adalah contoh dari pendekatan ini. Dalam hal fiat, aliran antara sistem perbankan tradisional dan ekosistem kripto dapat difasilitasi oleh proses arus masuk/keluar kas lokal untuk stablecoin yang didukung aset, seperti USDC. Namun, mencapai tujuan ini sepenuhnya memerlukan waktu.

Terima kasih khusus kepada Balaji Srinivasan, serta staf di Coinbase, Kraken, dan Binance atas diskusi mereka.

Penafian:

  1. Artikel ini dicetak ulang dari [Chaincatcher] . Semua hak cipta milik penulis asli [Vitalik]. Jika ada keberatan terhadap cetak ulang ini, silakan menghubungi tim Gate Learn, dan mereka akan segera menanganinya.
  2. Penafian Tanggung Jawab: Pandangan dan pendapat yang diungkapkan dalam artikel ini adalah sepenuhnya milik penulis dan bukan merupakan nasihat investasi apa pun.
  3. Terjemahan artikel ke bahasa lain dilakukan oleh tim Gate Learn. Kecuali disebutkan, dilarang menyalin, mendistribusikan, atau menjiplak artikel terjemahan.
即刻开始交易
注册并交易即可获得
$100
和价值
$5500
理财体验金奖励!