Skizofrenia seni bina Facebook Libra

Selepas dua tahun, saya kembali ke blog untuk catatan yang berbeza dari kuliah membosankan biasa tentang Haskell dan matematik. Saya telah mengusahakan fintech di EU sejak beberapa tahun yang lalu dan nampaknya sudah tiba masanya untuk menulis tentang topik yang kurang mendapat perhatian daripada media teknologi.

Facebook baru-baru ini mengeluarkan apa yang dipanggil "platform perkhidmatan kewangan baharu" yang dipanggil Libra. Ia diletakkan sebagai sistem penyelesaian digital berdasarkan sekumpulan mata wang antarabangsa yang diuruskan pada "chain blok" dan disimpan dalam kumpulan wang yang diuruskan dari Switzerland. Matlamat projek adalah bercita-cita tinggi dan melibatkan akibat geopolitik berskala besar.

Π’ Financial Times ΠΈ New York Times Banyak artikel yang masuk akal tentang andaian monetari dan ekonomi yang tidak kukuh di sebalik sistem kewangan yang dicadangkan. Tetapi tidak ada pakar yang cukup yang mampu menganalisis dari sudut pandangan teknikal. Tidak ramai orang bekerja pada infrastruktur kewangan dan bercakap secara terbuka tentang kerja mereka, jadi projek ini tidak mendapat banyak liputan dalam media teknologi, walaupun dalamannya terbuka kepada dunia. Maksud saya sumber terbuka dalam repositori Libra ΠΈ Organisasi Calibra.

Apa yang terbuka kepada dunia ialah artifak skizofrenia seni bina dengan dakwaan sebagai platform selamat untuk infrastruktur pembayaran global.

Jika anda menyelami asas kod, pelaksanaan sebenar sistem benar-benar menyimpang daripada matlamat yang dinyatakan, dan dengan cara yang paling pelik. Saya pasti bahawa projek ini mempunyai sejarah korporat yang menarik. Jadi adalah logik untuk mengandaikan bahawa ia telah direka dengan sedikit ketekunan, tetapi sebenarnya saya melihat satu set keputusan seni bina yang sangat pelik yang memecahkan keseluruhan sistem dan meletakkan pengguna dalam risiko.

Saya tidak akan berpura-pura mempunyai pendapat objektif tentang Facebook sebagai sebuah syarikat. Beberapa orang dalam industri IT memandangnya dengan simpati. Tetapi perbandingan kenyataannya dan kod yang diterbitkan jelas menunjukkan bahawa tujuan yang dinyatakan pada asasnya menipu. Pendek kata, projek ini tidak memberi kuasa kepada sesiapa. Dia akan kekal sepenuhnya di bawah kawalan sebuah syarikat yang perniagaan pengiklanannya terperangkap dalam skandal dan rasuah sehingga ia tidak mempunyai pilihan selain cuba mempelbagaikan pembayaran dan pemarkahan kredit untuk terus hidup. Matlamat jangka panjang yang jelas adalah untuk bertindak sebagai broker data dan perantara dalam akses pengguna kepada kredit berdasarkan data media sosial peribadi mereka. Ini adalah cerita yang sangat mengerikan dan gelap yang tidak mendapat perhatian yang sewajarnya.

Satu-satunya rahmat yang menyelamatkan cerita ini ialah artifak yang mereka cipta sangat lucu tidak sesuai dengan tugas yang sedang dijalankan sehingga ia hanya boleh dilihat sebagai tindakan sombong. Terdapat beberapa ralat seni bina utama dalam projek ini:

Menyelesaikan Masalah Jeneral Byzantine dalam Rangkaian Kawalan Akses ialah Reka Bentuk Tidak Konsisten

