Ethereum: Platform Kontrak Cerdas dan Aplikasi Terdesentralisasi Generasi Berikutnya

Par Vitalik Buterin · 2013

Abstract

Ethereum est une plateforme de cryptomonnaie et d'application decentralisee de nouvelle generation qui introduit une blockchain dotee d'un langage de programmation Turing-complet integre. Cela permet a quiconque d'ecrire des smart contracts et des applications decentralisees dans lesquels ils peuvent creer leurs propres regles arbitraires de propriete, de formats de transaction et de fonctions de transition d'etat.

L'innovation fondamentale d'Ethereum est de combiner la technologie blockchain pionnierement developpee par Bitcoin avec un environnement de programmation generaliste. Alors que Bitcoin fournit un simple systeme de transition d'etat pour deplacer de la monnaie d'un compte a un autre, Ethereum fournit une plateforme ou les developpeurs peuvent construire tout type d'application decentralisee qu'ils peuvent imaginer, des monnaies alternatives et instruments financiers aux systemes d'enregistrement de noms de domaine et aux organisations decentralisees.

Ethereum y parvient en construisant ce qui est essentiellement la couche fondationnelle abstraite ultime : une blockchain avec un langage de programmation Turing-complet integre, permettant a quiconque d'ecrire des smart contracts et des applications decentralisees dans lesquels ils peuvent creer leurs propres regles arbitraires de propriete, de formats de transaction et de fonctions de transition d'etat. Une version minimale de Namecoin peut etre ecrite en deux lignes de code, et d'autres protocoles comme les monnaies et les systemes de reputation peuvent etre construits en moins de vingt.

Abstract

Ethereum adalah platform cryptocurrency dan aplikasi terdesentralisasi generasi berikutnya yang memperkenalkan blockchain dengan bahasa pemrograman Turing-complete bawaan. Hal ini memungkinkan siapa saja untuk menulis smart contract dan aplikasi terdesentralisasi di mana mereka dapat membuat aturan sewenang-wenang mereka sendiri untuk kepemilikan, format transaksi, dan state transition function.

Inovasi fundamental Ethereum adalah menggabungkan teknologi blockchain yang dipelopori oleh Bitcoin dengan lingkungan pemrograman serbaguna. Sementara Bitcoin menyediakan sistem state transition sederhana untuk memindahkan mata uang dari satu akun ke akun lain, Ethereum menyediakan platform di mana pengembang dapat membangun segala jenis aplikasi terdesentralisasi yang dapat mereka bayangkan, dari mata uang alternatif dan instrumen keuangan hingga sistem pendaftaran domain dan organisasi terdesentralisasi.

Ethereum mencapai hal ini dengan membangun apa yang pada dasarnya adalah lapisan fondasi abstrak tertinggi: sebuah blockchain dengan bahasa pemrograman Turing-complete bawaan, yang memungkinkan siapa saja menulis smart contract dan aplikasi terdesentralisasi di mana mereka dapat membuat aturan sewenang-wenang mereka sendiri untuk kepemilikan, format transaksi, dan state transition function. Versi dasar Namecoin dapat ditulis dalam dua baris kode, dan protokol lain seperti mata uang dan sistem reputasi dapat dibangun dalam kurang dari dua puluh baris.

Introduction and Existing Concepts

Le concept de monnaie numerique decentralisee, ainsi que les applications alternatives comme les registres de propriete, existe depuis des decennies. Les protocoles anonymes de monnaie electronique des annees 1980 et 1990, principalement fondes sur une primitive cryptographique connue sous le nom de blinding de Chaum, fournissaient une monnaie avec un haut degre de confidentialite, mais ces protocoles n'ont largement pas reussi a gagner du terrain en raison de leur dependance a un intermediaire centralise. En 1998, le b-money de Wei Dai est devenu la premiere proposition a introduire l'idee de creer de la monnaie en resolvant des puzzles computationnels ainsi qu'un consensus decentralise, mais la proposition etait peu detaillee quant a la facon dont le consensus decentralise pourrait effectivement etre mis en oeuvre.

En 2009, une monnaie decentralisee a ete pour la premiere fois implementee en pratique par Satoshi Nakamoto, combinant des primitives etablies pour la gestion de la propriete par la cryptographie a cle publique avec un algorithme de consensus pour suivre qui possede les coins, connu sous le nom de "preuve de travail". Le mecanisme derriere la preuve de travail a constitue une percee dans le domaine car il resolvait simultanement deux problemes. Premierement, il fournissait un algorithme de consensus simple et moderement efficace, permettant aux noeuds du reseau de s'accorder collectivement sur un ensemble de mises a jour canoniques de l'etat du registre Bitcoin. Deuxiemement, il fournissait un mecanisme permettant l'entree libre dans le processus de consensus, resolvant le probleme politique de decider qui peut influencer le consensus, tout en empechant simultanement les attaques Sybil.

La blockchain Bitcoin s'est averee remarquablement robuste au fil de ses annees de fonctionnement, mais elle est inheremment limitee. Le langage de script de Bitcoin est intentionnellement concu pour etre restrictif et non-Turing-complet, depourvu de boucles et de nombreuses autres fonctionnalites qui seraient necessaires pour construire des applications plus complexes. Cette limitation existe pour prevenir les boucles infinies et d'autres formes d'attaques computationnelles, mais elle restreint severement ce qui peut etre construit au-dessus de Bitcoin.

Au cours des cinq dernieres annees, il y a eu un certain nombre de tentatives pour etendre les fonctionnalites de Bitcoin. Les colored coins cherchaient a utiliser la blockchain Bitcoin pour suivre la propriete d'actifs alternatifs, Namecoin a tente de creer une base de donnees decentralisee d'enregistrement de noms, et divers protocoles de metacoin visaient a construire des couches supplementaires au-dessus de Bitcoin. Bien que ces approches aient montre des promesses, elles etaient finalement limitees par les capacites de script de Bitcoin et l'impossibilite d'acceder aux donnees de la blockchain depuis les scripts.

Ce qu'Ethereum entend fournir est une blockchain avec un langage de programmation Turing-complet pleinement developpe integre, qui peut etre utilise pour creer des "contrats" pouvant encoder des fonctions de transition d'etat arbitraires, permettant aux utilisateurs de creer n'importe lequel des systemes decrits ci-dessus, ainsi que de nombreux autres que nous n'avons pas encore imagines, simplement en ecrivant la logique en quelques lignes de code.

Introduction and Existing Concepts

Konsep mata uang digital terdesentralisasi, serta aplikasi alternatif seperti pencatatan properti, telah ada selama beberapa dekade. Protokol e-cash anonim pada tahun 1980an dan 1990an, sebagian besar bergantung pada kriptografi primitif yang dikenal sebagai Chaumian blinding, menyediakan mata uang dengan tingkat privasi yang tinggi, namun sebagian besar protokol tersebut gagal mendapatkan daya tarik karena ketergantungan mereka pada perantara terpusat. Pada tahun 1998, b-money Wei Dai menjadi proposal pertama yang memperkenalkan gagasan menciptakan uang melalui pemecahan teka-teki komputasi serta konsensus desentralisasi, namun proposal tersebut tidak memberikan rincian tentang bagaimana konsensus desentralisasi sebenarnya dapat diterapkan.

Pada tahun 2009, mata uang terdesentralisasi untuk pertama kalinya diterapkan dalam praktiknya oleh Satoshi Nakamoto, menggabungkan cara primitif yang sudah mapan untuk mengelola kepemilikan melalui kriptografi kunci publik dengan algoritma konsensus untuk melacak siapa yang memiliki koin, yang dikenal sebagai "bukti kerja". Mekanisme di balik bukti kerja merupakan terobosan karena memecahkan dua masalah secara bersamaan. Pertama, ini memberikan algoritma konsensus yang sederhana dan cukup efektif, yang memungkinkan node dalam jaringan untuk secara kolektif menyetujui serangkaian pembaruan kanonik terhadap status Bitcoin ledger. Kedua, hal ini memberikan mekanisme yang memungkinkan masuknya secara bebas ke dalam proses konsensus, memecahkan masalah politik dalam memutuskan siapa yang dapat mempengaruhi konsensus, sekaligus mencegah serangan sibil.

Blockchain Bitcoin telah terbukti sangat kuat selama bertahun-tahun beroperasi, namun pada dasarnya terbatas. Bahasa skrip Bitcoin sengaja dirancang untuk membatasi dan tidak lengkap Turing, tidak memiliki loop dan banyak fitur lain yang diperlukan untuk membangun aplikasi yang lebih kompleks. Batasan ini ada untuk mencegah loop tak terbatas dan bentuk serangan komputasi lainnya, namun sangat membatasi apa yang dapat dibangun di atas Bitcoin.

Selama lima tahun terakhir, ada sejumlah upaya untuk memperluas fungsionalitas Bitcoin. Koin berwarna berupaya menggunakan blockchain Bitcoin untuk melacak kepemilikan aset alternatif, Namecoin berupaya membuat basis data pendaftaran nama yang terdesentralisasi, dan berbagai protokol metacoin bertujuan untuk membangun lapisan tambahan di atas Bitcoin. Meskipun pendekatan ini menjanjikan, pendekatan ini pada akhirnya dibatasi oleh kemampuan skrip Bitcoin dan ketidakmampuan untuk mengakses data blockchain dari dalam skrip.

Apa yang Ethereum ingin sediakan adalah blockchain dengan bahasa pemrograman lengkap Turing yang terintegrasi dan lengkap yang dapat digunakan untuk membuat "kontrak" yang dapat digunakan untuk mengkodekan fungsi transisi keadaan sewenang-wenang, memungkinkan pengguna untuk membuat salah satu sistem yang dijelaskan di atas, serta banyak sistem lain yang belum kita bayangkan, hanya dengan menulis logika dalam beberapa baris kode.

Bitcoin As A State Transition System

D'un point de vue technique, le registre d'une cryptomonnaie telle que Bitcoin peut etre considere comme un systeme de transition d'etat, ou il y a un "etat" constitue du statut de propriete de tous les bitcoins existants et une "fonction de transition d'etat" qui prend un etat et une transaction et produit un nouvel etat qui en est le resultat. Dans un systeme bancaire standard, par exemple, l'etat est un bilan, une transaction est une demande de transfert de \(X de A vers B, et la fonction de transition d'etat reduit la valeur du compte de A de \)X et augmente la valeur du compte de B de \(X. Si le compte de A a moins de \)X au depart, la fonction de transition d'etat renvoie une erreur.

Ethereum state transition diagram showing how transactions transform blockchain state

L'"etat" dans Bitcoin est la collection de tous les coins (techniquement, les "sorties de transaction non depensees" ou UTXO) qui ont ete emis et pas encore depenses, chaque UTXO ayant une denomination et un proprietaire (defini par une adresse de 20 octets qui est essentiellement une cle publique cryptographique). Une transaction contient une ou plusieurs entrees, chaque entree contenant une reference a un UTXO existant et une signature cryptographique produite par la cle privee associee a l'adresse du proprietaire, et une ou plusieurs sorties, chaque sortie contenant un nouvel UTXO a ajouter a l'etat.

La fonction de transition d'etat APPLY(S,TX) - S' peut etre definie approximativement comme suit :

  1. Pour chaque entree dans TX, si l'UTXO reference n'est pas dans S, renvoyer une erreur.
  2. Si la signature fournie ne correspond pas au proprietaire de l'UTXO, renvoyer une erreur.
  3. Si la somme des denominations de tous les UTXO d'entree est inferieure a la somme des denominations de tous les UTXO de sortie, renvoyer une erreur.
  4. Renvoyer S avec tous les UTXO d'entree supprimes et tous les UTXO de sortie ajoutes.

La premiere moitie de la premiere etape empeche les expediteurs de transactions de depenser des coins qui n'existent pas, la seconde moitie de la premiere etape empeche les expediteurs de transactions de depenser les coins d'autres personnes, et la deuxieme etape impose la conservation de la valeur. Pour utiliser ceci pour un paiement, le protocole est le suivant : supposons qu'Alice veuille envoyer 11,7 BTC a Bob. D'abord, Alice cherchera un ensemble d'UTXO disponibles qu'elle possede et qui totalisent au moins 11,7 BTC. De maniere realiste, Alice ne pourra pas obtenir exactement 11,7 BTC ; disons que le plus petit montant qu'elle peut obtenir est 6+4+2=12. Elle cree alors une transaction avec ces trois entrees et deux sorties. La premiere sortie sera de 11,7 BTC avec l'adresse de Bob comme proprietaire, et la seconde sortie sera le "change" restant de 0,3 BTC, dont le proprietaire est Alice elle-meme.

Bitcoin As A State Transition System

