Pos Bahasa Pemrograman Soliditas Master Dalam 5 Menit: Tulang Punggung Kontrak Cerdas Ethereum muncul pertama kali di Coinpedia Fintech News

Perkenalan:

Pernahkah Anda bertanya-tanya bagaimana peningkatan industri blockchain telah mengubah pandangan kita terhadap aset digital? Perkembangan ini tidak akan mungkin terjadi tanpa Ethereum, platform sumber terbuka global untuk aplikasi terdesentralisasi (dApps). Ini adalah landasan mata uang kripto aslinya, Ether (ETH).

Ether (ETH) adalah mata uang kripto terbesar kedua di dunia, dengan batas saat ini sebesar USD 404,86 miliar setelah Bitcoin(BTC). Ia juga terkenal dengan metode validasi bukti kepemilikannya. Ethereum dapat diakses oleh siapa saja yang mencari platform aman yang terukur, dapat diprogram, dan terdesentralisasi.

Potensi mendasar Ethereum terletak pada bahasa utama kontrak cerdasnya: Soliditas. Mari selami pemahaman dasar-dasar Soliditas. 

Pengantar Soliditas:

Apa itu Soliditas?

Soliditas adalah bahasa utama yang diperkenalkan oleh Ethereum untuk membuat kontrak pintar. Ini adalah bahasa tingkat tinggi, berorientasi objek, dan diketik secara statis yang dirancang untuk kontrak pintar. Soliditas adalah bahasa yang relatif baru, diperkenalkan oleh Gavin Wood pada tahun 2014 dan kemudian dikembangkan di bawah bimbingan Christian Reitwiessner dan Alex Beregszaszi. Meskipun baru, ini telah menjadi bahasa favorit para pengembang Ethereum.

Fitur utamanya adalah sebagai berikut: mendukung pewarisan berganda bersama dengan linearisasi C3, tipe data kompleks yang ditentukan pengguna, pustaka, dan bahkan pewarisan, dan juga menghadirkan interferensi biner aplikasi (ABI) yang menjamin keamanan tipe dan inklusif dengan Spesifikasi Bahasa Alami .

Mengapa Soliditas untuk Ethereum?

Solidity memiliki kesamaan dengan bahasa seperti C++, JavaScript, dan Python dan berjalan pada Ethereum Virtual Machine (EVM) yang dihosting di Ethereum Nodes yang terhubung ke blockchain. Ini sangat berguna dan mampu menciptakan aplikasi industri, bermanfaat, dan kuat yang mendukung perpustakaan dan warisan yang ditentukan pengguna. Ini memastikan penerapan dan pelaksanaan kontrak yang lancar di Node Ethereum. 

Mesin Virtual Ethereum terutama berfungsi sebagai lingkungan runtime untuk kontrak pintar. Ini digunakan dan dipusatkan untuk memastikan keamanan dan implementasi kode yang tidak tepercaya melalui jaringan node publik internasional.

Solidity mengkompilasi kode byte Ethereum yang dijalankan oleh EVM. Ini terkonsentrasi pada pencegahan serangan Denial-of-Service dan menjamin bahwa program tidak memiliki akses ke status masing-masing, juga mengonfirmasi penghambatan inferensi apa pun.

Sintaks dan Struktur Soliditas

Sintaks Dasar

Bahasa seperti C++, JavaScript, dan Python memengaruhi soliditas. Soliditas menggunakan sintaks mirip ECMAScript tetapi memiliki pengetikan statis. Bahasa implementasi yang digunakan untuk Solidity adalah C++. Ini memiliki paradigma imperatif yang memerlukan fungsi untuk dikodekan secara implisit di setiap langkah. 

Ini berisi struktur data umum seperti pemetaan, array, dan tipe data lain seperti bilangan bulat, boolean, dan alamat yang mendukung oops dan struct yang ditentukan khusus. Fungsi adalah blok dasar bahasa yang dapat mengubah variabel status dan memiliki tipe kembalian.

Struktur Kontrak Soliditas

Kami memulai kontrak pintar dengan pembukaan yang mendefinisikan versi soliditas pragma, yang menyatakan versi kompiler soliditas yang digunakan untuk kode dan berisi nama kontrak. Kedua, kata kunci kontrak adalah bagaimana cuplikan kode harus mulai menyatakan kontrak di mana kode tersebut berada. 

Kontrak dapat dianggap analog dengan kelas di OOP. Setiap kontrak memiliki deklarasi variabel status berikut: fungsi dengan tipe dan metode pengembalian, pengubah, peristiwa, tipe Struktural, enum, dan kesalahan. 

Setiap subbagian kode memiliki fungsinya masing-masing. Variabel status digunakan untuk menyimpan data kontrak, fungsi digunakan untuk mendefinisikan perilaku, peristiwa digunakan untuk komunikasi antara kontrak dan fitur eksternal, dan pengubah digunakan untuk menerapkan aturan.

Menulis Kontrak Cerdas Sederhana dalam Soliditas

Menyiapkan Lingkungan Pembangunan

Kontrak pintar soliditas dapat diimplementasikan dalam mode Offline dan Online

  • Mode Offline: Untuk menjalankan soliditas secara offline, Anda harus memiliki Node.js, truffle global, dan ganache-cli di sistem Anda. Kemudian, Anda dapat menerapkan kontrak pintar, membuat proyek truffle, dan berinteraksi menggunakan konsol truffle

  • Mode Online: Remix IDE digunakan untuk mengkompilasi dan menjalankan kontrak pintar. Berikut ini adalah langkah-langkah yang terlibat:

  1. Mulailah dengan  Remix IDE, atur lingkungannya, dan buat file baru

  2. Buat kode kontrak pintar dan kompilasi

  3. Terapkan dan Jalankan kodenya 

  4. Debug dan pemanggilan metode

 Contoh Kontrak Soliditas Sederhana

//Pragma solidity>=0.4.22///judul kontrak///penuliskontrak Penyimpanan{  uint256 data pribadi;    Kumpulan fungsi(uint256 _data) publik{      data=_data; }  Fungsi get() tampilan publik kembali (uint256){      Mengembalikan data; }}

Mari kita lihat contoh sederhana Kontrak Soliditas:

Potongan:

Cuplikan kode di atas memungkinkan pengguna untuk menyimpan satu bilangan bulat yang tidak ditandatangani. Di sini, fungsi set menyimpan data, dan fungsi get mengambilnya. Anda dapat mencoba contoh singkat dan sederhana untuk memulai perjalanan Anda di domain ini.

Fitur Lanjutan dalam Soliditas

Warisan dan Perpustakaan

Terlepas dari cara penulisan kontrak yang jelas, fitur penting dari Solidity adalah warisan. Warisan mengacu pada penggunaan kelas atau pewarisan properti kelas di OOPS. Demikian pula, ini memungkinkan pengguna untuk mewarisi properti dan metode satu kontrak di kontrak lain. Hal ini membuat kode lebih mudah dibaca, membuat latihan menulis lebih bersih, dan meningkatkan kemampuan penggunaan kembali kode. Perpustakaan di Solidity adalah keuntungan karena membantu Anda mengatur cara Anda merepresentasikan kode Anda, memungkinkan modifikasi yang tepat untuk memodulasinya.

Praktik Terbaik Keamanan

Keamanan sangat penting saat menulis kontrak pintar. Ada beberapa Kerentanan umum, seperti serangan masuk kembali dan integer overflow. Serangan masuk kembali adalah ketika kode Anda rentan terhadap eksploitasi ketika suatu fungsi melakukan panggilan eksternal sebelum memperbarui statusnya sendiri. Oleh karena itu, hal ini memungkinkan elemen kontrak eksternal untuk masuk kembali ke fungsinya dan melakukan intervensi dalam tindakan seperti menarik diri dengan mengulanginya.

Kerentanan lainnya adalah Integer overflow pembuat masalah yang terkenal, yang terjadi ketika hasil operasi melebihi batas maksimum yang dapat ditampung oleh tipe data yang ditetapkan. Oleh karena itu, untuk mengatasinya, praktik terbaiknya adalah menggunakan perpustakaan SafeMath, melakukan audit menyeluruh, dan menerapkan pola interaksi pemeriksaan-efek.

