ikon_instal_ios_web ikon_instal_ios_web ikon_instal_android_web

Artikel baru Vitaliks: Arsitektur lem dan koprosesor, ide baru untuk meningkatkan efisiensi dan keamanan

Analisis3 bulan yang lalu更新 6086cf...
37 0

Judul asli: Arsitektur lem dan koprosesor

Penulis asli: Vitalik Buterin, pendiri Ethereum

Terjemahan asli: Deng Tong, Golden Finance

Ucapan terima kasih khusus kepada Justin Drake, Georgios Konstantopoulos, Andrej Karpathy, Michael Gao, Tarun Chitra, dan berbagai kontributor Flashbots atas masukan dan komentar mereka.

Jika Anda menganalisis secara rinci setiap komputasi yang membutuhkan banyak sumber daya yang berlangsung di dunia modern, satu hal yang akan Anda temukan berulang-ulang adalah bahwa komputasi dapat dipecah menjadi dua bagian:

Sejumlah kecil logika bisnis yang kompleks namun murah secara komputasi

Banyak pekerjaan “mahal” yang intensif namun sangat terstruktur.

Kedua bentuk komputasi ini paling baik ditangani secara berbeda: yang pertama, yang arsitekturnya mungkin kurang efisien tetapi harus sangat umum; yang terakhir, yang arsitekturnya mungkin kurang umum tetapi harus sangat efisien.

Apa sajakah contoh pendekatan yang berbeda ini dalam praktik?

Pertama, mari kita lihat lingkungan yang paling saya kenal: Ethereum Virtual Machine (EVM). Berikut ini jejak debug geth dari transaksi Ethereum terbaru yang saya buat: memperbarui hash IPFS blog saya di ENS. Transaksi tersebut menghabiskan total 46.924 gas, yang dapat dijabarkan sebagai berikut:

Biaya dasar: 21.000

Data panggilan: 1.556 EVM

Eksekusi: 24.368 SLOAD

Kode operasi: 6.400 SSTORE

Kode operasi: 10, 100 LOG

Kode operasi: 2, 149

Lainnya: 6.719

Artikel baru Vitaliks: Arsitektur lem dan koprosesor, ide baru untuk meningkatkan efisiensi dan keamanan

Jejak EVM dari pembaruan hash ENS. Kolom kedua hingga terakhir adalah biaya gas.

Moral dari cerita ini adalah: sebagian besar eksekusi (~73% jika Anda hanya melihat EVM, ~85% jika Anda menyertakan bagian biaya dasar yang mencakup komputasi) terkonsentrasi dalam sejumlah kecil operasi mahal yang terstruktur: pembacaan dan penulisan penyimpanan, pencatatan, dan kriptografi (biaya dasar mencakup 3000 untuk verifikasi tanda tangan pembayaran, dan EVM mencakup 272 tambahan untuk hashing pembayaran). Sisa eksekusi adalah logika bisnis: menukar bit calldata untuk mengekstrak ID rekaman yang saya coba atur dan hash yang saya tetapkan, dll. Dalam transfer token, ini akan mencakup penambahan dan pengurangan saldo, dalam aplikasi yang lebih canggih ini mungkin mencakup loop, dll.

Dalam EVM, kedua bentuk eksekusi ini ditangani secara berbeda. Logika bisnis tingkat tinggi ditulis dalam bahasa tingkat tinggi, biasanya Solidity, yang dikompilasi ke EVM. Pekerjaan mahal masih dipicu oleh opcode EVM (SLOAD, dll.), tetapi lebih dari 99% komputasi aktual dilakukan dalam modul khusus yang ditulis langsung di dalam kode klien (atau bahkan pustaka).

Untuk memperkuat pemahaman kita tentang pola ini, mari kita jelajahi dalam konteks lain: Kode AI ditulis dalam Python menggunakan Torch.

Artikel baru Vitaliks: Arsitektur lem dan koprosesor, ide baru untuk meningkatkan efisiensi dan keamanan

Lulus maju satu blok model Transformer

Apa yang kita lihat di sini? Kita melihat sejumlah kecil "logika bisnis" yang ditulis dalam Python, yang menggambarkan struktur operasi yang sedang dilakukan. Dalam aplikasi nyata, akan ada jenis logika bisnis lain yang menentukan detail seperti cara mendapatkan input dan operasi apa yang harus dilakukan pada output. Namun, jika kita menelusuri setiap operasi individual itu sendiri (langkah-langkah individual di dalam self.norm, torch.cat, +, *, self.attn, …), kita melihat komputasi vektor: operasi yang sama menghitung sejumlah besar nilai secara paralel. Mirip dengan contoh pertama, sebagian kecil komputasi digunakan untuk logika bisnis, dan sebagian besar komputasi digunakan untuk melakukan operasi matriks dan vektor terstruktur yang besar – pada kenyataannya, sebagian besar dari mereka hanyalah perkalian matriks.