Masalah jeneral Byzantine adalah kawasan penyelidikan sistem teragih yang agak sempit. Ia menerangkan keupayaan sistem rangkaian untuk menahan kegagalan komponen rawak semasa mengambil tindakan pembetulan yang kritikal terhadap operasi sistem. Rangkaian yang berdaya tahan mesti menahan beberapa jenis serangan, termasuk dimulakan semula, gangguan, beban berniat jahat dan pengundian berniat jahat dalam pemilihan kepimpinan. Ini adalah keputusan utama untuk seni bina Libra, dan ia sama sekali tidak bermakna di sini.

Overhed kerumitan masa struktur tambahan ini bergantung pada algoritma. Terdapat banyak literatur tentang varian protokol Paxos dan Raft yang menyelesaikan masalah jeneral Byzantine, tetapi semua struktur ini memperkenalkan overhed tambahan untuk komunikasi melalui Skizofrenia seni bina Facebook Libra untuk mengekalkan kuorum. Untuk Libra, mereka memilih algoritma dengan kos komunikasi yang paling tinggi Skizofrenia seni bina Facebook Libra sekiranya berlaku kegagalan kepimpinan. Dan terdapat overhed tambahan daripada kemungkinan pemilihan semula pemimpin merentas pelbagai jenis peristiwa kegagalan rangkaian.

Untuk sistem yang beroperasi dalam konsortium syarikat multinasional yang dikawal ketat, di mana semua pengguna mempunyai kod yang ditandatangani oleh Facebook dan akses kepada rangkaian dikawal oleh Facebook, adalah tidak masuk akal untuk mempertimbangkan peserta berniat jahat di peringkat konsensus. Tidak jelas mengapa sistem ini akan menyelesaikan masalah jeneral Byzantine, dan bukannya hanya mengekalkan jejak audit yang konsisten untuk memeriksa pematuhan. Kemungkinan nod Libra yang dikendalikan oleh Mastercard atau Andressen Horrowitz tiba-tiba mula menjalankan kod berniat jahat adalah senario ganjil untuk dirancang dan ditangani dengan lebih baik dengan hanya memastikan integriti protokol dan cara bukan teknikal (iaitu undang-undang).

Testimoni kepada Kongres menagih produk itu sebagai pesaing kepada protokol pembayaran antarabangsa baharu seperti WeChat, Alipay dan M-Pesa. Walau bagaimanapun, tiada satu pun daripada sistem ini direka bentuk untuk dijalankan pada kumpulan pengesah untuk menyelesaikan masalah jeneral Byzantine. Mereka hanya direka pada bas jalur lebar tradisional yang membuat pendawaian mengikut set peraturan tetap. Ini adalah pendekatan semula jadi untuk mereka bentuk sistem pembayaran. direka dengan baik sistem pembayaran tidak akan menghadapi masalah perbelanjaan dan garpu berganda.

Overhed algoritma konsensus tidak menyelesaikan sebarang masalah dan hanya mengehadkan pemprosesan sistem tanpa sebab selain kultus kargo blok blok awam, yang tidak dimaksudkan untuk kes penggunaan ini.

Libra tidak mempunyai privasi transaksi

Menurut dokumentasi, sistem direka bentuk dengan mengambil kira nama samaran, iaitu, alamat yang digunakan dalam protokol diperoleh daripada kunci awam pada lengkung eliptik dan tidak mengandungi metadata tentang akaun. Walau bagaimanapun, dalam perihalan struktur tadbir urus untuk organisasi atau dalam protokol itu sendiri tidak menunjukkan bagaimana data ekonomi yang terlibat dalam urus niaga akan disembunyikan daripada pengesah. Sistem ini direka bentuk untuk mereplikasi urus niaga secara besar-besaran kepada pelbagai pihak luar yang, di bawah undang-undang kerahsiaan bank Eropah dan AS yang sedia ada, tidak sepatutnya mengetahui butiran ekonomi.

