Menguasai Ethereum - Apa Itu Ethereum?

Blog

Menguasai Ethereum - Apa Itu Ethereum?

Ethereum sering digambarkan sebagai 'komputer dunia. Tapi apa artinya itu? Mari kita mulai dengan deskripsi yang berfokus pada ilmu komputer, dan kemudian mencoba menguraikannya dengan analisis yang lebih praktis tentang kemampuan dan karakteristik Ethereum, sambil membandingkannya dengan Bitcoin dan platform pertukaran informasi terdesentralisasi lainnya (atau singkatnya 'blockchains').

Dari perspektif ilmu komputer, Ethereum adalah mesin keadaan deterministik tetapi praktis tidak terbatas, terdiri dari keadaan tunggal yang dapat diakses secara global dan mesin virtual yang menerapkan perubahan pada keadaan itu.

Dari perspektif yang lebih praktis, Ethereum adalah sumber terbuka, infrastruktur komputasi terdesentralisasi secara global yang menjalankan program yang disebut kontrak pintar . Ini menggunakan blockchain untuk menyinkronkan dan menyimpan perubahan status sistem, bersama dengan cryptocurrency yang disebut eter untuk mengukur dan membatasi biaya sumber daya eksekusi.

Platform Ethereum memungkinkan pengembang untuk membangun aplikasi terdesentralisasi yang kuat dengan fungsi ekonomi bawaan. Sambil memberikan ketersediaan tinggi, kemampuan audit, transparansi, dan netralitas, ini juga mengurangi atau menghilangkan penyensoran dan mengurangi risiko pihak lawan tertentu.

Dibandingkan dengan Bitcoin

Banyak orang akan datang ke Ethereum dengan beberapa pengalaman cryptocurrency sebelumnya, khususnya Bitcoin. Ethereum berbagi banyak elemen umum dengan blockchain terbuka lainnya: jaringan peer-to-peer yang menghubungkan peserta, algoritma konsensus toleransi kesalahan Bizantium untuk sinkronisasi pembaruan status (blockchain proof-of-work), penggunaan primitif kriptografi seperti digital tanda tangan dan hash, dan mata uang digital (eter).

Namun dalam banyak hal, tujuan dan konstruksi Ethereum sangat berbeda dari blockchain terbuka yang mendahuluinya, termasuk Bitcoin.

Tujuan Ethereum terutama bukan untuk menjadi jaringan pembayaran mata uang digital. Sementara mata uang digital eter merupakan bagian integral dan diperlukan untuk pengoperasian Ethereum, eter dimaksudkan sebagai mata uang utilitas untuk membayar penggunaan platform Ethereum sebagai komputer dunia.

Tidak seperti Bitcoin, yang memiliki bahasa skrip yang sangat terbatas, Ethereum dirancang untuk menjadi blockchain yang dapat diprogram untuk tujuan umum yang menjalankan mesin virtual mampu mengeksekusi kode kompleksitas sewenang-wenang dan tak terbatas. Di mana bahasa Script Bitcoin, dengan sengaja, dibatasi untuk evaluasi benar/salah sederhana dari kondisi pengeluaran, bahasa Ethereum adalah Turing selesai , artinya Ethereum dapat langsung berfungsi sebagai komputer serba guna.

Komponen Blockchain

Komponen dari blockchain publik yang terbuka adalah (biasanya):

Jaringan peer-to-peer (P2P) yang menghubungkan peserta dan menyebarkan transaksi dan blok transaksi terverifikasi, berdasarkan protokol 'gosip' standar

Pesan, dalam bentuk transaksi, mewakili transisi keadaan

Seperangkat aturan konsensus, yang mengatur apa yang dimaksud dengan transaksi dan apa yang membuat transisi status yang valid

harga saham real time api

Mesin negara yang memproses transaksi sesuai dengan aturan konsensus

Rantai blok yang diamankan secara kriptografis yang bertindak sebagai jurnal dari semua transisi status yang diverifikasi dan diterima

Algoritme konsensus yang mendesentralisasikan kontrol atas blockchain, dengan memaksa peserta untuk bekerja sama dalam penegakan aturan konsensus