Praktik terbaru yang efektif dalam memastikan keamanan adalah Desain Kontrak Sederhana, dan pengujian Fuzz yang terdengar agak tidak konvensional tetapi pengujian data acak membantu menemukan masalah tersembunyi. Selain itu, salah satu langkah strategisnya adalah dengan mengadakan program hadiah besar yang akan melibatkan komunitas keamanan untuk berkontribusi dan memperbaiki bug serta menawarkan hadiah besar. 

Mengembangkan dan Menerapkan Kontrak Soliditas

Alur Kerja Pengembangan

Berikut alur kerjanya:

  1. Konseptualisasi Ide: Pengembang harus merancang tujuan kontrak yang jelas.

  2. Tulis Kontrak: Tulis kode yang bersih dan mudah dibaca menggunakan IDE seperti Remix IDE, Truffle, atau Hardhat.

  3. Pengujian: Gunakan kerangka pengujian yang sesuai pada IDE

  4. Debugging: Debug kode untuk masalah apa pun dan periksa apakah kode berfungsi sesuai harapan.

  5. Pemeriksaan Keamanan: Periksa kerentanan apa pun menggunakan alat keamanan seperti MythX.

  6. Deploy: Terakhir, Deploy kontrak dan pastikan integrasi lancar

Penerapan di Jaringan Ethereum

Penerapan kontrak pintar memerlukan banyak pertimbangan presisi dalam kodenya. Oleh karena itu, sebelum berinteraksi dengan jaringan utama, kami terlebih dahulu menerapkan kontrak pintar kami di jaringan pengujian Ethereum seperti Robstan, Kovan, atau Rinkben. Mereka membiarkan kami menemukan dan mengatasi kesalahan dalam kode. Jaringan pengujian yang lebih baru adalah Goerli yang diperkenalkan pada tahun 2018 dan menggunakan mekanisme konsensus bukti otoritas

 Setelah Anda menyelesaikan kontrak, Anda dapat menerapkannya di mainnet. Penerapan di mainnet memerlukan biaya gas dalam Ether (ETH). Oleh karena itu, diperlukan kode yang akurat tanpa perbedaan. Platform seperti Infura dan Metamask memberi Anda API dan layanan dompet. Jadi, setelah kontrak Anda diterapkan, kontrak tersebut tidak dapat diubah dan bersifat publik.

Alternatif untuk IDE Truffle dan hardhat konvensional adalah Brownie yang menyediakan antarmuka baris perintah dan konsol interaktif, dan menggunakan pytest sehingga bagi pengembang yang akrab dengan Python Brownie pasti menambahkan poin brownies!

Masa Depan Soliditas dan Kontrak Cerdas Ethereum

Evolusi Soliditas

Soliditas telah berkembang secara luar biasa. Konsentrasi saat ini adalah pada pembaruan keamanan, efisiensi, dan penggunaan kembali. Komunitas besar di balik evolusi ini terus meningkatkan dan berkontribusi untuk menghadirkan Soliditas seperti sekarang ini. 

Ekosistem pengembang juga meningkat di banyak negara. Untuk menjadi pengembang Soliditas, Anda memerlukan dasar yang kuat dalam pemrograman Komputer.

Tren dan Inovasi

Tren terkini di Solidity adalah pengembangan kontrak pintar, termasuk solusi lapisan-2, interoperabilitas lintas rantai, dan integrasi AI. Inovasi ini telah merevolusi industri blockchain dan pengembangan dApps.

Seiring dengan fokus pada peningkatan analisis program dan peningkatan kebenaran, para peneliti bertujuan untuk mengintegrasikan skema kriptografi tingkat lanjut seperti protokol e-voting TAVS di Solidity. Untuk meningkatkan kegunaan dan menyelesaikan analisis berbasis byte, alat baru seperti SolSEE sedang dalam pengembangan.

Kesimpulan

Kesimpulannya, Soliditas adalah pilar Ethereum dan pengembangan kontrak pintar. Ini memberikan kerangka kerja yang aman, andal, dan dibangun dengan baik untuk menciptakan dApps. Ketika teknologi blockchain terus bersinar di industri, Solidity, sebagai pionirnya, tetap menjadi salah satu kontributor pertumbuhan terkuat. Jadi persiapkan semuanya dan masuki arena masa depan yang terdesentralisasi!

Baca Juga: Kriptografi 101: Kunci Perkembangan Blockchain untuk Pemula