Sama seperti contoh EVM, kedua jenis pekerjaan ini ditangani dengan dua cara berbeda. Kode logika bisnis tingkat tinggi ditulis dalam Python, bahasa yang sangat umum dan fleksibel, tetapi juga sangat lambat, dan kami hanya menerima ketidakefisienannya karena hanya melibatkan sebagian kecil dari total biaya komputasi. Pada saat yang sama, operasi intensif ditulis dalam kode yang sangat optimal, biasanya kode CUDA yang berjalan pada GPU. Kami bahkan mulai melihat inferensi LLM dilakukan pada ASIC.

Kriptografi terprogram modern, seperti SNARK, kembali mengikuti pola serupa pada dua tingkat. Pertama, pembuktian dapat ditulis dalam bahasa tingkat tinggi yang pengerjaannya dilakukan dengan operasi vektor, seperti contoh AI di atas. Kode STARK melingkar saya di sini menunjukkan hal ini. Kedua, program yang dijalankan di dalam kriptografi itu sendiri dapat ditulis dengan cara yang terbagi antara logika bisnis umum dan pekerjaan mahal yang sangat terstruktur.

Untuk memahami cara kerjanya, kita dapat melihat salah satu tren terbaru dalam pembuktian STARK. Agar umum dan mudah digunakan, tim semakin banyak membangun pembuktian STARK untuk mesin virtual minimal yang banyak digunakan, seperti RISC-V. Program apa pun yang perlu dibuktikan eksekusinya dapat dikompilasi ke dalam RISC-V, dan pembuktian tersebut dapat membuktikan eksekusi RISC-V dari kode tersebut.

Artikel baru Vitaliks: Arsitektur lem dan koprosesor, ide baru untuk meningkatkan efisiensi dan keamanan

Diagram dari dokumentasi RiscZero

Ini sangat praktis: artinya kita hanya perlu menulis logika pembuktian sekali, dan selanjutnya program apa pun yang memerlukan pembuktian dapat ditulis dalam bahasa pemrograman tradisional apa pun (misalnya, RiskZero mendukung Rust). Namun, ada masalah: pendekatan ini menimbulkan banyak overhead. Kripto yang dapat diprogram sudah sangat mahal; menambahkan overhead menjalankan kode dalam interpreter RISC-V terlalu banyak. Jadi, pengembang menemukan trik: mengidentifikasi operasi mahal tertentu yang membentuk mayoritas komputasi (biasanya hashing dan penandatanganan), lalu membuat modul khusus untuk membuktikan operasi tersebut dengan sangat efisien. Kemudian Anda tinggal menggabungkan sistem pembuktian RISC-V yang tidak efisien tetapi umum dengan sistem pembuktian yang efisien tetapi khusus, dan Anda mendapatkan yang terbaik dari kedua dunia.

Kriptografi yang dapat diprogram di luar ZK-SNARK, seperti komputasi multi-pihak (MPC) dan enkripsi homomorfik penuh (FHE), dapat dioptimalkan menggunakan pendekatan serupa.

Secara keseluruhan, apa fenomenanya?

Komputasi modern makin mengikuti apa yang saya sebut arsitektur lem dan koprosesor: Anda punya beberapa komponen lem pusat, yang generalitasnya tinggi tetapi efisiensinya rendah, yang bertanggung jawab untuk meneruskan data di antara satu atau lebih komponen koprosesor, yang generalitasnya rendah tetapi efisiensinya tinggi.

Artikel baru Vitaliks: Arsitektur lem dan koprosesor, ide baru untuk meningkatkan efisiensi dan keamanan

Ini adalah penyederhanaan: dalam praktiknya, kurva trade-off antara efisiensi dan generalitas hampir selalu memiliki lebih dari dua level. GPU dan chip lain, yang sering disebut "koprosesor" dalam industri, kurang umum dibandingkan CPU, tetapi lebih umum daripada ASIC. Trade-off dalam hal tingkat spesialisasi itu rumit, dan bergantung pada prediksi dan intuisi tentang bagian mana dari suatu algoritma yang akan tetap sama dalam lima tahun, dan bagian mana yang akan berubah dalam enam bulan. Kita sering melihat beberapa level spesialisasi yang serupa dalam arsitektur anti-ZK. Namun untuk model mental yang luas, cukup dengan mempertimbangkan dua level. Ada situasi serupa di banyak bidang komputasi:

Artikel baru Vitaliks: Arsitektur lem dan koprosesor, ide baru untuk meningkatkan efisiensi dan keamanan

Dari contoh-contoh di atas, tampaknya sudah menjadi hukum alam bahwa komputasi dapat dipecah dengan cara ini. Bahkan, Anda dapat menemukan contoh-contoh spesialisasi komputasi yang sudah ada sejak beberapa dekade lalu. Namun, saya pikir pemisahan ini semakin meningkat. Saya pikir ada beberapa alasan untuk ini:

Kami baru saja mencapai batas peningkatan kecepatan clock CPU, jadi peningkatan lebih lanjut hanya dapat dilakukan melalui paralelisasi. Namun, paralelisasi sulit untuk dijelaskan, jadi sering kali lebih praktis bagi pengembang untuk terus menjelaskannya secara berurutan dan membiarkan paralelisasi terjadi di backend, yang dibungkus dalam modul khusus yang dibuat untuk operasi tertentu.

Komputasi baru-baru ini menjadi begitu cepat sehingga biaya komputasi logika bisnis menjadi benar-benar dapat diabaikan. Di dunia ini, masuk akal juga untuk mengoptimalkan VM tempat logika bisnis berjalan untuk tujuan selain efisiensi komputasi: kemudahan bagi pengembang, keakraban, keamanan, dan tujuan serupa lainnya. Sementara itu, modul koprosesor khusus dapat terus dirancang untuk efisiensi dan mendapatkan keamanan serta kemudahan bagi pengembang dari antarmuka yang relatif sederhana ke binder.

Semakin jelas apa saja operasi mahal yang paling penting. Hal ini paling jelas terlihat dalam kriptografi, di mana jenis operasi mahal tertentu paling mungkin digunakan: operasi modular, kombinasi linear kurva eliptik (alias perkalian multiskalar), transformasi Fourier cepat, dan seterusnya. Hal ini juga semakin jelas dalam AI, di mana selama lebih dari dua dekade sebagian besar komputasi sebagian besar adalah perkalian matriks (meskipun pada berbagai tingkat presisi). Tren serupa muncul di bidang lain. Ada jauh lebih sedikit hal yang tidak diketahui dalam komputasi (intensif komputasi) daripada 20 tahun yang lalu.

maksudnya itu apa?

Poin penting adalah bahwa lem harus dioptimalkan agar menjadi lem yang baik, dan koprosesor harus dioptimalkan agar menjadi koprosesor yang baik. Kita dapat mengeksplorasi implikasi hal ini dalam beberapa area utama.

Mesin EVM

Mesin virtual blockchain (seperti EVM) tidak perlu efisien, cukup familiar. Dengan penambahan koprosesor yang tepat (alias prakompilasi), komputasi dalam VM yang tidak efisien sebenarnya dapat sama efisiennya dengan komputasi dalam VM asli yang efisien. Misalnya, overhead yang dikeluarkan oleh register 256-bit EVM relatif kecil, sementara manfaat dari keakraban EVM dan ekosistem pengembang yang ada sangat besar dan bertahan lama. Tim pengembangan yang mengoptimalkan EVM bahkan menemukan bahwa kurangnya paralelisasi umumnya bukan merupakan hambatan utama terhadap skalabilitas.

Cara terbaik untuk meningkatkan EVM mungkin melalui (i) penambahan opcode khusus atau prakompilasi yang lebih baik, misalnya kombinasi EVM-MAX dan SIMD mungkin masuk akal, dan (ii) peningkatan tata letak penyimpanan, misalnya perubahan pada pohon Verkle sangat mengurangi biaya pengaksesan slot penyimpanan yang berdekatan satu sama lain sebagai efek samping.

Artikel baru Vitaliks: Arsitektur lem dan koprosesor, ide baru untuk meningkatkan efisiensi dan keamanan

Pengoptimalan penyimpanan dalam proposal pohon Verkle Ethereum menyatukan kunci penyimpanan yang berdekatan dan menyesuaikan biaya gas untuk mencerminkan hal ini. Pengoptimalan seperti ini, dikombinasikan dengan prakompilasi yang lebih baik, mungkin lebih penting daripada mengubah EVM itu sendiri.

