Solidity adalah kontrak bahasa pemrograman berorientasi untuk menulis kontrak pintar.[1] Bahasa pemrograman ini digunakan untuk menciptakan kontrak pintar[2] pada berbagai platform blockchain.[3][4] Bahasa ini dikembangkan oleh Gavin Kayu, Kristen Reitwiessner, Alex Beregszaszi, Liana Husikyan, Yoichi Hirai dan beberapa mantan kontributor utama Ethereum untuk menambahkan fitur  kontrak pintar pada platform blockchain seperti Ethereum.[5][6]

Solidity
Situs webgithub.com/ethereum/solidity
Repositorisoliditylang.org
Terpengaruh oleh
JavaScript, C++, Python, PowerShell
Sunting kotak info
Sunting kotak info • L • B
Info templat
Bantuan penggunaan templat ini

Sejarah

Solidity awalnya diusulkan pada bulan Agustus 2014 oleh Gavin Wood;[7][8] bahasa ini kemudian dikembangkan oleh tim solidity Ethereum, yang dipimpin oleh Kristen Reitwiessner. Bahasa ini adalah salah satu dari empat bahasa pemrograman (yang lainnya adalah Serpent, LLL, Viper (eksperimental) dan Mutan (usang)) yang dirancang untuk Ethereum Virtual Machine (EVM). Untuk informasi lebih lanjut tentang bahasa-bahasa ini melihat bahasa pemrograman Ethereum.

Saat ini, Solidity adalah bahasa utama di Ethereum serta blockchain privat lainnya yang bersaing dengan Ethereum, seperti Monax dan Hyperledger Burrow blockchain, yang menggunakan Tendermint sebagai sistem mufakat. SWIFT telah meluncurkan bukti konsep menggunakan Solidity di platform Burrow.[9]

Sebuah peniliti Cornell University menyatakan peretasan DAO yang terjadi pada tahun 2016 adalah sebagian salah dari Solidity. Dia menyatakan: "ini sebenarnya bukan cacat atau kesalah dari kontrak DAO sendiri: secara teknis EVM beroperasi sebagaimana dimaksud, tetapi Solidity memperkenalkan kelemahan keamanan dalam kontrak yang tidak hanya terlewat oleh komunitas, tetapi tidak terjawab oleh para desainer dari bahasa mereka sendiri."[10][11]

Deskripsi

Soliditas adalah bahasa pemrograman statically-typed yang dirancang untuk mengembangkan kontrak pintar yang berjalan pada EVM.[12][13] Solidiy ini disusun menjadi bytecode yang dapat dijalankan pada EVM. Dengan Solidity, pengembang dapat menulis aplikasi yang menerapkan logika bisnis yang terkandung di smart kontrak, meninggalkan catatan transaksi berwibawa dan tidak bisa dimanipulasi oleh orang yang tinggal berotoritas.[14][15] Menulis kontrak pintar pada bahasa khusus kontrak pintar seperti Solidity terbilang mudah (bagi mereka yang sudah memiliki keterampilan pemrograman).[16]

Sebagaimana ditentukan oleh Wood, bahasa itu dirancang menurut sintaks ECMAScript untuk membuatnya familiar bagi para pengembang web;[butuh rujukan]akan tetapi, tidak seperti ECMAScript, Solidity memiliki static typing dan variadic return. Dibandingkan dengan bahasa pemrograman yang menargetkan EVM seperti Ular dan Mutan, Solidity memiliki sejumlah perbedaan penting. Variabel anggota kompleks untuk kontrak termasuk pemetaan kewenangan hirarkis dan struktur tersedia. Kontrak memiliki fitur inheritance, termasuk multiple inheritance dengan linearisasi C3. Sebuah application binary interface (ABI) memfasilitasi beberapa jenis fungsi type-safe dalam satu kontrak itu juga diperkenalkan (dan kemudian didukung oleh Serpent). Sebuah sistem dokumentasi untuk memberikan deskripsi berorientasi kepada pengguna yang berisi keterangan dari konsekuensi dari pemanggilan sebuah method atau function juga masuk ke dalam proposal, yang dikenal sebagai "Natural Language Specification".[17][18]

Contoh program solidity:[19][20]

Platform pengembangan yang tersedia

Platform Blockchain