Skema insentif yang sehat secara teori permainan (misalnya, biaya bukti kerja ditambah hadiah blok) untuk mengamankan mesin negara secara ekonomis di lingkungan terbuka

Satu atau lebih implementasi perangkat lunak sumber terbuka di atas ('klien')

Semua atau sebagian besar komponen ini biasanya digabungkan dalam satu klien perangkat lunak. Misalnya, di Bitcoin, implementasi referensi dikembangkan oleh Inti Bitcoin proyek open source dan diimplementasikan sebagai bitcoin klien. Di Ethereum, alih-alih implementasi referensi, ada a spesifikasi referensi , deskripsi matematis dari sistem di Kertas Kuning (lihat Bacaan lebih lanjut ). Ada sejumlah klien, yang dibangun sesuai dengan spesifikasi referensi.

Di masa lalu, kami menggunakan istilah 'blockchain' untuk mewakili semua komponen yang baru saja dicantumkan, sebagai referensi singkat untuk kombinasi teknologi yang mencakup semua karakteristik yang dijelaskan. Namun, hari ini, ada berbagai macam blockchain dengan properti yang berbeda. Kami membutuhkan kualifikasi untuk membantu kami memahami karakteristik blockchain yang dimaksud, seperti terbuka, publik, global, terdesentralisasi, netral, dan tahan sensor , untuk mengidentifikasi karakteristik penting yang muncul dari sistem 'blockchain' yang diizinkan oleh komponen ini.

Tidak semua blockchain dibuat sama. Ketika seseorang memberi tahu Anda bahwa ada sesuatu yang merupakan blockchain, Anda belum menerima jawaban; sebaliknya, Anda harus mulai mengajukan banyak pertanyaan untuk memperjelas apa artinya ketika mereka menggunakan kata 'blockchain'. Mulailah dengan menanyakan deskripsi komponen dalam daftar sebelumnya, lalu tanyakan apakah 'blockchain' ini menunjukkan karakteristik menjadi terbuka, umum , dll.

Kelahiran Ethereum

Semua inovasi hebat memecahkan masalah nyata, dan Ethereum tidak terkecuali. Ethereum dikandung pada saat orang mengenali kekuatan model Bitcoin, dan mencoba untuk bergerak melampaui aplikasi cryptocurrency. Tetapi pengembang menghadapi teka-teki: mereka perlu membangun di atas Bitcoin atau memulai blockchain baru. Membangun di atas Bitcoin berarti hidup dalam batasan jaringan yang disengaja dan mencoba mencari solusi. Keterbatasan jenis transaksi, jenis data, dan ukuran penyimpanan data tampaknya membatasi jenis aplikasi yang dapat berjalan langsung di Bitcoin; hal lain membutuhkan lapisan off-chain tambahan, dan itu segera meniadakan banyak keuntungan menggunakan blockchain publik. Untuk proyek yang membutuhkan lebih banyak kebebasan dan fleksibilitas sambil tetap on-chain, blockchain baru adalah satu-satunya pilihan. Tapi itu berarti banyak pekerjaan: bootstrap semua elemen infrastruktur, pengujian menyeluruh, dll.

Menjelang akhir tahun 2013, Vitalik Buterin, seorang programmer muda dan penggemar Bitcoin, mulai berpikir untuk memperluas kemampuan Bitcoin dan Mastercoin (protokol overlay yang memperluas Bitcoin untuk menawarkan kontrak pintar yang belum sempurna). Pada bulan Oktober tahun itu, Vitalik mengusulkan pendekatan yang lebih umum ke tim Mastercoin, yang memungkinkan kontrak fleksibel dan skrip (tetapi tidak Turing-complete) untuk menggantikan bahasa kontrak khusus Mastercoin. Sementara tim Mastercoin terkesan, proposal ini terlalu radikal untuk dimasukkan ke dalam peta jalan pengembangan mereka.

Pada bulan Desember 2013, Vitalik mulai membagikan whitepaper yang menguraikan ide di balik Ethereum: blockchain serba guna yang lengkap dengan Turing. Beberapa lusin orang melihat draf awal ini dan menawarkan umpan balik, membantu Vitalik mengembangkan proposal.

