Pengembangan Intuisi, Arsitektur Sistem

Pengembangan Intuisi: Protokol Signer-Tunggal Yang Mudah

Untuk memahami bagaimana kami akan mengembangkan protokol dan token yang dapat memenuhi kebutuhan tersebut, mari mulai dengan mempertimbangkan hal yang mudah, dan secara teoritis dapat melakukan hal tersebut.

Bayangkan aktor dari jaringan yang berbeda, kita sebut saja Signer ; smart contract Ethereum yang mengimplementasikan ERC-20, PeggedBitcoin ; dengan simbol PBTC , dan contract lainnya dengan kemampuan mint dan burn PBTC disebut PeggedBitcoinReserve. Aktor lainnya yang berada diluar jaringan, Depositor , ingin melakukan mint token pada contract PeggedBitcoin. Depositor meminta PeggedBitcoinReserve untuk menerima deposit 1 BTC. PeggedBitcoinReserve selanjutnya akan menunggu Signer untuk membuat address BTC baru, beserta dengan deposit kolateral 150% dari jumlah nilai yang didepositkan dalam bentuk ETH ke PeggedBitcoinReserve. Depositor melakukan deposit 1 BTC kepada address BTC baru tadi, dan memberikan buktu transaksi kepada PeggedBitcoinReserve - yang selanjutnya akan bertindak untuk melakukan mint 1 PBTC , mengirim 0.99 token kepada Depositor dan 0.01 kepada Signer sebagai bentuk kesepakatan insentif.

Proses withdrawal terjadi sebaliknya- setiap partisipan dapat mengirimkan 1 PBTC ke PeggedBitcoinReserve beserta dengan Bitcoin address miliknya. Signer akan mengirimkan kembali Bitcoin tersebut dikurang dengan biaya transaksi Bitcoin, dan memberikan bukti transaksi kepada PeggedBitcoinReserve , selanjutnya melakukan burn pada 1 PBTC tadi, tetap menjaga rasio cadangan 1:1 PBTC. Signer lalu dapat dengan leluasa untuk menarik kembali kolateral mereka yang sebelumnya telah ditahan oleh PeggedBitcoinReserve.

Kekurangan

Meskipun rancangan desain ini sangat menarik, tetapi ini juga memiliki beberapa permasalahan--efisiensi pengesahan bukti transaksi Bitcoin pada EVM dan implementasi price feed, sebagai contohnya.

Selain itu juga bertumpu pada custody/petugas yang tidak aman.

Pertama, protokol bergantung pada Signer tunggal. Jika nilai deposit melebihi dari jumlah kolateral yang disimpan oleh Signer, tidak ada cara lain bagi Signer melainkan mencairkan kolateralnya di dalam bentuk Bitcoin. Signer juga dapat menentukan atau dipaksa untuk menutupi withdrawal tertentu, menutupi kemungkinan censorship atau stabil.

kedua, protokol bergantung pada hot wallet tunggal. Semakin meningkat jumlah market cap PBTC, semakin tinggi pula resiko peretasan yang akan dialami wallet nantinya.

Terakhir, protokol tidak melakukan apapun apabila terjadi kegagalan. Jika ada permasalahan di dalam deposit atau withdrawal, hal tersebut akan memiliki dampak yang besar bagi keseluruhan supply PeggedBitcoin, dapat menutupi seluruh deposit dan withdrawal.

Arsitektur Sistem: Merancang Protokol Multi-Wallet Dan Multi-Signer Yang Kuat

Keseluruhan dari dokumen ini sekarang akan berfokus pada protokol yang akan menjawab kekurangan-kekurangan di atas tadi, yang akan membuat aset cadangan-BTC menjadi lebih kuat di dalam jaringan Ethereum.

Pada tingkat yang tinggi, itu berarti protokol harus memiliki

  • Memiliki arsitektur multi-wallet

  • Memiliki signer yang tersebar secara geografis

  • Dapat menghapus permasalahan yang ada pada sistem signer-tunggal

Protokol ini juga harus dapat melawan efek sekunder dari persyaratan dan detail yang kami lewati dalam contoh signer-tunggal di atas, termasuk deposit multi-signer, sistem bonding yang lebih kompleks, pendekatan untuk mendeteksi dan menangani undercollateralized, sistem bukti transaksi Bitcoin, dan penanganan kegagalan yang kuat di kedua jaringan.

Beberapa komponen penting pada protokol ini akan dijelaskan di luar dari dokumen ini dan diasumsikan bahwa, adanya hal-hal berikut ini

  • Distribusi token yang merata bagi signer terpilih

  • Random beacon bagi signer terpilih

  • Distribusi Key yang efisien dengan menggunakan protokol secp256k1

  • Pembatasan multi-signer ECDSA yang efisien menggunakan protokol secp256k1

