Ini adalah catatan belajar pribadi white paper @megaeth_labs versi pertama. Jika Anda tertarik, Anda dapat melihatnya. Sebagai garda depan de facto inovasi blockchain, Ethereum sangat patut diperhatikan. Tingkat pribadi saya terbatas.

1. Tiga karakteristik dan kasus yang dibatasi saat ini:

throughput transaksi tinggi, throughput tinggi

OpBNB terbaik menonjol karena laju gasnya yang sangat tinggi yaitu 100MGas/s, namun masih sangat rendah dibandingkan dengan kemampuan server web2. 100MGas/s setara dengan 650 pertukaran uniswap atau 3700 transfer ERC20 per detik, sedangkan server modern per detik. detik Lebih dari 1 juta transaksi dapat dieksekusi.

kapasitas komputasi yang melimpah, daya komputasi yang melimpah

Aplikasi kompleks tidak dapat diunggah ke rantai, dan sebagian besar dibatasi oleh daya komputasi. Jika kontrak EVM digunakan untuk menghitung angka n-Fibonacci, diperlukan 5,5 miliar Gas, yang memerlukan kecepatan penghitungan 100MGas/s yang memerlukan waktu 55 detik. dari seluruh rantai opbnb. Biasanya, program yang ditulis dalam bahasa C hanya membutuhkan waktu 30ms. Kecepatan CPU single-core meningkat 1833 kali lipat

dan, yang paling unik, waktu respons tingkat milidetik bahkan di bawah beban berat.

Kecuali arb, blockchain tingkat kedua arus utama lainnya memerlukan lebih dari 1 detik waktu pembuatan blok untuk memperbarui status rantai. Hal ini tidak dapat dilakukan untuk aplikasi yang membutuhkan kecepatan pembaruan tinggi dan putaran umpan balik yang cepat. Misalnya, dunia buatan sendiri dan permainan dalam rantai memerlukan waktu respons dalam 100 md, sedangkan perdagangan frekuensi tinggi memerlukan waktu respons 10 md untuk menempatkan atau membatalkan pesanan, jika tidak, semua ini tidak dapat dicapai.

2. Bagaimana cara melampaui batas kinerja

Arsitektur Blockchain Saat Ini (L1)

Setiap blockchain terdiri dari dua komponen dasar, termasuk konsensus dan eksekusi.

Konsensus menentukan urutan transaksi pengguna, dan eksekusi memproses transaksi ini dalam urutan yang ditetapkan untuk memperbarui status blockchain. Di sebagian besar blockchain L1, setiap node melakukan tugas yang sama tanpa spesialisasi. Setiap node berpartisipasi dalam protokol terdistribusi, mencapai konsensus, dan kemudian mengeksekusi transaksi secara lokal. Setiap L1 harus memutuskan seberapa jauh ia dapat meningkatkan kebutuhan perangkat keras bagi pengguna biasa untuk mengoperasikan node tanpa mengorbankan properti fundamental blockchain, seperti keamanan dan ketahanan terhadap sensor.

Oleh karena itu, persyaratan pengoperasian full node sangat penting, terkait dengan keamanan dan ketahanan sensor.

Paradigma baru lapisan 2

Sifat dari blockchain L2 adalah heterogen dan pada dasarnya berbeda. Node L2 yang berbeda dikhususkan untuk melakukan tugas tertentu dengan lebih efisien.

megaETH melangkah lebih jauh dan memisahkan (memutuskan) tugas eksekusi transaksi dari node penuh. Secara khusus, megaETH memiliki tiga peran, sequencer (sequencer), provers (pemberi sertifikat) dan node penuh (full node)

Kunci pertama adalah penyortir terpusat yang kuat

Sequencer: Bertanggung jawab untuk memesan dan mengeksekusi transaksi, tetapi megaeth berbeda karena hanya ada satu sequencer aktif pada waktu tertentu, sehingga menghilangkan overhead konsensus selama eksekusi normal. Sebagian besar node penuh menerima perbedaan status dari pemesan ini melalui jaringan p2p dan kemudian menerapkan perbedaan tersebut secara langsung untuk memperbarui status lokalnya, namun mereka tidak mengeksekusi ulang transaksi, mereka memverifikasi blok secara tidak langsung melalui bukti yang diberikan oleh pembukti. Pengguna tingkat lanjut (operator jembatan dan pembuat pasar) masih dapat mengeksekusi setiap transaksi untuk mencapai penyelesaian secepat mungkin, namun hal ini memerlukan persyaratan perangkat keras yang lebih tinggi untuk mengimbangi sequencer. Terakhir, pembukti menggunakan skema validasi stateless untuk memverifikasi blok secara asinkron dan rusak.

 

Spesialisasi node sangat penting. Meskipun pembuatan blok lebih terpusat, blockchain lebih terdesentralisasi. Misalnya, sequencer memerlukan server kelas atas, sedangkan server yang dibutuhkan oleh full node sangat murah.

Selain server terpusat yang kuat, ada implementasi teknik yang lebih kompleks

Jika Anda hanya mengandalkan server yang kuat, Reth hanya dapat mencapai 1000TPS dalam percobaan, yaitu sekitar 100MGas/s. Hal ini terutama disebabkan oleh keterbatasan pembaruan MPT (struktur data yang digunakan oleh Ethereum) di setiap blok, yang lebih cepat daripada perhitungan pelaksanaan transaksi itu sendiri. Biayanya 10 kali lebih tinggi.

Jadi kita masih menghadapi banyak situasi kompleks.

3. Desain megaETH

mengukur, kemudian membangun, mengukur terlebih dahulu untuk menemukan masalah nyata, kendala kinerja, dan kemudian merancang sistem baru untuk menyelesaikan semua masalah pada saat yang bersamaan.

Berusaha merancang sistem untuk mencapai batas perangkat keras, tidak menyukai desain tambahan, dan lebih memilih desain baru yang mendekati batas teoritis.

Berikut beberapa tantangan dan solusi yang dihadapi selama proses desain

Eksekusi transaksi Eksekusi transaksi

 

Mari kita mulai dengan sequencer. Banyak orang mengatakan bahwa EVM adalah penyebab kinerja yang buruk dan tps L2 yang rendah, tetapi ini salah. Menurut pengujian megaeth, evm dapat mencapai 14.000 tps, yang mana sudah sangat tinggi.

Namun, ini tidak cukup untuk blockchain real-time. Implementasi EVM tradisional memiliki tiga masalah inefisiensi, yaitu:

Latensi akses status tinggi: Mengakses dan membaca status blockchain lambat karena disimpan di hard disk dan memerlukan banyak pembacaan.

Solusi: Node pemesan dilengkapi dengan RAM yang cukup untuk menyimpan seluruh status blockchain. Saat ini, RAM Ethereum berukuran sekitar 100 GB. Metode ini secara signifikan mempercepat akses status dengan menghilangkan latensi baca SSD.

Kurangnya eksekusi paralel: Karena transaksi dieksekusi secara berurutan untuk memastikan konsistensi negara dan pembelanjaan ganda, maka sulit untuk dieksekusi secara paralel

Solusi: Sudah ada solusi untuk skenario ini, namun meskipun diselesaikan, percepatan aktual yang dapat dicapai dalam produksi sebenarnya dibatasi oleh paralelisme yang tersedia dalam beban kerja. Berdasarkan pengujian, paralelisme median aktual Ethereum saat ini kurang dari 2, yang menunjukkan paralelisme terbatas. Faktanya, intinya adalah bahwa transaksi yang berbeda di Ethereum memiliki banyak ketergantungan dan bahkan objek membaca dan menulis dalam keadaan yang sama, yang menyebabkan konflik dalam paralelisme.

Overhead juru bahasa: Overhead tambahan yang disebabkan oleh mesin virtual atau juru bahasa saat menjalankan kontrak pintar.

Solusi: Sebagian besar opcode sudah asli dari Rust, sehingga sulit untuk mendapatkan manfaat dari kompilasi. Kecepatan maksimum mungkin hanya 2 kali lipat.