Dasar data merentas negara sukar untuk diselaraskan, terutamanya memandangkan undang-undang dan peraturan yang berbeza dalam bidang kuasa yang berbeza dengan pandangan budaya yang berbeza tentang perlindungan dan privasi data. Protokol itu sendiri secara lalai terbuka sepenuhnya kepada ahli konsortium, yang merupakan kelemahan teknikal yang jelas yang tidak memenuhi keperluan yang ia direka bentuk.

Libra HotStuff BFT tidak dapat mencapai daya pengeluaran yang diperlukan untuk sistem pembayaran

Di UK, sistem penjelasan seperti BAC mampu mengendalikan sekitar 580 transaksi sebulan. Pada masa yang sama, sistem yang sangat dioptimumkan seperti Visa boleh memproses 000 transaksi setiap hari. Prestasi berbeza-beza bergantung pada saiz transaksi, penghalaan rangkaian, beban sistem dan pemeriksaan AML (anti-pengubahan wang haram, skim pengubahan wang haram).

Libra cuba menyelesaikan masalah yang sebenarnya bukan masalah untuk pemindahan domestik, kerana negara-negara bangsa telah memodenkan infrastruktur penjelasan mereka sepanjang dekad yang lalu. Bagi pengguna runcit di Kesatuan Eropah, memindahkan wang tidak menjadi masalah sama sekali. Pada infrastruktur tradisional, ini boleh dilakukan dengan telefon pintar standard dalam beberapa saat. Untuk pemindahan korporat yang besar, terdapat pelbagai mekanisme dan peraturan yang berkaitan dengan memindahkan sejumlah besar wang.

Tiada sebab teknikal mengapa pembayaran rentas sempadan juga tidak boleh diproses serta-merta, selain daripada perbezaan dalam peraturan dan keperluan antara bidang kuasa yang berkaitan. Jika langkah pencegahan yang perlu (usaha wajar pelanggan, semakan sekatan, dsb.) dilakukan beberapa kali pada peringkat rantaian transaksi yang berbeza, ini mungkin mengakibatkan kelewatan dalam urus niaga. Walau bagaimanapun, kelewatan ini adalah semata-mata fungsi perundangan kawal selia dan pematuhan, bukan teknologi.

Bagi pengguna, tidak ada sebab mengapa urus niaga UK tidak akan jelas dalam masa beberapa saat. Urus niaga runcit di EU sememangnya semakin perlahan cek KYC (Kenali Pelanggan Anda) dan sekatan AML yang dikenakan oleh kerajaan dan pengawal selia, yang dikenakan sama rata untuk pembayaran Libra. Walaupun Facebook dapat mengatasi halangan untuk pemindahan rentas sempadan dan pemindahan data peribadi, model yang dicadangkan adalah beratus-ratus tahun lagi daripada pemprosesan transaksi global dan mungkin perlu direka bentuk semula dari awal.

Bahasa Libra Move tidak betul

Kertas putih membuat dakwaan berani tentang bahasa baharu yang belum teruji dipanggil Move. Kenyataan ini agak meragukan dari sudut teori bahasa pengaturcaraan (PLT).

Move ialah bahasa pengaturcaraan baharu untuk melaksanakan logik transaksi tersuai dan kontrak pintar pada rantaian Libra. Oleh kerana Libra menyasarkan untuk berkhidmat kepada berbilion-bilion orang suatu hari nanti, Move direka bentuk dengan keselamatan sebagai keutamaan utama.

Ciri utama Move ialah keupayaan untuk menentukan jenis sumber arbitrari dengan semantik yang diilhamkan oleh logik linear.

Dalam blok blok awam, kontrak pintar menghadapi logik rangkaian awam dengan akaun escrow, pengubahan wang haram, pengeluaran token OTC dan perjudian. Semua ini dilakukan dalam bahasa yang direka bentuk dengan sangat baik yang dipanggil Solidity, yang dari sudut pandangan akademik menjadikan pengarang PHP kelihatan seperti seorang genius. Anehnya, bahasa baharu daripada Facebook nampaknya tidak ada kaitan dengan teknologi ini, kerana ia sebenarnya bahasa skrip yang bertujuan untuk tujuan perusahaan yang tidak jelas.

