Scilla & amp; Vyper

Munculnya blockchain dan kontrak pintar telah melihat minat yang luas dalam membangun dapps dan memanfaatkan kontrak pintar untuk tujuan praktis. Soliditas – bahasa kontrak pintar Ethereum – adalah bahasa pemrograman utama yang digunakan untuk jaringan blockchain publik Ethereum dan tetap menjadi bahasa kontrak pintar yang paling populer dan tersebar luas.

Terlepas dari kesuksesannya dan penggunaan luas untuk menulis kontrak pintar di Ethereum, Solidity adalah bahasa pemrograman yang relatif baru, secara alami rentan terhadap bug dan beberapa kesalahan logis tingkat tinggi. Karena permintaan untuk pembuatan kontrak pintar dan metode keamanan yang ditingkatkan untuk menulisnya, bahasa pemrograman Vyper dan Scilla telah muncul.

Scilla & amp; Vyper

Kepadatan & Kontrak Cerdas

Soliditas diusulkan oleh Gavin Wood kembali pada tahun 2014 dan merupakan bahasa pemrograman yang dominan untuk menulis kontrak pintar. Ini dirancang khusus untuk Ethereum Virtual Machine (EVM) dan memiliki beberapa fitur yang berguna dokumentasi tentang apa itu dan bagaimana menggunakannya.

Solidity adalah bahasa pemrograman tingkat tinggi yang dikompilasi ke bytecode yang kompatibel dengan EVM yang berjalan pada node Ethereum. Khususnya, Solidity adalah bahasa pemrograman yang relatif sederhana (dibandingkan dengan yang lain) dengan sintaks yang sangat familiar yang menyerupai JavaScript. Soliditas juga dibangun dengan beberapa pertimbangan penting sebagai bahasa kontrak pintar untuk eksekusi di blockchain, termasuk perlunya kontrak pintar bersifat deterministik..

Panduan Soliditas

Baca: Apa itu Soliditas? Panduan Kami untuk Bahasa Kontrak Cerdas Ethereum

Soliditas tersedia untuk dipelajari di berbagai platform pendidikan online – termasuk Udemy – dan memiliki beberapa ekstensif buku menulis tentang itu. Efek jaringan Solidity telah memperkuatnya sebagai bahasa pemrograman masuk untuk kontrak pintar dan dapps yang dibangun di atas Ethereum.

Terlepas dari popularitasnya yang meluas, keberadaan Solidity sebagai bahasa pemrograman khusus EVM membatasi penggunaannya untuk platform blockchain lainnya. Lebih lanjut, masalah keamanan seputar bahasa tingkat tinggi dan potensi masalahnya telah mengarah pada penekanan pada audit kontrak pintar dan bahasa yang lebih sederhana serta lebih aman. Kalangan atas peretasan dan penelitian studi Mengungkap besarnya kerentanan pasti telah menyebabkan kebutuhan mendesak akan praktik kontrak pintar yang lebih baik.

Vyper

Vyper adalah bahasa pemrograman eksperimental yang mirip dengan Solidity karena juga disesuaikan secara khusus dengan EVM. Vyper secara sintaksis mirip dengan Python dan berorientasi kontrak seperti Soliditas.

Namun, Vyper dirancang dengan tujuan spesifik keamanan, kesederhanaan, dan kemampuan diaudit. Hal ini sebagian besar disebabkan oleh masalah keamanan pada iterasi kontrak pintar awal. Sebagai konsekuensi dari prinsip dan sasaran Vyper, contoh eksplisit fitur yang sengaja dilakukannya tidak miliki adalah diuraikan sebagai:

  • Pengubah
  • Warisan Kelas
  • Fungsi & Operator Berlebihan
  • Panggilan Rekursif
  • Loop Tak Terbatas

