Skizofrenia arsitektur Facebook Libra

Setelah dua tahun, saya kembali ke blog untuk mendapatkan postingan yang berbeda dari kuliah membosankan biasanya tentang Haskell dan matematika. Saya telah menangani fintech di UE selama beberapa tahun terakhir dan sepertinya sudah tiba waktunya untuk menulis tentang topik yang kurang mendapat perhatian dari media teknologi.

Facebook baru-baru ini merilis apa yang disebutnya “platform layanan keuangan baru” bernama Libra. Ini diposisikan sebagai sistem penyelesaian digital berdasarkan sekeranjang mata uang internasional yang dikelola pada “blockchain” dan disimpan dalam kumpulan uang yang dikelola dari Swiss. Tujuan proyek ini ambisius dan menimbulkan konsekuensi geopolitik berskala besar.

В Financial Times и Banyak artikel masuk akal tentang asumsi moneter dan ekonomi yang tidak sehat di balik sistem keuangan yang diusulkan. Namun tidak ada cukup spesialis yang mampu melakukan analisis dari sudut pandang teknis. Tidak banyak orang yang bekerja di bidang infrastruktur keuangan dan berbicara secara terbuka tentang pekerjaan mereka, sehingga proyek ini tidak mendapat banyak liputan di media teknologi, meskipun bagian dalamnya terbuka untuk dunia. Maksud saya open source di repositori Libra и Organisasi Kalibra.

Apa yang terbuka untuk dunia adalah artefak arsitektural skizofrenia yang diklaim sebagai platform aman untuk infrastruktur pembayaran global.

Jika Anda menyelami basis kode, implementasi sebenarnya dari sistem sepenuhnya menyimpang dari tujuan yang dinyatakan, dan dengan cara yang paling aneh. Saya yakin proyek ini memiliki sejarah perusahaan yang menarik. Jadi masuk akal untuk berasumsi bahwa ini dirancang dengan tekun, namun kenyataannya saya melihat serangkaian keputusan arsitektur yang sangat aneh yang merusak keseluruhan sistem dan membahayakan pengguna.

Saya tidak akan berpura-pura memiliki opini objektif tentang Facebook sebagai sebuah perusahaan. Hanya sedikit orang di industri TI yang memandangnya dengan simpati. Namun perbandingan pernyataannya dan kode yang dipublikasikan dengan jelas menunjukkan bahwa tujuan yang disebutkan pada dasarnya menipu. Singkatnya, proyek ini tidak memberdayakan siapa pun. Dia akan tetap sepenuhnya berada di bawah kendali perusahaan yang bisnis periklanannya terperosok dalam skandal dan korupsi sehingga perusahaan tersebut tidak punya pilihan selain mencoba mendiversifikasi pembayaran dan penilaian kreditnya agar bisa bertahan. Tujuan jangka panjangnya yang jelas adalah bertindak sebagai perantara data dan perantara dalam akses konsumen terhadap kredit berdasarkan data media sosial pribadi mereka. Ini adalah kisah yang benar-benar mengerikan dan kelam yang tidak mendapatkan perhatian yang layak.

Satu-satunya hal yang menyelamatkan dari cerita ini adalah bahwa artefak yang mereka buat sangat tidak sesuai dengan tugas yang ada sehingga hanya dapat dilihat sebagai tindakan keangkuhan. Ada beberapa kesalahan arsitektur utama dalam proyek ini:

Memecahkan Masalah Jenderal Bizantium dalam Jaringan Kontrol Akses adalah Desain yang Tidak Konsisten

Masalah para jenderal Bizantium adalah bidang penelitian sistem terdistribusi yang agak sempit. Ini menggambarkan kemampuan sistem jaringan untuk menahan kegagalan komponen acak sambil mengambil tindakan perbaikan yang penting untuk pengoperasian sistem. Jaringan yang tangguh harus tahan terhadap beberapa jenis serangan, termasuk restart, pemadaman listrik, muatan berbahaya, dan pemungutan suara jahat dalam pemilihan pemimpin. Ini adalah keputusan utama arsitektur Libra, dan sama sekali tidak ada artinya di sini.

Kompleksitas waktu tambahan dari struktur tambahan ini bergantung pada algoritme. Ada banyak literatur tentang varian protokol Paxos dan Raft yang memecahkan masalah jenderal Bizantium, namun semua struktur ini menimbulkan overhead tambahan untuk komunikasi melalui Skizofrenia arsitektur Facebook Libra untuk mempertahankan kuorum. Untuk Libra, mereka memilih algoritma dengan biaya komunikasi setinggi mungkin Skizofrenia arsitektur Facebook Libra jika terjadi kegagalan kepemimpinan. Dan ada tambahan biaya tambahan dari potensi terpilihnya kembali pemimpin di berbagai jenis peristiwa kegagalan jaringan.