Kedua penulis buku ini menerima draf awal buku putih dan mengomentarinya. Andreas M. Antonopoulos tertarik dengan ide tersebut dan mengajukan banyak pertanyaan kepada Vitalik tentang penggunaan blockchain terpisah untuk menegakkan aturan konsensus tentang pelaksanaan kontrak pintar dan implikasi dari bahasa lengkap Turing. Andreas terus mengikuti kemajuan Ethereum dengan penuh minat tetapi masih dalam tahap awal menulis bukunya Menguasai Bitcoin , dan tidak berpartisipasi secara langsung di Ethereum sampai beberapa waktu kemudian. Namun, Dr. Gavin Wood adalah salah satu orang pertama yang menjangkau Vitalik dan menawarkan bantuan dengan keterampilan pemrograman C++-nya. Gavin menjadi salah satu pendiri, codesigner, dan CTO Ethereum.

Seperti yang diceritakan Vitalik dalam karyanya https://vitalik.ca/general/2017/09/14/prehistory.html .

Empat Tahap Pengembangan Ethereum

Pengembangan Ethereum direncanakan dalam empat tahap berbeda, dengan perubahan besar terjadi pada setiap tahap. Tahap mungkin menyertakan subrilis, yang dikenal sebagai 'hard fork', yang mengubah fungsionalitas dengan cara yang tidak kompatibel ke belakang.

Empat tahap pengembangan utama diberi nama kode Perbatasan , wisma , Metropolis , dan Ketenangan . Hard fork perantara yang telah terjadi hingga saat ini diberi nama kode Zaman Es , PISAU , Peluit Tangerine , Naga Palsu , Bizantium , Konstantinopel/St. Petersburg , Istanbul dan Gletser Muir . Tahap pengembangan dan hard fork menengah ditampilkan pada garis waktu berikut, yang 'diberi tanggal' berdasarkan nomor blok:

Memblokir

Perbatasan —Tahap awal Ethereum, berlangsung dari 30 Juli 2015, hingga Maret 2016.

Blokir ,000

Zaman Es —Sebuah garpu keras untuk memperkenalkan peningkatan kesulitan eksponensial, untuk memotivasi transisi ke PoS saat siap.

Blok, 150,000

wisma —Ethereum tahap kedua, diluncurkan pada Maret 2016.

Blok ,192.000

PISAU —Sebuah garpu keras yang mengganti korban kontrak DAO yang diretas dan menyebabkan Ethereum dan Ethereum Classic terpecah menjadi dua sistem yang bersaing.

Blok ,463.000

Peluit Tangerine —Suatu garpu yang sulit untuk mengubah perhitungan gas untuk operasi berat I/O tertentu dan untuk menghapus status akumulasi dari serangan penolakan layanan (DoS) yang mengeksploitasi biaya bahan bakar yang rendah dari operasi tersebut.

Blok ,675,000

Naga Palsu —Sebuah garpu keras untuk mengatasi lebih banyak vektor serangan DoS, dan pembersihan status lainnya. Juga, mekanisme perlindungan serangan replay.

Blok ,370.000

Metropolis Byzantium —Metropolis adalah tahap ketiga Ethereum. Diluncurkan pada Oktober 2017, Byzantium adalah bagian pertama dari Metropolis, menambahkan fungsionalitas tingkat rendah dan menyesuaikan hadiah dan kesulitan blok.

Blok ,280,000

Konstantinopel / St. Petersburg —Konstantinopel direncanakan menjadi bagian kedua Metropolis dengan perbaikan serupa. Beberapa jam sebelum aktivasi, a bug kritis telah ditemukan. Garpu keras karena itu ditunda dan berganti nama menjadi St. Petersburg.

Blok ,069,000

Istanbul —Sebuah garpu keras tambahan dengan pendekatan yang sama, dan konvensi penamaan, seperti untuk dua sebelumnya.

Blok, 200.000

reaksi-asli-kalender acara

Gletser Muir —Sebuah garpu keras yang tujuan utamanya adalah untuk menyesuaikan kesulitan lagi karena peningkatan eksponensial yang diperkenalkan oleh Zaman Es.