Dari sudut pandang teknis, ledger dari mata uang kripto seperti Bitcoin dapat dianggap sebagai sistem transisi keadaan, di mana terdapat "keadaan" yang terdiri dari status kepemilikan semua bitcoin yang ada dan "fungsi transisi keadaan" yang mengambil keadaan dan transaksi dan menghasilkan keadaan baru yang merupakan hasilnya. Dalam sistem perbankan standar, misalnya, keadaan adalah neraca, transaksi adalah permintaan untuk memindahkan \(X dari A ke B, dan fungsi transisi keadaan mengurangi nilai dalam rekening A sebesar \)X dan meningkatkan nilai dalam rekening B sebesar \(X. Jika akun A memiliki kurang dari \)X, fungsi transisi keadaan akan mengembalikan kesalahan.

Ethereum state transition diagram showing how transactions transform blockchain state

"Negara" di Bitcoin adalah kumpulan semua koin (secara teknis, "keluaran transaksi yang belum terpakai" atau UTXO) yang telah dicetak dan belum dibelanjakan, dengan setiap UTXO memiliki denominasi dan pemilik (ditentukan oleh alamat 20-byte yang pada dasarnya merupakan kunci publik kriptografi). Suatu transaksi berisi satu atau lebih masukan, dengan setiap masukan berisi referensi ke UTXO yang ada dan tanda tangan kriptografi yang dihasilkan oleh kunci pribadi yang terkait dengan alamat pemilik, dan satu atau lebih keluaran, dengan setiap keluaran berisi UTXO baru untuk ditambahkan ke negara.

Fungsi transisi keadaan APPLY(S,TX) - S' dapat didefinisikan secara kasar sebagai berikut:

  1. Untuk setiap masukan di TX, jika UTXO yang direferensikan tidak ada di S, kembalikan kesalahan.
  2. Jika tanda tangan yang diberikan tidak cocok dengan pemilik UTXO, kembalikan kesalahan.
  3. Jika jumlah denominasi semua input UTXO lebih kecil dari jumlah denominasi semua output UTXO, kembalikan kesalahan.
  4. Kembalikan S dengan semua input UTXO dihapus dan semua output UTXO ditambahkan.

Paruh pertama dari langkah pertama mencegah pengirim transaksi membelanjakan koin yang tidak ada, paruh kedua dari langkah pertama mencegah pengirim transaksi membelanjakan koin orang lain, dan langkah kedua menerapkan konservasi nilai. Untuk menggunakan ini sebagai pembayaran, protokolnya adalah sebagai berikut: misalkan Alice ingin mengirim 11,7 BTC ke Bob. Pertama, Alice akan mencari satu set UTXO yang dia miliki yang totalnya mencapai setidaknya 11,7 BTC. Secara realistis, Alice tidak akan bisa mendapatkan tepat 11,7 BTC; katakanlah bilangan terkecil yang dapat diperolehnya adalah 6+4+2=12. Dia kemudian membuat transaksi dengan tiga input dan dua output tersebut. Output pertama akan menjadi 11,7 BTC dengan alamat Bob sebagai pemiliknya, dan output kedua akan menjadi sisa 0,3 BTC "perubahan", dengan pemiliknya adalah Alice sendiri.

Mining

Si nous avions acces a un service centralise digne de confiance, ce systeme serait trivial a implementer ; il pourrait simplement etre code exactement comme decrit, en utilisant le disque dur d'un serveur centralise pour garder la trace de l'etat. Cependant, avec Bitcoin, nous essayons de construire un systeme monetaire decentralise, nous devrons donc combiner le systeme de transaction d'etat avec un systeme de consensus afin de nous assurer que tout le monde est d'accord sur l'ordre des transactions. Le processus de consensus decentralise de Bitcoin necessite que les noeuds du reseau tentent en permanence de produire des paquets de transactions appeles "blocs". Le reseau est cense produire environ un bloc toutes les dix minutes, chaque bloc contenant un horodatage, un nonce, une reference au (c'est-a-dire le hash du) bloc precedent et une liste de toutes les transactions ayant eu lieu depuis le bloc precedent.

Ethereum block structure showing linked blocks with timestamps nonces and transactions

Au fil du temps, cela cree une "blockchain" persistante et en croissance continue qui se met constamment a jour pour representer le dernier etat du registre Bitcoin. L'algorithme pour verifier si un bloc est valide, exprime dans ce paradigme, est le suivant :

  1. Verifier si le bloc precedent reference par le bloc existe et est valide.
  2. Verifier que l'horodatage du bloc est superieur a celui du bloc precedent et inferieur a 2 heures dans le futur.
  3. Verifier que la preuve de travail sur le bloc est valide.
  4. Soit S l'etat a la fin du bloc precedent.
  5. Supposons que TX est la liste de transactions du bloc avec n transactions. Pour tout i dans 0...n-1, definir S = APPLY(S,TX[i]). Si une application renvoie une erreur, quitter et renvoyer faux.
  6. Renvoyer vrai, et enregistrer S comme l'etat a la fin de ce bloc.

Essentiellement, chaque transaction dans le bloc doit fournir une transition d'etat valide depuis ce qui etait l'etat canonique avant l'execution de la transaction vers un nouvel etat. Notez que l'etat n'est encode dans le bloc d'aucune maniere ; c'est purement une abstraction a retenir par le noeud validant et ne peut etre (de maniere securisee) calcule pour n'importe quel bloc qu'en partant de l'etat genesis et en appliquant sequentiellement chaque transaction dans chaque bloc.

Le mineur est recompense pour son travail computationnel par des bitcoins nouvellement crees plus les frais de transaction. Le processus de minage fonctionne comme suit : les mineurs prennent l'en-tete du bloc et le hachent de maniere repetee avec differentes valeurs de nonce jusqu'a ce qu'ils trouvent un hash inferieur a un certain objectif de difficulte. Quand un mineur trouve un tel hash, il diffuse le bloc sur le reseau, et les autres noeuds verifient que le hash est valide et que toutes les transactions du bloc sont valides. L'objectif de difficulte est automatiquement ajuste par le protocole tous les 2016 blocs (environ deux semaines) pour s'assurer que les blocs sont produits a un rythme a peu pres constant.

Notez qu'a long terme, la securite de la blockchain depend du fait que les mineurs aient une incitation financiere a se comporter honnetement. Si un attaquant controle plus de 50% de la puissance de minage du reseau, il peut potentiellement executer une "attaque a 51%" en creant une blockchain alternative qui croit plus vite que la chaine honnete. Cependant, une telle attaque necessiterait d'enormes ressources computationnelles et aboutirait probablement a ce que les recompenses de minage de l'attaquant deviennent sans valeur a mesure que le reseau perdrait confiance dans l'integrite de la blockchain.

Mining

Jika kita mempunyai akses terhadap layanan terpusat yang dapat dipercaya, sistem ini akan mudah diterapkan; itu bisa saja diberi kode persis seperti yang dijelaskan, menggunakan hard drive server terpusat untuk melacak keadaan. Namun, dengan Bitcoin kami mencoba membangun sistem mata uang yang terdesentralisasi, jadi kami perlu menggabungkan sistem transaksi negara dengan sistem konsensus untuk memastikan bahwa semua orang menyetujui urutan transaksi. Proses konsensus terdesentralisasi Bitcoin mengharuskan node di jaringan untuk terus berupaya menghasilkan paket transaksi yang disebut "blok". Jaringan ini dimaksudkan untuk menghasilkan kira-kira satu blok setiap sepuluh menit, dengan setiap blok berisi stempel waktu, nonce, referensi ke (yaitu hash dari) blok sebelumnya dan daftar semua transaksi yang telah terjadi sejak blok sebelumnya.

Ethereum block structure showing linked blocks with timestamps nonces and transactions

Seiring waktu, hal ini menciptakan "blockchain" yang terus-menerus dan terus berkembang yang terus diperbarui untuk mewakili keadaan terbaru dari Bitcoin ledger. Algoritma untuk memeriksa apakah suatu blok valid, dinyatakan dalam paradigma ini, adalah sebagai berikut:

  1. Periksa apakah blok sebelumnya yang direferensikan oleh blok tersebut ada dan valid.
  2. Periksa apakah stempel waktu blok lebih besar dari blok sebelumnya dan kurang dari 2 jam ke depan.
  3. Periksa apakah bukti kerja pada blok tersebut valid.
  4. Misalkan S adalah keadaan pada akhir blok sebelumnya.
  5. Misalkan TX adalah daftar transaksi blok dengan n transaksi. Untuk semua i di 0...n-1, setel S = APPLY(S,TX[i]). Jika ada aplikasi yang mengembalikan kesalahan, keluar dan kembalikan false.
  6. Kembalikan nilai true, dan daftarkan S sebagai keadaan di akhir blok ini.

Pada dasarnya, setiap transaksi dalam blok harus menyediakan transisi keadaan yang valid dari keadaan kanonik sebelum transaksi dieksekusi ke keadaan baru. Perhatikan bahwa negara bagian tidak dikodekan dalam blok dengan cara apa pun; ini murni sebuah abstraksi untuk diingat oleh node yang memvalidasi dan hanya dapat (secara aman) dihitung untuk blok mana pun dengan memulai dari keadaan asal dan secara berurutan menerapkan setiap transaksi di setiap blok.

Penambang diberi imbalan atas pekerjaan komputasi mereka dengan bitcoin yang baru dibuat ditambah biaya transaksi. Proses penambangan bekerja sebagai berikut: penambang mengambil header blok dan berulang kali melakukan hash dengan nilai nonce yang berbeda hingga mereka menemukan hash yang berada di bawah target kesulitan tertentu. Ketika seorang penambang menemukan hash tersebut, mereka menyiarkan blok tersebut ke jaringan, dan node lain memverifikasi bahwa hash tersebut valid dan bahwa semua transaksi di blok tersebut valid. Target kesulitan secara otomatis disesuaikan oleh protokol setiap blok tahun 2016 (kira-kira dua minggu) untuk memastikan bahwa blok diproduksi pada tingkat yang kira-kira konstan.

Perlu diingat bahwa dalam jangka panjang, keamanan blockchain bergantung pada insentif finansial yang dimiliki penambang untuk berperilaku jujur. Jika penyerang mengendalikan lebih dari 50% kekuatan penambangan jaringan, mereka berpotensi melakukan "serangan 51%" dengan menciptakan blockchain alternatif yang tumbuh lebih cepat daripada rantai jujur. Namun, serangan seperti itu akan memerlukan sumber daya komputasi yang sangat besar dan kemungkinan besar akan mengakibatkan imbalan penambangan penyerang menjadi tidak berharga karena jaringan kehilangan kepercayaan terhadap integritas blockchain.

Merkle Trees

Les arbres de Merkle sont une structure de donnees fondamentale utilisee dans les blocs Bitcoin pour permettre une verification efficace et securisee de l'inclusion des transactions. Un arbre de Merkle est un arbre binaire de hachages ou les noeuds feuilles contiennent les hachages des transactions individuelles, et chaque noeud interieur contient le hachage de ses deux enfants, construisant recursivement jusqu'a un seul hachage racine stocke dans l'en-tete du bloc. Cette structure hierarchique permet a quiconque de verifier qu'une transaction specifique est incluse dans un bloc en telechargeant uniquement la branche de Merkle — la chaine de hachages de la transaction jusqu'a la racine — plutot que de telecharger toutes les transactions du bloc.

Simplified Payment Verification using Merkle tree branch proofs for transaction verification

Les gains d'efficacite sont substantiels : tandis qu'un noeud Bitcoin complet doit stocker l'integralite de la blockchain (environ 15 Go en 2013), un noeud de verification simplifiee des paiements (SPV) n'a besoin de telecharger que les en-tetes de blocs contenant les racines de Merkle, necessitant seulement 4 Mo de donnees. Pour verifier une transaction, un noeud SPV demande la branche de Merkle aux noeuds complets, ce qui ne necessite que O(log n) donnees ou n est le nombre de transactions dans un bloc. Cette mise a l'echelle logarithmique rend possible l'execution de clients legers sur des appareils mobiles et dans des environnements a faibles ressources.

L'utilisation des arbres de Merkle par Bitcoin demontre un principe cle : les structures cryptographiques peuvent reduire considerablement les exigences de confiance et de ressources pour participer a un reseau decentralise. Ce meme principe sous-tend la conception d'Ethereum, ou les arbres de Merkle sont utilises non seulement pour les transactions mais aussi pour le stockage de l'etat et des recus, permettant des protocoles de clients legers encore plus sophistiques.

Merkle Trees

Pohon Merkle adalah struktur data mendasar yang digunakan di blok Bitcoin untuk memungkinkan verifikasi penyertaan transaksi yang efisien dan aman. Pohon Merkle adalah pohon biner hash di mana node daun berisi hash dari transaksi individual, dan setiap node interior berisi hash dari dua anaknya, yang secara rekursif membangun hingga satu hash root yang disimpan di header blok. Struktur hierarki ini memungkinkan siapa pun untuk memverifikasi bahwa transaksi tertentu termasuk dalam blok dengan hanya mengunduh cabang Merkle—rantai hash dari transaksi hingga ke akar—daripada mengunduh semua transaksi di blok.