Untuk sistem yang beroperasi dalam konsorsium perusahaan multinasional yang memiliki peraturan ketat, di mana semua pengguna memiliki kode yang ditandatangani oleh Facebook dan akses ke jaringan dikendalikan oleh Facebook, maka tidak masuk akal untuk mempertimbangkan peserta jahat pada tingkat konsensus. Tidak jelas mengapa sistem ini bisa menyelesaikan masalah para jenderal Bizantium, dibandingkan sekadar mempertahankan jejak audit yang konsisten untuk memeriksa kepatuhan. Kemungkinan node Libra yang dijalankan oleh Mastercard atau Andressen Horrowitz tiba-tiba mulai menjalankan kode berbahaya adalah skenario yang aneh untuk direncanakan dan lebih baik ditangani hanya dengan memastikan integritas protokol dan cara non-teknis (yaitu legal).

Kesaksian kepada Kongres menyebut produk tersebut sebagai pesaing protokol pembayaran internasional baru seperti WeChat, Alipay, dan M-Pesa. Namun, tidak satu pun dari sistem ini yang dirancang untuk berjalan pada kumpulan validator untuk memecahkan masalah jenderal Bizantium. Mereka hanya dirancang pada bus bandwidth tinggi tradisional yang membuat pengkabelan sesuai dengan seperangkat aturan tetap. Ini adalah pendekatan alami dalam merancang sistem pembayaran. Dirancang dengan baik sistem pembayaran tidak akan menghadapi masalah pembelanjaan ganda dan pembayaran ganda.

Overhead algoritma konsensus tidak menyelesaikan masalah apa pun dan hanya membatasi throughput sistem tanpa alasan selain dari kultus kargo blockchain publik, yang tidak dimaksudkan untuk kasus penggunaan ini.

Libra tidak memiliki privasi transaksi

Menurut dokumentasi, sistem dirancang dengan mempertimbangkan nama samaran, yaitu alamat yang digunakan dalam protokol diperoleh dari kunci publik pada kurva elips dan tidak berisi metadata tentang akun. Namun, deskripsi struktur tata kelola organisasi atau protokol itu sendiri tidak menunjukkan bagaimana data ekonomi yang terlibat dalam transaksi akan disembunyikan dari validator. Sistem ini dirancang untuk mereplikasi transaksi dalam skala besar ke berbagai pihak eksternal yang, berdasarkan undang-undang kerahasiaan bank Eropa dan AS, tidak boleh mengetahui rincian ekonomi.

Kebijakan data antar negara sulit untuk dikoordinasikan, terutama mengingat perbedaan undang-undang dan peraturan di yurisdiksi yang berbeda dengan pandangan budaya yang berbeda mengenai perlindungan data dan privasi. Protokol itu sendiri secara default sepenuhnya terbuka untuk anggota konsorsium, yang jelas merupakan kelemahan teknis yang tidak memenuhi persyaratan yang dirancang.

Libra HotStuff BFT tidak dapat mencapai throughput yang diperlukan untuk sistem pembayaran

Di Inggris, sistem kliring seperti BAC mampu menangani sekitar 580 transaksi per bulan. Pada saat yang sama, sistem yang sangat optimal seperti Visa dapat memproses 000 transaksi per hari. Kinerja bervariasi tergantung pada ukuran transaksi, perutean jaringan, beban sistem, dan Pemeriksaan AML (anti pencucian uang, skema pencucian uang).

Libra mencoba memecahkan masalah yang sebenarnya bukan masalah transfer domestik, karena negara-negara telah memodernisasi infrastruktur kliring mereka selama dekade terakhir. Bagi konsumen ritel di Uni Eropa, memindahkan uang bukanlah masalah sama sekali. Pada infrastruktur tradisional, hal ini dapat dilakukan dengan smartphone standar dalam hitungan detik. Untuk transfer perusahaan besar, terdapat berbagai mekanisme dan aturan yang terkait dengan pemindahan uang dalam jumlah besar.

Tidak ada alasan teknis mengapa pembayaran lintas negara juga tidak dapat diproses secara instan, selain perbedaan peraturan dan persyaratan antar yurisdiksi terkait. Jika tindakan pencegahan yang diperlukan (uji tuntas pelanggan, pemeriksaan sanksi, dll.) dilakukan beberapa kali pada berbagai tahap rantai transaksi, hal ini dapat mengakibatkan penundaan transaksi. Namun, penundaan ini semata-mata merupakan fungsi dari peraturan perundang-undangan dan kepatuhan, bukan teknologi.

