Vyper, Solidity, dan Scrypto: Bagaimana bahasa kontrak pintar dibandingkan

Lihat tiga bahasa pemrograman berbeda untuk jaringan blockchain dan bagaimana perbandingannya.

Jaringan Ethereum membawa kontrak pintar ke dalam ruang blockchain, membuat konsep seperti keuangan desentralisasi (DeFi) mungkin. 

Kontrak pintar dapat secara otomatis menjalankan proses setelah kondisi tertentu terpenuhi. Seiring dengan teknologi baru ini, bahasa pengkodean baru dikembangkan yang disebut Solidity.

Ketika industri blockchain terus tumbuh dan jaringan blockchain baru muncul, bahasa pemrograman tambahan dibawa ke luar angkasa, terutama Vyper dan Scrypto.

Bahasa pemrograman adalah seperangkat aturan yang mengubah string teks dan angka menjadi kode yang dapat dibaca mesin. Secara sederhana, bahasa pemrograman memungkinkan komputer untuk memahami instruksi yang dimasukkan oleh manusia. Ketika datang ke industri blockchain, Solidity, Python dan Javascript adalah beberapa bahasa yang paling umum digunakan, namun semuanya bekerja secara berbeda.

Apa itu Soliditas?

Solidity adalah bahasa pemrograman berorientasi objek dan tingkat tinggi untuk membangun kontrak pintar di blockchain Ethereum dan jaringan blockchain lainnya seperti BNB Smart Chain dan Avalanche. Bahasa ini dikembangkan pada tahun 2014 dan memiliki kesamaan dengan bahasa pemrograman seperti JavaScript, C++ dan Python.

Karena Solidity adalah bahasa tingkat tinggi, kode komputer diketik dengan cara yang mudah dimengerti dan dapat dibaca manusia, bukan satu dan nol. Misalnya, kode Soliditas akan menyertakan kata dan frasa seperti "fungsi" dan "kontrak", serta tanda kurung kurawal dan angka.

Menjadi bahasa pengkodean berorientasi objek berarti bahwa Soliditas berkisar menggunakan "objek," yang merupakan potongan kode yang dapat digunakan kembali untuk membuat potongan kode yang serupa tanpa harus menulis ulang kode asli setiap kali.

Solidity juga menggunakan kompiler untuk mengubah kode tingkat tinggi yang dapat dibaca manusia menjadi kode yang dapat dibaca mesin yang dieksekusi pada Ethereum Virtual Machine (EVM).

Apa itu Vyper?

Vyper adalah bahasa pemrograman pythonic berorientasi kontrak untuk kontrak pintar yang dirancang untuk digunakan dengan EVM. Bahasa ini dirancang untuk meningkatkan Soliditas dengan meningkatkan keamanan dan keterbacaan kode. Vyper memiliki fokus yang kuat pada kemampuan mendengar kodenya. Karena itu, salah satu prinsipnya adalah bahwa manusia harus dapat membaca kode Vyper sebanyak mungkin. 

Vyper juga bertujuan untuk mempersulit siapa pun untuk menulis kode yang menyesatkan. Kesederhanaan bagi pembaca (yaitu, auditor) lebih penting daripada kesederhanaan bagi penulis (yaitu, pengembang). Dengan cara ini, akan lebih mudah untuk mengidentifikasi kode berbahaya dalam kontrak pintar atau aplikasi terdesentralisasi (DApp).

Apa itu Skripto?

Scrypto adalah bahasa kontrak cerdas berorientasi aset. Bahasa ini dikembangkan oleh Radix, didasarkan pada Rust, dan menyimpan sebagian besar fitur Rust sambil menambahkan fungsi dan sintaks khusus untuk Radix Engine v2. Karena Scrypto berorientasi pada aset, Scrypto dapat berinteraksi dengan aset seperti token, yang merupakan jenis sumber daya dalam bahasa tersebut. 

Dalam bahasa pengkodean seperti Solidity, token ERC-20 ada sebagai kontrak pintar pada EVM. Aset dalam Scrypto adalah sumber daya yang ada di dalam wadah dan brankas. Sederhananya, seperti memiliki ember (wadah) dan mengisinya dengan koin (aset) yang dapat disimpan di dalam celengan (lemari besi).

Baru-baru ini: Permintaan akan talenta di crypto kurang bergantung pada pasar seiring dengan matangnya industri

Scrypto juga berfokus untuk menjadi ramah pengembang dengan mengizinkan mereka hanya menulis kode yang diperlukan saat berinteraksi dengan wadah dan sumber daya untuk mengaktifkan fungsionalitas dalam DApp. Keamanan adalah prinsip lain dengan pengembang yang dapat memberikan instruksi khusus ke DApp alih-alih memberikan izin menyeluruh.

