Pembaruan pintar vs kontrak pintar

Apa itu kontrak yang cerdas dan mengapa itu diperlukan?


Dahulu kala, setelah kemunculan Bitcoin - mesin negara yang direplikasi pertama - orang-orang mulai memperhatikan bahwa fungsi yang terkandung dalam konsensus terlalu terbatas. Saya tidak berbicara tentang menambahkan cryptocode ke perdagangan, tetapi tentang kasus pengguna kehidupan nyata - DNS di mana setiap domain milik kunci publik dan bukan ke pencatat terpusat, semua jenis token dan derivatif keuangan (karena Anda ingin memiliki saham dengan cara yang sama seperti Anda memiliki bitcoin), pertukaran onchain (untuk pertukaran berdagang dalam jumlah besar tanpa kepercayaan pada pertukaran), saluran pembayaran (dengan cepat mendistribusikan kembali escrow umum antara dua akun tanpa overhead dari pesan transaksi secara umum) ...

Ada tiga cara untuk menambahkan fungsi:

1) yang paling jelas adalah memasukkannya ke dalam kode blockchain itu sendiri, secara asli.

Blockchain pada dasarnya adalah situs web yang direplikasi , ketika Anda tidak memiliki cukup fungsi di situs web, apa yang Anda lakukan? Cukup tambahkan langsung ke kode sebagai model atau pengontrol baru . Tetapi dalam kasus jaringan desentralisasi, tidak ada proses untuk perubahan model / pengontrol - setelah semua, itu dapat digunakan untuk keuntungan mereka. Hanya opsi garpu yang sulit, di mana semua orang pada saat yang sama menyetujui obrolan / forum.

2) buat blockchain lain dengan fungsi ini.

Jadi itu terjadi dengan beberapa "blockchains of one idea" ala namecoin. Segera diketahui bahwa orang tidak ingin menggunakan jaringan baru untuk satu fungsi, mereka juga membutuhkan interoperabilitas dan banyak hal bergantung satu sama lain (pinjaman, identitas, dan aset sendiri ingin hidup di ruang alamat yang sama)

3) mengimplementasikan fungsi menggunakan mesin virtual internal dan opcodes.

Bahkan Satoshi memasukkan Script ke dalam Bitcoin justru karena masalah pembaruan, yang memungkinkan untuk melakukan banyak hal, tetapi itu tidak cukup. Oleh karena itu, skrip yang diperluas diusulkan oleh eter (sekarang sudah selesai), dan Anda dapat melakukan apa saja dengannya (secara teori).
gambar

Jadi, itu adalah kode yang dieksekusi oleh mesin virtual di dalam blockchain yang disebut kontrak pintar, dan diperlukan untuk mengimplementasikan fungsi-fungsi baru. Anda bisa menyebutnya "opcode patch", tetapi tidak laris :)

Apa itu pembaruan cerdas?


Beralih ke kontrak pintar selama beberapa tahun terakhir, kita dapat dengan jelas mengatakan bahwa mereka tidak memenuhi harapan. Ya, booming ICO tidak dimungkinkan pada bitcoin, tetapi untuk memperkenalkan EVM canggih hanya untuk token erc20 terlalu banyak.

Menulis bahkan "patch" kecil dalam soliditas sangat sulit. Pada level yang lebih rendah, Anda akan menemukan VM mentah yang memiliki sangat sedikit opcodes (sesuai desain) dan basis data nilai kunci yang sederhana. Semua operasi sangat mahal (biaya gas) dan Anda tidak dapat berbalik sama sekali.

Kasus pengguna yang canggih hampir tidak mungkin. Lihatlah github.com/raiden-network/raiden-contracts/tree/master/raiden_contracts/contracts - ribuan baris kode, dalam bahasa alien mentah (soliditas), untuk mengelola sistem keuangan yang kompleks. Kami melihat beberapa retas paritas dan DAO dengan serangan sederhana, serangan seperti apa yang menunggu kami di basis kode yang begitu mengerikan?

Tidak ada database SQL, NoSQL tidak ada, basis data grafik juga tidak direncanakan. Iterasi kunci, banyak-ke-banyak? ORM? Semua ini tidak ada dalam kontrak. Tooling juga sangat lemah relatif terhadap bahasa pemrograman terkenal.

95% dari pekerjaan proyek soliditas modern justru perjuangan melawan soliditas dan bukan arsitektur kode. Gagasan yang sama dapat diimplementasikan dalam javascript sepuluh kali lebih cepat dan lebih dapat diandalkan, hanya karena kita tahu dan dapat menulis javascript dan ekosistem soliditas tidak berjalan lebih jauh daripada ekosistem brainfuck.

Untuk membela EVM, saya masih akan mengatakan - gambar di dunia bitcoin bahkan lebih menyedihkan karena penyetelan mereka lebih lemah dan opcode bahkan lebih kecil . Pengembang kilat menggigit tetapi masih memiliki kaktus - kompleksitas saluran bitcoin dua arah pada Bitcoin begitu gila sehingga mempertahankan basis kode bahkan lebih sulit, dan hal-hal nyaman seperti Sprite dan logika kompleks di dalam saluran negara tidak mungkin.