Bagi konsumen, tidak ada alasan mengapa transaksi di Inggris tidak selesai dalam hitungan detik. Transaksi ritel di UE memang melambat pemeriksaan KYC (Kenali Pelanggan Anda) dan pembatasan AML yang diberlakukan oleh pemerintah dan regulator, yang juga berlaku pada pembayaran Libra. Bahkan jika Facebook ingin mengatasi hambatan dalam transfer lintas negara dan transfer data pribadi, model yang diusulkan masih membutuhkan waktu ratusan tahun untuk mencapai hasil transaksi global dan kemungkinan perlu didesain ulang dari awal.

Bahasa Libra Move salah

Buku putih tersebut membuat klaim yang berani tentang bahasa baru yang belum teruji yang disebut Move. Pernyataan tersebut cukup meragukan dari sudut pandang teori bahasa pemrograman (PLT).

Move adalah bahasa pemrograman baru untuk mengimplementasikan logika transaksi khusus dan kontrak pintar di blockchain Libra. Karena Libra bertujuan untuk melayani miliaran orang suatu hari nanti, Move dirancang dengan keamanan sebagai prioritas utama.

Fitur utama Move adalah kemampuan untuk menentukan jenis sumber daya arbitrer dengan semantik yang terinspirasi oleh logika linier.

Dalam blockchain publik, kontrak pintar menghadapi logika jaringan publik dengan rekening escrow, pencucian uang, penerbitan token OTC, dan perjudian. Semua ini dilakukan dalam bahasa yang dirancang dengan sangat buruk yang disebut Solidity, yang dari sudut pandang akademis membuat penulis PHP terlihat seperti seorang jenius. Anehnya, bahasa baru dari Facebook tampaknya tidak ada hubungannya dengan teknologi ini, karena sebenarnya ini adalah bahasa skrip yang ditujukan untuk tujuan perusahaan yang tidak jelas.

Dalam buku besar yang didistribusikan secara pribadi, kontrak pintar adalah salah satu istilah yang digunakan oleh konsultan tanpa banyak memperhatikan definisi atau tujuan yang jelas. Konsultan perangkat lunak perusahaan biasanya menghasilkan uang dari ambiguitas, dan kontrak pintar adalah pendewaan dari obskurantisme perusahaan karena kontrak pintar dapat didefinisikan sebagai apa saja.

Setelah membuat klaim tentang keamanannya, kita perlu melihat semantik bahasanya. Kebenaran dalam teori bahasa pemrograman biasanya terdiri dari dua bukti berbeda: “kemajuan” dan “pelestarian”, yang menentukan konsistensi seluruh ruang aturan evaluasi untuk bahasa tersebut. Lebih khusus lagi, dalam teori tipe, suatu fungsi bersifat "linier" jika fungsi tersebut menggunakan argumennya tepat satu kali, dan "affine" jika fungsi tersebut menggunakannya paling banyak satu kali. Sistem tipe linier memberikan jaminan statis bahwa fungsi linier yang dideklarasikan benar-benar linier dengan menetapkan tipe ke semua subekspresi fungsi dan melacak di mana pemanggilan dilakukan. Ini adalah sifat yang halus untuk dibuktikan dan tidak mudah diterapkan pada keseluruhan program. Pengetikan linier masih merupakan bidang studi yang sangat akademis, dipengaruhi oleh penerapan keunikan tipe di Clean dan kepemilikan tipe di Rust. Ada beberapa proposal awal untuk menambahkan tipe linier ke Glasgow Haskell Compiler.

Pernyataan Move tentang penggunaan tipe linier sepertinya merupakan penyelaman yang tidak beralasan ke dalam kompiler, sejak itu tidak ada logika pengecekan tipe seperti itu. Sejauh yang bisa diketahui, whitepaper tersebut mengutip literatur kanonik dari Girard dan Peirce, dan tidak ada yang serupa dalam implementasi sebenarnya.

Selain itu, semantik formal dari bahasa yang seharusnya aman tidak muncul di mana pun dalam implementasi atau dokumen. Bahasanya cukup kecil untuk menemukan bukti lengkap semantik yang benar di Coq atau Isabelle. Pada kenyataannya, kompiler konversi lengkap ujung ke ujung dengan transfer bukti ke bytecode sangat mungkin untuk diterapkan dengan alat modern yang ditemukan dalam dekade terakhir. Kami tahu bagaimana melakukannya, dimulai dengan karya George Necula dan Peter Lee kembali pada tahun 1996.