Bagaimana bahasa kontrak pintar dibandingkan

Solidity memiliki berbagai sumber belajar online dan banyak dukungan komunitas karena penggunaannya di jaringan blockchain utama seperti Ethereum. Solidity juga memiliki berbagai fitur yang diambil dari pemrograman berorientasi objek (OOP), menjadikannya modular dan lebih mudah untuk memecahkan masalah ketika ada masalah. Misalnya, jika suatu objek dari kelas tertentu mengalami malfungsi, itu dapat ditelusuri kembali ke asal kelas. 

Ini berfungsi karena Solidity menggunakan enkapsulasi, artinya setiap objek mandiri, dengan masing-masing fungsi bekerja secara independen. Modularitas bahasa pengkodean juga memungkinkan pengembang untuk bekerja pada banyak objek secara bersamaan, membuatnya lebih efisien untuk membangun, memperbaiki, dan menyebarkan kontrak pintar.

Vyper adalah bahasa pengkodean yang lebih sederhana daripada Solidity, menekankan transparansi, kesederhanaan struktur bahasa, dan kemampuan mendengar. Vyper juga memiliki lebih sedikit fitur daripada Solidity, yang dilakukan dengan sengaja untuk alasan keamanan. Kumpulan fitur terbatas mengurangi jumlah kerentanan yang dapat dieksploitasi oleh aktor jahat.

Misalnya, Solidity menggunakan pengubah yang menunjukkan bahwa pemeriksaan telah dilakukan sebelum dan setelah proses dijalankan. Namun, Vyper tidak menggunakan pengubah karena pengembang percaya bahwa hal itu akan mempermudah penulisan kode yang menyesatkan. Ini juga mendorong individu untuk mengembangkan kode yang memantul di seluruh file, mengurangi kemampuan mendengar. Karena pengubah tidak ada di Vyper, tidak mungkin menambahkan perubahan status apa pun ke kode.

Fitur lain yang dikecualikan dari Vyper adalah pewarisan. Di Solidity, beberapa kontrak dapat mewarisi fitur dari kontrak induk. Jika terjadi ketidaksepakatan, itu juga mengharuskan individu memahami norma-norma didahulukan. Vyper tidak menggunakan pewarisan kelas karena menghilangkan potensi sumber kompleksitas dalam kode, yang berkontribusi pada peningkatan kemampuan mendengar. Secara umum, Vyper adalah bahasa pengkodean yang lebih minimalis yang memperdagangkan beberapa fungsi untuk peningkatan keamanan dan pemeriksaan basis kode yang lebih baik untuk melindungi pengguna kontrak pintar berbasis Vyper dengan lebih baik.

Sementara Solidity mungkin salah satu bahasa pemrograman paling populer dan terkenal di ruang blockchain, beberapa bahasa memiliki kurva belajar yang lebih mudah bagi pengembang. Selain itu, bahasa pemrograman yang lebih sederhana memudahkan untuk menarik pengembang baru ke industri.

Adam Simmons, chief strategy officer di RDX Works — pengembang di belakang Radix — mengatakan kepada Cointelegraph, “Memiliki alat yang tepat untuk pekerjaan itu membuat perbedaan besar — ​​dan saat ini, pengembang blockchain tidak memiliki alat yang tepat. Ini bukan hanya tentang membuat bahasa lebih sederhana, tetapi membuat alat pengembang yang intuitif dan aman,” melanjutkan:

“Pada puncaknya, DeFi tumbuh menjadi lebih dari $200 miliar TVL hanya dalam dua tahun — jadi jelas, ada tingkat permintaan yang sangat tinggi. Namun, terlepas dari pertumbuhan modal 200x ini, jumlah pengembang hanya meningkat 2x, menjadi total sekitar 19,000 (dari sekitar 30 juta pengembang di seluruh dunia).”

Meskipun tingkat pertumbuhan tinggi terlihat di ruang keuangan terdesentralisasi, jumlah pengembang tidak tumbuh sesuai permintaan. Simmons percaya bahwa pengembang mungkin menganggap Solidity terlalu sulit bagi mereka untuk beralih ke pengembangan blockchain:

“Pengembang ragu-ragu untuk bekerja penuh waktu di Web3 karena kurva pembelajaran Soliditas yang curam dan tingkat risiko yang tinggi terkait keamanan. Terlepas dari pengembang yang sangat berbakat dan jutaan dolar dihabiskan untuk audit keamanan, DeFi masih mengeluarkan uang dari peretasan dan eksploitasi. Ini saja sudah cukup untuk mencegah pengembang memasuki ruang tersebut.”