Dalam lejar yang diedarkan persendirian, kontrak pintar adalah salah satu syarat yang dilemparkan oleh perunding tanpa mengambil kira definisi atau tujuan yang jelas. Perunding perisian perusahaan biasanya menjana wang daripada kekaburan, dan kontrak pintar adalah apotheosis obskurantisme korporat kerana ia boleh ditakrifkan secara literal apa sahaja.

Selepas membuat tuntutan tentang keselamatannya, kita perlu melihat semantik bahasa tersebut. Ketepatan dalam teori bahasa pengaturcaraan biasanya terdiri daripada dua bukti berbeza: "kemajuan" dan "pemeliharaan", yang menentukan ketekalan keseluruhan ruang peraturan penilaian untuk bahasa tersebut. Lebih khusus lagi, dalam teori jenis, fungsi adalah "linear" jika ia menggunakan hujahnya tepat sekali, dan "afine" jika ia menggunakannya paling banyak sekali. Sistem jenis linear memberikan jaminan statik bahawa fungsi linear yang diisytiharkan adalah benar-benar linear dengan menetapkan jenis kepada semua subungkapan fungsi dan menjejaki tempat panggilan dibuat. Ini adalah harta halus untuk dibuktikan dan tidak mudah untuk dilaksanakan untuk keseluruhan program. Penaipan linear masih merupakan bidang pengajian yang sangat akademik, dipengaruhi oleh pelaksanaan keunikan jenis dalam Bersih dan pemilikan jenis dalam Rust. Terdapat beberapa cadangan awal untuk menambah jenis linear pada Pengkompil Haskell Glasgow.

Pernyataan Move tentang menggunakan jenis linear kelihatan seperti menyelam yang tidak wajar ke dalam pengkompil, sejak itu tidak ada logik semakan jenis sedemikian. Setakat yang boleh dikatakan, kertas putih itu memetik kesusasteraan kanonik dari Girard dan Peirce, dan tidak ada yang serupa dalam pelaksanaan sebenar.

Selain itu, semantik formal bahasa yang dikatakan selamat tidak muncul di mana-mana sama ada dalam pelaksanaan atau dokumen. Bahasanya cukup kecil untuk mencari bukti lengkap semantik yang betul dalam Coq atau Isabelle. Pada hakikatnya, pengkompil penukaran penuh hujung ke hujung dengan pemindahan bukti kepada kod bait agak mungkin untuk dilaksanakan dengan alat moden yang dicipta dalam dekad yang lalu. Kami tahu bagaimana untuk melakukannya, bermula dengan karya George Necula dan Peter Lee kembali pada tahun 1996.

Dari perspektif teori bahasa pengaturcaraan, adalah mustahil untuk menguji dakwaan bahawa Move ialah bahasa yang boleh dipercayai dan selamat, kerana dakwaan ini merupakan lambaian tangan dan pemasaran tulen dan bukannya bukti sebenar. Ini adalah situasi yang membimbangkan untuk projek bahasa yang diminta untuk memproses transaksi berbilion dolar.

Kriptografi Libra adalah cacat

Membina sistem kripto yang selamat ialah masalah kejuruteraan yang sangat sukar, dan selalu terbaik untuk mendekati bekerja dengan kod berbahaya dengan dos paranoia yang sihat yang baik. Terdapat kejayaan besar dalam bidang ini, seperti projek Microsoft Everest, yang sedang membina selamat yang boleh disahkan Timbunan TLS. Alat sudah wujud untuk mencipta primitif yang boleh disahkan. Walaupun ini mahal, ia jelas tidak melebihi kemampuan ekonomi Facebook. Bagaimanapun, pasukan itu memutuskan untuk tidak mengambil bahagian dalam projek itu, yang diumumkan sebagai asas yang boleh dipercayai untuk sistem kewangan global.

