Tezos sebagai blockchain PoS terkenal, sorotannya tidak hanya terbatas pada fungsi Staking. Fitur verifikasi formal Tezos juga merupakan salah satu keunggulan teknis utamanya. Fitur ini dapat secara signifikan meningkatkan keamanan aplikasi Keuangan Desentralisasi, serta meningkatkan kepercayaan pengguna terhadap keamanan dana kontrak pintar.
Keamanan DeFi dan Metode Verifikasi Formal
Keuangan Desentralisasi yang berkembang pesat telah menarik perhatian banyak pengembang, beberapa protokol DeFi terkenal telah mengumpulkan dana lebih dari seratus juta dolar. Namun, bidang DeFi masih menghadapi tantangan besar: masalah keamanan.
Biaya dari masalah ini sangat besar, dan itu telah berdampak negatif pada efek jaringan beberapa proyek blockchain. Dalam beberapa bulan terakhir, beberapa proyek Keuangan Desentralisasi telah diserang, dengan kerugian bervariasi dari puluhan ribu dolar hingga puluhan juta dolar. Beberapa proyek berhasil menemukan bug melalui pemeriksaan mandiri yang tepat waktu dan mengambil langkah-langkah pembekuan, mencegah kerugian yang lebih besar.
Bagi pengembang DeFi yang mengutamakan keamanan, solusi verifikasi formal Tezos dapat meningkatkan keamanan sekaligus memberdayakan aplikasi DeFi.
Dalam aplikasi internet tradisional, setelah server diserang oleh hacker, cukup dengan mengembalikan data pengguna untuk memulihkan kerugian. Oleh karena itu, aplikasi tradisional yang mengutamakan pengalaman pengguna dapat mengorbankan sebagian keamanan untuk mendapatkan iterasi yang cepat. Namun, dalam aplikasi Keuangan Desentralisasi, karena ketidakubahannya di blockchain, begitu kontrak pintar diluncurkan dan ada kerentanan keamanan, kerugian yang dialami pengguna akan sangat besar dan tidak dapat diperbaiki.
Oleh karena itu, proses pengembangan aplikasi Keuangan Desentralisasi memerlukan investasi besar dalam pengujian dan audit yang mahal untuk memastikan keamanan, yang pada gilirannya mempengaruhi kecepatan iterasi dan kemudahan penggunaan produk. Selain itu, karena biaya audit keamanan yang tinggi, banyak pengembang kesulitan untuk memulai proyek aplikasi Keuangan Desentralisasi.
Kekurangan tenaga kerja pengembang blockchain menyebabkan biaya audit manual tetap tinggi. Oleh karena itu, semakin banyak penggunaan verifikasi yang dibantu mesin menjadi tren saat ini, di mana metode Verifikasi Formal menjadi cara kunci untuk memastikan keamanan.
Verifikasi Formal adalah metode yang menggunakan metode formal dalam matematika untuk membuktikan atau membantah sifat algoritma, yang umumnya terdiri dari dua metode:
Uji model: Daftar semua kemungkinan status sistem dan uji satu per satu, cocok untuk verifikasi otomatis sistem kecil.
Verifikasi Deduktif: Pertama, tandai kode sistem sebagai model matematis abstrak, kemudian buktikan teorema, cocok untuk sistem besar, tetapi perlu mengubah metode operasi sistem menjadi bahasa yang dapat dipahami oleh sistem verifikasi.
Selama ini, karena biaya yang tinggi, metode verifikasi formal terutama diterapkan di bidang akademis, pertahanan militer, dan dirgantara, dengan aplikasi yang relatif sedikit di bidang komersial. Mengingat adanya perbedaan mendasar dalam lingkungan operasi antara aplikasi internet tradisional dan aplikasi blockchain, proses pengembangannya juga harus disesuaikan, terutama dalam proporsi investasi pada tahap verifikasi keamanan.
Aplikasi Bahasa Fungsional dalam Bidang Blockchain Publik
Untuk menjamin keamanan, banyak proyek blockchain memilih bahasa fungsional seperti Ocaml, Haskell, Erlang, dan lain-lain dalam hal arsitektur dasar, mesin virtual, atau bahasa kontrak pintar. Bahasa fungsional memiliki reputasi baik di bidang keamanan karena definisi tipe variabel yang ketat, pemeriksaan kompilasi, dan rantai alat verifikasi formal yang baik (seperti CoQ). Kode yang ditulis dalam bahasa prosedural umum biasanya perlu diberi tanda ulang dengan bahasa fungsional agar dapat dilakukan verifikasi formal.
Di antara banyak proyek blockchain, bahasa pemrograman tingkat tinggi untuk kontrak pintar yang didukung oleh Tezos adalah yang paling beragam, mencakup berbagai bahasa fungsional seperti Pascal, Ocaml, Haskell, serta bahasa Python yang banyak digunakan. Sebaliknya, beberapa proyek lain mengharuskan pengembang untuk mempelajari bahasa fungsional baru yang sama sekali, yang tanpa diragukan lagi meningkatkan ambang pengembangan.
Fitur Keamanan Bahasa Michelson
Tezos mengadopsi solusi inovatif dalam desain bahasa kontrak pintar. Kontrak pintarnya menggunakan bahasa Michelson berbasis Ocaml di lapisan dasar, sementara pengembang sebenarnya berinteraksi dengan bahasa tingkat tinggi seperti Python, tanpa perlu memahami bahasa Michelson itu sendiri secara mendalam. Cara ini menggabungkan keamanan dan kemampuan audit bahasa Michelson, serta kemudahan penggunaan bahasa tingkat tinggi seperti Python.
Michelson memiliki kesamaan arsitektur dengan EVM Ethereum, seperti keduanya adalah bahasa stack, menggunakan penyimpanan di dalam rantai, mengadopsi model biaya gas, dan keduanya Turing lengkap. Namun, perbedaan utama antara Michelson dan EVM adalah:
Tipe statis: Semua data yang masuk ke kontrak pintar Michelson harus didefinisikan dengan jelas jenisnya, menghindari bug program yang terkait dengan ketidakcocokan tipe.
Perhitungan Atomik: Kontrak Pintar Michelson harus menyelesaikan eksekusi sebelum dapat memanggil kontrak lain, untuk menghindari serangan reentrancy.
Kegagalan pemanggilan yang jelas: Kegagalan saat eksekusi hanya ada tiga situasi: kegagalan yang jelas, kehabisan gas, dan overflow jumlah, menghindari beberapa serangan eksekusi yang umum.
Semantik yang ketat: Memiliki norma yang ketat terhadap huruf besar dan kecil, spasi, baris pendek, dll., memudahkan audit kode.
Peningkatan ini memungkinkan Michelson untuk lebih baik dalam melawan jenis serangan yang umum terjadi di Ethereum.
Paket Alat Pengembangan SmartPy
Pengembang DApp di Tezos tidak perlu menguasai bahasa Michelson. Mereka dapat menggunakan SmartPy SDK berbasis Python untuk mengompilasi kontrak pintar yang ditulis dalam kode Python menjadi bahasa Michelson. Oleh karena itu, pengembang DApp hanya perlu memahami Python untuk bisa memulai dengan mudah.
SmartPy adalah sebuah pustaka Python, SmartPy.io memungkinkan pengguna untuk menjalankan skrip Python di browser. Situs resmi SmartPy menyediakan editor online, di mana pengembang dapat langsung menulis kode menggunakan Python dan mengompilasinya menjadi kontrak pintar Michelson, lalu menerapkannya ke jaringan utama Tezos. Antarmukanya lebih sederhana dan jelas dibandingkan dengan editor online Remix di Ethereum, dan sangat mudah untuk digunakan. SmartPy juga dilengkapi dengan beberapa template pengembangan yang siap pakai, memudahkan pengembang untuk belajar dan merujuk.
Antarmuka SmartPy.io mencakup area penulisan kode dan area tampilan hasil eksekusi. Pengembang dapat dengan mudah menggunakan Python untuk menulis dan mengedit kode kontrak. SmartPy menyederhanakan proses kompilasi dan eksekusi, cukup dengan mengklik tombol eksekusi untuk menyelesaikannya. Hasil eksekusi segera ditampilkan di sisi kanan layar, termasuk titik masuk pemanggilan kontrak, status penyimpanan, kode Michelson setelah kompilasi, dan lain-lain.
Selain editor daring, SmartPy juga menyediakan versi baris perintah SmartPyBasic, yang memungkinkan pengembang untuk mengompilasi dan menjalankan kode SmartPy di lingkungan lokal. Kontrak pintar yang dideploy dapat dilihat melalui SmartPy Contract Explorer, status dan operasi sejarah kontrak dapat dilihat dengan jelas.
Saat ini, SmartPy sudah mendukung berbagai fungsi umum Python, seperti variabel lokal, pemeriksaan tipe variabel, fungsi Lambda, dan lain-lain. Beberapa fungsi yang tidak didukung (seperti array) dapat digantikan dengan map. Ini berarti belajar SmartPy tidak memerlukan banyak waktu dan usaha, sehingga pengembang dapat fokus pada penerapan fitur-fitur yang lebih baik.
Untuk pengembang yang ingin memulai dengan SmartPy, ada beberapa kursus pelatihan yang dapat dijadikan referensi:
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
Teknologi Verifikasi Formal Tezos memberdayakan keamanan Keuangan Desentralisasi
Verifikasi Formal Tezos memberdayakan keamanan Keuangan Desentralisasi
Tezos sebagai blockchain PoS terkenal, sorotannya tidak hanya terbatas pada fungsi Staking. Fitur verifikasi formal Tezos juga merupakan salah satu keunggulan teknis utamanya. Fitur ini dapat secara signifikan meningkatkan keamanan aplikasi Keuangan Desentralisasi, serta meningkatkan kepercayaan pengguna terhadap keamanan dana kontrak pintar.
Keamanan DeFi dan Metode Verifikasi Formal
Keuangan Desentralisasi yang berkembang pesat telah menarik perhatian banyak pengembang, beberapa protokol DeFi terkenal telah mengumpulkan dana lebih dari seratus juta dolar. Namun, bidang DeFi masih menghadapi tantangan besar: masalah keamanan.
Biaya dari masalah ini sangat besar, dan itu telah berdampak negatif pada efek jaringan beberapa proyek blockchain. Dalam beberapa bulan terakhir, beberapa proyek Keuangan Desentralisasi telah diserang, dengan kerugian bervariasi dari puluhan ribu dolar hingga puluhan juta dolar. Beberapa proyek berhasil menemukan bug melalui pemeriksaan mandiri yang tepat waktu dan mengambil langkah-langkah pembekuan, mencegah kerugian yang lebih besar.
Bagi pengembang DeFi yang mengutamakan keamanan, solusi verifikasi formal Tezos dapat meningkatkan keamanan sekaligus memberdayakan aplikasi DeFi.
Dalam aplikasi internet tradisional, setelah server diserang oleh hacker, cukup dengan mengembalikan data pengguna untuk memulihkan kerugian. Oleh karena itu, aplikasi tradisional yang mengutamakan pengalaman pengguna dapat mengorbankan sebagian keamanan untuk mendapatkan iterasi yang cepat. Namun, dalam aplikasi Keuangan Desentralisasi, karena ketidakubahannya di blockchain, begitu kontrak pintar diluncurkan dan ada kerentanan keamanan, kerugian yang dialami pengguna akan sangat besar dan tidak dapat diperbaiki.
Oleh karena itu, proses pengembangan aplikasi Keuangan Desentralisasi memerlukan investasi besar dalam pengujian dan audit yang mahal untuk memastikan keamanan, yang pada gilirannya mempengaruhi kecepatan iterasi dan kemudahan penggunaan produk. Selain itu, karena biaya audit keamanan yang tinggi, banyak pengembang kesulitan untuk memulai proyek aplikasi Keuangan Desentralisasi.
Kekurangan tenaga kerja pengembang blockchain menyebabkan biaya audit manual tetap tinggi. Oleh karena itu, semakin banyak penggunaan verifikasi yang dibantu mesin menjadi tren saat ini, di mana metode Verifikasi Formal menjadi cara kunci untuk memastikan keamanan.
Verifikasi Formal adalah metode yang menggunakan metode formal dalam matematika untuk membuktikan atau membantah sifat algoritma, yang umumnya terdiri dari dua metode:
Uji model: Daftar semua kemungkinan status sistem dan uji satu per satu, cocok untuk verifikasi otomatis sistem kecil.
Verifikasi Deduktif: Pertama, tandai kode sistem sebagai model matematis abstrak, kemudian buktikan teorema, cocok untuk sistem besar, tetapi perlu mengubah metode operasi sistem menjadi bahasa yang dapat dipahami oleh sistem verifikasi.
Selama ini, karena biaya yang tinggi, metode verifikasi formal terutama diterapkan di bidang akademis, pertahanan militer, dan dirgantara, dengan aplikasi yang relatif sedikit di bidang komersial. Mengingat adanya perbedaan mendasar dalam lingkungan operasi antara aplikasi internet tradisional dan aplikasi blockchain, proses pengembangannya juga harus disesuaikan, terutama dalam proporsi investasi pada tahap verifikasi keamanan.
Aplikasi Bahasa Fungsional dalam Bidang Blockchain Publik
Untuk menjamin keamanan, banyak proyek blockchain memilih bahasa fungsional seperti Ocaml, Haskell, Erlang, dan lain-lain dalam hal arsitektur dasar, mesin virtual, atau bahasa kontrak pintar. Bahasa fungsional memiliki reputasi baik di bidang keamanan karena definisi tipe variabel yang ketat, pemeriksaan kompilasi, dan rantai alat verifikasi formal yang baik (seperti CoQ). Kode yang ditulis dalam bahasa prosedural umum biasanya perlu diberi tanda ulang dengan bahasa fungsional agar dapat dilakukan verifikasi formal.
Di antara banyak proyek blockchain, bahasa pemrograman tingkat tinggi untuk kontrak pintar yang didukung oleh Tezos adalah yang paling beragam, mencakup berbagai bahasa fungsional seperti Pascal, Ocaml, Haskell, serta bahasa Python yang banyak digunakan. Sebaliknya, beberapa proyek lain mengharuskan pengembang untuk mempelajari bahasa fungsional baru yang sama sekali, yang tanpa diragukan lagi meningkatkan ambang pengembangan.
Fitur Keamanan Bahasa Michelson
Tezos mengadopsi solusi inovatif dalam desain bahasa kontrak pintar. Kontrak pintarnya menggunakan bahasa Michelson berbasis Ocaml di lapisan dasar, sementara pengembang sebenarnya berinteraksi dengan bahasa tingkat tinggi seperti Python, tanpa perlu memahami bahasa Michelson itu sendiri secara mendalam. Cara ini menggabungkan keamanan dan kemampuan audit bahasa Michelson, serta kemudahan penggunaan bahasa tingkat tinggi seperti Python.
Michelson memiliki kesamaan arsitektur dengan EVM Ethereum, seperti keduanya adalah bahasa stack, menggunakan penyimpanan di dalam rantai, mengadopsi model biaya gas, dan keduanya Turing lengkap. Namun, perbedaan utama antara Michelson dan EVM adalah:
Tipe statis: Semua data yang masuk ke kontrak pintar Michelson harus didefinisikan dengan jelas jenisnya, menghindari bug program yang terkait dengan ketidakcocokan tipe.
Perhitungan Atomik: Kontrak Pintar Michelson harus menyelesaikan eksekusi sebelum dapat memanggil kontrak lain, untuk menghindari serangan reentrancy.
Kegagalan pemanggilan yang jelas: Kegagalan saat eksekusi hanya ada tiga situasi: kegagalan yang jelas, kehabisan gas, dan overflow jumlah, menghindari beberapa serangan eksekusi yang umum.
Semantik yang ketat: Memiliki norma yang ketat terhadap huruf besar dan kecil, spasi, baris pendek, dll., memudahkan audit kode.
Peningkatan ini memungkinkan Michelson untuk lebih baik dalam melawan jenis serangan yang umum terjadi di Ethereum.
Paket Alat Pengembangan SmartPy
Pengembang DApp di Tezos tidak perlu menguasai bahasa Michelson. Mereka dapat menggunakan SmartPy SDK berbasis Python untuk mengompilasi kontrak pintar yang ditulis dalam kode Python menjadi bahasa Michelson. Oleh karena itu, pengembang DApp hanya perlu memahami Python untuk bisa memulai dengan mudah.
SmartPy adalah sebuah pustaka Python, SmartPy.io memungkinkan pengguna untuk menjalankan skrip Python di browser. Situs resmi SmartPy menyediakan editor online, di mana pengembang dapat langsung menulis kode menggunakan Python dan mengompilasinya menjadi kontrak pintar Michelson, lalu menerapkannya ke jaringan utama Tezos. Antarmukanya lebih sederhana dan jelas dibandingkan dengan editor online Remix di Ethereum, dan sangat mudah untuk digunakan. SmartPy juga dilengkapi dengan beberapa template pengembangan yang siap pakai, memudahkan pengembang untuk belajar dan merujuk.
Antarmuka SmartPy.io mencakup area penulisan kode dan area tampilan hasil eksekusi. Pengembang dapat dengan mudah menggunakan Python untuk menulis dan mengedit kode kontrak. SmartPy menyederhanakan proses kompilasi dan eksekusi, cukup dengan mengklik tombol eksekusi untuk menyelesaikannya. Hasil eksekusi segera ditampilkan di sisi kanan layar, termasuk titik masuk pemanggilan kontrak, status penyimpanan, kode Michelson setelah kompilasi, dan lain-lain.
Selain editor daring, SmartPy juga menyediakan versi baris perintah SmartPyBasic, yang memungkinkan pengembang untuk mengompilasi dan menjalankan kode SmartPy di lingkungan lokal. Kontrak pintar yang dideploy dapat dilihat melalui SmartPy Contract Explorer, status dan operasi sejarah kontrak dapat dilihat dengan jelas.
Saat ini, SmartPy sudah mendukung berbagai fungsi umum Python, seperti variabel lokal, pemeriksaan tipe variabel, fungsi Lambda, dan lain-lain. Beberapa fungsi yang tidak didukung (seperti array) dapat digantikan dengan map. Ini berarti belajar SmartPy tidak memerlukan banyak waktu dan usaha, sehingga pengembang dapat fokus pada penerapan fitur-fitur yang lebih baik.
Untuk pengembang yang ingin memulai dengan SmartPy, ada beberapa kursus pelatihan yang dapat dijadikan referensi: