Ketika saya pertama kali mulai membuat Curve Finance pada tahun 2019, saya punya pilihan untuk dibuat. Saya bisa mengikuti tren populer dan soliditas menggunakan, yang bisa dibilang bahasa paling populer untuk kontrak pintar Ethereum. Tetapi sebaliknya, saya memutuskan untuk memilih rute yang berbeda, pergi dengan Vyper sebagai gantinya.
Bahasa ini dibuat oleh Vitalik Buterin untuk membuat pengembangan kontrak pintar seable dan ringkas mungkin. Itu mengingatkan saya pada filosofi Python tetapi dirancang untuk kontrak pintar Ethereum. Dan melihat saya sudah menjadi penggemar berat Python sejak sekitar tahun 2005, keputusan itu terasa jelas.
Memang, itu tidak menjadi tidak tertandingi – ada beberapa investor yang menyarankan saya harus menulis ulang semuanya dalam soliditas untuk mendapatkan dukungan mereka. Tapi saya menolak dan berdiri di dekat pilihan saya. Keamanan dan kejelasan kode saya lebih penting daripada investasi jangka pendek.
Kalau begitu, mengapa tidak soliditas?
Pada titik ini, mungkin tepat bagi banyak pembaca untuk bertanya: Jadi apa yang salah dengan soliditas yang saya tidak ingin ikut dengan itu?
Jawaban saya untuk itu – itu sudah menunjukkan celah.
Memang benar bahwa popularitas soliditas tidak dapat diabaikan – hari ini, itu mengontrol
Berbicara secara praktis, kompiler Soliditas sering diganggu oleh berbagai bug, dan mereka tampaknya menjadi lebih buruk dengan setiap pembaruan baru. Misalnya, pengoptimal bytecode Soliditas sering menyebabkan kesalahan yang tidak terduga. Dan sementara ada upaya untuk memperbaiki masalah ini, solusi yang ditawarkan sejauh ini tampak seperti perbaikan sementara lebih dari apa pun. Dan mereka berisiko memperumit Ethereum Virtual Machine (EVM) lebih jauh, mendorongnya ke arah utang yang lebih teknis.
Masalah hutang teknis
Akumulasi “utang teknis” adalah masalah yang signifikan dalam proyek -proyek besar. Sederhananya, ini tentang mengambil jalan pintas-ketika kode ditulis dengan cepat tetapi tidak efektif untuk memenuhi tujuan jangka pendek. Sering kali berarti melewatkan struktur dan pengujian yang tepat, dan, seiring waktu, jalan pintas ini menumpuk.
Lapisan kode yang sangat terorganisir dan terlalu kompleks membuat sistem lebih sulit untuk dipelihara dan lebih rentan terhadap kerusakan. Pada saat yang sama, biaya untuk benar -benar memperbaiki kode menjadi besar – dan saat itulah utang teknis mulai menyeret seluruh proyek ke bawah.
Salah satu contoh paling terkenal tentang bagaimana utang teknis dapat mencekik bahkan proyek skala besar adalah Yahoo. Meskipun keberhasilan awalnya, selama bertahun -tahun, infrastruktur Yahoo menjadi kelebihan beban dengan sistem warisan dan perbaikan cepat. Akhirnya, perusahaan tidak dapat mengikuti pesaing yang membangun basis kode yang lebih bersih dan lebih gesit. Bahkan pengembang yang bekerja di sana mengutip utang teknis dan manajemen kode yang buruk di antara alasan Yahoo kehilangan keunggulan kompetitifnya.
Soliditas berisiko mengikuti jalur yang sama, karena utang ini telah tumbuh dengan mantap, terutama di dalam kompiler itu sendiri. Daripada refactoring basis kode dan meningkatkan logika inti, beberapa perbaikan – seperti proposal Format Objek Ethereum (EOF) – bertujuan untuk menambal masalah seperti kesalahan “tumpukan terlalu dalam” dengan meningkatkan kompleksitas pada tingkat EVM (atau, jika ada, memperbaiki “tumpukan terlalu dalam” bukanlah cara terbaik untuk mengadvokasi peningkatan seluruh EVM yang sangat kompleks). Tetapi ini hanya menambah lebih banyak lapisan ke sistem yang sudah kompleks, hanya meningkatkan risiko bug di masa depan.
Vyper, sebagai perbandingan, telah berhasil menjaga hutang teknis seminimal mungkin. Ada beberapa, tetapi secara bertahap diselesaikan antara versi 0.3.1 dan 0.4.0. Dan dari versi 0.3.7 dan seterusnya, bahasa tersebut telah mengalami peningkatan yang signifikan, termasuk refactoring internal lengkap dan banyak audit keamanan.
The Ethereum Foundation (EF) juga aktif
Dirancang agar jelas
Apa yang membuat Vyper menonjol adalah fokusnya pada kejelasan. Tidak seperti soliditas, yang sering mengharuskan pengembang untuk melompat di antara berbagai bagian kode untuk memahami gambaran lengkapnya, Vyper menyatukan kode terkait dalam struktur yang logis dan mudah diikuti. Pendekatan ini membuatnya lebih mudah untuk dipahami dan audit. Kejelasan struktural ini mengurangi risiko kesalahan, membuat kode lebih aman.
Ketika Vyper terus meningkat, bahasa ini semakin menarik perhatian. Dengan dukungan EF dan lebih banyak dana yang disuntikkan ke dalam pengembangannya, Vyper sekarang menjadi pesaing yang jauh lebih kuat di dunia kontrak pintar. Saya tidak akan terkejut jika kita melihat penciptaan kompiler yang diverifikasi secara formal dalam waktu dekat – jika itu terjadi, itu bisa menetapkan standar baru untuk keamanan di ekosistem Ethereum.
Dan bukan hanya pengembang yang melihat nilai Vyper. Dari apa yang bisa saya katakan, banyak auditor yang bekerja dengan bahasa lebih suka desain dan struktur yang jelas, karena memudahkan mereka untuk menemukan masalah dan merancang kelemahan. Itu akan lebih sulit untuk diidentifikasi dalam kode yang lebih berbelit -belit.
Vyper juga memiliki dukungan perkakas yang kuat. Ada kerangka kerja uji seperti Titanoboa, APE, MOX, dan Brownie yang membuatnya mudah untuk menulis dan menguji kode Vyper, menggunakan pustaka Python untuk merampingkan proses.
Itu tidak berarti bahwa Vyper tidak memiliki tantangan lagi untuk diatasi. Ini tidak banyak digunakan sebagai soliditas, dan lebih sedikit pengembang yang menulis di dalamnya. Tapi ini bukan pertama kalinya bahasa minoritas menghadapi perjuangan semacam ini. Kembali pada tahun 2005, Python adalah bahasa yang relatif niche, sedangkan Java dan PHP mendominasi. Namun seiring waktu, kesederhanaan dan kekuasaan Python menang atas komunitas pengembangan, terutama dengan munculnya AI dan ilmu data. Saya percaya Vyper bisa mengikuti lintasan yang sama, terutama karena lebih banyak orang mulai mengenali manfaatnya.
Pikiran terakhir
Jika saya meluncurkan perusahaan baru hari ini, saya akan membuat pilihan yang sama. Saya masih memilih Vyper karena memberi saya kepercayaan diri bahwa kode saya aman dan mudah dibaca. Ini mungkin bukan pilihan paling populer saat ini, tetapi Vyper dibangun untuk masa depan. Jika kita ingin memindahkan ekosistem Ethereum ke arah pengembangan kontrak pintar yang lebih jelas dan lebih aman, maka Vyper adalah alat yang hebat untuk membawa kita ke sana.