Pada tanggal 26 Oktober, KTT Global Blockchain ke-7 yang diselenggarakan oleh Wanxiang Blockchain Labs diadakan di Shanghai.Arsitek jaringan Nervos Xie Hanjian mengatakan dalam sebuah sharing berjudul "Abstraksi dan Evolusi Blockchain" bahwa tata kelola dan Abstraksi adalah tantangan baru untuk blockchain. Ethereum telah mengubah segalanya. Ia menggeneralisasikan teknologi blockchain. Ia mencari aplikasi yang memanfaatkan teknologi blockchain, menemukan kesamaannya, dan kemudian membuat platform untuk berbagai aplikasi, skenario, dan kebutuhan. Berbagai aplikasi dapat dibuat di Internet, termasuk pembayaran, permainan , dll. Ethereum adalah sistem dengan tingkat abstraksi yang lebih tinggi, dan blockchain masa depan tidak akan mengejar kinerja yang lebih baik, tetapi tingkat abstraksi yang lebih tinggi dan desain yang lebih umum. Dia percaya bahwa ada tiga masalah di tingkat abstrak blockchain, seperti sistem akun khusus, algoritme kriptografi khusus, dan runtime khusus. Blockchain harus mengejar tingkat abstraksi yang lebih tinggi, dan kinerja adalah produk sampingan.
Berikut isi lengkap pidato tersebut:
Halo semuanya! Saya Xie Hanjian, arsitek Nervos Network. Saya sangat senang berbagi dengan Anda topik yang ingin saya bicarakan hari ini - "Abstraksi dan Evolusi Blockchain".
Apa tantangan terbesar yang dihadapi blockchain?
Saya tidak tahu apakah Anda pernah membaca kalimat seperti itu, yang artinya: Tantangan terbesar yang dihadapi blockchain baru saat ini bukanlah "kecepatan" dan "throughput", tetapi "tata kelola".
Yang disebut blockchain generasi kedua, blockchain baru telah dikembangkan selama lima atau enam tahun Jika Anda meninjau beberapa ide sebelumnya, Anda dapat melihat bahwa pemikiran pada saat itu mungkin tidak begitu benar.
Beberapa tahun yang lalu, ketika semua orang ingin membangun blockchain baru, mereka berpikir, "Jika saya menyelesaikan masalah kinerja blockchain, apakah saya akan membuat sistem generasi baru yang dapat mengalahkan Ethereum, lalu apa yang dapat saya lakukan? Bagaimana caranya?" itu?” dan seterusnya.
Namun, perkembangan industri blockchain dalam beberapa tahun terakhir telah memalsukan ide ini, karena kita dapat melihat bahwa blockchain baru telah keluar, dan kinerjanya memang sangat bagus, tetapi semua orang masih berpikir bahwa kita masih berada di era Ethereum. tidak memasuki era berikutnya, dan tidak merasakan era dari " Bitcoin " ke " Ethereum ", perasaan ini tidak ada, meskipun blockchain baru saat ini memiliki kinerja yang sangat baik dan dapat memproses Ribuan transaksi.
Ada yang mengatakan tantangan terbesar yang kita hadapi adalah "tata kelola".
Faktanya, saya juga setuju bahwa "tata kelola" memang merupakan masalah besar yang dihadapi industri blockchain sekarang, dan pertanyaan ini adalah "Pertanyaan terbuka" tanpa jawaban. Komunitas blockchain yang berbeda dan tim blockchain yang berbeda sedang mendiskusikannya. Bagaimana mengatur seperti itu proyek otonom P2P terbuka. Tata kelola memang menjadi masalah yang sulit.
Tapi saya ingin mengatakan bahwa ini bukan satu-satunya masalah, jadi "Abstraksi" dan "Abstraksi" juga sangat penting.
Masalah yang dibahas dalam "tata kelola" adalah - jika kita sebagai komunitas dapat memutuskan apakah platform blockchain harus melakukan sesuatu, maka level "abstrak" dari blockchain adalah untuk menentukan apa yang dapat dipindahkan ke meja untuk diatur dan Diskusikan, diskusikan apa yang harus dilakukan atau apa yang tidak boleh dilakukan.
Oleh karena itu, menurut saya "abstraksi" juga merupakan tantangan yang sangat penting untuk blockchain baru.
Apa itu "abstrak"?
Kata itu sendiri abstrak.
Abstraksi itu sendiri adalah kata yang relatif teknis, dan ada dua penjelasan, kita hanya perlu memperhatikan yang pertama: yang disebut abstraksi adalah sebuah proses, kita menghilangkan kekhususan dari suatu sistem, dan kemudian menciptakan generalitas dan universalitas dari sistem tersebut. .
Ini adalah proses generalisasi, dengan menghapus desain khusus dan menemukan kesamaan, sistem dapat menjadi lebih umum dan dapat diterapkan pada lebih banyak skenario.
Penjelasan ini mungkin masih sangat abstrak, setiap orang harus ingat bahwa kata kuncinya adalah menghilangkan "kekhususan", menghapus "kekhususan" dari sistem, menemukan hal-hal "umum" yang lebih umum dalam sistem dan memasukkannya ke dalam desain untuk dibuat. "umum".
Jelaskan dengan contoh yang tidak terlalu blockchain.
Anda mungkin pernah memainkan konsol game, setidaknya ketika saya masih kecil, saya akan memainkan apa yang disebut mesin arcade besar di arcade. Jika Anda mengetahui mesin seperti itu, Anda akan tahu bahwa setiap mesin sebenarnya berhubungan dengan sebuah game. Untuk mesin arcade, desain sistemnya adalah desain terintegrasi dari perangkat lunak ke perangkat keras. Semua desain dirancang untuk satu tujuan, yaitu game ini. .
Saat kami perlu membuat game baru lagi, saya perlu mendesain mesin baru, jadi ada sepuluh atau dua puluh mesin di aula game, dan setiap mesin adalah game yang berbeda.
Industri game telah berkembang ke titik di mana hal yang paling populer saat ini bukan lagi mesin arcade, melainkan platform game yang lebih umum seperti XBox.
XBox adalah desain umum, Anda dapat mendesain berbagai game untuk XBox, dan kemudian Anda hanya dapat membeli game yang berbeda untuk dijalankan dan dimainkan di sistem ini.
Oleh karena itu, dari arcade ke XBOX adalah proses umum. Dari perspektif lain, XBox adalah desain dengan tingkat abstraksi yang lebih tinggi, yang dapat diterapkan ke lebih banyak skenario. Hanya ada sedikit hal khusus yang dibuat untuk setiap game tertentu. Hampir tidak ada.
Justru karena tidak memiliki detail khusus tersebut maka developer di platform ini bisa mengisi detailnya agar platform bisa beradaptasi dengan berbagai kebutuhan.
Ketika kami mempelajari perkembangan industri blockchain, proses pengujian "Bitcoin" dan "Ethereum" juga sama.
Apa yang ingin dilakukan "Bitcoin"?
Dari whitepaper dan judulnya, kita dapat melihat bahwa tujuan awalnya adalah untuk mewujudkan sistem pembayaran peer-to-peer, ini adalah sistem dengan satu tujuan yang sangat jelas, sehingga desain sistemnya juga didasarkan pada tujuan ini.
Di era sebelum kemunculan Ethereum, jika Anda masih memiliki kesan, kami ingin orang-orang di seluruh dunia melihat bahwa teknologi yang mendasari "Bitcoin" sangat berharga, baik itu blockchain atau ledger terdistribusi.
Apa yang dapat Anda lakukan ketika kami ingin menggunakan teknologi ini untuk melakukan hal lain? Yang dapat Anda lakukan hanyalah fokus pada kode "Bitcoin", bukan menggunakan kode "Bitcoin" untuk melakukan apa pun.
Tetapi kemunculan Ethereum telah mengubah semua ini. Ethereum mengatakan bahwa kita tidak perlu terlalu merepotkan. Kita dapat mengubah Bitcoin dan blockchain menjadi sistem yang lebih umum. Kita perlu menemukan kesamaan persyaratan aplikasi yang menggunakan teknologi blockchain. Buat sebuah platform untuk menghilangkan desain khusus yang hanya untuk layanan pembayaran, tetapi mengetahui berbagai kebutuhan umum dan merancang platform untuk kebutuhan bersama.
Oleh karena itu, Ethereum memiliki mesin virtual dan lingkungan operasi, dan berbagai aplikasi dapat dibuat di Ethereum, seperti pembayaran, peminjaman, permainan, dan sebagainya.
Dari "Bitcoin" ke "Ethereum" adalah proses generalisasi.
Dengan kata lain, Ethereum sebenarnya adalah level abstraksi yang lebih tinggi daripada "Bitcoin", seperti XBox dibandingkan dengan arcade.
Jika kita mengikuti garis pemikiran ini, kita dapat dengan mudah memikirkan bagaimana menjadi lebih baik.Jika kita benar-benar ingin membuat blockchain yang berbeda dari generasi sekarang, seperti apa generasi berikutnya?
Ini mungkin bukan kinerja yang lebih baik, itu harus abstraksi yang lebih tinggi.
Bagaimana membuat sistem menjadi tingkat abstraksi yang lebih tinggi?
Mengingat definisi tadi, perlu untuk menemukan desain khusus dan detail khusus di dalamnya, jika itu bukan hal yang umum, potonglah, dan temukan cara untuk mengubahnya menjadi desain yang lebih umum.
Dalam sistem blockchain saat ini, apa sajakah desain khusus? Saya menemukan beberapa hal untuk dibagikan dengan Anda:
(1) Sistem akun khusus
Blockchain adalah sistem interaksi antara orang dan aset, karena ada orang dan pengguna di dalamnya, Anda perlu membuat akun dan identitas untuk setiap pengguna untuk mewakilinya. Bagaimana cara memverifikasi bahwa akun itu milik seseorang? Apa model data di dalam akun? Hal-hal ini dikodekan dengan keras dalam sistem blockchain saat ini, dan dipilih oleh desainer blockchain untuk membantu pengembang dan pengguna. Sebagai pengguna atau pengembang, Anda tidak berhak menggantinya.
Ambil verifikasi di akun sebagai contoh. Apakah itu Bitcoin atau Ethereum, itu ditentukan oleh sistem. Setelah Anda ingin mengirim permintaan ke sistem dan membuat transaksi, Anda harus menggunakan algoritme kriptografi khusus untuk menandatanganinya. Ini wajib desain. Sebagai pengguna blockchain, Anda tidak memiliki cara untuk mengubahnya, itu dikodekan dengan keras ke dalam sistem.
Namun, desain wajib seperti itu sebenarnya akan menimbulkan banyak masalah, yang paling jelas adalah ambang batas untuk pengguna blockchain sangat tinggi. Pilihan spesifik yang dibuat karena alasan historis berbeda dengan algoritme kriptografi yang digunakan di banyak skenario Internet saat ini. Misalnya, setiap ponsel sekarang memiliki chip keamanan. Yang paling nyaman dan aman adalah menggunakan chip keamanan untuk menyimpan kunci pribadi. Namun, chip keamanan dapat menggunakan algoritme R1 atau RSA alih-alih algoritme enkripsi yang dipilih oleh blockchain. , ketidakcocokan akan menyebabkan Anda menggunakan teknologi mnemonik untuk membangun kembali sistem akun alih-alih menggunakan sistem akun yang ada.
Sekarang, apa saja sistem akun lainnya? Sebenarnya ada banyak kotak surat, pengenalan wajah, pengenalan biometrik, dll., Tetapi ini tidak kompatibel dengan sistem akun blockchain, yang merupakan kendala yang ditimbulkan oleh desain tertentu.
(2) Algoritma kriptografi khusus
Misalnya, hari ini saya ingin mengembangkan aplikasi di blockchain tertentu, dan saya tidak ingin menggunakan opsi terbatas yang ditentukan oleh platform ini, apa yang harus saya lakukan? Anda tidak dapat melakukan apa pun, Anda tidak dapat melakukan apa pun.
Di Ethereum, ada Prekompilasi yang merupakan algoritme kriptografi khusus yang ditulis dalam mesin virtual EVM. Jika Anda tidak ingin menggunakan algoritme ini, Anda mungkin dapat mengimplementasikannya kembali dengan Solidity, tetapi efisiensinya sangat rendah, karena EVM sendiri juga sangat tidak efisien. .
Masalah apa yang menyebabkan hal ini? Algoritme kriptografi sebenarnya adalah standar. Negara yang berbeda memiliki standar algoritma kriptografi yang berbeda. Amerika Serikat juga memiliki rahasia, dan China memiliki rahasia nasional, tetapi pilihan blockchain bukanlah standar apa pun. Ini berarti bahwa ketika aplikasi blockchain ingin pergi ke adegan nyata, sulit untuk kompatibel dengan standar yang ada, yang sebenarnya menjadi kendala promosi teknologi blockchain.
(3) Lingkungan runtime
Sekarang, hampir semua platform blockchain mendukung kontrak pintar, dan kontrak pintar perlu berjalan di lingkungan yang sesuai, yang mungkin termasuk mesin virtual dan model negara. Lingkungan runtime itu sendiri juga dapat dibagi menjadi waktu komputasi, runtime, runtime verifikasi, dll., masing-masing dengan banyak opsi berbeda. Misalnya, mesin virtual dapat menggunakan mesin virtual EVM, atau RISC-V, dll. Tetapi setiap desain blockchain yang terlihat hari ini adalah kombinasi spesifik yang dipilih oleh perancang blockchain untuk pengembang, dan pengembang tidak dapat dengan bebas memilih opsi yang berbeda, yang akan membawa ambang batas bagi pengembang. Untuk memasuki sistem blockchain, pengembang mungkin perlu mempelajari serangkaian hal yang sama sekali berbeda dari yang digunakan dalam pekerjaan saat ini, menurut pendapat kami, batasan ini juga sangat besar.
Tidak hanya ada biaya pembelajaran untuk pengembang, tetapi juga berdampak pada kinerja dan keamanan blockchain. Secara keseluruhan, pembuat sistem blockchain telah membuat pilihan untuk Anda, dan selama Anda menggunakan sistem blockchain, Anda tidak dapat lagi membuat pilihan lain.
Tiga aspek di atas adalah masalah yang relatif besar di tingkat abstrak blockchain yang dapat dilihat sekarang, dan kami juga berharap dapat menyelesaikan masalah ini. Cara mengatasinya juga sangat sederhana. Sekarang setelah masalah ditemukan, perlu mengabstraksi akun, mengabstraksi kriptografi, dan mengabstraksi runtime untuk memberikan lebih banyak pilihan kepada pengguna dan pengembang.
Bagaimana kita melakukannya? Pada lapisan abstraksi akun, Nervos memperkenalkan model akun data baru - Model sel. Dengan abstraksi akun, efek seperti apa yang dapat dicapai? Aplikasi pada akun abstrak dapat digunakan oleh pengguna di berbagai tempat.
Misalnya, jika Anda adalah pengguna Internet biasa dan Anda hanya memiliki alamat email, Anda dapat langsung menggunakan aplikasi di blockchain, Anda tidak perlu mengunduh entri dompet baru, dan Anda tidak perlu mengatur kunci pribadi Anda atau mnemonik Anda bisa menggunakan alamat email Anda sebagai akun Anda.
Kami juga dapat menggunakan chip keamanan ponsel untuk membantu Anda membuat akun dengan aman dan nyaman. Jika chip ponsel Anda dikaitkan dengan pengenalan wajah, Anda dapat langsung menggunakan pengenalan wajah untuk mengontrol akun Selama keseluruhan proses, Anda tidak perlu mempelajari sesuatu yang khusus tentang blockchain, cukup gunakan apa yang Anda miliki.
Sudah banyak aplikasi di Nervos yang melakukan ini, aplikasi seperti Unipass adalah sistem akun blockchain terdesentralisasi berdasarkan email, dan aplikasi seperti DAS juga menggunakan karakteristik akun abstrak untuk membuat Pengguna Internet, pengguna Ethereum, dan pengguna EOS dapat langsung mengoperasikan aplikasi, tidak hanya pengguna Nervos yang dapat mengoperasikan aplikasi, yaitu interoperabilitas.
Bagaimana cara melakukan abstraksi kriptografi?
Inti dari abstraksi kriptografi adalah kebutuhan akan mesin virtual yang sangat efisien. Mesin virtual efisiensi tinggi yang kami implementasikan sendiri adalah CKB-VM, yang menggunakan level instruksi terbuka RISC-V. Berkat karakteristik level instruksi RISC-V, CKB-VM memungkinkan pengembang menggunakan C dan Rust untuk mengimplementasikan algoritme kriptografi. , manfaatnya tidak hanya efisiensi tinggi, tetapi banyak implementasi algoritma kriptografi yang matang dapat langsung dipindahkan ke blockchain untuk dijalankan, artinya, mereka dapat dipindahkan ke Nervos untuk dijalankan.
Implementasi algoritma kriptografi sebenarnya sangat sulit, jika kita mengimplementasikan algoritma kriptografi terlebih dahulu akan mudah terjadi kesalahan. Bagaimana cara menilai apakah penerapan algoritma kriptografi aman? Satu-satunya standar pengujian terbaik adalah kematangan dan waktu penggunaannya, semakin banyak orang menggunakannya, semakin lama digunakan, semakin aman.
Keuntungan dapat mentransplantasikan kriptografi yang dilakukan oleh C dan Rust secara langsung adalah Anda tidak perlu mengimplementasikan ulang satu set. Jika Anda menggunakan Solidity untuk mengimplementasikan ulang satu set, maka keamanannya patut dipertimbangkan, karena ini adalah hal baru, mungkin ada bug di dalamnya, dan akan membutuhkan waktu koreksi.
Melalui EVM berperforma tinggi dan EVM yang mendukung C dan Rust, sebagian besar algoritme kriptografi saat ini dapat digunakan kembali secara efisien, karena sebagian besar algoritme kriptografi yang ada diimplementasikan dalam C dan Rust.
Bagaimana cara melakukan abstraksi saat runtime?
Bagi developer, developer tidak akan dipaksa menggunakan bahasa tertentu untuk development, tetapi bisa menggunakan bahasa yang sudah mereka kenal untuk development, baik itu JAVAscript, Ruby, Rust, C, dll, bisa digunakan untuk development. . Selain itu, saat menulis kontrak pintar, tata letak memori internal dan tata letak data kontrak pintar tidak ditentukan, tetapi dapat dipilih secara fleksibel, yang ingin kami capai.
Nervos sebenarnya meningkatkan blockchain ke arah ini. Yang ingin kami buat mungkin bukan blockchain yang lebih cepat, tetapi blockchain dengan tingkat abstraksi yang lebih tinggi. Tetapi ketika level abstraksi dapat dibuat lebih tinggi, kita dapat melakukan lebih banyak hal, apakah itu kinerja atau throughput, itu akan menjadi efek samping dari level abstraksi yang lebih tinggi.
Saat level abstraksi lebih tinggi, kami akan memindahkan lebih banyak item dari rantai, atau pindah ke Layer 2 seperti yang dikatakan Vitalik pagi ini. Pemisahan Layer 1 dan Layer 2, atau pemisahan perhitungan dan verifikasi adalah efek samping dari perubahan level abstraksi, jadi yang harus kita kejar adalah perubahan level abstraksi, daripada langsung mengejar perubahan performa.
Seolah-olah kami telah mengubah dari XBOX ke PC. Meskipun XBOX adalah platform umum, sebenarnya memberi banyak batasan kepada orang-orang. Kami dapat membuat game yang berbeda untuknya, tetapi kami tidak dapat mengubah perangkat kerasnya. PC juga telah menghapus batasan ini, dan juga telah melakukan pemrosesan yang lebih umum di tingkat perangkat keras PC memungkinkan orang untuk mengganti kartu grafis, CPU, memori, motherboard, dan hard drive. Jadi PC adalah sistem yang lebih umum, ini standar. Dari perspektif ini, PC adalah sistem dengan tingkat abstraksi yang lebih tinggi daripada XBOX, mampu melakukan hal-hal yang lebih tinggi, memenuhi lebih banyak kebutuhan pengguna, dan menghadirkan lebih banyak kemudahan bagi pengembang.