Gambaran Loopring 3.0: Dari A ke zkSNARKs

Original Source : Medium - Matthew Finenstone

Posting ini dimaksudkan untuk memberikan gambaran umum singkat tentang cara kerja Loopring 3.0, dan bagaimana kami menggunakan zkSNARKs untuk mengaktifkan DEX yang terukur dan aman. Untuk menyelam lebih dalam, Anda dapat melihat dokumen desain lengkap di GitHub.
Introduction
Versi ketiga dari protokol menangani masalah skalabilitas pertukaran desentralisasi. Versi protokol sebelumnya sudah melakukan order matching off-chain, tetapi penyelesaiannya benar-benar on-chain. Ini masih memiliki ongkos komputasi dan penyimpanan yang tinggi.
Protokol 3.0 menyelesaikan ini dengan memindahkan hampir semua data off-chain serta memindahkan semua perhitungan untuk semua permintaan off-chain menggunakan bukti nol-pengetahuan (zkSNARKs).

Merkle Tree
Data disimpan dalam pohon Merkle menggunakan model akun. Setiap pengguna memiliki satu akun dengan pemetaan satu-ke-satu ke alamat Ethereum-nya. Akun ini dapat menyimpan saldo untuk semua token yang ingin didukung pertukaran dan juga menyimpan semua data riwayat perdagangan untuk pengguna. Permintaan memodifikasi pohon Merkle dan transisi negara diverifikasi di rantai menggunakan bukti.

Blocks
Untuk alasan efisiensi, permintaan dikumpulkan bersama dalam beberapa blok. Biaya untuk memverifikasi bukti tetap konstan terlepas dari jumlah permintaan dalam satu blok, tetapi kami terbatas pada berapa banyak permintaan yang dapat kami sertakan dalam satu blok, jika tidak, verifikasi bukti on-chain tidak akan efisien lagi. Berapa banyak permintaan yang dapat kami sertakan dalam satu blok tergantung pada kompleksitas permintaan. Jika beberapa jenis permintaan akan dimasukkan dalam sebuah blok akan ada beberapa biaya tambahan untuk melakukan perhitungan yang hanya diperlukan untuk satu jenis permintaan saja, jadi kami membatasi blok untuk satu jenis permintaan tunggal untuk saat ini.
Kami saat ini mendukung 5 permintaan berbeda:
Penyelesaian perdagangan
Setoran
Penarikan on-chain
Penarikan tanpa rantai
Pembatalan pesanan off-chain
Hanya tiga yang pertama yang diperlukan untuk membangun DEX yang berfungsi penuh. Dua lainnya memberikan fleksibilitas ekstra untuk pengguna dan pertukaran.
Setelah operator DEX melakukan blok on-chain, ia juga perlu menyerahkan bukti untuk blok dalam batas waktu. Komit blok dan pengajuan bukti dilakukan secara terpisah karena pembuatan bukti saat ini membutuhkan waktu. Dengan mengizinkan operator DEX untuk melakukan blok pertama tanpa harus menunggu pembuatan bukti memungkinkan operator lain untuk membuat blok baru yang dibangun berdasarkan keadaan blok berkomitmen terbaru dan juga memungkinkan pembuatan bukti dilakukan secara paralel. Setelah bukti dihasilkan, operator dapat mengirim bukti pada rantai sehingga transisi status yang dilakukan dalam blok diverifikasi. Jika operator gagal mengirimkan bukti yang valid pada waktunya ia dihukum dan negara secara otomatis dikembalikan ke keadaan yang valid.

Ketersediaan Data
Hanya akar pohon Merkle yang disimpan pada rantai. Ini cukup bagi pengguna untuk membuktikan (menggunakan bukti Merkle) bahwa mereka memiliki sejumlah token di DEX. Bahkan jika operator DEX tidak bekerja sama lagi, pengguna dapat menarik dana apa pun yang mereka miliki dalam 'mode penarikan'.
Pengguna harus dapat membuat bukti Merkle. Untuk itu, mereka perlu memiliki akses ke pohon Merkle lengkap, bukan hanya akar Merkle. Dalam kasus terbaik, data ini tersedia di suatu tempat oleh DEX, tetapi tidak ada jaminan bahwa ini adalah kasus sebenarnya. Untuk memastikan semua data tersedia untuk semua pengguna, data ini dikirim on-chain (ini dilakukan menggunakan CALLDATA, bukan penyimpanan, yang lebih murah dan lebih banyak bukti di masa depan). Saat ini, ini masih memiliki biaya tinggi pada Ethereum (meskipun ini akan membaik di masa depan) dan ini membatasi throughput maksimum yang dapat dicapai. Inilah sebabnya kami juga mendukung penonaktifan ketersediaan data on-chain, DEX kemudian bebas menerapkan beberapa solusi off-chain untuk ini.

Aliran Pengguna

Menyetor

Untuk memulai perdagangan, pengguna harus terlebih dahulu menyetor sejumlah dana ke kontrak pintar pertukaran. Ini dilakukan dengan menggunakan transaksi on-chain normal dan permintaan ditambahkan ke antrian setoran on-chain. Setelah operator DEX memasukkan permintaan setoran ke dalam blok, pengguna dapat memulai perdagangan.

Perdagangan

Seorang pengguna menandatangani pesanan sekali saja dan pesanan tersebut berisi semua data yang diperlukan untuk DEX untuk menyelesaikan pesanan. Protokol mendukung
Pesanan pembuat / pengambil (menggunakan urutan yang sama)
Pesanan pasar
Pembayaran biaya ke DEX
Rebate pembayaran dari DEX ke pemilik pesanan
Penskalaan pesanan otomatis
Pencocokan pesanan sebagian
Dual-Authoring untuk mencegah pencurian pesanan dan / atau pemukiman berdering
...
Bagaimana pesanan dicocokkan sepenuhnya hingga DEX, tetapi penyelesaian akan menghormati keinginan pembuat pesanan dalam semua kasus.
DEX membuat permintaan penyelesaian dering dengan mencocokkan dua pesanan dan mengirimkan permintaan ke operator DEX yang akan memasukkan permintaan dalam satu blok untuk menerima biaya yang ditentukan dalam permintaan. Operator kemudian dapat melakukan blok on-chain.

Penarikan

Jika pengguna ingin menarik token mereka dari bursa, mereka perlu melakukan permintaan penarikan. Jika pengguna melakukan permintaan penarikan on-chain, DEX perlu memasukkannya dalam blok dalam waktu yang wajar. Jika sejumlah waktu telah berlalu sejak permintaan penarikan dilakukan, pertama-tama kami memaksa operator untuk memprosesnya dengan hanya memungkinkan untuk melakukan blok penarikan pada rantai. Jika operator masih menolak untuk memproses permintaan penarikan, pertukaran masuk ke 'mode penarikan'. Mode Mode Penarikan ’tidak dapat dikembalikan dan benar-benar mematikan pertukaran, satu-satunya hal yang masih mungkin adalah bagi pengguna untuk menarik dana mereka. Ini memastikan bahwa pengguna tetap memegang kendali penuh atas uang mereka dalam semua kasus tanpa harus mempercayai siapa pun.

Angka saat ini

Tentang Loopring

Loopring adalah protokol pertukaran terdesentralisasi yang memanfaatkan zkSNARKs untuk menghadirkan perdagangan non-penahanan yang sangat terukur kepada massa. 

Mohon maaf jika ada salah kata dan sebagainya.

Comments