Dari perspektif teori bahasa pemrograman, mustahil untuk menguji klaim bahwa Move adalah bahasa yang andal dan aman, karena klaim ini hanya sekedar lambaian tangan dan pemasaran, bukan bukti nyata. Ini adalah situasi yang mengkhawatirkan bagi proyek bahasa yang diminta untuk memproses transaksi miliaran dolar.

Kriptografi Libra memiliki kelemahan

Membangun sistem kriptografi yang aman adalah masalah rekayasa yang sangat sulit, dan yang terbaik adalah melakukan pendekatan bekerja dengan kode berbahaya dengan tingkat paranoia yang sehat. Ada terobosan besar dalam bidang ini, seperti proyek Microsoft Everest, yang membangun keamanan yang dapat diverifikasi tumpukan TLS. Alat sudah ada untuk membuat primitif yang dapat diverifikasi. Meski mahal, hal ini jelas tidak melampaui kemampuan ekonomi Facebook. Namun, tim tersebut memutuskan untuk tidak berpartisipasi dalam proyek tersebut, yang diumumkan sebagai landasan yang dapat diandalkan untuk sistem keuangan global.

proyek libra tergantung dari beberapa perpustakaan yang cukup baru untuk membuat sistem kriptografi eksperimental yang baru muncul dalam beberapa tahun terakhir. Tidak mungkin untuk mengatakan apakah ketergantungan pada alat-alat berikut ini aman atau tidak, karena tidak satu pun dari perpustakaan ini yang telah diaudit dan tidak memiliki kebijakan pengungkapan standar. Khususnya, untuk beberapa perpustakaan inti, tidak ada kepastian mengenai perlindungan terhadap serangan saluran samping dan serangan waktu.

  1. ed25519-dalek
  2. kurva25519-dalek

Perpustakaan libra menjadi lebih eksperimental dan lebih dari itu model standar, menerapkan teknik yang sangat baru seperti fungsi acak yang dapat diverifikasi (VRF), pasangan bilinear, dan tanda tangan ambang batas. Metode dan pustaka ini mungkin masuk akal, namun menggabungkan semuanya ke dalam satu sistem menimbulkan kekhawatiran serius mengenai luas permukaan serangan. Kombinasi semua alat dan teknik baru ini sangat meningkatkan kompleksitas pembuktian keamanan.

Harus diasumsikan bahwa seluruh tumpukan kriptografi ini rentan terhadap berbagai serangan sampai terbukti sebaliknya. Model 'Move Fast and Break Things' yang terkenal di Facebook tidak dapat diterapkan pada alat kriptografi yang memproses data keuangan pelanggan.

Libra gagal menerapkan mekanisme perlindungan konsumen

Ciri khas sistem pembayaran adalah kemampuan untuk membatalkan transaksi jika pembayaran dibatalkan karena tuntutan hukum atau menyebabkan kecelakaan atau kegagalan sistem. Sistem Libra didesain "lengkap" dan tidak menyertakan jenis transaksi untuk pembatalan pembayaran. Di Inggris, semua pembayaran antara £100 dan £30,000 tunduk pada Undang-Undang Kredit Konsumen. Artinya sistem pembayaran berbagi tanggung jawab dengan penjual jika terjadi masalah pada produk yang dibeli atau jika penerima pembayaran tidak memberikan layanan. Aturan serupa juga berlaku di UE, Asia, dan Amerika Utara.

Desain Libra saat ini tidak menyertakan protokol untuk mematuhi undang-undang tersebut dan tidak memiliki rencana yang jelas untuk pembuatannya. Lebih buruk lagi, dari perspektif arsitektur, finalitas struktur data kernel yang diautentikasi, berdasarkan status drive Merkle, tidak memungkinkan mekanisme apa pun untuk membuat protokol seperti itu tanpa mendesain ulang kernel.

Setelah melakukan tinjauan teknis terhadap proyek ini, kami dapat menyimpulkan bahwa proyek ini tidak akan diterima dalam jurnal penelitian sistem terdistribusi atau rekayasa keuangan mana pun. Untuk mencoba mengubah kebijakan moneter global, sejumlah besar pekerjaan teknis perlu dilakukan untuk menciptakan jaringan yang andal dan pemrosesan data pengguna yang aman dan dapat dipercaya oleh masyarakat dan regulator.

Saya tidak melihat alasan untuk percaya bahwa Facebook telah melakukan pekerjaan yang diperlukan dalam desainnya untuk mengatasi masalah teknis ini atau bahwa Facebook memiliki keunggulan teknis dibandingkan infrastruktur yang ada saat ini. Pernyataan bahwa perusahaan memerlukan fleksibilitas peraturan untuk mengeksplorasi inovasi bukanlah alasan untuk tidak melakukannya terlebih dahulu.

Sumber: www.habr.com

Tambah komentar