semuanya telah diimplementasikan oleh Keep Network. Kegunaan dari hal-hal di atas telah dijabarkan pada bagian ini.

Arsitektur ini dibagi menjadi:

  • Deposit dan pemilihan signer

  • Bonding dan price feed

  • Minting

  • Biaya signer

  • Signing

  • Wallet

  • Redemption(Penarikan/Penukaran)

  • Tata kelola

Deposit

Ringkasan

Sistem tBTC memberikan mekanisme pembuatan token, TBTC, di luar dari jaringan Bitcoin (in tBTC v1, jaringan awal yang dipilih adalah Ethereum), yang didukung oleh Bitcoin dengan rasio 1-banding-1. Pengguna yang ingin melakukan minting TBTC akan melakukan permintaan kepada sistem untuk memberikan address Bitcoin baru kepada mereka. Sistem kemudian akan memilih satu grup signer, yang akan bertugas untuk membuat private dan publik key kepada sistem. Kemudian pengguna yang ingin melakukan minting tadi mengirim Bitcoin mereka kedalam address Bitcoin tadi (jumlahnya ditentukan berdasarkan jumlah lot yang dipilih). Deposit juga tidak dapat dilakukan secara gratis, karena setiap deposit diharuskan bagi signer untuk menyimpan ETH mereka sebagai kolateral (lihat bagian ekonomi deposit). Untuk menutupi biaya-biaya ini, deposit dibayar melalui biaya signing yang mencakup jangka waktu eksklusivitas redemption/penebusan yang ditetapkan untuk depositor, dibahas secara terpisah di bagian tentang persyaratan deposit.

Setiap langkah akan dijelaskan pada diagram dibawah ini dan akan dibicarakan pada bagian lainnya.

Permintaan Deposit

Titik awal mendapatkan TBTC adalah membuat permintaan deposit. Permintaan ini berbentuk transaksi yang dikirimkan kepada smart contract tBTC, dan sinyal yang menunjukkan depositor membutuhkan grup signing untuk mendukung transaksi ini, semua ini diawali oleh deposit tersebut. Karena grup signing membutuhkan biaya transaksi di dalam pembuatan wallet baru, oleh sebab itu permintaan deposit tadi akan dikenai biaya kecil untuk menutupi biaya yang dikeluarkan oleh grup signer. Deposit ini dapat dikembalikan lagi jika grup signer gagal membuat dan menunjukkan key publik.

Pemilihan Signer

Setelah permintaan deposit diterima, grup signing akan dipilih secara acak dari grup-grup yang ada untuk membuat wallet Bitcoin. Proses ini akan dijelaskan pada diagram dibawah ini. [1]

Ketika permintaan datang untuk membuat grup signing, sistem tBTC akan melakukan proses pembuatan random seed untuk memastikan ke-desentralisasian dari random beacon. [2] Hasil dari random seed tadi juga akan digunakan untuk menentukan anggota grup signing dari kelompok signer yang tersedia. Terakhir, signer ini akan berkordinasi mendistribusikan key tadi yang akan akan menghasilkan key publik ECDSA untuk grup tersebut, dimana juga akan digunakan untuk membuat address wallet yang akan ditampilkan di dalam jaringan. Beginilah fase pemilihan signer terjadi.

Signer Bonding

Sebelum anggota grup signing melakukan proses distribusi key, mereka HARUS melakukan proses bonding (signer bond) dengan menggunakan token dari jaringan yang digunakan. Proses ini memiliki beberapa kegunaan:

  • Likuidasi deposit karena undercollateralization

  • Untuk menghukum grup signer karena melakukan proses signing yang tidak sah.

  • Untuk menghukum grup signer karena gagal melakukan prosedur signature ketika sistem memintanya.

  • Memastikan depositor mendapatkan kembali asetnya apabila grup signing gagal.

Yang terakhir, bonding yang disita akan dijual untuk mengkompensasi TBTC pemilik deposit sesuai dengan jumlah depositnya. Signer harus memiliki jumlah bond yang cukup untuk mendukung deposit dan juga menjadi salah satu persyaratan agar bisa terpilihnya menjadi grup signing, dan bond tadi HARUS berada didalam transaksi yang sama bersamaan dengan deposit tadi ketika signer terpilih. Bonding akan dijelaskan secara detail pada bagiannya nanti.

Distribusi Key

Catatan kecil mengenai distribusi key oleh grup signing.