Simplified Payment Verification using Merkle tree branch proofs for transaction verification

Peningkatan efisiensinya sangat besar: meskipun node Bitcoin penuh harus menyimpan seluruh blockchain (sekitar 15 GB pada tahun 2013), node verifikasi pembayaran (SPV) yang disederhanakan hanya perlu mengunduh header blok yang berisi akar Merkle, yang hanya memerlukan data sebesar 4 MB. Untuk memverifikasi suatu transaksi, node SPV meminta cabang Merkle dari node penuh, yang hanya memerlukan data O(log n) di mana n adalah jumlah transaksi dalam satu blok. Penskalaan logaritmik ini memungkinkan untuk menjalankan klien ringan di perangkat seluler dan lingkungan dengan sumber daya rendah.

Penggunaan pohon Merkle oleh Bitcoin menunjukkan prinsip utama: struktur kriptografi dapat secara signifikan mengurangi kepercayaan dan kebutuhan sumber daya untuk berpartisipasi dalam jaringan terdesentralisasi. Prinsip yang sama mendasari desain Ethereum, di mana pohon Merkle digunakan tidak hanya untuk transaksi tetapi juga untuk penyimpanan negara dan tanda terima, sehingga memungkinkan protokol klien ringan yang lebih canggih.

Alternative Blockchain Applications

Le succes de la blockchain de Bitcoin a inspire de nombreuses tentatives pour etendre le concept au-dela de la simple monnaie. Namecoin, lance en 2010, fut l'un des premiers exemples — une base de donnees d'enregistrement de noms decentralisee construite sur une blockchain, permettant aux utilisateurs d'enregistrer des noms dans un espace de noms distribue qu'aucune autorite centrale ne pouvait censurer ou revoquer. Les colored coins ont emerge comme un moyen de representer des actifs alternatifs sur la blockchain Bitcoin en "marquant" des sorties de transactions specifiques pour representer la propriete d'actifs du monde reel, d'actions d'entreprises ou d'autres cryptomonnaies. Les metacoins et meta-protocoles comme Mastercoin (plus tard Omni) ont ajoute des fonctionnalites supplementaires par-dessus Bitcoin en encodant des donnees supplementaires dans les transactions Bitcoin et en construisant des regles de protocole separees par-dessus.

Cependant, toutes ces approches souffraient de limitations fondamentales imposees par l'architecture de Bitcoin. Le langage de script de Bitcoin est intentionnellement restreint — il ne peut pas acceder a l'etat de la blockchain, manque de boucles et de flux de controle complexes, et offre une introspection limitee des valeurs de transaction. Construire des applications sophistiquees necessitait des solutions de contournement maladroites : encoder des metadonnees dans des champs de transaction jamais destines a cet usage, s'appuyer sur une infrastructure hors chaine pour la logique complexe, ou accepter de severes limitations sur ce que le protocole pouvait accomplir.

Ces contraintes ont motive la recherche d'une plateforme blockchain plus generaliste. Plutot que de construire encore un autre protocole a usage specifique par-dessus les fondations limitees de Bitcoin, Ethereum adopte une approche differente : fournir une blockchain avec un langage de programmation Turing-complet integre, permettant a quiconque d'ecrire des smart contracts et des applications decentralisees avec des regles arbitraires pour la propriete, les formats de transaction et les fonctions de transition d'etat.

Alternative Blockchain Applications

Keberhasilan blockchain Bitcoin menginspirasi banyak upaya untuk memperluas konsep ini lebih dari sekadar mata uang sederhana. Namecoin, diluncurkan pada tahun 2010, adalah salah satu contoh paling awal—database pendaftaran nama terdesentralisasi yang dibangun di atas blockchain, memungkinkan pengguna untuk mendaftarkan nama dalam namespace terdistribusi yang tidak dapat disensor atau dicabut oleh otoritas pusat. Koin berwarna muncul sebagai cara untuk mewakili aset alternatif di blockchain Bitcoin dengan "menandai" keluaran transaksi tertentu untuk mewakili kepemilikan aset dunia nyata, saham perusahaan, atau mata uang kripto lainnya. Metacoin dan meta-protokol seperti Mastercoin (kemudian Omni) melapisi fungsionalitas tambahan di atas Bitcoin dengan menyandikan data tambahan dalam transaksi Bitcoin dan membangun aturan protokol terpisah di atasnya.

Namun, semua pendekatan ini mengalami keterbatasan mendasar yang disebabkan oleh arsitektur Bitcoin. Bahasa skrip Bitcoin sengaja dibatasi—tidak dapat mengakses status blockchain, tidak memiliki loop dan aliran kontrol yang kompleks, dan memberikan introspeksi terbatas ke dalam nilai transaksi. Membangun aplikasi yang canggih memerlukan solusi yang sulit: mengkodekan metadata dalam bidang transaksi yang tidak pernah dimaksudkan untuk tujuan tersebut, mengandalkan infrastruktur off-chain untuk logika yang kompleks, atau menerima batasan ketat pada apa yang dapat dicapai oleh protokol.

Kendala ini memotivasi pencarian platform blockchain yang lebih bertujuan umum. Daripada membangun protokol tujuan khusus lainnya di atas fondasi terbatas Bitcoin, Ethereum mengambil pendekatan yang berbeda: menyediakan blockchain dengan bahasa pemrograman lengkap Turing bawaan, memungkinkan siapa pun untuk menulis kontrak pintar dan aplikasi terdesentralisasi dengan aturan sewenang-wenang untuk kepemilikan, format transaksi, dan fungsi transisi keadaan.

Scripting

Bitcoin Script, le langage utilise pour definir les conditions de depense des transactions Bitcoin, est intentionnellement concu avec des limitations severes. Il n'est pas Turing-complet — plus notablement, il manque de boucles et de structures de flux de controle complexes. Le langage fonctionne comme un environnement d'execution simple base sur une pile ou les operations poussent et retirent des valeurs, evaluent des conditions cryptographiques, et retournent finalement vrai ou faux pour determiner si une transaction est valide. Bien que cette simplicite offre des avantages de securite et facilite l'analyse formelle, elle rend egalement de nombreux types d'applications impossibles a implementer.

Ces limitations se repartissent en trois categories principales. Premierement, le manque de completude de Turing empeche d'implementer des machines d'etat complexes, des arbres de decision, ou tout algorithme necessitant une iteration. Deuxiemement, l'aveuglement aux valeurs signifie que les scripts ne peuvent pas specifier un controle fin sur les montants de retrait — un UTXO ne peut etre depense que dans sa totalite, avec la monnaie envoyee a une nouvelle sortie. Un script ne peut pas, par exemple, limiter les retraits a un maximum de X par jour tout en laissant le reste verrouille. Troisiemement, le manque de conscience de l'etat de la blockchain signifie que les UTXO sont soit depenses soit non depenses sans etats intermediaires, rendant les contrats multi-etapes impossibles a implementer purement on-chain.

Ces contraintes rendent les applications sophistiquees comme les organisations autonomes decentralisees, les portefeuilles d'epargne avec des limites de retrait, les echanges decentralises, ou les marches de prediction soit impossibles soit necessitant des mecanismes hors chaine maladroits. Un contrat financier avance pourrait necessiter l'acces a des donnees de marche, la capacite de maintenir un etat interne a travers plusieurs transactions, et une logique conditionnelle complexe — aucun de ces elements ne pouvant etre fourni par Bitcoin Script. Ethereum supprime ces limitations en fournissant un langage Turing-complet avec un acces complet a l'etat de la blockchain.

Scripting

Bitcoin Script, bahasa yang digunakan untuk menentukan kondisi pengeluaran untuk transaksi Bitcoin, sengaja dirancang dengan keterbatasan yang parah. Ini bukan Turing yang lengkap—terutama, ia tidak memiliki loop dan struktur aliran kontrol yang kompleks. Bahasa ini beroperasi sebagai lingkungan eksekusi berbasis tumpukan sederhana di mana operasi mendorong dan memunculkan nilai, mengevaluasi kondisi kriptografi, dan pada akhirnya mengembalikan nilai benar atau salah untuk menentukan apakah suatu transaksi valid. Meskipun kesederhanaan ini memberikan manfaat keamanan dan membuat analisis formal lebih mudah, hal ini juga membuat banyak jenis aplikasi menjadi tidak mungkin untuk diimplementasikan.

Keterbatasan ini terbagi dalam tiga kategori utama. Pertama, kurangnya kelengkapan Turing menghalangi penerapan mesin negara yang kompleks, pohon keputusan, atau algoritma apa pun yang memerlukan iterasi. Kedua, kebutaan nilai berarti bahwa skrip tidak dapat menentukan kontrol menyeluruh atas jumlah penarikan—UTXO hanya dapat dibelanjakan secara keseluruhan, dengan perubahan dikirim ke keluaran baru. Sebuah skrip tidak dapat, misalnya, membatasi penarikan hingga maksimum X per hari dan membiarkan sisanya terkunci. Ketiga, kurangnya kesadaran akan status blockchain berarti bahwa UTXO sudah terpakai atau tidak terpakai tanpa status perantara, membuat kontrak multi-tahap tidak mungkin diterapkan secara on-chain.

Kendala-kendala ini membuat aplikasi canggih seperti organisasi otonom terdesentralisasi, dompet tabungan dengan batas penarikan, pertukaran terdesentralisasi, atau pasar prediksi menjadi tidak mungkin atau memerlukan mekanisme off-chain yang canggung. Kontrak keuangan tingkat lanjut mungkin memerlukan akses ke data pasar, kemampuan untuk mempertahankan keadaan internal di berbagai transaksi, dan logika kondisional yang kompleks—tidak ada satupun yang dapat disediakan oleh Skrip Bitcoin. Ethereum menghilangkan batasan ini dengan menyediakan bahasa lengkap Turing dengan akses penuh ke status blockchain.

Ethereum

L'objectif fondamental d'Ethereum est de fournir une blockchain avec un langage de programmation Turing-complet integre qui permet a quiconque d'ecrire des smart contracts et des applications decentralisees ou ils peuvent creer leurs propres regles arbitraires pour la propriete, les formats de transaction et les fonctions de transition d'etat. Plutot que de concevoir un protocole pour des applications specifiques comme la monnaie, l'enregistrement de noms ou le commerce d'actifs, Ethereum fournit une couche fondamentale — une plateforme informatique distribuee basee sur la blockchain que les developpeurs peuvent utiliser pour construire toute application qu'ils peuvent imaginer.

L'architecture differe fondamentalement du modele UTXO de Bitcoin. Ethereum utilise un systeme base sur les comptes ou l'etat de la blockchain consiste en une correspondance des adresses vers des objets de compte. Chaque compte a un solde, un compteur de transactions (nonce), et pour les comptes de contrats, du code et du stockage associes. La plateforme inclut un langage de programmation Turing-complet integre pour ecrire du code de contrat qui s'execute dans la Machine Virtuelle Ethereum (EVM), un environnement d'execution base sur une pile qui traite les transactions et les transitions d'etat.

Cette generalite permet une vaste gamme d'applications : des cryptomonnaies alternatives avec des regles d'emission personnalisees, des derives financiers et des stablecoins, des systemes d'identite et de reputation, du stockage de fichiers decentralise, des organisations autonomes decentralisees (DAOs), et bien plus encore. Le whitepaper souligne qu'Ethereum n'est pas optimise pour un cas d'utilisation particulier mais fournit plutot les blocs de construction fondamentaux — comptes, transactions, un langage Turing-complet et une execution mesuree par le gas — que les developpeurs peuvent combiner pour creer les applications que l'ecosysteme exige.

Ethereum

Tujuan mendasar Ethereum adalah untuk menyediakan blockchain dengan bahasa pemrograman lengkap Turing yang memungkinkan siapa saja untuk menulis kontrak pintar dan aplikasi terdesentralisasi di mana mereka dapat membuat aturan sewenang-wenang mereka sendiri untuk kepemilikan, format transaksi, dan fungsi transisi negara. Daripada merancang protokol untuk aplikasi spesifik seperti mata uang, pendaftaran nama, atau perdagangan aset, Ethereum menyediakan lapisan dasar—platform komputasi terdistribusi berbasis blockchain yang dapat digunakan pengembang untuk membangun aplikasi apa pun yang dapat mereka bayangkan.

Arsitekturnya berbeda secara mendasar dari model UTXO Bitcoin. Ethereum menggunakan sistem berbasis akun dimana status blockchain terdiri dari pemetaan dari alamat ke objek akun. Setiap akun memiliki saldo, penghitung transaksi (nonce), dan untuk akun kontrak, kode dan penyimpanan terkait. Platform ini mencakup bahasa pemrograman lengkap Turing bawaan untuk menulis kode kontrak yang dijalankan di Mesin Virtual Ethereum (EVM), lingkungan eksekusi berbasis tumpukan yang memproses transaksi dan transisi status.

