Solidity adalah bahasa pemrograman tingkat tinggi dengan tipe statis untuk smart contract yang berjalan pada Ethereum Virtual Machine (EVM). Pengembang menggunakannya untuk menentukan status kontrak, fungsi, peristiwa, dan aturan interaksi dengan aset digital.
Dari kode sumber menjadi kontrak
Kompilator mengubah kode sumber Solidity menjadi bytecode EVM. Application binary interface (ABI) menjelaskan cara perangkat lunak lain memanggil fungsi kontrak dan menafsirkan datanya. Penerapan kontrak atau perubahan status on-chain memerlukan transaksi dan gas. Membaca status yang sudah ada melalui panggilan ke node lokal tidak selalu memerlukan transaksi berbayar.
Solidity digunakan untuk token, escrow, dan tata kelola. Sintaksnya mungkin terasa familier bagi pengembang JavaScript, tetapi eksekusinya mengikuti aturan blockchain, bukan perilaku peramban. Pengaturan kompilator dan fitur EVM yang didukung jaringan tujuan memengaruhi kompatibilitas.
Keterbukaan kode dan keamanan
Publikasi kode sumber yang terverifikasi membantu pembaca mencocokkannya dengan kontrak yang diterapkan, tetapi tidak membuktikan keamanannya. Kontrol akses, panggilan eksternal, asumsi tentang oracle, dan kewenangan administrator tetap perlu diperiksa.
Variabel bertanda private bukanlah rahasia pada blockchain publik. Reentrancy dapat terjadi ketika panggilan eksternal masuk kembali ke kontrak sebelum statusnya diperbarui dengan aman. Pengujian dan peninjauan keamanan independen mengurangi risiko tanpa menghilangkannya.