Dua hard fork, Berlin dan London, juga telah diumumkan, dan kami sekarang berada di tahap akhir pengembangan Ethereum, dengan nama kode Serenity. Serenity melibatkan reorganisasi infrastruktur yang mendalam yang akan membuat Ethereum lebih terukur, lebih aman, dan lebih berkelanjutan. Ini disajikan sebagai versi kedua Ethereum, 'Ethereum 2.0'.

Ethereum: Blockchain Tujuan Umum

Blockchain asli, yaitu blockchain Bitcoin, melacak status unit bitcoin dan kepemilikannya. Anda dapat menganggap Bitcoin sebagai konsensus terdistribusi mesin negara , di mana transaksi menyebabkan global transisi negara , mengubah kepemilikan koin. Transisi keadaan dibatasi oleh aturan konsensus, yang memungkinkan semua peserta (akhirnya) berkumpul pada keadaan umum (konsensus) sistem, setelah beberapa blok ditambang.

Ethereum juga merupakan mesin negara terdistribusi. Tetapi alih-alih hanya melacak status kepemilikan mata uang, Ethereum melacak transisi status dari penyimpanan data tujuan umum, yaitu, toko yang dapat menyimpan data apa pun yang dapat diekspresikan sebagai tupel nilai kunci . Penyimpanan data nilai kunci menyimpan nilai arbitrer, masing-masing direferensikan oleh beberapa kunci; misalnya, nilai 'Menguasai Ethereum' yang dirujuk oleh kunci 'Judul Buku'. Dalam beberapa hal, ini memiliki tujuan yang sama dengan model penyimpanan data dari Memori Akses Acak (RAM) yang digunakan oleh sebagian besar komputer tujuan umum. Ethereum memiliki memori yang menyimpan kode dan data, dan menggunakan blockchain Ethereum untuk melacak bagaimana memori ini berubah dari waktu ke waktu. Seperti komputer program tersimpan tujuan umum, Ethereum dapat memuat kode ke mesin statusnya dan Lari kode itu, menyimpan perubahan status yang dihasilkan di blockchain-nya. Dua perbedaan penting dari kebanyakan komputer tujuan umum adalah bahwa perubahan status Ethereum diatur oleh aturan konsensus dan status didistribusikan secara global. Ethereum menjawab pertanyaan: 'Bagaimana jika kita dapat melacak keadaan sewenang-wenang dan memprogram mesin negara untuk membuat komputer di seluruh dunia yang beroperasi di bawah konsensus?'

Komponen Ethereum

Di Ethereum, komponen sistem blockchain dijelaskan dalam Komponen Blockchain adalah, lebih khusus:

jaringan P2P

Ethereum berjalan di Jaringan utama Ethereum , yang dapat dialamatkan pada port TCP 30303, dan menjalankan protokol yang disebut Vp2p .

Aturan konsensus

Aturan konsensus Ethereum didefinisikan dalam spesifikasi referensi, Yellow Paper (lihat Bacaan lebih lanjut ).

Transaksi

Transaksi Ethereum adalah pesan jaringan yang mencakup (antara lain) pengirim, penerima, nilai, dan muatan data.

Mesin negara

Transisi status Ethereum diproses oleh Mesin Virtual Ethereum (EVM), mesin virtual berbasis tumpukan yang mengeksekusi kode bita (instruksi bahasa mesin). Program EVM, yang disebut 'kontrak pintar,' ditulis dalam bahasa tingkat tinggi (mis., Soliditas) dan dikompilasi ke bytecode untuk dieksekusi pada EVM.

Struktur data

Status Ethereum disimpan secara lokal di setiap node sebagai basis data (biasanya LevelDB Google), yang berisi transaksi dan status sistem dalam struktur data bersambung yang disebut a Pohon Patricia Merkle .

Algoritma konsensus

Ethereum menggunakan model konsensus Bitcoin, Nakamoto Consensus, yang menggunakan blok tanda tangan tunggal berurutan, yang ditimbang oleh PoW untuk menentukan rantai terpanjang dan oleh karena itu keadaan saat ini. Namun, ada rencana untuk pindah ke sistem pemungutan suara berbobot PoS, dengan nama kode Casper , dalam waktu dekat.

Keamanan ekonomi