Sifat umum ini memungkinkan beragam penerapan: mata uang kripto alternatif dengan aturan penerbitan khusus, derivatif keuangan dan stablecoin, sistem identitas dan reputasi, penyimpanan file terdesentralisasi, organisasi otonom terdesentralisasi (DAO), dan banyak lagi. Whitepaper tersebut menekankan bahwa Ethereum tidak dioptimalkan untuk kasus penggunaan tertentu, melainkan menyediakan blok bangunan dasar—akun, transaksi, bahasa Turing-lengkap, dan eksekusi gas-metered—yang dapat digabungkan oleh pengembang untuk menciptakan aplikasi apa pun yang dibutuhkan ekosistem.

Ethereum Accounts

Dans Ethereum, l'etat est constitue de comptes, et il existe deux types fondamentaux. Les comptes a propriete externe (EOAs) sont controles par des cles privees et n'ont pas de code associe — ils representent des utilisateurs humains ou des entites externes interagissant avec la blockchain. Les comptes de contrats sont controles par leur code de contrat et sont actives lorsqu'ils recoivent un message ou une transaction. Les deux types partagent une structure commune : chaque compte a un nonce (un compteur utilise pour s'assurer que chaque transaction ne peut etre traitee qu'une seule fois), un solde en ether, et pour les contrats specifiquement, du code de contrat et du stockage persistant.

L'ether est la cryptomonnaie interne principale d'Ethereum, servant a la fois de moyen de transfert de valeur et d'unite fondamentale pour payer les frais de transaction (gas). Contrairement au modele UTXO de Bitcoin ou la valeur est distribuee a travers plusieurs sorties non depensees, les comptes Ethereum maintiennent un solde simple qui augmente lorsqu'ils recoivent de l'ether et diminue lorsqu'ils en envoient. Ce modele base sur les comptes simplifie de nombreux types d'applications, en particulier celles necessitant un etat persistant ou un controle d'acces complexe, bien qu'il introduise des considerations de securite differentes par rapport a l'approche de Bitcoin.

La distinction entre les EOAs et les comptes de contrats est cruciale pour comprendre le fonctionnement d'Ethereum. Les EOAs peuvent initier des transactions en creant et signant des messages avec leurs cles privees, payant des frais de gas pour que leurs transactions soient incluses dans les blocs. Les comptes de contrats ne peuvent pas initier de transactions eux-memes mais peuvent envoyer des messages a d'autres contrats en reponse a la reception d'une transaction ou d'un message, permettant des chaines d'execution complexes ou une seule transaction externe declenche de multiples interactions de contrat a contrat.

Ethereum Accounts

Di Ethereum, negara bagian terdiri dari akun-akun, dan ada dua tipe dasar. Akun yang dimiliki secara eksternal (EOA) dikendalikan oleh kunci pribadi dan tidak memiliki kode terkait—mereka mewakili pengguna manusia atau entitas eksternal yang berinteraksi dengan blockchain. Akun kontrak dikendalikan oleh kode kontraknya dan diaktifkan ketika mereka menerima pesan atau transaksi. Kedua jenis ini memiliki struktur yang sama: setiap akun memiliki nonce (penghitung yang digunakan untuk memastikan setiap transaksi hanya dapat diproses satu kali), saldo eter, dan untuk kontrak khususnya, kode kontrak dan penyimpanan persisten.

Ether adalah mata uang kripto internal utama Ethereum, yang berfungsi sebagai media transfer nilai dan unit dasar untuk membayar biaya transaksi (gas). Tidak seperti model UTXO Bitcoin di mana nilai didistribusikan ke beberapa keluaran yang tidak terpakai, akun Ethereum mempertahankan saldo sederhana yang bertambah saat mereka menerima eter dan menurun saat mereka mengirimkannya. Model berbasis akun ini menyederhanakan banyak jenis aplikasi, terutama yang memerlukan keadaan persisten atau kontrol akses yang kompleks, meskipun model ini memperkenalkan pertimbangan keamanan yang berbeda dibandingkan dengan pendekatan Bitcoin.

Perbedaan antara EOA dan akun kontrak sangat penting untuk memahami pengoperasian Ethereum. EOA dapat memulai transaksi dengan membuat dan menandatangani pesan dengan kunci pribadi mereka, membayar biaya bahan bakar agar transaksi mereka dimasukkan dalam blok. Akun kontrak tidak dapat memulai transaksi sendiri tetapi dapat mengirim pesan ke kontrak lain sebagai respons terhadap penerimaan transaksi atau pesan, sehingga memungkinkan rantai eksekusi yang kompleks di mana satu transaksi eksternal memicu beberapa interaksi kontrak-ke-kontrak.

Messages and Transactions

Les transactions dans Ethereum sont des paquets de donnees signes crees par des comptes a propriete externe et diffuses sur le reseau. Une transaction contient l'adresse du destinataire, une signature cryptographique prouvant l'identite de l'expediteur, le montant d'ether a transferer, un champ de donnees optionnel (crucial pour interagir avec les contrats), STARTGAS (le nombre maximum d'etapes de calcul que la transaction est autorisee a effectuer), et GASPRICE (les frais par etape de calcul que l'expediteur est pret a payer). Les mineurs collectent ces transactions, les valident, les executent et les incluent dans des blocs, recevant les frais de gas comme compensation.