Solidity tersedia di:

  • Ethereum
  • TendermintKesalahan pengutipan: Tag <ref> tidak sah atau memiliki nama yang salah. & ErisDB (versi Tendermint)Kesalahan pengutipan: Tag <ref> tidak sah atau memiliki nama yang salah.
  • Counterparty (yang berjalan pada Bitcoin)Kesalahan pengutipan: Tag <ref> tidak sah atau memiliki nama yang salah.

Referensi

  1. ^ Allison, Ian (12 August 2016). "PwC blockchain expert pinpoints sources of ambiguity in smart contracts". IBTimes (News). Diakses tanggal 14 December 2016. 
  2. ^ "SOFE Berlin: Swift unveils blockchain proof-of-concept". Finextra (News). 24 November 2016. Diakses tanggal 24 November 2016. 
  3. ^ Alyssa Hertig (15 September 2016). "Blockchain Veterans Unveil Secure Smart Contracts Framework". CoinDesk. Diakses tanggal 14 December 2016. 
  4. ^ Rebecca Campbell (6 September 2016). "Counterparty Brings Ethereum Smart Contracts to the Bitcoin Blockchain". CCN. Diakses tanggal 14 December 2016. 
  5. ^ "In Formal Verification Push, Ethereum Seeks Smart Contract Certainty". CoinDesk (News). 28 September 2016. Diakses tanggal 12 December 2016. 
  6. ^ Browning, David (May 2016). Digital Siege: Why Young Entrepreneurs Are Winning. ISBN 978-1628652963. Diakses tanggal 2017-01-08. 
  7. ^ Benoit Schweblin. "StackEdit Viewer". stackedit.io. 
  8. ^ a b "Blockchain and big data worth watching in the coming year". Business. International Business Times (dalam bahasa Inggris). December 20, 2016. Diakses tanggal 2017-09-28. 
  9. ^ KENTOURIS, CHRIS (13 December 2016). "Blockchain's Smart Contracts: What's Smart, What's Not". Finops (News). Diakses tanggal 14 December 2016. 
  10. ^ Quentson, Andrew (19 June 2016). "Ethereum's Solidity Flaw Exploited in DAO Attack Says Cornell Researcher". CryptocoinNews (News). Diakses tanggal 14 December 2016. 
  11. ^ Finley, Klint (18 June 2016). "A $50 MILLION HACK JUST SHOWED THAT THE DAO WAS ALL TOO HUMAN". Wired (News). Diakses tanggal 18 February 2017. 
  12. ^ Mougayar, William (2016-04-26). The Business Blockchain: Promise, Practice, and Application of the Next Internet Technology. Wiley Publishing. ISBN 978-1119300311. 
  13. ^ Allison, Ian (2016-03-30). "Microsoft adds Ethereum language Solidity to Visual Studio". International Business Times. Diakses tanggal 2016-05-11. 
  14. ^ Bradley, Joseph (2016-05-04). "Ethereum's Solidity Now Available in Microsoft Visual Studio". Cryptocoinnews. Diakses tanggal 2016-05-11. 
  15. ^ Allison, Ian (30 March 2016). "Microsoft adds Ethereum language Solidity to Visual Studio". International Business Times. Diakses tanggal 11 May 2016. 
  16. ^ Mougayar, William (May 9, 2016). The Business Blockchain: Promise, Practice, and Application of the Next Internet Technology Hardcover. Wiley Publishing. ISBN 978-1119300311. Diakses tanggal 2017-01-09. 
  17. ^ Kapetanios-2008-06-27 & p.309.
  18. ^ ethereum. "Ethereum Natural Specification Format". GitHub. 
  19. ^ RJ Catalano, one of the core developers, see VoR0220 on github
  20. ^ a b Schneier, Karthikeyan; Schneier, Antoine; Bhargavan, Cedric; Delignat-Lavaud, Anitha; Fournet, Gollamudi; Schneier, Bruce; Rastogi, Nadim; Sibut-Pinote, Aseem; Rastogi1, Thomas; Swamy, Nikhil; Zanella-Beguelin, Santiago (August 27, 2016). "Short Paper: Formal Verification of Smart Contracts" (PDF). Microsoft Research, French Institute for Research in Computer Science and Automation, Harvard University (dalam bahasa Inggris). Diarsipkan (PDF) dari versi asli tanggal August 23, 2017.