projek libra bergantung daripada beberapa perpustakaan yang agak baharu untuk mencipta sistem kripto eksperimen yang hanya muncul dalam beberapa tahun kebelakangan ini. Adalah mustahil untuk mengatakan sama ada kebergantungan pada alatan berikut selamat atau tidak, kerana tiada perpustakaan ini telah diaudit dan tidak mempunyai dasar pendedahan standard. Khususnya, untuk sesetengah perpustakaan teras tidak ada kepastian mengenai perlindungan terhadap serangan saluran sisi dan serangan masa.

  1. ed25519-dalek
  2. curve25519-dalek

Perpustakaan libra menjadi lebih eksperimen dan melampauinya model standard, menggunakan teknik yang sangat baharu seperti fungsi rawak yang boleh disahkan (VRF), pasangan dwilinear dan tandatangan ambang. Kaedah dan perpustakaan ini mungkin munasabah, tetapi menggabungkan kesemuanya ke dalam satu sistem menimbulkan kebimbangan serius tentang kawasan permukaan serangan. Gabungan semua alat dan teknik baharu ini meningkatkan kerumitan membuktikan keselamatan.

Perlu diandaikan bahawa keseluruhan timbunan kriptografi ini terdedah kepada pelbagai serangan sehingga terbukti sebaliknya. Model 'Move Fast and Break Things' Facebook yang terkenal tidak boleh digunakan pada alat kriptografi yang memproses data kewangan pelanggan.

Libra gagal melaksanakan mekanisme perlindungan pengguna

Ciri tersendiri sistem pembayaran ialah keupayaan untuk melancarkan semula transaksi jika pembayaran dibatalkan oleh tuntutan mahkamah atau membawa kepada kegagalan sistem atau kemalangan. Sistem Libra direka untuk menjadi "lengkap" dan tidak termasuk jenis transaksi untuk pembatalan pembayaran. Di UK, semua pembayaran antara Β£100 dan Β£30,000 adalah tertakluk kepada Akta Kredit Pengguna. Ini bermakna sistem pembayaran berkongsi tanggungjawab dengan penjual sekiranya berlaku masalah dengan produk yang dibeli atau jika penerima pembayaran tidak menyediakan perkhidmatan. Peraturan serupa digunakan di EU, Asia dan Amerika Utara.

Reka bentuk semasa Libra tidak termasuk protokol untuk mematuhi undang-undang ini dan tidak mempunyai rancangan yang jelas untuk menciptanya. Lebih teruk lagi, dari perspektif seni bina, kemuktamadan struktur data yang disahkan kernel, berdasarkan keadaan pemacu Merkle, tidak membenarkan sebarang mekanisme untuk mencipta protokol sedemikian tanpa mereka bentuk semula kernel.

Selepas menjalankan semakan teknikal projek ini, kami boleh membuat kesimpulan bahawa ia tidak akan lulus dalam mana-mana penyelidikan sistem edaran atau jurnal kejuruteraan kewangan yang dihormati. Untuk cuba mengubah dasar monetari global, sejumlah besar kerja teknikal perlu dilakukan untuk mewujudkan rangkaian yang boleh dipercayai dan pemprosesan data pengguna yang selamat yang boleh dipercayai oleh orang awam dan pengawal selia.

Saya tidak melihat sebab untuk mempercayai bahawa Facebook telah melakukan kerja yang diperlukan dalam reka bentuknya untuk mengatasi masalah teknikal ini atau bahawa ia mempunyai sebarang kelebihan teknikal berbanding infrastruktur semasa. Mengatakan bahawa syarikat memerlukan fleksibiliti kawal selia untuk meneroka inovasi bukanlah alasan untuk tidak melakukannya terlebih dahulu.

Sumber: www.habr.com

Tambah komen