Khususnya, panggilan rekursif membuat tidak mungkin untuk menetapkan batas atas pada batas gas dan dapat menyebabkan serangan batas gas. Selain itu, penghapusan pengubah dilakukan dengan mempertimbangkan kemampuan diaudit, karena dapat membuat kode menyesatkan dan sulit untuk ditafsirkan dari perspektif yang dapat dibaca manusia..

Vyper menanggalkan fitur yang rentan terhadap keamanan tetapi juga menambahkan beberapa fungsi utama termasuk pemeriksaan batas dan luapan, desidabilitas, dan pengetikan yang kuat. Berkenaan dengan batas gas, desidabilitas memungkinkan pengembang untuk menghitung batas atas yang tepat untuk konsumsi gas dari panggilan fungsi.

Perbedaan utama antara Vyper dan Solidity adalah bahwa – meskipun mereka terlihat serupa – Vyper menghapus banyak arketipe berorientasi objek yang ada dalam Solidity. Penekanan pada kesederhanaan untuk Vyper juga memungkinkannya menjadi jauh lebih mudah dibaca dalam kasus di mana audit oleh pihak yang tidak terlalu paham dengan pemrograman diperlukan. Potensi penggunaan Vyper, oleh karena itu, menarik bagi banyak aplikasi bisnis praktis yang dapat ditulis di Vyper.

Pertimbangan keamanan di tingkat bahasa pemrograman penting untuk dipertimbangkan. Kesederhanaan sering kali menyebabkan kompleksitas logis yang kurang dibutuhkan dan secara inheren dapat memberikan keamanan yang lebih baik. Vyper juga tidak selalu dirancang untuk menggantikan Soliditas, melainkan dibangun untuk menyediakan bahasa yang lebih sederhana dan lebih aman sebagai opsi alternatif ketika diperlukan.

Vyper menyertakan a Protokol Peningkatan Vyper (VIP) dan bahkan memiliki editor teks online penyusun untuk bermain-main dengan kode Vyper. Ethereum Casper FFG implementasi juga ditulis di Vyper.

Scilla

Scilla adalah bahasa kontrak pintar tingkat menengah yang digunakan oleh Zilliqa. Scilla secara eksplisit dirancang dengan mempertimbangkan keamanan dan keamanan kontrak pintar. Yang penting, ini berfokus pada penyediaan verifikasi formal kontrak pintar.

Panduan Zilliqa

Baca: Panduan Pemula untuk Zilliqa

Verifikasi formal dirancang untuk memberikan jaminan statis kontrak pintar sebelum mereka berkomitmen secara permanen ke blockchain. Verifikasi formal kontrak pintar menjadi lebih lazim di lapangan dan secara aktif dikejar dan diterapkan oleh beberapa platform termasuk Tezos dan Cardano. Penggunaan verifikasi formal harus secara substansial mengurangi contoh kode buggy yang dilakukan untuk blockchain dan kemudian menurunkan kebutuhan untuk audit kontrak pintar yang intensif oleh pihak ketiga.

Scilla dirancang dengan hati-hati agar cukup ekspresif untuk membuat dapps yang berguna, sambil tetap memastikan alasan formal tentang perilaku kontrak. Mirip dengan Vyper, prinsip utamanya adalah kesederhanaan dan keamanan daripada ekspresi. Perbedaan penting yang perlu dibuat tentang Scilla adalah itu bahasa tingkat menengah, artinya itu dimaksudkan untuk menjadi target terjemahan untuk bahasa tingkat tinggi dan kemudian dikompilasi menjadi bytecode yang dapat dieksekusi. Akibatnya, bahasa tersebut lebih menantang untuk dipahami daripada bahasa tingkat tinggi seperti Solidity.

Scilla memisahkan komunikasi dan komputasi, yang memiliki konsekuensi signifikan terhadap bagaimana kontrak dieksekusi. Kontrak disusun sebagai berkomunikasi automata di mana komputasi dalam kontrak dijalankan sebagai transisi atom tanpa melibatkan pihak lain. Selain itu, contoh keterlibatan yang diperlukan oleh pihak lain menghasilkan akhir transisi yang dikomunikasikan secara eksplisit. Efek khusus kontrak seperti transisi kemudian dapat dipisahkan dari interaksi blockchain seperti pesan dan pengiriman / penerimaan dana.