Tata kelola Onchain = Pembaruan Cerdas


Setelah muak dengan kesedihan dengan soliditas, mari kita kembali ke 2012 dan mengingat kembali opsi pertama yang dibuang dengan penambahan case pengguna secara native ke blockchain.

gambar
Seperti yang banyak orang perhatikan, setelah implementasi EVM, EVM sendiri tidak berhenti memperbarui sebagaimana mestinya (level dasar tidak pernah berubah, seluruh kode baru hanya di dalam EVM) - sebaliknya, ia secara teratur bercabang dengan kediktatoran ethereum.

Yaitu telur yang sama hanya di profil. Sekelompok orang memutuskan cara mengubah lapisan onchain dengan tangan mereka sendiri, meletakkan kode di github, dan semua pengguna tidak punya pilihan selain mengunduh kode baru. "Hard fork dijadwalkan hari Jumat, segera tingkatkan," kata mereka.

Dalam bentuk ini, gagasan kontrak pintar benar-benar gagal - kita sudah memiliki otoritas yang menentukan cara kerja lapisan konsensus (akun github ethereum), untuk apa abstraksi ekstra dan tidak efektif jika kita tidak bisa menghilangkan pembaruan pada lapisan utama?

Karena kami tidak dapat menyingkirkan pembaruan, mari setidaknya cari tahu cara memperbarui lapisan utama ini kepada kami sebanyak mungkin dengan desentralisasi?

Kami dapat menawarkan tambalan perangkat lunak tepat di dalam blockchain, validator dapat memilihnya, dan tambalan yang menang hanya diterapkan untuk semua orang secara sinkron setelah beberapa periode. Gagasan "tata kelola onchain" ini telah mengudara selama beberapa waktu, tetapi Tezos adalah orang pertama yang menggambarkannya, jika saya tidak salah. Apa yang dilupakan oleh tezo adalah bahwa tata kelola onchain adalah pesaing langsung untuk kontrak pintar (itulah sebabnya saya menyebutnya pembaruan pintar).

Jika Anda memiliki pembaruan pintar, Anda tidak perlu kontrak pintar. Semua kasus pengguna dapat diimplementasikan lebih cepat, lebih baik, dengan basis data apa pun pilihan Anda (SQL / NoSQL / apa pun), dalam bahasa pemrograman apa pun (Anda menjalankan kode sudah pada level mesin, dan tidak terbatas pada apa pun). Kebebasan penuh, minus biaya overhead sangat 95% yang Anda habiskan untuk soliditas, dan kami tidak perlu memahat blockchain baru sebagai solusi # 2.

Tepatnya ada dua minus untuk pembaruan cerdas


1. Sekarang, tidak setiap kasus pengguna akan disetujui oleh validator, karena mereka berpikir dan memilih jenis tambalan apa yang akan berguna untuk jaringan (dan memotong pintu belakang yang secara jahat berbahaya). Hal-hal seperti cryptocurrency tidak akan pernah disetujui oleh mayoritas (67% atau 95% thrashold, dikonfigurasi di dalam jaringan itu sendiri)

2. Validator dapat menggunakan kekuatan ini untuk mendorong melalui tambalan yang secara langsung bermanfaat bagi mereka (menghapus pengguna yang tidak menyenangkan, biarkan diri mereka mendapatkan aset dari tiga kotak). Untuk mengatasi masalah ini, ada periode penundaan. Setelah tambalan disetujui, seluruh jaringan memiliki 2-6 minggu untuk belajar. Jika pengguna awam tidak menyukainya, orang-orang harus berkumpul, membuat percabangan dan mengganti set validator dengan yang lebih memadai (atau membuang karakter terburuk).

Kedengarannya menakutkan, tetapi sudah bekerja sekarang - ethereum github dapat menawarkan garpu yang sulit, dan ini adalah tugas pengguna untuk mengatur ulang kediktatoran jika mereka tidak menyukai sesuatu. Itu tidak akan menjadi lebih buruk. Kami hanya memformalkan proses ini dan memberikan steak transparan kepada setiap pengembang / validator, alih-alih pemerintah "bayangan" yang ada dengan saluran pertama dalam bentuk repositori github.

Ringkasan


Dengan demikian, kami menemukan bahwa kontrak pintar EVM adalah konsep menarik yang ternyata gagal, belokan terlalu berat ke arah yang salah, ketika semua yang diperlukan adalah menerapkan mekanisme transparan untuk pembaruan cerdas untuk menyelesaikan masalah kasus pengguna baru.

Masa depan adalah untuk pembaruan cerdas, dan hampir semua blockchain yang saat ini dalam pengembangan menyertakan mereka sejak awal (tezos, dfinity, polkadot, decred, tendermint, fairlayer, dll). Bahkan dalam kontrak pintar sendiri, mereka sekarang mencoba untuk menghidupkan mekanisme pembaruan di dalam diri mereka sendiri, menyadari bahwa konsep set-in-stone tidak berfungsi, dan entah bagaimana cepat atau lambat akan diperlukan untuk memperbarui .

Berikut adalah wiki yang lebih rinci tentang topik ini .

Source: https://habr.com/ru/post/id430734/


All Articles