Komputasi aman dan perangkat keras terbuka

Salah satu tantangan besar dalam meningkatkan keamanan komputasi modern di tingkat perangkat keras adalah sifatnya yang terlalu rumit dan bersifat hak milik: Chip dirancang agar efisien, yang memerlukan pengoptimalan hak milik. Backdoor mudah disembunyikan, dan kerentanan side-channel terus-menerus ditemukan.

Upaya untuk mendorong alternatif yang lebih terbuka dan lebih aman terus berlanjut dari berbagai sudut. Beberapa komputasi semakin banyak dilakukan di lingkungan eksekusi tepercaya, termasuk di ponsel pengguna, yang telah meningkatkan keamanan bagi pengguna. Dorongan untuk perangkat keras konsumen yang lebih open source terus berlanjut, dengan beberapa kemenangan baru-baru ini, seperti laptop RISC-V yang menjalankan Ubuntu.

Artikel baru Vitaliks: Arsitektur lem dan koprosesor, ide baru untuk meningkatkan efisiensi dan keamanan

Laptop RISC-V yang menjalankan Debian

Namun, efisiensi tetap menjadi masalah. Penulis artikel yang ditautkan di atas menulis:

Desain chip open-source yang lebih baru seperti RISC-V tidak mungkin dapat bersaing dengan teknologi prosesor yang telah ada dan ditingkatkan selama beberapa dekade. Kemajuan harus selalu dimulai dari suatu tempat.

Gagasan yang lebih paranoid, seperti desain membangun komputer RISC-V pada FPGA ini, menghadapi beban yang lebih besar. Namun, bagaimana jika arsitektur lem dan koprosesor berarti beban ini sebenarnya tidak penting? Bagaimana jika kita menerima bahwa chip yang terbuka dan aman akan lebih lambat daripada chip berpemilik, bahkan melepaskan pengoptimalan umum seperti eksekusi spekulatif dan prediksi cabang jika perlu, tetapi mencoba menebusnya dengan menambahkan modul ASIC (berpemilik jika perlu) yang digunakan untuk jenis komputasi spesifik yang paling intensif? Komputasi sensitif dapat dilakukan dalam "chip utama", yang akan dioptimalkan untuk keamanan, desain sumber terbuka, dan ketahanan saluran samping. Komputasi yang lebih intensif (misalnya pembuktian ZK, AI) akan dilakukan dalam modul ASIC, yang akan mengetahui lebih sedikit informasi tentang komputasi yang dilakukan (berpotensi, melalui penyamaran kriptografi, atau bahkan nol informasi dalam beberapa kasus).

Kriptografi

Poin penting lainnya adalah bahwa semua ini sangat optimis tentang kriptografi, dan khususnya kriptografi yang dapat diprogram, yang akan menjadi arus utama. Kami telah melihat implementasi yang sangat dioptimalkan dari komputasi tertentu yang sangat terstruktur dalam SNARK, MPC, dan pengaturan lainnya: beberapa fungsi hash hanya beberapa ratus kali lebih mahal daripada menjalankan komputasi secara langsung, dan AI (terutama perkalian matriks) juga memiliki overhead yang sangat rendah. Peningkatan lebih lanjut seperti GKR dapat mengurangi ini lebih jauh. Eksekusi VM yang sepenuhnya umum, terutama ketika dieksekusi dalam interpreter RISC-V, mungkin akan terus memiliki overhead sekitar sepuluh ribu kali, tetapi karena alasan yang dijelaskan dalam makalah ini, ini tidak menjadi masalah: selama bagian komputasi yang paling intensif ditangani secara terpisah menggunakan teknik yang efisien dan khusus, total overhead dapat dikelola.

Artikel baru Vitaliks: Arsitektur lem dan koprosesor, ide baru untuk meningkatkan efisiensi dan keamanan

Diagram sederhana dari MPC khusus untuk perkalian matriks, komponen terbesar dalam inferensi model AI. Lihat artikel ini untuk detail selengkapnya, termasuk bagaimana model dan input dirahasiakan.

Satu pengecualian terhadap gagasan bahwa lapisan perekat hanya perlu familier, bukan efisien, adalah latensi, dan pada tingkat yang lebih rendah, lebar pita data. Jika komputasi melibatkan operasi berat pada data yang sama puluhan kali (seperti dalam kriptografi dan AI), maka latensi apa pun yang disebabkan oleh lapisan perekat yang tidak efisien dapat menjadi hambatan utama dalam waktu proses. Oleh karena itu, lapisan perekat juga memiliki persyaratan efisiensi, meskipun persyaratan ini lebih spesifik.