“Memiliki bahasa dan alat yang tepat akan memungkinkan pengembang untuk mengembangkan seluruh industri jauh lebih cepat. Sama seperti mesin game yang memberi pengembang alat untuk merevolusi produksi video game di tahun 90-an, bahasa dan alat Web3 yang tepat akan memungkinkan pengembang untuk mempercepat pertumbuhan Web3,” tambah Simmons.

Scrypto juga berfokus pada keamanan, kesederhanaan, dan keramahan pengguna. Transaksi scrypto difokuskan pada aset. Mereka menentukan bagaimana pengguna ingin sumber daya sistem didistribusikan. Mereka juga dapat menunjukkan bagaimana sumber daya yang dikembalikan harus ditangani oleh pengguna atau komponen lain dalam transaksi multi-komponen.

Transaksi di Ethereum biasanya merupakan panggilan ke kontrak pintar (karena DApps dan token di Ethereum adalah kontrak pintar). Sebaliknya, transaksi di Scrypto melibatkan pemindahan aset dari satu komponen ke komponen lainnya.

Misalnya, jika Pengguna A ingin mengirim 10 token khusus ke Pengguna B, transaksi mereka akan menunjukkan bahwa mereka mencoba menarik 10 token dari brankas yang berisi token tersebut. Transaksi juga akan menunjukkan bahwa mereka akan mengirimkan token tersebut ke metode deposit komponen akun Pengguna B. Karena sumber daya (dalam hal ini, token) perlu ditempatkan di suatu tempat, ember (wadah) akan digunakan untuk mentransfer token dari Pengguna A ke Pengguna B.

Dalam contoh di atas, pengguna mentransfer ember yang berisi sumber daya (token) ke metode setoran pengguna kedua alih-alih membuat panggilan ke kontrak pintar token. Berinteraksi dengan DApps bekerja dengan cara yang sama, dengan pengguna menarik token dari akun mereka dan meneruskannya ke komponen relevan yang ingin mereka ajak berinteraksi. Singkatnya, Scrypto mengambil pendekatan berbasis aset, dengan pengguna menyimpan dan meneruskan aset aktual. Pendekatan berbasis aset juga memudahkan pengembang untuk membuat kode DApps karena lebih mudah untuk berinteraksi dengan token (sumber daya), kumpulan token (vault), dan pengguna (komponen).

Untuk contoh lain, jika DApp swapping (seperti Uniswap) dikodekan dengan Scrypto, pengembang hanya perlu mengkodekan metode perdagangan untuk swap. Pertama, DEX perlu mengidentifikasi wadah Token A yang masuk dari pengguna, lalu menghitung nilai tukar. Selanjutnya, token yang masuk akan disimpan, dan DEX akan mengirimkan kembali jumlah Token B yang benar kepada pengguna.

Bahasa pemrograman mana yang harus dipilih oleh pengembang blockchain?

Pengembang dapat menggunakan bahasa pemrograman tradisional (C++, Python, JavaScript) untuk pengembangan blockchain serta solusi yang dibuat secara khusus seperti Solidity, Vyper, dan Scrypto. Beberapa bahasa pemrograman dapat bermanfaat untuk ruang blockchain karena memberikan pengembang berbagai alat untuk digunakan. 

Misalnya, pengembang yang akrab dengan C++, JavaScript, dan Python mungkin menganggap Solidity menarik. Pengembang yang akrab dengan Python mungkin tertarik pada Vyper, sementara pengembang yang akrab dengan Rust dapat memilih untuk menggunakan bahasa Scrypto.

Baru-baru ini: Token sosial akan menjadi mesin Web3, dari basis penggemar hingga insentif

Simmons setuju, memberi tahu Cointelegraph, “Dengan lebih banyak bahasa datang ke Web3, kita kemungkinan akan melihat periode waktu di mana ada beberapa pendekatan yang bersaing. Karena bahasa-bahasa ini menemukan pasar produk yang sesuai dengan pengembang dan yang paling penting memungkinkan pengembang tersebut untuk membangun DApps yang kuat, berguna, dan aman, kami kemungkinan akan melihat industri ini condong ke arah yang memberikan hasil terbaik.”

Soliditas secara alami akan menjadi pilihan bagi pengembang yang ingin bekerja di Ethereum dan jaringan blockchain serupa. Pada saat yang sama, Vyper dan Scrypto dapat menarik pengembang yang lebih menyukai kesederhanaan dan keamanan tambahan. Scrypto mungkin juga lebih disukai untuk pengembang karena peningkatan kesederhanaan dan pendekatan berorientasi aset.

Sumber: https://cointelegraph.com/news/vyper-solidity-and-scrypto-how-the-smart-contract-languages-compare