Selain itu, Scilla memberikan pemisahan antara efektif dan murni perhitungan bersama dengan pemisahan antara doa dan kelanjutan. Mengenai perhitungan yang efektif dan murni, Scilla mengambil inspirasi dari pemrograman fungsional mengutip:

“Dengan merancang semantik interaksi dengan hati-hati antara aspek bahasa murni dan tidak murni, kami memastikan sejumlah properti dasar tentang transisi kontrak, seperti kemajuan dan pelestarian jenis, sekaligus membuatnya dapat diterima untuk verifikasi interaktif dan / atau otomatis dengan alat mandiri”

Pemisahan permintaan dan kelanjutan mengacu pada penataan kontrak sebagai automata komunikasi untuk menyediakan CPS model komputasi. Menggunakan model ini dengan kelanjutan eksplisit, bahasa seperti Solidity dapat diterjemahkan langsung ke Scilla tanpa mengorbankan integritas struktur automata.

Komponen verifikasi formal Scilla diaktifkan dengan penyematannya ke file Asisten Bukti Coq, sistem manajemen bukti formal yang dirancang untuk memberikan bukti kontrak pintar dan aplikasi terdistribusi yang diverifikasi secara mekanis. Hasilnya adalah verifikasi formal kontrak yang menjelaskan kedua properti tersebut keamanan dan kehidupan. Ketepatan dalam sistem terdistribusi dapat dipisahkan menjadi keamanan dan kehidupan. Menurut Zilliqa:

Keamanan adalah ketika “tidak ada yang salah– Ini adalah jaminan bahwa sesuatu yang buruk tidak pernah terjadi. Dalam konsensus, inilah saat tidak ada dua proses yang memutuskan nilai yang berbeda. Contoh lain adalah tidak ada kebuntuan dalam sistem transaksi terdistribusi. Keselamatan memiliki konsekuensi penting pada integritas keseluruhan kontrak pintar dalam jangka panjang.

Kehidupan dimana “hal-hal tertentu pada akhirnya mungkin terjadi“- Jaminan bahwa sesuatu yang baik akhirnya terjadi. Kata “akhirnya” juga tidak menyiratkan batasan waktu tetapi jika sistem berjalan cukup lama, maka kehidupan terjamin. Misalnya, dalam konsensus, semua proses pada akhirnya akan memutuskan suatu nilai. Contoh lain adalah kelengkapan detektor kegagalan yang pada akhirnya akan mendeteksi proses yang salah.

Pengembangan Scilla oleh Zilliqa paralel dengan formalisasi dan penyematannya di Coq harus membuktikan keputusan berharga untuk keamanan masa depan kontrak pintar yang berjalan di blockchain dengan throughput tinggi.

Terakhir, Scilla adalah blockchain-agnostik dan dapat digunakan untuk blockchain lain. Namun, itu masih dalam penelitian dan pengembangan aktif, terutama dengan tim Zilliqa. Scilla situs web juga menyediakan tutorial dan IDE online untuk mencoba bahasanya.

Kesimpulan

Inovasi berkelanjutan dalam pengembangan kontrak pintar pasti akan melihat munculnya bahasa pemrograman yang lebih berorientasi kontrak dan solusi untuk menangani keamanan mereka. Kebutuhan akan keamanan dapps dan kontrak pintar adalah yang paling penting mengingat jumlah nilai yang ditransfer melalui jaringan cryptocurrency besar seperti Ethereum.

Iterasi awal kontrak pintar menunjukkan potensi signifikan dalam kemampuan masa depan mereka. Sekarang, kelas pengembangan baru difokuskan pada peningkatan keamanan mereka di tingkat bahasa pemrograman untuk memastikan keberlanjutannya.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me