Protokol distribusi key seharusnya terjadi berdasarkan tiga hal berikut:

  1. Grup signing sebagai kesatuan harus memiliki key publik ECDSA, yang akan dibagikan kedalam jaringan dan bertanggung jawab atas wallet Bitcoin yang dimiliki oleh grup tersebut.

  2. Setiap anggota grup signing harus memiliki secret key threshold ECDSA [3] , yang dapat digunakan untuk membuat signature threshold ECDSA untuk setiap transaksi yang berhubungan dengan wallet grup signing.

  3. Setiap anggota grup signing harus dapat menggabungkan signature yang ada pada mereka dan juga dengan anggota grup lainnya untuk menciptakan versi gabungan signature signing sebagai tanda bukti kelompok mereka.

Membuat Deposit

Setelah sistem tBTC memiliki address wallet yang tersedia untuk permintaan deposit tersebut, depositor dapat melakukan transaksi Bitcoin dari wallet yang mereka kontrol ke address wallet yang diberikan oleh grup signing. Setelah transaksi dikonfirmasi [4] oleh jaringan Bitcoin, depositor harus mengirimkan transaksi ke jaringan yang digunakan untuk membuktikan bahwa transaksi telah dilakukan.

Satu-satunya penghubung antara jaringan Bitcoin dan jaringan yang digunakan adalah sistem tBTC, yang berjalan sebagai sekumpulan smart contract pada jaringan yang digunakan. Dengan demikian, transaksi Bitcoin yang dikeluarkan oleh depositor harus dibuktikan ke sistem tBTC sebelum sistem tBTC memungkinkan depositor untuk bertingkah seolah-olah mereka telah berhasil menyimpan BTC mereka ke dalam wallet signer. Jika grup signer gagal memberikan key publik dalam batas waktu tertentu (batas waktu pembentukan grup signature), depositor dapat memberi tahu sistem bahwa ini telah gagal dan untuk menerima kembali transaksi mereka , yang telah diambil oleh bond milik signer sebagai bagian dari proses pemilihan grup signing. Jika bukti transaksi tidak diterima dalam batas waktu tertentu (batas waktu pendanaan transaksi), grup signing dapat memberi tahu bahwa transaksi pendanaan telah terjadi dan juga mengembalikan bond anggota lainnya.

Light Relay

Untuk melakukan pembuktian deposit, depositor diharuskan menyerahkan bukti transaksi pada block Bitcoin dengan jumlah konfirmasi yang cukup. Buktinya diverifikasi oleh simple payment verification (SPV) smart contract di dalam jaringan yang digunakan. Gambaran yang lebih lengkap tentang sistem cross-chain SPV dan properti keamanannya dijelaskan dalam appendix SPV.

Light relay adalah varian terbaru dari pengembangan SPV untuk tBTC. Memberikan manfaat yang ringkas dan efisien terhadap SPV sambil menyampaikan informasi yang cukup untuk memberikan jaminan keterkinian tambahan kepada setiap bukti. Kami bisa mencapai ini dengan memanfaatkan fitur penyesuaian difficulty protokol Bitcoin. Bitcoin menyesuaikan difficulty-nya setiap 2016 block, berdasarkan stempel waktu dari block pertama dan terakhir dalam periode itu (karena kesalahan off-by-one di client Satoshi, satu periode interblock dikecualikan dari perhitungan difficulty). Perubahannya bersifat deterministik dan dalam beberapa toleransi dapat ditetapkan oleh miner pada block terakhir.

Light relay tidak menyimpan setiap header block. Sebagai gantinya, ini hanya menyimpan sebagian header di sekitar peristiwa penyesuaian difficulty dan mencatat difficulty setiap periode 2016 block saat itu. Bagian ini divalidasi oleh proof of work(POW), serta memverifikasi bahwa difficulty header pertamanya cocok dengan difficulty-nya pada saat ini, perubahan terjadi pada indeks yang diharapkan dalam bagian tersebut, dan penyesuaian difficulty baru tersebut sesuai dengan algoritma penyesuaian Bitcoin. Dengan kata lain, Light relay kami hanya melihat difficulty Bitcoin saat ini, dan tidak memiliki informasi lain tentang statusnya.