Selain masalah yang dihadapi oleh ketiga blockchain umum berkinerja tinggi ini, masih ada dua tantangan untuk mencapai blockchain real-time tingkat 10ms. Yang pertama adalah produksi blok yang konsisten dengan frekuensi tinggi, misalnya satu blok dihasilkan setiap 10 ms. Yang kedua adalah mesin eksekusi paralel harus mendukung prioritas transaksi sehingga transaksi penting dapat diproses tanpa penundaan antrian, bahkan selama periode kemacetan puncak.

Sinkronisasi negara

Sinkronisasi status adalah proses mempercepat node penuh dengan sequencer, yang merupakan salah satu aspek paling menantang dari desain blockchain berkinerja tinggi.

Jika transaksi transfer dan uniswap ditransmisikan 100,000 kali per detik, maka masing-masing akan memerlukan bandwidth 152,6Mbps dan 476,1Mbps, yang jauh lebih besar daripada bandwidth 100Mbps pada node penuh. Selain itu, 100Mbps ini kemungkinan hanya digunakan sepertiganya. Bandwidth sebenarnya yang digunakan untuk sinkronisasi mungkin hanya 25Mbps, yang merupakan perbedaan besar dari persyaratan sebenarnya.

Perbarui akar status

Konsepnya sangat rumit. Di bawah struktur data MPT, untuk memperbarui akar keadaan, banyak node daun dan node anak perlu dibaca dan ditulis menggunakan 100.000 transfer. waktu cache diperlukan. Pembacaan basis data, bahkan jika kita berasumsi bahwa setiap pembacaan basis data dapat ditangani oleh satu I/O disk, 6 juta IOPS jauh melampaui kemampuan SSD konsumen mana pun saat ini, dan penghitungan ini bahkan tidak memerlukan penulisan. operasi ke dalam akun.

Strategi optimasi umum untuk mengurangi I/O disk adalah dengan mengelompokkan beberapa node percobaan bersama-sama dalam satu subpohon dan menyimpannya dalam halaman disk 4KB. Tapi itu masih 6 kali lebih rendah dari yang kami minta.

Batas Blok Gas

Demi keamanan dan keandalan blockchain, kita harus menetapkan batas Gas yang wajar,

infrastruktur

Terakhir, pengguna tidak berinteraksi langsung dengan node sequencer, dan kebanyakan orang tidak menjalankan node penuh di rumah. Sebaliknya, pengguna mengirimkan transaksi ke node RPC pihak ketiga dan mengandalkan dApp atau penjelajah blockchain, seperti web front-end http://etherscan.io/, untuk mengonfirmasi hasil transaksi.

Oleh karena itu, pengalaman pengguna sebenarnya dari sebuah blockchain sangat bergantung pada infrastruktur pendukungnya, seperti node RPC dan pengindeks. Tidak peduli seberapa cepat blockchain real-time berjalan, jika node RPC tidak dapat secara efisien menangani sejumlah besar permintaan baca selama jam sibuk, menyebarkan transaksi ke node penyortir dengan cepat, atau pengindeks tidak dapat memperbarui tampilan aplikasi dengan cukup cepat untuk mengimbanginya, Maka itu tidak masalah.

Menskalakan blockchain dengan pendekatan yang berprinsip

Berkomitmen pada pendekatan holistik dan berprinsip terhadap penelitian dan pengembangan. Dengan melakukan analisis kinerja mendalam sejak awal, kami memastikan kami tetap fokus pada penyelesaian masalah yang memberikan manfaat nyata bagi pengguna kami. Padahal, kuncinya adalah perspektif pengguna secara keseluruhan, mendalam, dan mendalam.

4. Jenis Aplikasi yang Diharapkan

• permainan

• Infrastruktur fisik terdesentralisasi (dePin) yang memerlukan komputasi real-time

• Mesin Dunia Otonom

• Jaringan VPN terdesentralisasi

• Pembayaran lintas batas

• Memanfaatkan perdagangan frekuensi tinggi dengan latensi sangat rendah (Binance on-chain?)

Faktanya, bagian aplikasi seharusnya memiliki banyak ruang untuk berimajinasi. Saya telah mendengarkan banyak ruang terkait, dan saya merasa pemikiran semua orang masih belum cukup baik.