Les messages sont conceptuellement similaires aux transactions mais sont produits par des contrats plutot que par des acteurs externes. Lorsque le code d'un contrat s'execute, il peut envoyer des messages a d'autres contrats — ces messages internes contiennent l'expediteur (l'adresse du contrat), le destinataire, un montant d'ether a transferer, une charge utile de donnees optionnelle et une limite STARTGAS. Les messages permettent la communication de contrat a contrat, permettant de construire des applications complexes a partir de plusieurs contrats interagissant plutot que de programmes monolithiques.

Le mecanisme de gas est crucial pour prevenir les abus : chaque etape de calcul, operation de stockage et octet de donnees dans une transaction consomme du gas. Si une transaction epuise son gas avant de se terminer, tous les changements d'etat sont annules (sauf le paiement du gas au mineur), empechant les boucles infinies ou les calculs excessifs de paralyser le reseau. L'expediteur specifie a la fois le budget total de gas (STARTGAS) et le prix qu'il est pret a payer par unite (GASPRICE), et tout gas non utilise est rembourse apres l'execution.

Messages and Transactions

Transaksi di Ethereum adalah paket data bertanda tangan yang dibuat oleh akun milik eksternal dan disiarkan ke jaringan. Sebuah transaksi berisi alamat penerima, tanda tangan kriptografi yang membuktikan identitas pengirim, jumlah eter yang akan ditransfer, bidang data opsional (penting untuk berinteraksi dengan kontrak), STARTGAS (jumlah maksimum langkah komputasi yang boleh dilakukan transaksi), dan GASPRICE (biaya per langkah komputasi yang bersedia dibayar oleh pengirim). Penambang mengumpulkan transaksi ini, memvalidasinya, mengeksekusinya, dan memasukkannya ke dalam blok, menerima biaya bahan bakar sebagai kompensasinya.

Pesan secara konseptual mirip dengan transaksi tetapi dihasilkan oleh kontrak dan bukan oleh aktor eksternal. Ketika kode kontrak dijalankan, ia dapat mengirim pesan ke kontrak lain—pesan internal ini berisi pengirim (alamat kontrak), penerima, jumlah eter yang akan ditransfer, muatan data opsional, dan batas STARTGAS. Pesan memungkinkan komunikasi kontrak-ke-kontrak, memungkinkan aplikasi kompleks dibangun dari beberapa kontrak yang saling berinteraksi, bukan program monolitik.

Mekanisme gas sangat penting untuk mencegah penyalahgunaan: setiap langkah komputasi, operasi penyimpanan, dan byte data dalam suatu transaksi menggunakan gas. Jika transaksi kehabisan bahan bakar sebelum diselesaikan, semua perubahan status akan dikembalikan (kecuali pembayaran bahan bakar ke penambang), sehingga mencegah loop tak terbatas atau perhitungan berlebihan yang menghentikan jaringan hingga terhenti. Pengirim menentukan total anggaran gas (STARTGAS) dan harga yang bersedia mereka bayarkan per unit (GASPRICE), dan setiap gas yang tidak terpakai akan dikembalikan setelah eksekusi selesai.

Ethereum State Transition Function

La fonction de transition d'etat d'Ethereum APPLY(S,TX) - S' definit comment une transaction transforme l'etat de la blockchain, et elle suit une sequence precise d'etapes. Premierement, le systeme verifie la validite de la transaction : verifiant que la signature est correcte, confirmant que le nonce correspond au nonce du compte de l'expediteur, et s'assurant que l'expediteur dispose d'un solde suffisant pour payer le cout initial (STARTGAS x GASPRICE plus la valeur envoyee). Si une verification echoue, la transaction est rejetee avant le debut de l'execution. Si elle est valide, les frais de transaction sont deduits du compte de l'expediteur, le nonce de l'expediteur est incremente, et un compteur de gas initial est defini a STARTGAS moins des frais par octet pour les donnees de la transaction.

Ethereum state transition function showing gas deduction value transfer and code execution

Ensuite, le systeme transfere la valeur en ether specifiee de l'expediteur au destinataire. Si le destinataire est un compte a propriete externe, cela complete la transaction. Si le destinataire est un compte de contrat, le code du contrat s'execute dans la Machine Virtuelle Ethereum, consommant du gas pour chaque operation jusqu'a ce que le code se termine avec succes, que le code s'arrete explicitement, ou que le gas soit epuise. Pendant l'execution, le contrat peut lire et modifier son stockage, envoyer des messages a d'autres contrats et creer de nouveaux contrats.

Enfin, si le transfert de valeur a echoue (solde insuffisant) ou si l'execution du code a echoue (epuisement du gas ou erreur), tous les changements d'etat sont annules — sauf que l'expediteur paie toujours les frais de gas au mineur pour le calcul effectue. Si l'execution a reussi, le gas restant est rembourse a l'expediteur, et le gas consomme est envoye au mineur comme frais. Ce mecanisme garantit que les mineurs sont compenses pour le calcul tout en empechant les executions incontroles de consommer des ressources illimitees.

Ethereum State Transition Function

Fungsi transisi keadaan Ethereum APPLY(S,TX) - S' mendefinisikan bagaimana suatu transaksi mengubah keadaan blockchain, dan mengikuti urutan langkah yang tepat. Pertama, sistem memeriksa validitas transaksi: memverifikasi kebenaran tanda tangan, mengonfirmasi bahwa nonce cocok dengan nonce akun pengirim, dan memastikan pengirim memiliki saldo yang cukup untuk membayar biaya di muka (STARTGAS × GASPRICE ditambah nilai yang dikirim). Jika ada pemeriksaan yang gagal, transaksi ditolak sebelum eksekusi dimulai. Jika valid, biaya transaksi dipotong dari rekening pengirim, nonce pengirim bertambah, dan penghitung bahan bakar awal diatur ke STARTGAS dikurangi biaya per byte untuk data transaksi.

Ethereum state transition function showing gas deduction value transfer and code execution

Selanjutnya, sistem mentransfer nilai eter yang ditentukan dari pengirim ke penerima. Jika penerima adalah akun milik eksternal, transaksi selesai. Jika penerimanya adalah akun kontrak, kode kontrak akan berjalan di Mesin Virtual Ethereum, menggunakan bahan bakar untuk setiap operasi hingga kode berhasil diselesaikan, kode dihentikan secara eksplisit, atau bahan bakar habis. Selama eksekusi, kontrak dapat membaca dan mengubah penyimpanannya, mengirim pesan ke kontrak lain, dan membuat kontrak baru.

Terakhir, jika transfer nilai gagal (saldo tidak mencukupi) atau eksekusi kode gagal (kehabisan bahan bakar atau terjadi kesalahan), semua perubahan status akan dikembalikan—kecuali pengirim masih membayar biaya bahan bakar kepada penambang untuk perhitungan yang dilakukan. Jika eksekusi berhasil, sisa gas dikembalikan ke pengirim, dan gas yang telah dikonsumsi dikirim ke penambang sebagai biaya. Mekanisme ini memastikan bahwa penambang mendapat kompensasi untuk komputasi sekaligus mencegah eksekusi yang tidak terkendali memakan sumber daya yang tidak terbatas.

Code Execution

La Machine Virtuelle Ethereum (EVM) est l'environnement d'execution ou le code des contrats s'execute — une machine virtuelle de bas niveau basee sur une pile, similaire en concept a la Machine Virtuelle Java ou WebAssembly. Le code des contrats est stocke sous forme d'une sequence d'octets, ou chaque octet represente une operation (opcode) que l'EVM peut executer. Le modele d'execution est deliberement simple et deterministe : chaque noeud executant l'EVM avec le meme etat d'entree et la meme transaction doit arriver au meme etat de sortie, assurant le consensus a travers le reseau.

L'EVM fournit trois types distincts de stockage pour le calcul. La pile est une structure dernier entre, premier sorti (LIFO) limitee a 1024 elements, utilisee pour les valeurs d'operation immediates. La memoire est un tableau d'octets extensible a l'infini qui persiste uniquement pour la duree d'un seul appel de message et est reinitialise entre les executions. Le stockage est le magasin cle-valeur persistant associe de maniere permanente a chaque compte de contrat, ou les contrats maintiennent leur etat a long terme a travers les transactions. Ces types de stockage sont tarifes differemment en gas — les operations sur la pile et la memoire sont bon marche, tandis que les operations de stockage sont couteuses pour prevenir le gonflement de la blockchain.

Pendant l'execution, le code du contrat a acces a un contexte crucial : il peut lire l'adresse de l'expediteur du message, le montant d'ether envoye, la charge utile de donnees fournie par l'appelant, et les proprietes au niveau du bloc comme le numero de bloc actuel, l'horodatage et l'adresse du mineur. Le code peut retourner un tableau d'octets de sortie a l'appelant et peut envoyer des messages a d'autres contrats ou creer de nouveaux contrats. Ce modele d'execution est Turing-complet — les boucles et le flux de controle complexe sont possibles — mais le mecanisme de gas garantit que tout calcul se termine en temps borne, resolvant le probleme de l'arret de maniere economique plutot que par des restrictions de langage.

Code Execution

Mesin Virtual Ethereum (EVM) adalah lingkungan runtime tempat kode kontrak dijalankan—mesin virtual tingkat rendah berbasis tumpukan yang konsepnya serupa dengan Mesin Virtual Java atau WebAssembly. Kode kontrak disimpan sebagai urutan byte, di mana setiap byte mewakili operasi (opcode) yang dapat dijalankan oleh EVM. Model eksekusi sengaja dibuat sederhana dan deterministik: setiap node yang menjalankan EVM dengan status input dan transaksi yang sama harus mencapai status output yang sama, sehingga memastikan konsensus di seluruh jaringan.

EVM menyediakan tiga jenis penyimpanan berbeda untuk komputasi. Tumpukan adalah struktur masuk terakhir keluar pertama (LIFO) yang dibatasi hingga 1024 elemen, digunakan untuk nilai operasi langsung. Memori adalah array byte yang dapat diperluas tanpa batas yang hanya bertahan selama satu panggilan pesan dan diatur ulang di antara eksekusi. Penyimpanan adalah penyimpanan nilai kunci persisten yang dikaitkan secara permanen dengan setiap akun kontrak, tempat kontrak mempertahankan status jangka panjangnya di seluruh transaksi. Jenis penyimpanan ini memiliki harga yang berbeda dalam hal gas—operasi tumpukan dan memori murah, sedangkan operasi penyimpanan mahal untuk mencegah pembengkakan blockchain.

Selama eksekusi, kode kontrak memiliki akses ke konteks penting: kode tersebut dapat membaca alamat pengirim pesan, jumlah eter yang dikirim, muatan data yang disediakan oleh pemanggil, dan properti tingkat blok seperti nomor blok saat ini, stempel waktu, dan alamat penambang. Kode ini dapat mengembalikan array byte keluaran ke pemanggil dan dapat mengirim pesan ke kontrak lain atau membuat kontrak baru. Model eksekusi ini adalah Turing-complete—loop dan aliran kontrol yang kompleks dimungkinkan—tetapi mekanisme gas memastikan bahwa semua komputasi berakhir dalam waktu yang terbatas, memecahkan masalah penghentian secara ekonomis dibandingkan melalui batasan bahasa.

Blockchain and Mining

La blockchain Ethereum est fondamentalement similaire a celle de Bitcoin, servant de base de donnees contenant chaque transaction jamais executee. Cependant, alors que Bitcoin ne stocke qu'une liste de transactions, Ethereum stocke a la fois la liste des transactions et l'etat le plus recent. Chaque bloc dans Ethereum contient le hachage du bloc precedent, une racine d'etat (le hachage racine du trie Patricia de Merkle representant l'etat entier), une racine de transaction, une racine de recu (stockant les donnees de l'execution des transactions), ainsi que des valeurs de difficulte, d'horodatage et de nonce. L'etat lui-meme est un grand trie Patricia de Merkle faisant correspondre les adresses aux objets de compte, ou chaque compte a un solde, un nonce, du code (si present) et du stockage.

Ethereum APPLY BLOCK function processing transactions and updating state

Ethereum utilise une version modifiee du protocole GHOST (Greedy Heaviest Observed Subtree) pour traiter les problemes de securite qui surviennent avec des temps de bloc rapides. Dans les protocoles traditionnels de chaine la plus longue, des blocs rapides conduisent a des taux de blocs perimes eleves, reduisant la securite du reseau et augmentant les risques de centralisation car les grands mineurs gaspillent moins de calcul sur les blocs perimes. GHOST inclut les blocs perimes (appeles "oncles" dans Ethereum) dans le calcul de la chaine la plus longue, et fournit des recompenses partielles aux blocs oncles, incitant les mineurs a les referencer. Cela permet a Ethereum de maintenir un temps de bloc cible d'environ 12 secondes tout en preservant la securite du reseau.

L'algorithme de minage fonctionne de maniere similaire a la preuve de travail de Bitcoin, exigeant des mineurs qu'ils trouvent un nonce tel que le hachage du bloc soit inferieur a un certain objectif de difficulte. Cependant, l'algorithme de minage a forte intensite memoire d'Ethereum (Ethash) est concu pour etre resistant aux ASIC, favorisant un ecosysteme de minage plus decentralise. La difficulte s'ajuste dynamiquement en fonction des temps de bloc pour maintenir la cible d'environ 12 secondes, assurant une production de blocs constante tandis que le protocole GHOST fournit des garanties de securite malgre les temps de bloc plus rapides par rapport a la moyenne de 10 minutes de Bitcoin.

Blockchain and Mining

Blockchain Ethereum pada dasarnya mirip dengan Bitcoin, berfungsi sebagai database yang berisi setiap transaksi yang pernah dieksekusi. Namun, meskipun Bitcoin hanya menyimpan daftar transaksi, Ethereum menyimpan daftar transaksi dan status terkini. Setiap blok di Ethereum berisi hash blok sebelumnya, root status (hash root dari percobaan Merkle Patricia yang mewakili seluruh status), root transaksi, root penerimaan (menyimpan data dari eksekusi transaksi), beserta nilai kesulitan, stempel waktu, dan nonce. Negara bagian itu sendiri adalah alamat pemetaan Merkle Patricia trie yang besar ke objek akun, di mana setiap akun memiliki saldo, nonce, kode (jika ada), dan penyimpanan.

Ethereum APPLY BLOCK function processing transactions and updating state

Ethereum menggunakan versi modifikasi dari protokol GHOST (Greedy Heaviest Observed Subtree) untuk mengatasi masalah keamanan yang timbul dari waktu blok yang cepat. Dalam protokol rantai terpanjang tradisional, blok cepat menyebabkan tingkat stale yang tinggi, mengurangi keamanan jaringan dan meningkatkan risiko sentralisasi karena penambang besar membuang lebih sedikit komputasi pada stales. GHOST menyertakan blok lama (disebut "paman" di Ethereum) dalam perhitungan rantai mana yang terpanjang, dan memberikan sebagian imbalan kepada blok paman, sehingga memberi insentif kepada penambang untuk mereferensikannya. Hal ini memungkinkan Ethereum mempertahankan waktu blok target sekitar 12 detik sambil menjaga keamanan jaringan.

Algoritme penambangan bekerja mirip dengan proof-of-work Bitcoin, mengharuskan penambang untuk menemukan nonce sehingga hash blok berada di bawah target kesulitan tertentu. Namun, algoritme penambangan memori keras (Ethash) Ethereum dirancang agar tahan terhadap ASIC, sehingga mendorong ekosistem penambangan yang lebih terdesentralisasi. Tingkat kesulitannya disesuaikan secara dinamis berdasarkan waktu blok untuk mempertahankan target ~12 detik, memastikan produksi blok yang konsisten sementara protokol GHOST memberikan jaminan keamanan meskipun waktu blok lebih cepat dibandingkan dengan rata-rata 10 menit Bitcoin.

Applications

Les applications qui peuvent etre construites sur Ethereum se repartissent en trois grandes categories. La premiere categorie est celle des applications financieres, fournissant aux utilisateurs des moyens plus puissants de gerer et de conclure des contrats impliquant leur argent. Cela inclut les sous-monnaies, les derives financiers, les contrats de couverture, les portefeuilles d'epargne avec des limites de retrait, les testaments qui distribuent automatiquement les fonds, et meme les contrats de travail qui calculent le paiement en fonction de l'achevement verifie du travail. Ces applications tirent parti de la programmabilite d'Ethereum pour creer des instruments financiers complexes qui seraient impossibles ou extremement difficiles a implementer dans les systemes traditionnels ou meme sur Bitcoin.

La deuxieme categorie est celle des applications semi-financieres, ou l'argent est implique mais il y a aussi une composante non monetaire substantielle dans ce qui est realise. Un exemple parfait est celui des primes auto-executoires pour les solutions a des problemes de calcul. Quelqu'un pourrait poster un probleme de calcul accompagne d'une recompense, et le contrat pourrait automatiquement verifier les solutions soumises et payer la prime a la premiere reponse correcte. Cette categorie fait le pont entre la finance pure et d'autres domaines, utilisant des incitations economiques pour resoudre des problemes ou coordonner les comportements.

La troisieme categorie est celle des applications qui n'ont rien a voir avec l'argent, comme le vote en ligne et les systemes de gouvernance decentralises. Ces applications non financieres demontrent la flexibilite d'Ethereum en tant que plateforme generaliste. Les exemples incluent les systemes de noms de domaine decentralises comme Namecoin, les systemes de reputation, le stockage de fichiers decentralise et les outils de gouvernance organisationnelle. Parmi tous ces types d'applications, les systemes de tokens ont emerge comme les plus courants et fondamentaux, servant de blocs de construction pour de nombreuses autres applications.

Applications

Aplikasi yang dapat dibangun di Ethereum terbagi dalam tiga kategori besar. Kategori pertama adalah aplikasi keuangan, yang memberikan pengguna cara yang lebih canggih untuk mengelola dan menandatangani kontrak yang melibatkan uang mereka. Ini termasuk sub-mata uang, derivatif keuangan, kontrak lindung nilai, dompet tabungan dengan batas penarikan, surat wasiat yang mendistribusikan dana secara otomatis, dan bahkan kontrak kerja yang menghitung pembayaran berdasarkan penyelesaian pekerjaan yang diverifikasi. Aplikasi ini memanfaatkan kemampuan program Ethereum untuk menciptakan instrumen keuangan kompleks yang tidak mungkin atau sangat sulit diterapkan dalam sistem tradisional atau bahkan pada Bitcoin.

Kategori kedua adalah aplikasi semi-keuangan, yang melibatkan uang namun ada juga komponen non-moneter yang substansial dalam apa yang dilakukan. Contoh sempurna adalah pemberian hadiah yang dipaksakan sendiri untuk solusi masalah komputasi. Seseorang dapat memposting masalah komputasi bersama dengan hadiahnya, dan kontrak dapat secara otomatis memverifikasi solusi yang diajukan dan membayar hadiah untuk jawaban pertama yang benar. Kategori ini menjembatani keuangan murni dan domain lainnya, menggunakan insentif ekonomi untuk memecahkan masalah atau mengoordinasikan perilaku.

Kategori ketiga adalah aplikasi yang tidak ada kaitannya sama sekali dengan uang, seperti pemungutan suara online dan sistem pemerintahan yang terdesentralisasi. Aplikasi non-keuangan ini menunjukkan fleksibilitas Ethereum sebagai platform tujuan umum. Contohnya termasuk sistem nama domain terdesentralisasi seperti Namecoin, sistem reputasi, penyimpanan file terdesentralisasi, dan alat tata kelola organisasi. Dari semua jenis aplikasi ini, sistem token muncul sebagai yang paling umum dan mendasar, berfungsi sebagai landasan bagi banyak aplikasi lainnya.

Token Systems

Les systemes de tokens sont etonnamment simples a implementer sur Ethereum, bien qu'ils soient l'une des applications les plus puissantes et les plus courantes. A leur base, les systemes de tokens sont simplement une base de donnees avec une seule operation : soustraire X unites du compte A et ajouter X unites au compte B, a condition que A ait eu au moins X unites avant la transaction et que la transaction soit autorisee par A. L'implementation necessite de maintenir une correspondance des adresses aux soldes et de fournir une fonction de transfert qui effectue les verifications appropriees avant de deplacer les tokens entre les comptes.

Le code du contrat pour un systeme de tokens basique est remarquablement simple et peut etre ecrit en quelques lignes seulement. Il consiste en une structure de donnees faisant correspondre les adresses aux soldes, une fonction d'initialisation qui attribue l'offre initiale de tokens, et une fonction de transfert qui verifie le solde et l'autorisation de l'expediteur avant d'executer le transfert. Cette simplicite contraste fortement avec la complexite requise pour implementer des systemes similaires sur Bitcoin, qui necessiteraient des solutions de contournement et des limitations significatives en raison des capacites de script restreintes de Bitcoin.

Les tokens sur Ethereum peuvent representer virtuellement n'importe quoi de valeur. Ils peuvent representer des sous-monnaies avec leurs propres politiques monetaires, des derives financiers suivant des actifs externes, des actions d'entreprise avec des droits a dividendes, des points de fidelite dans des programmes clients, des matieres premieres comme l'or ou le petrole, ou meme des representations de propriete physique. La programmabilite d'Ethereum permet a ces tokens d'avoir des regles arbitraires gouvernant leur comportement, telles que des restrictions de transfert, des mecanismes de destruction automatique, des distributions de dividendes ou des droits de gouvernance. Cette flexibilite a fait des systemes de tokens le bloc de construction fondamental d'une grande partie de l'ecosysteme Ethereum.

Token Systems

Sistem token ternyata sangat mudah diterapkan di Ethereum, meskipun merupakan salah satu aplikasi yang paling kuat dan umum. Pada intinya, sistem token hanyalah sebuah database dengan satu operasi: kurangi X unit dari akun A dan tambahkan X unit ke akun B, dengan syarat A memiliki setidaknya X unit sebelum transaksi dan transaksi tersebut disahkan oleh A. Implementasinya memerlukan pemeliharaan pemetaan alamat ke saldo dan menyediakan fungsi transfer yang melakukan pemeriksaan yang sesuai sebelum memindahkan token antar akun.

Kode kontrak untuk sistem token dasar sangat sederhana dan dapat ditulis hanya dalam beberapa baris. Ini terdiri dari struktur data yang memetakan alamat ke saldo, fungsi inisialisasi yang menetapkan pasokan token awal, dan fungsi transfer yang memeriksa saldo dan otorisasi pengirim sebelum melakukan transfer. Kesederhanaan ini sangat kontras dengan kompleksitas yang diperlukan untuk mengimplementasikan sistem serupa di Bitcoin, yang memerlukan solusi dan batasan yang signifikan karena kemampuan skrip Bitcoin yang terbatas.

Token di Ethereum dapat mewakili hampir semua hal yang bernilai. Mereka mungkin mewakili sub-mata uang dengan kebijakan moneter mereka sendiri, derivatif keuangan yang melacak aset eksternal, saham perusahaan dengan hak dividen, poin loyalitas dalam program pelanggan, komoditas seperti emas atau minyak, atau bahkan representasi properti fisik. Kemampuan program Ethereum memungkinkan token ini memiliki aturan sewenang-wenang yang mengatur perilakunya, seperti pembatasan transfer, mekanisme pembakaran otomatis, distribusi dividen, atau hak tata kelola. Fleksibilitas ini menjadikan sistem token sebagai landasan dasar bagi sebagian besar ekosistem Ethereum.

Financial Derivatives and Stable-Value Currencies

Les derives financiers representent l'une des applications les plus fondamentales et importantes des smart contracts Ethereum. Un simple contrat de couverture demontre le mecanisme de base : la partie A depose un certain montant d'ether d'une valeur de 1000 \(, la partie B depose un montant equivalent, et le contrat enregistre la valeur en USD de l'ether a ce moment en utilisant un flux de donnees. Apres 30 jours, le contrat recalcule la valeur et envoie de l'ether d'une valeur de 1000 \) a A et le reste a B. Si le prix de l'ether a augmente, A recoit moins d'ether mais maintient une valeur de 1000 $ ; s'il a baisse, A recoit plus d'ether pour maintenir cette valeur. Cela permet a A de se couvrir contre la volatilite tandis que B specule sur les mouvements de prix.

