Soliditas telah berkembang pesat sejak pertama kali diusulkan pada tahun 2014 dan kemudian dikembangkan oleh tim Soliditas Ethereum. Ada ratusan ribu pengembang yang menggunakan bahasa pemrograman untuk membuat layanan berbasis blockchain untuk semakin banyak kasus penggunaan.
Artikel ini menjelaskan apa itu Soliditas dan bagaimana itu digunakan dalam ekosistem Ethereum. Artikel ini untuk Anda jika Anda tertarik untuk mempelajari lebih lanjut tentang cara kerja bahasa pemrograman berbasis blockchain ini.
Apa Itu Soliditas?
Soliditas adalah bahasa pemrograman tingkat tinggi berorientasi objek yang digunakan untuk membuat kontrak pintar yang mengotomatiskan transaksi di blockchain. Setelah diusulkan pada tahun 2014, bahasa tersebut dikembangkan oleh kontributor proyek Ethereum. Bahasa ini terutama digunakan untuk membuat kontrak pintar blockchain Ethereum dan membuat kontrak pintar di blockchain lainnya.
Soliditas mirip dengan salah satu bahasa pemrograman yang paling umum, JavaScript. Ini dapat dianggap sebagai dialek JavaScript. Ini berarti bahwa jika Anda memahami JavaScript, Anda dapat dengan mudah mengambil Solidity. Soliditas juga memiliki karakteristik yang mirip dengan bahasa pemrograman C ++ dan Python.
Sebagai bahasa tingkat tinggi, Solidity menghilangkan kebutuhan untuk mengetik kode dalam satu dan nol. Ini membuat lebih mudah bagi manusia untuk menulis program dengan cara yang mereka anggap lebih mudah untuk dipahami, menggunakan kombinasi huruf dan angka.
Soliditas diketik secara statis, dengan dukungan untuk pewarisan, pustaka, dan tipe kompleks yang ditentukan pengguna. Karena Soliditas diketik secara statis, pengguna banyak menentukan setiap variabel. Tipe data memungkinkan kompilator untuk memeriksa penggunaan variabel yang benar. Tipe data soliditas biasanya dikategorikan sebagai tipe nilai atau tipe referensi.
Perbedaan utama antara tipe nilai dan tipe referensi dapat ditemukan pada bagaimana mereka ditugaskan ke variabel dan disimpan di EVM (Ethereum Virtual Machine). Meskipun mengubah nilai dalam satu variabel dari tipe nilai tidak mempengaruhi nilai dalam variabel lain, siapa pun yang merujuk pada nilai yang diubah dalam variabel tipe referensi dapat memperoleh nilai yang diperbarui.
Bagaimana Soliditas Bekerja?
Keindahan ekosistem Ethereum adalah begitu banyak cryptocurrency dan aplikasi terdesentralisasi yang berbeda dapat menggunakannya. Kontrak pintar memungkinkan teknologi unik dibuat di Ethereum untuk semua jenis bisnis dan organisasi.
Setiap tahun, dunia menghabiskan miliaran dolar untuk solusi blockchain. Banyak dari solusi ini dibuat menggunakan Solidity. Kontrak pintar yang dibangun menggunakan Solidity dapat dianggap sebagai cara untuk mengotomatiskan proses bisnis dan non-bisnis antara orang yang berbeda. Ini memastikan bahwa orang yang melakukan transaksi di blockchain tidak perlu khawatir dengan risiko seperti penipuan atau tidak dapat menggunakan mata uang yang sama.
Salah satu komponen kunci yang memungkinkan eksekusi kode Solidity adalah EVM. EVM dideskripsikan sebagai komputer virtual di blockchain yang mengubah ide orang menjadi kode yang menjalankan aplikasi di blockchain.
Di bawah kap, Solidity membuat kode level mesin yang dijalankan pada EVM. Kompiler digunakan untuk memecah kode tingkat tinggi yang dapat dibaca manusia, yang kemudian diubah menjadi instruksi yang dibaca oleh prosesor. Berbagai platform menyediakan kompilasi Soliditas gratis, termasuk kompiler Remix online dan kompiler mirip perintah yang diunduh di PC.
Kontrak pintar EVM memiliki beberapa batasan yang perlu ditangani. Salah satu yang paling signifikan dari ini adalah akses terbatas ke fungsi pustaka yang berguna untuk mengurai struktur JSON atau aritmatika floating-point.
Fungsi Publik dan Swasta
Fungsi publik mirip dengan API yang dapat diakses siapa pun di dunia. Siapapun dapat memanggil mereka dengan kode mereka. Fungsi publik dirancang, dalam banyak kasus, untuk proses bersama pada platform yang digunakan oleh semua pengguna.
Misalnya, fungsi publik dapat dibuat untuk memungkinkan semua pengguna platform memeriksa saldo akun mereka. Salah satu cara paling umum untuk mengeksploitasi kontrak pintar adalah melalui fungsi publik.
Terkait: Apa Itu Blockchain dan Bagaimana Cara Kerjanya?
Meskipun kontrak pintar dapat dengan mudah ditulis dengan Solidity, seringkali sangat sulit untuk menulisnya dengan aman. Misalnya, jika fungsi penarikan dalam kontrak pintar tidak aman, penyerang dapat memanipulasi fungsi yang rentan untuk menguras dana akun.
Penyerang dapat menggunakan fungsi penarikan untuk mengirim uang ke akun lain, menggunakan loop yang berulang kali mengulangi fungsi penarikan.
Fungsi pribadi hanya dapat dipanggil dari dalam kontrak. Mereka berisi instruksi yang hanya bisa dijalankan setelah dipanggil oleh fungsi lain, dalam sebuah rantai. Ini mempersulit kode untuk dimanipulasi oleh aktor jahat.
Standar dan Kode Logika
Standar yang berbeda muncul yang menentukan bagaimana kontrak pintar Solidity digunakan untuk membangun aplikasi di Ethereum. Standar ini dikenal sebagai standar ERC (Ethereum Request for Comments). Standar tersebut didasarkan pada dokumen yang berisi pedoman tentang fungsi yang diperlukan dan batasan tentang bagaimana kode harus berperilaku.
Standar ERC yang menentukan cara kerja Soliditas meliputi:
- ERC20
- ERC165
- ERC721
- ERC223
- ERC621
- ERC777
- ERC827
- ERC884
- ERC865
- ERC1155
Ada berbagai cara Soliditas dapat digunakan untuk membuat kontrak pintar berinteraksi satu sama lain. Soliditas juga dapat digunakan untuk membuat instruksi khusus tentang bagaimana data disimpan dalam kontrak pintar. Logika dan data dalam kontrak pintar dapat dipisahkan menggunakan Solidity. Menggunakan kontrak pengganti, logika kontrak dapat diubah untuk memungkinkan hal ini.
Kekekalan
Tidak mungkin untuk mengubah kode kontrak pintar setelah ditulis dan disusun. Ini berarti bahwa setiap baris kode harus berfungsi sebagaimana mestinya atau jika tidak, mungkin ada risiko serius dari kode yang dieksploitasi.
Terkait: Cara Menjadi Pemrogram Blockchain dan Mulai Menghasilkan Banyak Uang
Karena blockchain Ethereum tidak dapat diubah, tidak mungkin untuk mengubah data dan logika yang tertulis padanya. Cara untuk menyiasatinya adalah dengan menggunakan proxy untuk menunjuk ke kontrak lain yang berisi logika bisnis yang sebenarnya. Hal ini memungkinkan bug diperbaiki saat versi baru kontrak diterapkan.
Biaya Gas
Ada biaya tambahan yang harus dibayar untuk menggunakan Soliditas di mainnet Ethereum. Beberapa biaya tambahan didasarkan pada sistem gas di Ethereum, yang membutuhkan pembayaran kepada penambang untuk mengamankan jaringan blockchain sehingga kode dapat berjalan dengan aman di sana.
Saat menulis kontrak pintar, penting untuk diingat bahwa biaya gas dapat menentukan seberapa baik kinerja kontrak pintar. Karena biaya gas dibayarkan untuk setiap slot penyimpanan yang digunakan, tindakan dilakukan dengan kode biaya gas Solidity. Kontrak pintar yang mahal untuk dijalankan kemungkinan tidak akan digunakan dalam jangka panjang.
Pengoptimalan gas membantu mengurangi biaya gas saat kode Soliditas dijalankan. Beberapa metode pengoptimalan gas yang paling populer mencakup penggunaan perpustakaan dan penggunaan fungsi yang lebih sedikit. Perpustakaan sering digunakan untuk menyimpan bytecode.
Alih-alih menambahkan bytecode yang tidak perlu ke kontrak pintar, logika dapat dimasukkan ke dalam perpustakaan. Ini membantu menjaga ukuran kontrak pintar tetap kecil. Dengan menggunakan lebih sedikit fungsi, lebih sedikit bytecode yang dibutuhkan, dan kesulitan kode audit juga berkurang.
Bagaimana Soliditas Dapat Digunakan di Ethereum?
Soliditas digunakan untuk membuat kontrak pintar untuk token yang dapat dipertukarkan dan token yang tidak dapat dipertukarkan. Standar yang berbeda digunakan untuk membangun token yang tidak dapat dipertukarkan dan token yang dapat dipertukarkan di ekosistem Ethereum.
Ini memungkinkan berbagai jenis kasus penggunaan dibuat untuk orang-orang yang menggunakan blockchain. Soliditas memungkinkan orang menggunakan token dan token yang tidak dapat dipertukarkan di Ethereum. Dari mencetak token yang tidak dapat dipertukarkan hingga menambahkannya untuk menghasilkan kumpulan pertanian untuk kepentingan ekstra, berbagai jenis penggunaan token dimungkinkan oleh Ethereum.
Organisasi Otonomi Terdesentralisasi (DAO) juga dimungkinkan oleh Solidity. DAO, yang merupakan tipe baru dari struktur organisasi online, terutama ditulis dalam Solidity. DAO memungkinkan orang yang berbeda untuk berkumpul sebagai anggota di platform online tempat mereka memberikan suara pada keputusan utama DAO.
Soliditas memungkinkan untuk mengotomatiskan proses dalam DAO. Contoh otomatisasi proses di DAO termasuk membuat suara untuk keputusan utama dan alokasi reputasi ke anggota DAO untuk kontribusi mereka ke grup.
Mendefinisikan Standar untuk Blockchain
Soliditas lebih dari sekedar bahasa pemrograman. Ini menentukan standar untuk masa depan teknologi blockchain.
Berkat jumlah pengembang sumber terbuka yang bekerja untuk meningkatkan keamanan dan kinerja Soliditas, ribuan aplikasi di ekosistem Ethereum terus bergantung padanya untuk aplikasi mereka beroperasi. Saat standar baru dibuat untuk kontrak pintar di Ethereum, bahasanya akan menjadi lebih aman untuk digunakan.
Apakah internet benar-benar terdesentralisasi? Apa arti desentralisasi, dan bagaimana hal itu membuat Anda tetap aman?
Baca Selanjutnya
- Teknologi Dijelaskan
- Pemrograman
- Ethereum
- Blockchain
Calvin adalah seorang penulis di MakeUseOf. Ketika dia tidak menonton Rick dan Morty atau tim olahraga favoritnya, Calvin menulis tentang startup, blockchain, keamanan siber, dan bidang teknologi lainnya.
Berlangganan newsletter kami
Bergabunglah dengan buletin kami untuk mendapatkan tip teknologi, ulasan, ebook gratis, dan penawaran eksklusif!
Satu langkah lagi…!
Harap konfirmasi alamat email Anda di email yang baru saja kami kirimkan kepada Anda.