Mengetahui difficulty saat ini dapat memberikan dasar tambahan SPV, jaminan informasi terbaru yang lebih kuat. Semua SPV yang baru dibuat harus menyertakan difficulty tersebut dalam jaringan headernya, dan difficulty tersebut tidak diketahui pihak mana pun sebelumnya. Miner dengan fraksi-n (seperti biasa, n> = 2 karena asumsi 51%) dari hashrate memiliki peluang 1 / n untuk diizinkan mengatur difficulty, dan dengan demikian memiliki peluang 1 / n untuk dapat berhasil memprediksinya 2 minggu sebelumnya (dengan menghasilkan bukti palsu, dan kemudian mengatur tingkat difficulty sehingga tampak valid). Secara umum, ini adalah peluang 1 / nt untuk berhasil memprediksi periode t penyesuaian difficulty (2t minggu) sebelumnya. Oleh karena itu, penggunaan light relay memberikan properti keamanan yang lebih kuat bagi SPV saat digunakan sebagai langkah validasi tambahan, karena bahkan entitas dengan sumber daya miner yang signifikan pun memiliki peluang yang sangat kecil untuk dapat membuat bukti palsu.

Lot

ketika melakukan deposit, jumlah lot deposit harus ditentukan. Sistem tBTC memiliki beberapa ukuran lot yang tersedia (lihat bagian tata kelola untuk informasi lebih lanjut), pada peluncuran v1 ada enam ukuran lot yang tersedia: 0.002 BTC, 0.01 BTC, 0.1 BTC, 0.2 BTC, 0.5 BTC, dan 1 BTC. Depositor hanya dapat memilih salah satu lot saja disaat yang bersamaan, dan setiap lot yang dipilih akan menjadi acuan jumlah TBTC yang di minting nantinya. Jika depositor ingin melakukan deposit dengan jumlah melebih lot yang ada, cara yang dapat dilakukan oleh depositor adalah dengan melakukan beberapa kali tahapan deposit agar mencapai jumlah yang diinginkan.

Untuk mempersingkat penjelasan, spesifikasi yang dijabarkan adalah dengan mengasumsikan jumlah deposit 1 BTC sebagai contohnya; selain itu, hal-hal yang bergantung dengan ukuran lot (seperti biaya signing) akan didefinisikan sebagai nilai proporsional ukuran lot.

Jumlah batasan ukuran lot setiap deposit memungkinkan untuk sistem melakukan pemilihan grup signing yang berbeda-beda, dimana dapat mempermudah proses bonding grup signing dan juga meningkatkan ketahanan sistem dari kegagalan grup signing ataupun tindakkejahatan lainnya.

Kesalahan Membuat Deposit

Sistem ini dirancang untuk berfungsi menggunakan ukuran lot yang telah ditentukan untuk semua deposit, yang diberikan sebagai parameter sistem. Depositor harus mengirimkan jumlah transaksi Bitcoin yang tepat sesuai dengan lot depositnya, jika tidak depositor akan kehilangan dananya. Karena tidak mungkin bagi sistem memaksa pengguna untuk mengirimkan jumlah tertentu, idealnya sistem akan menangani lebihnya deposit dan kurangnya deposit dengan baik. Dampak utama dari lebihnya deposit dan kurangnya deposit adalah pada rasio jaminan deposito tertentu. Sistem memperlakukan lebihnya deposit dan kurangnya deposit sebagai perilaku depositor yang salah, dan meneruskan biaya terkait kepada depositor.

Lebihnya Deposit

Membiarkan berlebihnya transaksi deposit pada saat proses deposit berlangsung akan mengakibatkan kurangnya-bonding signer. Ketika terjadi berlebihnya deposit, sistem menerima bukti transaksi, tetapi hanya akan mencetak TBTC sesuai dengan ukuran lot yang dipilih sebelumnya.

Di dalam pasar yang efisien, deposit yang telah didanai secara berlebihan dengan cara ini harus segera ditebus oleh depositor untuk mendapatkan kembali asetnya yang hilang. Jika depositor malah memilih untuk melakukan minting TBTC dan dengan demikian sama saja dengan membukanya (lihat bagian tentang minting), deposit tadi harus sesegera mungkin ditebus oleh aktor lain, karena dapat mengambil jumlah dana yang berlebihan sebagai nilai arbitrase.

Seorang pengguna memberikan bukti transaksi 1.6 BTC-nya dengan ukuran lot 1 BTC dan hanya akan mendapatkan 1.0 TBTC saja. Setiap pengguna yang akan melakukan proses burning 1.0 TBTC dapat mengklaim deposit 1.6 BTC tadi dan menebus UTXO yang terkandung di dalamnya, menghasilkan keuntungan sekitar 0.6 BTC.

Kurangnya Deposit

Membiarkan kurangnya transaksi deposit pada saat proses deposit berlangsung juga akan mengakibatkan berlebihnya-bonding signer. Untuk mencegah terjadinya hal ini, sistem tidak akan menerima bukti transaksi yang kurang dari jumlah deposit yang dibuka. Ini berarti setiap pengguna yang mengirimkan deposit kurang dari jumlah lot sizenya tidak akan mendapatkan/menerima TBTC, dan BTC yang dikirimkannya tadi akan jatuh di bawah pengawasan grup signing. Grup signing ini dapat, memberitahu depositor setelah batas waktu transaksi berakhir mengenai kurangnya transaksi deposit tadi dan juga dapat memberikannya kembali kepada depositor tersebut.

Multiple UTXO

Salah satu dari kesalahan depositor adalah mengirim lebih dari satu UTXO ke address grup signer, baik karena kesalahan manusia ataupun karena permasalahan software. Sayangnya, mengembalikan dana ke depositor akan menimbulkan kompleksitas jaringan dan biaya gas yang signifikan, karena setiap UTXO perlu dibuktikan melalui SPV, dan signature di atasnya diotorisasi secara terpisah. Selain itu, kami harus mengembangkan mekanisme yang secara ekonomis memaksa signer untuk signing setiap transaksi meskipun pada kenyataannya nilai total UTXO tidak diketahui. Dengan demikian, sistem hanya menerima UTXO pertama yang lebih besar dari ukuran lot deposit. Semua BTC lain yang dikirim ke grup signer akan hangus. Oleh karena itu, depositor wajib mengirimkan hanya satu UTXO dengan nilai yang sesuai. Sebagai contoh kasus, pertimbangkan bahwa depositor adalah orang yang naif. Jika mereka hanya mengirim setengah dari jumlah lot dalam satu transaksi dan setengahnya lagi di transaksi lainnya, kedua UTXO tersebut akan hangus. Ini merupakan perangkap serius bagi depositor yang harus ditangani dengan hati-hati oleh user interface(UI), karena kehilangan dana yang signifikan dapat terjadi.

Permintaan Pembatalan

Sistem ini mencakup bagian penyelesaian untuk skenario kurangnya pembayaran atau multi-UTXO: setelah deposit ditandai melewati batas waktu transaksi, depositor dapat meminta penggagalan deposit. Permintaan ini termasuk address Bitcoin untuk mengirim UTXO kurangnya deposit tadi kembali kepada depositor. Skenario ini bergantung sepenuhnya pada kejujuran signer, dan sistem tidak dapat memberikan jaminan ekonomi kepada depositor bahwa mereka akan mendapatkan kembali Bitcoin mereka.

Ekonomi Deposit

Signer bukanlah seorang yang altruis — mereka dibayar untuk layanan yang mereka berikan.

Biaya signer harus selalu dibayar atau disimpan di muka. Untuk mencapai hal ini, biaya signer harus dijamin dengan oleh minting, dan deposit harus memiliki masa tenggang yang dapat diprediksi.

Penjelasan rinci tentang biaya signer dapat ditemukan di bagiannya sendiri.

Peraturan

Deposit berjangka-tetap berarti biaya signer dapat dengan mudah dihitung per deposit. Jangka waktu standar 6 bulan berarti depositor dapat menganggarkan biaya yang dibutuhkan, dan signer akan tahu berapa lama bonding mereka tidak dapat diakses. Untuk memberikan insentif berdasarkan peraturan proses redemption/penukaran dalam jangka waktu tertentu, sistem disusun sedemikian rupa sehingga deposit hanya dapat diredeem/ditebus oleh pemilik deposit selama jangka waktu tersebut, tetapi siapa pun dapat me-redeem/menebus deposit tersebut setelah mencapai jangka waktunya. Selain itu, redemption/penebusan dalam jangka waktu masih dibebankan biaya signer dari pemilik deposit, kecuali biaya telah disimpan oleh vending machine.

Depositor yang tidak ingin melakukan akses di masa mendatang terhadap depositnya mungkin lebih suka membebankan biaya sistem kepada redeemernya/penebusnya dan/atau menginginkan denominasi di luar ukuran lot BTC atau kesepadanan. Depositor ini dapat memilih untuk menerima Fee Rebate Token(FRT) yang tidak dapat dipertukarkan/diperjual-belikan yang membayar biaya rebat pada saat redemption/penukaran deposit (pra-jangka) oleh pengguna lain. Mekanisme rebat dijelaskan lebih lanjut dalam pembahasan seputar minting.

Pada bagian terakhir peraturan deposit, deposit dapat diredeem/ditebus oleh siapapun termasuk signer itu sendiri, dengan biaya signer yang dibebankan kepada pemilik deposit. Mekanisme ini telah didiskusikan pada bagian redemption/penebusan.

Last updated