Kesimpulannya

Secara keseluruhan, menurut saya tren yang dijelaskan di atas merupakan perkembangan yang sangat positif dari berbagai perspektif. Pertama, ini merupakan pendekatan yang wajar untuk memaksimalkan efisiensi komputasional sekaligus tetap ramah pengembang, dan mampu mendapatkan lebih banyak dari keduanya merupakan hal yang baik untuk semua orang. Secara khusus, dengan mengaktifkan spesialisasi di sisi klien untuk meningkatkan efisiensi, hal ini meningkatkan kemampuan kita untuk menjalankan komputasi yang sensitif dan menuntut kinerja (misalnya, pembuktian ZK, penalaran LLM) secara lokal pada perangkat keras pengguna. Kedua, hal ini menciptakan peluang yang sangat besar untuk memastikan bahwa pengejaran efisiensi tidak mengorbankan nilai-nilai lain, terutama keamanan, keterbukaan, dan kesederhanaan: keamanan dan keterbukaan saluran samping dalam perangkat keras komputer, pengurangan kompleksitas sirkuit dalam ZK-SNARK, dan pengurangan kompleksitas dalam mesin virtual. Secara historis, pengejaran efisiensi telah menyebabkan faktor-faktor lain ini menjadi tidak penting. Dengan arsitektur lem dan koprosesor, hal itu tidak lagi diperlukan. Satu bagian dari mesin mengoptimalkan efisiensi, dan bagian lainnya mengoptimalkan generalitas dan nilai-nilai lain, dan keduanya bekerja bersama.

Tren ini juga sangat bagus untuk kriptografi, karena kriptografi sendiri merupakan contoh utama komputasi terstruktur yang mahal, dan tren ini mempercepatnya. Ini menambah peluang lain untuk keamanan yang lebih baik. Di dunia blockchain, keamanan yang lebih baik juga memungkinkan: kita dapat mengurangi kekhawatiran tentang pengoptimalan mesin virtual dan lebih fokus pada pengoptimalan prakompilasi dan fitur lain yang ada bersamaan dengan mesin virtual.

Ketiga, tren ini membuka peluang bagi pemain yang lebih kecil dan baru untuk berpartisipasi. Jika komputasi menjadi kurang monolitik dan lebih modular, ini akan sangat menurunkan hambatan untuk masuk. Bahkan ASIC yang menggunakan satu jenis komputasi memiliki potensi untuk membuat perbedaan. Ini juga berlaku di area pembuktian ZK dan pengoptimalan EVM. Menjadi lebih mudah dan lebih mudah diakses untuk menulis kode dengan efisiensi yang hampir terdepan. Menjadi lebih mudah dan lebih mudah diakses untuk mengaudit dan memverifikasi kode tersebut secara formal. Terakhir, karena area komputasi yang sangat berbeda ini bertemu pada beberapa pola umum, ada lebih banyak ruang untuk kolaborasi dan pembelajaran di antara keduanya.

Tautan asli

Artikel ini bersumber dari internet: Artikel baru Vitaliks: Arsitektur lem dan koprosesor, ide baru untuk meningkatkan efisiensi dan keamanan

Terkait: Inovasi teknologi atau narasi sensasi? Melihat ekosistem awal Bitcoin fraktal

Penulis asli: shaofaye 123, Foresight News Tim UniSat kembali beraksi. Fractal Bitcoin telah memicu ledakan pasar, dan jumlah alamat dompet di jaringan uji telah melampaui 10 juta. Pizza dan Sats telah meningkat satu demi satu. Apakah ini titik ledakan berikutnya dari ekosistem Bitcoin atau BSV 2.0? FUD dan FOMO hidup berdampingan, dan mainnet akan segera dirilis. Artikel ini akan membawa Anda ke tinjauan umum ekologi awal Fractal Bitcoin. Tentang Fractal Bitcoin Fractal Bitcoin adalah solusi ekspansi Bitcoin lain yang dikembangkan oleh tim UniSat. Dengan menggunakan kode inti BTC, ia berinovasi pada lapisan ekspansi tak terbatas pada rantai utama untuk meningkatkan kemampuan dan kecepatan pemrosesan transaksi, sekaligus sepenuhnya kompatibel dengan ekosistem Bitcoin yang ada. Ini…

© 版权声明

相关文章