L'implementation de tels contrats necessite l'acces a des donnees externes via des contrats oracle ou des flux de donnees. Ces oracles fournissent des informations sur les prix, des donnees meteorologiques ou d'autres informations du monde reel dont les contrats ont besoin pour s'executer correctement. Bien que les oracles introduisent une dependance de confiance, ils peuvent etre concus avec de la redondance et des incitations cryptoeconomiques pour fournir des donnees fiables. Le contrat lui-meme interroge simplement l'oracle, effectue des calculs bases sur ces donnees et distribue les fonds selon sa logique programmee.

Les stablecoins et les instruments financiers plus complexes peuvent etre construits en utilisant des mecanismes similaires. Un contrat de stablecoin pourrait maintenir une reserve d'ether et emettre des tokens adosses a une monnaie fiduciaire, ajustant automatiquement l'offre ou les exigences de collateral en fonction des flux de prix. Les contrats d'options, de futures, de swaps et d'autres derives qui necessiteraient normalement des cadres juridiques complexes et des intermediaires de confiance peuvent plutot etre encodes comme des smart contracts auto-executoires. Cette infrastructure de finance programmable permet une ingenierie financiere sophistiquee tout en maintenant les garanties de transparence et de securite de la technologie blockchain.

Financial Derivatives and Stable-Value Currencies

Derivatif keuangan mewakili salah satu aplikasi kontrak pintar Ethereum yang paling mendasar dan penting. Kontrak lindung nilai sederhana menunjukkan mekanisme dasar: pihak A menyetor sejumlah eter senilai \(1000, pihak B menyetor jumlah yang setara, dan kontrak mencatat nilai eter USD pada saat itu menggunakan umpan data. Setelah 30 hari, kontrak menghitung ulang nilainya dan mengirimkan eter senilai \)1000 ke A dan sisanya ke B. Jika harga eter naik, A menerima lebih sedikit eter tetapi mempertahankan nilai $1000; jika jatuh, A menerima lebih banyak eter untuk mempertahankan nilainya. Hal ini memungkinkan A melakukan lindung nilai terhadap volatilitas sementara B berspekulasi mengenai pergerakan harga.

Implementasi kontrak tersebut memerlukan akses ke data eksternal melalui kontrak oracle atau data feed. Oracle ini memberikan informasi harga, data cuaca, atau informasi dunia nyata lainnya yang perlu dilaksanakan oleh kontrak dengan benar. Meskipun oracle memperkenalkan ketergantungan kepercayaan, mereka dapat dirancang dengan redundansi dan insentif ekonomi kripto untuk menyediakan data yang andal. Kontrak itu sendiri hanya menanyakan oracle, melakukan penghitungan berdasarkan data tersebut, dan mendistribusikan dana sesuai dengan logika terprogramnya.

Stablecoin dan instrumen keuangan yang lebih kompleks dapat dibangun menggunakan mekanisme serupa. Kontrak stablecoin mungkin mempertahankan cadangan eter dan menerbitkan token yang dipatok ke mata uang fiat, secara otomatis menyesuaikan persyaratan pasokan atau jaminan berdasarkan harga. Kontrak opsi, kontrak berjangka, swap, dan turunan lainnya yang biasanya memerlukan kerangka hukum yang rumit dan perantara tepercaya dapat dikodekan sebagai kontrak pintar yang dapat dijalankan sendiri. Infrastruktur keuangan yang dapat diprogram ini memungkinkan rekayasa keuangan yang canggih dengan tetap menjaga transparansi dan jaminan keamanan teknologi blockchain.

Identity and Reputation Systems