Ethereum saat ini menggunakan algoritma PoW yang disebut Etash , tetapi ini pada akhirnya akan dibatalkan dengan perpindahan ke PoS di beberapa titik di masa mendatang.

klien

Ethereum memiliki beberapa implementasi perangkat lunak klien yang dapat dioperasikan, yang paling menonjol adalah Go-Ethereum ( Gethu ) dan Keseimbangan .

Bacaan lebih lanjut

Referensi berikut memberikan informasi tambahan tentang teknologi yang disebutkan di sini:

reaksi-asli-gambar-slider

Kertas Kuning Ethereum: https://ethereum.github.io/yellowpaper/paper.pdf

The Beige Paper, penulisan ulang Yellow Paper untuk audiens yang lebih luas dalam bahasa yang tidak terlalu formal: https://github.com/chronaeon/beigepaper

Protokol jaringan Vp2p: https://github.com/ethereum/devp2p/blob/master/rlpx.md

Daftar sumber daya Ethereum Virtual Machine: https://eth.wiki/en/concepts/evm/ethereum-virtual-machine-(evm)-awesome-list

Basis data LevelDB (paling sering digunakan untuk menyimpan salinan lokal blockchain): https://github.com/google/leveldb

Pohon Merkle Patricia: https://eth.wiki/en/fundamentals/patricia-tree

Algoritma Ethash PoW: https://eth.wiki/en/concepts/ethash/ethash

Panduan Implementasi Casper PoS v1: https://geth.ethereum.org/

Klien paritas Ethereum: https://paritas.io/

Kelengkapan Ethereum dan Turing

Segera setelah Anda mulai membaca tentang Ethereum, Anda akan segera menemukan istilah 'Turing selesai.' Ethereum, kata mereka, tidak seperti Bitcoin, Turing sudah lengkap. Apa sebenarnya artinya itu?

Istilah ini mengacu pada matematikawan Inggris Alan Turing, yang dianggap sebagai bapak ilmu komputer. Pada tahun 1936 ia menciptakan model matematika komputer yang terdiri dari mesin negara yang memanipulasi simbol dengan membaca dan menulisnya pada memori sekuensial (menyerupai pita kertas panjang tak terbatas). Dengan konstruksi ini, Turing melanjutkan untuk memberikan dasar matematika untuk menjawab (dalam hal negatif) pertanyaan tentang komputabilitas universal , artinya apakah semua masalah dapat dipecahkan. Dia membuktikan bahwa ada kelas masalah yang tidak dapat dihitung. Secara khusus, dia membuktikan bahwa menghentikan masalah (apakah mungkin, mengingat program arbitrer dan inputnya, untuk menentukan apakah program pada akhirnya akan berhenti berjalan) tidak dapat dipecahkan.

Alan Turing lebih lanjut mendefinisikan sistem sebagai Turing selesai jika dapat digunakan untuk mensimulasikan mesin Turing apa pun. Sistem seperti ini disebut Mesin Turing Universal (UTM).

Kemampuan Ethereum untuk menjalankan program yang tersimpan, dalam mesin negara yang disebut Mesin Virtual Ethereum, saat membaca dan menulis data ke memori menjadikannya sistem yang lengkap Turing dan karenanya menjadi UTM. Ethereum dapat menghitung algoritma apa pun yang dapat dihitung oleh mesin Turing apa pun, mengingat keterbatasan memori yang terbatas.

Inovasi terobosan Ethereum adalah menggabungkan arsitektur komputasi tujuan umum dari komputer program tersimpan dengan blockchain terdesentralisasi, sehingga menciptakan komputer dunia satu negara (singleton) terdistribusi. Program Ethereum berjalan 'di mana-mana', namun menghasilkan keadaan umum yang dijamin oleh aturan konsensus.

Kelengkapan Turing sebagai 'Fitur'

Mendengar bahwa Ethereum adalah Turing selesai, Anda mungkin sampai pada kesimpulan bahwa ini adalah fitur yang entah bagaimana kurang dalam sistem yang Turing tidak lengkap. Sebaliknya, itu adalah sebaliknya. Kelengkapan turing sangat mudah dicapai; faktanya, https://github.com