Un systeme d'enregistrement de noms similaire a Namecoin est trivialement implementable sur Ethereum et sert d'exemple le plus simple d'un systeme d'identite. Le contrat maintient une base de donnees avec une table cle-valeur faisant correspondre les noms aux donnees associees (comme les adresses IP, les cles publiques ou d'autres informations). N'importe qui peut enregistrer un nom en envoyant une transaction au contrat accompagnee de frais d'enregistrement modestes, a condition que ce nom ne soit pas deja pris. Le proprietaire peut mettre a jour les donnees associees a tout moment, et les noms peuvent etre rendus transferables ou permanents selon les regles encodees dans le contrat.

Des systemes d'identite plus avances peuvent etre construits sur cette base pour inclure des scores de reputation, des relations de reseau de confiance et une verification d'identite decentralisee. Par exemple, un contrat pourrait maintenir des scores de reputation bases sur des transactions verifiees, des evaluations par les pairs ou l'accomplissement de taches. Ces scores seraient publiquement visibles et cryptographiquement lies a des adresses specifiques, creant une reputation portable qui suit les utilisateurs a travers les applications. Les systemes de reseau de confiance pourraient permettre aux utilisateurs de se porter garants de l'identite des autres, construisant des graphes sociaux qui aident a distinguer les utilisateurs legitimes des acteurs malveillants.

De tels systemes d'identite et de reputation deviennent particulierement puissants lorsqu'ils sont integres avec d'autres applications. Une place de marche pourrait exiger des scores de reputation minimums pour les vendeurs, une plateforme de pret pourrait ajuster les taux d'interet en fonction de la reputation de l'emprunteur, ou un reseau social pourrait utiliser le reseau de confiance pour filtrer le spam et le contenu frauduleux. En fournissant une infrastructure partagee pour l'identite que toute application peut interroger, Ethereum permet une nouvelle classe d'applications basees sur la confiance qui ne reposent pas sur des fournisseurs d'identite centralises ou des systemes de reputation proprietaires.

Identity and Reputation Systems

Sistem registrasi nama yang mirip dengan Namecoin dapat diterapkan dengan mudah di Ethereum dan berfungsi sebagai contoh paling sederhana dari sistem identitas. Kontrak memelihara database dengan nama pemetaan tabel nilai kunci ke data terkait (seperti alamat IP, kunci publik, atau informasi lainnya). Siapa pun dapat mendaftarkan nama dengan mengirimkan transaksi ke kontrak dengan sedikit biaya pendaftaran, dengan syarat nama tersebut belum diambil. Pemilik dapat memperbarui data terkait kapan saja, dan nama dapat dibuat dapat dialihkan atau permanen sesuai dengan aturan yang tercantum dalam kontrak.

Sistem identitas yang lebih canggih dapat dibangun di atas landasan ini untuk mencakup skor reputasi, jaringan hubungan kepercayaan, dan verifikasi identitas yang terdesentralisasi. Misalnya, sebuah kontrak dapat mempertahankan skor reputasi berdasarkan transaksi terverifikasi, peringkat rekan, atau penyelesaian tugas. Skor ini akan terlihat secara publik dan secara kriptografis dikaitkan dengan alamat tertentu, sehingga menciptakan reputasi portabel yang dapat mengikuti pengguna di seluruh aplikasi. Sistem jaringan kepercayaan dapat memungkinkan pengguna untuk menjamin identitas orang lain, membangun grafik sosial yang membantu membedakan pengguna yang sah dari pelaku kejahatan.

Sistem identitas dan reputasi tersebut menjadi sangat kuat ketika terintegrasi dengan aplikasi lain. Pasar mungkin memerlukan skor reputasi minimum untuk penjual, platform pinjaman dapat menyesuaikan suku bunga berdasarkan reputasi peminjam, atau jaringan sosial dapat menggunakan web kepercayaan untuk memfilter spam dan konten penipuan. Dengan menyediakan infrastruktur bersama untuk identitas yang dapat ditanyakan oleh aplikasi apa pun, Ethereum memungkinkan kelas baru aplikasi berbasis kepercayaan yang tidak bergantung pada penyedia identitas terpusat atau sistem reputasi kepemilikan.

Decentralized File Storage

Le stockage de fichiers decentralise peut etre implemente via des contrats Ethereum qui coordonnent entre les utilisateurs ayant besoin de stockage et les fournisseurs qui l'offrent. Dans un modele de "Dropbox decentralise", les utilisateurs paieraient des frais mensuels pour telecharger des fichiers, le contrat distribuant les paiements aux fournisseurs de stockage qui prouvent qu'ils stockent reellement les donnees. Le mecanisme de preuve fonctionne par des defis cryptographiques periodiques : le contrat selectionne aleatoirement des portions de fichiers et demande aux fournisseurs de fournir des preuves d'arbre de Merkle demontrant qu'ils possedent ces donnees. Les fournisseurs qui echouent aux defis ou se deconnectent perdraient leurs depots et leur flux de paiement futur.

Cette approche offre plusieurs avantages par rapport au stockage centralise. Les preuves d'arbre de Merkle permettent une verification efficace — les utilisateurs et le contrat peuvent confirmer la disponibilite des fichiers sans telecharger des fichiers entiers. Le systeme distribue naturellement les fichiers a travers plusieurs fournisseurs independants, creant de la redondance sans necessiter de protocoles de replication explicites. Les incitations economiques alignent le comportement des fournisseurs avec les besoins des utilisateurs : les fournisseurs gagnent de l'argent en stockant les donnees de maniere fiable et en perdent s'ils ne le font pas. Cela elimine l'exigence de confiance inherente aux solutions de stockage centralisees.

Les couts de stockage dans un tel systeme peuvent potentiellement etre inferieurs a ceux des alternatives centralisees pour plusieurs raisons. L'elimination de la tarification monopolistique permet a la concurrence du marche de ramener les couts pres du cout reel du stockage. La redondance implicite de plusieurs utilisateurs stockant des fichiers similaires peut reduire les besoins totaux de stockage. Il n'y a pas besoin d'infrastructure de centre de donnees couteuse ou de frais generaux d'entreprise. Cependant, des defis subsistent concernant les mecanismes de paiement, l'assurance d'une participation adequate des fournisseurs et la gestion du compromis entre redondance et cout. Malgre ces defis, le stockage decentralise demontre comment Ethereum peut coordonner des interactions complexes multi-parties uniquement par des incitations economiques.

Decentralized File Storage

Penyimpanan file terdesentralisasi dapat diterapkan melalui kontrak Ethereum yang berkoordinasi antara pengguna yang membutuhkan penyimpanan dan penyedia yang menawarkannya. Dalam model "Dropbox terdesentralisasi", pengguna akan membayar biaya bulanan untuk mengunggah file, dengan kontrak yang mendistribusikan pembayaran ke penyedia penyimpanan yang membuktikan bahwa mereka benar-benar menyimpan data. Mekanisme pembuktian bekerja melalui tantangan kriptografi berkala: kontrak secara acak memilih bagian file dan meminta penyedia untuk memberikan bukti pohon Merkle yang menunjukkan bahwa mereka memiliki data tersebut. Penyedia yang gagal dalam tantangan atau offline akan kehilangan simpanan dan aliran pembayaran di masa mendatang.

Pendekatan ini menawarkan beberapa keunggulan dibandingkan penyimpanan terpusat. Bukti pohon Merkle memungkinkan verifikasi yang efisien—pengguna dan kontrak dapat mengonfirmasi ketersediaan file tanpa mengunduh seluruh file. Sistem secara alami mendistribusikan file ke beberapa penyedia independen, menciptakan redundansi tanpa memerlukan protokol replikasi yang eksplisit. Insentif ekonomi menyelaraskan perilaku penyedia layanan dengan kebutuhan pengguna: penyedia layanan mendapatkan uang dengan menyimpan data secara andal dan kehilangan uang jika mereka gagal melakukannya. Hal ini menghilangkan persyaratan kepercayaan yang melekat pada solusi penyimpanan terpusat.

Biaya penyimpanan dalam sistem seperti itu berpotensi lebih rendah dibandingkan alternatif terpusat karena beberapa alasan. Penghapusan harga monopoli memungkinkan persaingan pasar menurunkan biaya hingga mendekati biaya penyimpanan sebenarnya. Redundansi implisit dari beberapa pengguna yang menyimpan file serupa dapat mengurangi total kebutuhan penyimpanan. Tidak diperlukan infrastruktur pusat data yang mahal atau biaya overhead perusahaan. Namun, masih terdapat tantangan seputar mekanisme pembayaran, memastikan partisipasi penyedia layanan yang memadai, dan mengelola trade-off antara redundansi dan biaya. Terlepas dari tantangan-tantangan ini, penyimpanan terdesentralisasi menunjukkan bagaimana Ethereum dapat mengoordinasikan interaksi multi-pihak yang kompleks melalui insentif ekonomi saja.

Decentralized Autonomous Organizations

Une Organisation Autonome Decentralisee (DAO) est une entite virtuelle qui possede un ensemble de membres ou d'actionnaires qui ont collectivement le droit de depenser les fonds de l'entite et de modifier son code. Une DAO typique fonctionne avec une regle simple : 67% des membres sont necessaires pour prendre des decisions de depense ou modifier le code de l'organisation. Les membres peuvent soumettre des propositions, voter dessus, et si une proposition recoit un soutien suffisant, le contrat execute automatiquement la decision. Les parts de membres peuvent etre transferables, permettant un marche liquide pour la participation a la DAO, et differentes classes de parts peuvent avoir differents droits de vote ou revendications economiques.

La conception de DAO la plus simple est un contrat auto-modifiable qui maintient une liste de membres et necessite un vote a majorite des 2/3 pour modifier tout aspect du contrat, y compris ses propres regles de vote. Les membres soumettraient des modifications de code sous forme de transactions, les autres membres voteraient, et une fois le seuil atteint, le contrat se mettrait a jour. Des conceptions plus sophistiquees pourraient inclure des systemes de vote delegue ou les membres peuvent attribuer leur pouvoir de vote a des representants, ou une democratie liquide ou les votes peuvent etre delegues mais recuperes a tout moment pour les decisions importantes.

Les DAOs peuvent servir a divers objectifs au-dela de la simple gestion de fonds. Une DAO pourrait fonctionner comme une entreprise decentralisee, embauchant des prestataires, achetant des services et distribuant des benefices aux actionnaires — le tout gouverne par du code de smart contract plutot que par des structures juridiques traditionnelles. Elle pourrait fonctionner comme un fonds d'investissement decentralise, avec des membres votant sur les projets a financer. Elle pourrait gerer une ressource commune, avec les parties prenantes votant sur les regles d'allocation. L'insight cle est qu'en encodant les regles de gouvernance dans du code transparent et immuable et en les liant a un enjeu economique, les DAOs peuvent coordonner les decisions de groupe sans necessiter de gestion hierarchique traditionnelle ou d'application legale.

Decentralized Autonomous Organizations

Organisasi Otonomi Terdesentralisasi (DAO) adalah entitas virtual yang memiliki sekumpulan anggota atau pemegang saham yang secara kolektif memiliki hak untuk membelanjakan dana entitas dan mengubah kodenya. DAO tipikal beroperasi dengan aturan sederhana: 67% anggota diperlukan untuk membuat keputusan pengeluaran atau mengubah kode organisasi. Anggota dapat mengajukan proposal, memberikan suaranya, dan jika sebuah proposal mendapat dukungan yang memadai, kontrak secara otomatis melaksanakan keputusannya. Saham keanggotaan dapat dialihkan, memungkinkan pasar yang likuid untuk partisipasi DAO, dan kelas saham yang berbeda dapat memiliki hak suara atau klaim ekonomi yang berbeda.

Desain DAO yang paling sederhana adalah kontrak yang dapat dimodifikasi sendiri yang mempertahankan daftar anggota dan memerlukan 2/3 suara mayoritas untuk mengubah segala aspek kontrak, termasuk aturan pemungutan suara sendiri. Anggota akan mengirimkan perubahan kode saat transaksi, anggota lain akan memilih, dan setelah mencapai ambang batas, kontrak akan diperbarui sendiri. Desain yang lebih canggih mungkin mencakup sistem pemungutan suara yang didelegasikan di mana anggota dapat menyerahkan hak suara mereka kepada perwakilan, atau demokrasi cair di mana suara dapat didelegasikan tetapi dapat diambil kembali kapan saja untuk pengambilan keputusan penting.

DAO dapat melayani berbagai tujuan di luar pengelolaan dana sederhana. DAO dapat berfungsi sebagai perusahaan terdesentralisasi, mempekerjakan kontraktor, membeli layanan, dan mendistribusikan keuntungan kepada pemegang saham—semuanya diatur oleh kode kontrak pintar dan bukan struktur hukum tradisional. Ini dapat beroperasi sebagai dana investasi terdesentralisasi, dengan anggota memberikan suara pada proyek mana yang akan didanai. Pemerintah dapat mengelola sumber daya milik bersama, dengan para pemangku kepentingan memberikan suara mengenai aturan alokasi. Wawasan utamanya adalah dengan mengkodekan peraturan tata kelola dalam kode yang transparan dan tidak dapat diubah serta mengaitkannya dengan kepentingan ekonomi, DAO dapat mengoordinasikan keputusan kelompok tanpa memerlukan manajemen hierarki tradisional atau penegakan hukum.

Further Applications

Au-dela des grandes categories deja discutees, Ethereum permet de nombreuses autres applications. Les portefeuilles d'epargne avec des fonctionnalites de securite sophistiquees peuvent imposer des limites de retrait quotidiennes tout en fournissant des cles d'urgence pour la recuperation, protegeant les utilisateurs contre le vol tout en maintenant le controle ultime. Les contrats d'assurance recolte peuvent automatiquement payer les agriculteurs sur la base de flux de donnees meteorologiques, eliminant le traitement des reclamations et reduisant les frais administratifs. Les applications de jeux d'argent pair-a-pair peuvent fonctionner sans aucun intermediaire de confiance, les smart contracts detenant les mises et payant automatiquement les gagnants sur la base de nombres aleatoires verifiables ou de donnees d'evenements du monde reel.

Les marches de prediction on-chain permettent aux utilisateurs de parier sur des evenements futurs, creant de puissants mecanismes de prevision par la sagesse des foules. Ceux-ci peuvent etre augmentes avec des protocoles de type SchellingCoin pour creer des oracles decentralises : les participants rapportent independamment des donnees (comme les resultats d'elections ou les conditions meteorologiques), et ceux dont les rapports correspondent a la majorite recoivent des recompenses tandis que les valeurs aberrantes sont penalisees. Cette approche cryptoeconomique incite au reportage honnete et peut fournir des donnees fiables du monde reel a d'autres contrats sans necessiter de confiance en un seul fournisseur d'oracle.

Les portefeuilles multi-signatures representent une autre application importante, permettant le controle partage de fonds entre plusieurs parties. Un portefeuille multi-sig 2-sur-3 pourrait necessiter que deux des trois parties designees approuvent une transaction avant que les fonds puissent etre depenses, utile pour les arrangements d'entiercement, les tresoreries d'entreprise ou la securite personnelle. Les places de marche decentralisees peuvent combiner des systemes d'identite, des scores de reputation, des contrats d'entiercement et des mecanismes de resolution des litiges pour permettre le commerce pair-a-pair sans plateformes centralisees. Chacune de ces applications demontre comment la programmabilite d'Ethereum permet de nouveaux modeles de confiance et de nouvelles structures organisationnelles.

Further Applications

Di luar kategori utama yang telah dibahas, Ethereum memungkinkan banyak aplikasi lainnya. Dompet tabungan dengan fitur keamanan canggih dapat menerapkan batas penarikan harian sambil memberikan kunci darurat untuk pemulihan, melindungi pengguna dari pencurian sambil mempertahankan kendali penuh. Kontrak asuransi tanaman dapat secara otomatis membayar petani berdasarkan data cuaca, menghilangkan pemrosesan klaim dan mengurangi biaya administrasi. Aplikasi perjudian peer-to-peer dapat beroperasi tanpa perantara tepercaya, dengan kontrak pintar yang memegang taruhan dan secara otomatis membayar pemenang berdasarkan nomor acak yang dapat diverifikasi atau data peristiwa dunia nyata.

Pasar prediksi on-chain memungkinkan pengguna untuk bertaruh pada kejadian di masa depan, menciptakan mekanisme perkiraan yang kuat melalui kebijaksanaan orang banyak. Hal ini dapat ditambah dengan protokol gaya SchellingCoin untuk menciptakan oracle yang terdesentralisasi: peserta secara independen melaporkan data (seperti hasil pemilu atau kondisi cuaca), dan peserta yang laporannya cocok dengan mayoritas akan menerima hadiah sementara yang outlier akan dikenakan sanksi. Pendekatan ekonomi kripto ini memberi insentif pada pelaporan yang jujur ​​dan dapat memberikan data dunia nyata yang dapat diandalkan untuk kontrak lain tanpa memerlukan kepercayaan pada penyedia oracle mana pun.

Dompet multi-tanda tangan mewakili aplikasi penting lainnya, memungkinkan kontrol dana bersama antara banyak pihak. Dompet multi-tanda 2 dari 3 mungkin memerlukan dua dari tiga pihak yang ditunjuk untuk menyetujui transaksi sebelum dana dapat dibelanjakan, berguna untuk pengaturan escrow, perbendaharaan perusahaan, atau keamanan pribadi. Pasar yang terdesentralisasi dapat menggabungkan sistem identitas, skor reputasi, kontrak escrow, dan mekanisme penyelesaian sengketa untuk memungkinkan perdagangan peer-to-peer tanpa platform terpusat. Masing-masing aplikasi ini menunjukkan bagaimana kemampuan program Ethereum memungkinkan model kepercayaan dan struktur organisasi baru.

Miscellanea And Concerns

L'implementation par Ethereum du protocole GHOST modifie inclut des regles specifiques pour l'inclusion et les recompenses des oncles. Les oncles doivent etre des enfants directs de l'ancetre du bloc actuel (entre 2 et 7 generations en arriere), doivent etre des en-tetes de bloc valides, doivent etre distincts des oncles precedents et ne doivent pas etre des ancetres directs du bloc actuel. Les blocs oncles recoivent 87,5% de la recompense de bloc standard, tandis que le bloc qui les inclut recoit un supplement de 3,125% par oncle inclus (jusqu'a deux oncles). Cette structure d'incitation encourage les mineurs a referencer les blocs perimes qu'ils observent, renforçant la securite du reseau tout en recompensant les mineurs qui ont temporairement eu de la malchance avec la propagation du reseau.

Le systeme de frais est base sur le concept de "gas", ou chaque operation de calcul a un cout fixe en gas. Par exemple, une operation de multiplication coute 5 gas, un hachage SHA256 coute 20 gas, et chaque transaction a un cout de base de 21 000 gas. Les utilisateurs specifient a la fois une limite de gas (le gas maximum qu'ils sont prets a consommer) et un prix du gas (combien d'ether ils paieront par unite de gas). Ce systeme sert plusieurs objectifs : il empeche les boucles infinies et les attaques par deni de service en garantissant que tout calcul est paye, il cree un marche pour l'espace de bloc ou les utilisateurs encherissent via les prix du gas, et il permet aux mineurs de fixer un prix minimum du gas qu'ils sont prets a accepter, protegeant les ressources du reseau.

Ethereum supply growth rate comparing linear issuance to Bitcoin decreasing growth

L'evolutivite reste une preoccupation significative, car chaque noeud complet doit traiter chaque transaction pour verifier l'etat. Les architectures blockchain actuelles peinent a egaliser le debit de transactions des systemes centralises. Les solutions potentielles incluent le sharding d'etat, ou differents noeuds traitent differents sous-ensembles de transactions, et une transition de la preuve de travail vers un consensus par preuve d'enjeu, qui pourrait permettre une production de blocs plus efficace. Les clients legers utilisant des preuves de Merkle peuvent verifier les transactions sans traiter tous les blocs, mais quelqu'un doit quand meme tout traiter. Ces defis d'evolutivite representent des domaines actifs de recherche et de developpement critiques pour la viabilite a long terme d'Ethereum.

Miscellanea And Concerns

Implementasi Ethereum terhadap protokol GHOST yang dimodifikasi mencakup aturan khusus untuk penyertaan dan penghargaan paman. Paman harus merupakan anak langsung dari nenek moyang blok saat ini (antara 2 dan 7 generasi ke belakang), harus merupakan header blok yang valid, harus berbeda dari paman sebelumnya, dan tidak boleh merupakan nenek moyang langsung dari blok saat ini. Blok paman menerima 87,5% dari hadiah blok standar, sedangkan blok yang menyertakan menerima tambahan 3,125% per paman yang disertakan (hingga dua paman). Struktur insentif ini mendorong para penambang untuk mereferensikan blok-blok usang yang mereka amati, memperkuat keamanan jaringan sekaligus memberikan penghargaan kepada para penambang yang mengalami nasib buruk sementara dalam propagasi jaringan.

Sistem biaya ini didasarkan pada konsep "gas", di mana setiap operasi komputasi memiliki biaya gas yang tetap. Misalnya, operasi perkalian memerlukan biaya 5 gas, hash SHA256 memerlukan biaya 20 gas, dan setiap transaksi memiliki biaya dasar sebesar 21.000 gas. Pengguna menentukan batas gas (gas maksimum yang ingin mereka konsumsi) dan harga gas (berapa banyak ether yang akan mereka bayarkan per unit gas). Sistem ini memiliki banyak tujuan: mencegah loop tak terbatas dan serangan penolakan layanan dengan memastikan semua komputasi dibayar, menciptakan pasar untuk ruang blok tempat pengguna menawar melalui harga gas, dan memungkinkan penambang menetapkan harga gas minimum yang bersedia mereka terima, sehingga melindungi sumber daya jaringan.

Ethereum supply growth rate comparing linear issuance to Bitcoin decreasing growth

Skalabilitas tetap menjadi perhatian yang signifikan, karena setiap node penuh harus memproses setiap transaksi untuk memverifikasi status. Arsitektur blockchain saat ini kesulitan untuk menyamai throughput transaksi sistem terpusat. Solusi potensial mencakup state sharding, di mana node yang berbeda memproses subset transaksi yang berbeda, dan transisi dari proof-of-work ke konsensus bukti kepemilikan, yang memungkinkan produksi blok lebih efisien. Klien ringan yang menggunakan bukti Merkle dapat memverifikasi transaksi tanpa memproses semua blok, namun seseorang tetap harus memproses semuanya. Tantangan skalabilitas ini mewakili bidang penelitian dan pengembangan aktif yang penting bagi kelangsungan jangka panjang Ethereum.

Conclusion

Le protocole Ethereum a ete initialement concu comme une version amelioree d'une cryptomonnaie, fournissant des fonctionnalites avancees comme l'entiercement on-blockchain, les limites de retrait et les contrats financiers a travers un langage de programmation hautement generalise. Cependant, le protocole Ethereum va bien au-dela de la simple monnaie. Les protocoles autour du stockage de fichiers decentralise, du calcul decentralise et des marches de prediction decentralises, parmi des dizaines d'autres concepts, ont le potentiel d'augmenter substantiellement l'efficacite de l'industrie informatique et de fournir un coup de pouce massif aux autres protocoles pair-a-pair en ajoutant pour la premiere fois une couche economique.

Plutot que de fournir un ensemble limite d'operations concues pour des cas d'utilisation specifiques, Ethereum fournit un langage de programmation Turing-complet qui permet aux developpeurs de construire toute application qu'ils peuvent concevoir. Vous voulez inventer votre propre derive financier ? Creer votre propre monnaie ? Etablir un gouvernement sur la blockchain ? Tout cela est trivialement implementable avec le systeme de script d'Ethereum. La puissance de la plateforme ne reside pas dans la prediction des applications qui seront construites, mais dans la fourniture de l'infrastructure fondamentale qui rend leur construction facile.

Le concept d'une fonction de transition d'etat arbitraire telle qu'implementee par le protocole Ethereum fournit une plateforme au potentiel unique. Plutot que d'etre un protocole ferme et a usage unique destine a des applications specifiques dans le stockage de donnees, les jeux d'argent ou la finance, Ethereum est ouvert par conception, et nous croyons qu'il est extremement bien adapte pour servir de couche fondamentale pour un grand nombre de protocoles financiers et non financiers dans les annees a venir. Les applications qui seront construites sur Ethereum a l'avenir pourraient etre celles que nous ne pouvons meme pas imaginer aujourd'hui, et cette possibilite ouverte represente la veritable promesse de la plateforme.

Conclusion

Protokol Ethereum pada awalnya dipahami sebagai versi mata uang kripto yang ditingkatkan, menyediakan fitur-fitur canggih seperti escrow di blockchain, batas penarikan, dan kontrak keuangan melalui bahasa pemrograman yang sangat umum. Namun, protokol Ethereum tidak hanya sekedar mata uang. Protokol seputar penyimpanan file terdesentralisasi, komputasi terdesentralisasi, dan pasar prediksi terdesentralisasi, di antara lusinan konsep lainnya, memiliki potensi untuk meningkatkan efisiensi industri komputasi secara signifikan dan memberikan dorongan besar pada protokol peer-to-peer lainnya dengan menambahkan lapisan ekonomi untuk pertama kalinya.

Daripada menyediakan serangkaian operasi terbatas yang dirancang untuk kasus penggunaan tertentu, Ethereum menyediakan bahasa pemrograman lengkap Turing yang memungkinkan pengembang membangun aplikasi apa pun yang dapat mereka desain. Ingin menciptakan derivatif keuangan Anda sendiri? Buat mata uang Anda sendiri? Membentuk pemerintahan di blockchain? Ini semua dapat diimplementasikan dengan mudah dengan sistem skrip Ethereum. Kekuatan platform tidak terletak pada prediksi aplikasi apa yang akan dibangun, namun pada penyediaan infrastruktur dasar yang memudahkan pembuatannya.

Konsep fungsi transisi keadaan sewenang-wenang seperti yang diterapkan oleh protokol Ethereum menyediakan platform dengan potensi unik. Daripada menjadi protokol tertutup dan bertujuan tunggal yang ditujukan untuk aplikasi spesifik dalam penyimpanan data, perjudian, atau keuangan, Ethereum dirancang dengan tujuan terbuka, dan kami yakin ini sangat cocok untuk berfungsi sebagai lapisan dasar bagi sejumlah besar protokol keuangan dan non-keuangan di tahun-tahun mendatang. Aplikasi yang akan dibangun pada Ethereum di masa depan mungkin merupakan aplikasi yang bahkan tidak dapat kita bayangkan saat ini, dan kemungkinan terbuka tersebut mewakili janji sebenarnya dari platform tersebut.

References and Further Reading

Le whitepaper d'Ethereum s'appuie sur de nombreux travaux anterieurs en recherche sur les cryptomonnaies et les systemes distribues. Le protocole Bitcoin fondateur est decrit dans l'article original de 2008 de Satoshi Nakamoto "Bitcoin: A Peer-to-Peer Electronic Cash System", qui a introduit le concept de monnaie numerique basee sur la blockchain. Les premieres tentatives d'extension des fonctionnalites de Bitcoin incluent Namecoin, un systeme d'enregistrement de noms decentralise demontrant des applications blockchain au-dela de la monnaie, bien que limite par les capacites de script restreintes de Bitcoin.

Le whitepaper des colored coins a propose une methode pour representer des actifs alternatifs sur la blockchain Bitcoin en "colorant" des bitcoins specifiques pour representer d'autres actifs, tandis que Mastercoin a tente de creer une couche de protocole par-dessus Bitcoin pour des instruments financiers plus complexes. Les deux ont mis en evidence les limitations de la construction sur Bitcoin et ont motive le besoin d'une plateforme plus flexible. Le concept de societes autonomes decentralisees, explore dans Bitcoin Magazine, a fourni les fondements theoriques de la gouvernance organisationnelle par le biais de smart contracts.

Les composants techniques cles incluent la verification simplifiee des paiements (SPV) pour les clients legers, les arbres de Merkle pour la verification efficace des donnees et les tries Patricia pour la representation de l'etat d'Ethereum. Le protocole GHOST (Greedy Heaviest Observed Subtree), decrit dans un article de cryptographie de 2013, traite les problemes de securite decoulant des temps de bloc rapides et constitue la base du mecanisme de consensus d'Ethereum. Ces references representent les fondements intellectuels sur lesquels Ethereum a ete construit, combinant des perspectives de la cryptomonnaie, des systemes distribues, de la cryptographie et de la theorie des jeux pour creer une plateforme blockchain generaliste.

References and Further Reading

Whitepaper Ethereum dibuat berdasarkan penelitian ekstensif sebelumnya mengenai mata uang kripto dan penelitian sistem terdistribusi. Protokol dasar Bitcoin dijelaskan dalam makalah asli Satoshi Nakamoto tahun 2008 "Bitcoin: Sistem Uang Elektronik Peer-to-Peer," yang memperkenalkan konsep mata uang digital berbasis blockchain. Upaya awal untuk memperluas fungsionalitas Bitcoin mencakup Namecoin, sistem registrasi nama terdesentralisasi yang menunjukkan aplikasi blockchain di luar mata uang, meskipun dibatasi oleh kemampuan skrip Bitcoin yang terbatas.

Whitepaper koin berwarna mengusulkan metode untuk merepresentasikan aset alternatif pada blockchain Bitcoin dengan "mewarnai" bitcoin tertentu untuk mewakili aset lain, sementara Mastercoin berupaya membuat lapisan protokol di atas Bitcoin untuk instrumen keuangan yang lebih kompleks. Keduanya menyoroti keterbatasan pengembangan Bitcoin dan memotivasi perlunya platform yang lebih fleksibel. Konsep perusahaan otonom yang terdesentralisasi, yang dieksplorasi dalam Majalah Bitcoin, memberikan landasan teoretis bagi tata kelola organisasi melalui kontrak pintar.

Komponen teknis utama mencakup verifikasi pembayaran yang disederhanakan (SPV) untuk klien ringan, pohon Merkle untuk verifikasi data yang efisien, dan Patricia mencoba mewakili negara bagian Ethereum. Protokol GHOST (Greedy Heaviest Observed Subtree), yang dijelaskan dalam makalah kriptografi tahun 2013, mengatasi masalah keamanan yang timbul dari waktu blok yang cepat dan menjadi dasar mekanisme konsensus Ethereum. Referensi ini mewakili landasan intelektual di mana Ethereum dibangun, menggabungkan wawasan dari mata uang kripto, sistem terdistribusi, kriptografi, dan teori permainan untuk menciptakan platform blockchain tujuan umum.