Ethereum: Platform Kontrak Cerdas dan Aplikasi Terdesentralisasi Generasi Berikutnya
Abstract
Ethereum e uma plataforma de criptomoedas e aplicacoes descentralizadas de nova geracao que introduz uma blockchain com uma linguagem de programacao Turing-completa incorporada. Isso permite que qualquer pessoa escreva smart contracts e aplicacoes descentralizadas onde podem criar suas proprias regras arbitrarias para propriedade, formatos de transacao e funcoes de transicao de estado.
A inovacao fundamental do Ethereum e combinar a tecnologia blockchain pioneira do Bitcoin com um ambiente de programacao de proposito geral. Enquanto o Bitcoin fornece um sistema simples de transicao de estado para mover moeda de uma conta para outra, o Ethereum fornece uma plataforma onde desenvolvedores podem construir qualquer tipo de aplicacao descentralizada que possam imaginar, desde moedas alternativas e instrumentos financeiros ate sistemas de registro de dominios e organizacoes descentralizadas.
O Ethereum alcanca isso construindo o que e essencialmente a camada fundacional abstrata definitiva: uma blockchain com uma linguagem de programacao Turing-completa incorporada, permitindo que qualquer pessoa escreva smart contracts e aplicacoes descentralizadas onde podem criar suas proprias regras arbitrarias para propriedade, formatos de transacao e funcoes de transicao de estado. Uma versao basica do Namecoin pode ser escrita em duas linhas de codigo, e outros protocolos como moedas e sistemas de reputacao podem ser construidos em menos de vinte.
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
O conceito de moeda digital descentralizada, assim como aplicacoes alternativas como registros de propriedade, existe ha decadas. Os protocolos anonimos de dinheiro eletronico das decadas de 1980 e 1990, em sua maioria dependentes de uma primitiva criptografica conhecida como cegamento de Chaum, forneciam uma moeda com alto grau de privacidade, mas os protocolos em grande parte nao conseguiram ganhar tracao devido a sua dependencia de um intermediario centralizado. Em 1998, o b-money de Wei Dai tornou-se a primeira proposta a introduzir a ideia de criar dinheiro atraves da resolucao de quebra-cabecas computacionais, bem como consenso descentralizado, mas a proposta era escassa em detalhes sobre como o consenso descentralizado poderia realmente ser implementado.
Em 2009, uma moeda descentralizada foi implementada na pratica pela primeira vez por Satoshi Nakamoto, combinando primitivas estabelecidas para gerenciar propriedade atraves de criptografia de chave publica com um algoritmo de consenso para rastrear quem possui as moedas, conhecido como "proof of work". O mecanismo por tras do proof of work foi um avanco no campo porque resolveu simultaneamente dois problemas. Primeiro, forneceu um algoritmo de consenso simples e moderadamente eficaz, permitindo que os nos da rede concordassem coletivamente em um conjunto de atualizacoes canonicas ao estado do livro-razao do Bitcoin. Segundo, forneceu um mecanismo para permitir a entrada livre no processo de consenso, resolvendo o problema politico de decidir quem pode influenciar o consenso, enquanto simultaneamente prevenia ataques sybil.
A blockchain do Bitcoin provou ser notavelmente robusta ao longo de seus anos de operacao, mas e inerentemente limitada. A linguagem de scripting do Bitcoin e intencionalmente projetada para ser restritiva e nao Turing-completa, carecendo de loops e muitas outras funcionalidades que seriam necessarias para construir aplicacoes mais complexas. Essa limitacao existe para prevenir loops infinitos e outras formas de ataques computacionais, mas restringe severamente o que pode ser construido sobre o Bitcoin.
Nos ultimos cinco anos, houve varias tentativas de estender a funcionalidade do Bitcoin. Os colored coins buscaram usar a blockchain do Bitcoin para rastrear a propriedade de ativos alternativos, o Namecoin tentou criar um banco de dados descentralizado de registro de nomes, e varios protocolos metacoin buscaram construir camadas adicionais sobre o Bitcoin. Embora essas abordagens tenham mostrado promessa, foram finalmente limitadas pelas capacidades de scripting do Bitcoin e pela incapacidade de acessar dados da blockchain de dentro dos scripts.
O que o Ethereum pretende fornecer e uma blockchain com uma linguagem de programacao Turing-completa totalmente desenvolvida que pode ser usada para criar "contratos" que podem ser usados para codificar funcoes de transicao de estado arbitrarias, permitindo aos usuarios criar qualquer um dos sistemas descritos acima, bem como muitos outros que ainda nao imaginamos, simplesmente escrevendo a logica em poucas linhas de codigo.
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
Do ponto de vista tecnico, o livro-razao de uma criptomoeda como o Bitcoin pode ser pensado como um sistema de transicao de estado, onde ha um "estado" que consiste no status de propriedade de todos os bitcoins existentes e uma "funcao de transicao de estado" que recebe um estado e uma transacao e produz um novo estado que e o resultado. Em um sistema bancario padrao, por exemplo, o estado e um balanco patrimonial, uma transacao e uma solicitacao para mover \(X de A para B, e a funcao de transicao de estado reduz o valor na conta de A em \)X e aumenta o valor na conta de B em \(X. Se a conta de A tem menos de \)X inicialmente, a funcao de transicao de estado retorna um erro.

O "estado" no Bitcoin e a colecao de todas as moedas (tecnicamente, "saidas de transacao nao gastas" ou UTXO) que foram cunhadas e ainda nao gastas, onde cada UTXO tem uma denominacao e um proprietario (definido por um endereco de 20 bytes que e essencialmente uma chave publica criptografica). Uma transacao contem uma ou mais entradas, onde cada entrada contem uma referencia a um UTXO existente e uma assinatura criptografica produzida pela chave privada associada ao endereco do proprietario, e uma ou mais saidas, onde cada saida contem um novo UTXO a ser adicionado ao estado.
A funcao de transicao de estado APPLY(S,TX) - S' pode ser definida aproximadamente da seguinte forma:
- Para cada entrada em TX, se o UTXO referenciado nao esta em S, retornar um erro.
- Se a assinatura fornecida nao corresponde ao proprietario do UTXO, retornar um erro.
- Se a soma das denominacoes de todos os UTXO de entrada e menor que a soma das denominacoes de todos os UTXO de saida, retornar um erro.
- Retornar S com todos os UTXO de entrada removidos e todos os UTXO de saida adicionados.
A primeira metade do primeiro passo impede que os remetentes de transacoes gastem moedas que nao existem, a segunda metade do primeiro passo impede que os remetentes gastem moedas de outras pessoas, e o segundo passo garante a conservacao de valor. Para usar isso para pagamentos, o protocolo e o seguinte: suponha que Alice queira enviar 11.7 BTC para Bob. Primeiro, Alice procurara um conjunto de UTXO disponiveis que ela possui e que somem pelo menos 11.7 BTC. Realisticamente, Alice nao conseguira obter exatamente 11.7 BTC; digamos que o minimo que ela pode obter e 6+4+2=12. Ela entao cria uma transacao com essas tres entradas e duas saidas. A primeira saida sera 11.7 BTC com o endereco de Bob como proprietario, e a segunda saida sera o "troco" restante de 0.3 BTC, sendo a proprietaria a propria Alice.
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.

"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:
- Untuk setiap masukan di TX, jika UTXO yang direferensikan tidak ada di S, kembalikan kesalahan.
- Jika tanda tangan yang diberikan tidak cocok dengan pemilik UTXO, kembalikan kesalahan.
- Jika jumlah denominasi semua input UTXO lebih kecil dari jumlah denominasi semua output UTXO, kembalikan kesalahan.
- 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
Se tivessemos acesso a um servico centralizado confiavel, este sistema seria trivial de implementar; poderia simplesmente ser codificado exatamente como descrito, usando o disco rigido de um servidor centralizado para rastrear o estado. No entanto, com o Bitcoin estamos tentando construir um sistema de moeda descentralizado, entao precisaremos combinar o sistema de transicao de estado com um sistema de consenso para garantir que todos concordem com a ordem das transacoes. O processo de consenso descentralizado do Bitcoin requer que os nos na rede tentem continuamente produzir pacotes de transacoes chamados "blocos". A rede e projetada para produzir aproximadamente um bloco a cada dez minutos, com cada bloco contendo um carimbo de tempo, um nonce, uma referencia ao (ou seja, hash do) bloco anterior e uma lista de todas as transacoes que ocorreram desde o bloco anterior.

Com o tempo, isso cria uma "blockchain" persistente e em constante crescimento que se atualiza constantemente para representar o estado mais recente do livro-razao do Bitcoin. O algoritmo para verificar se um bloco e valido, expresso neste paradigma, e o seguinte:
- Verificar se o bloco anterior referenciado pelo bloco existe e e valido.
- Verificar que o carimbo de tempo do bloco e maior que o do bloco anterior e menor que 2 horas no futuro.
- Verificar que o proof of work do bloco e valido.
- Seja S o estado no final do bloco anterior.
- Suponha que TX e a lista de transacoes do bloco com n transacoes. Para todo i em 0...n-1, definir S = APPLY(S,TX[i]). Se qualquer aplicacao retornar um erro, sair e retornar falso.
- Retornar verdadeiro e registrar S como o estado no final deste bloco.
Essencialmente, cada transacao no bloco deve fornecer uma transicao de estado valida do que era o estado canonico antes da transacao ser executada para algum novo estado. Note que o estado nao esta codificado no bloco de nenhuma forma; e puramente uma abstracao a ser lembrada pelo no validador e so pode ser calculada (de forma segura) para qualquer bloco comecando a partir do estado genesis e aplicando sequencialmente cada transacao em cada bloco.
O minerador e recompensado por seu trabalho computacional com bitcoins recem-criados mais as taxas de transacao. O processo de mineracao funciona da seguinte forma: os mineradores pegam o cabecalho do bloco e fazem hash dele repetidamente com diferentes valores de nonce ate encontrar um hash que esteja abaixo de um certo alvo de dificuldade. Quando um minerador encontra tal hash, transmite o bloco para a rede, e outros nos verificam que o hash e valido e que todas as transacoes no bloco sao validas. O alvo de dificuldade e ajustado automaticamente pelo protocolo a cada 2016 blocos (aproximadamente duas semanas) para garantir que os blocos sejam produzidos a uma taxa aproximadamente constante.
Note que a longo prazo, a seguranca da blockchain depende dos mineradores terem um incentivo financeiro para se comportar honestamente. Se um atacante controlar mais de 50% do poder de mineracao da rede, ele pode potencialmente executar um "ataque de 51%" criando uma blockchain alternativa que cresce mais rapido que a cadeia honesta. No entanto, tal ataque exigiria enormes recursos computacionais e provavelmente resultaria nas recompensas de mineracao do atacante se tornando sem valor a medida que a rede perdesse confianca na integridade da 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.

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:
- Periksa apakah blok sebelumnya yang direferensikan oleh blok tersebut ada dan valid.
- Periksa apakah stempel waktu blok lebih besar dari blok sebelumnya dan kurang dari 2 jam ke depan.
- Periksa apakah bukti kerja pada blok tersebut valid.
- Misalkan S adalah keadaan pada akhir blok sebelumnya.
- 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.
- 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
Merkle trees sao uma estrutura de dados fundamental utilizada nos blocos do Bitcoin para permitir a verificacao eficiente e segura da inclusao de transacoes. Um Merkle tree e uma arvore binaria de hashes onde os nos folha contem hashes de transacoes individuais, e cada no interior contem o hash de seus dois filhos, construindo-se recursivamente ate um unico hash raiz que e armazenado no cabecalho do bloco. Essa estrutura hierarquica permite que qualquer pessoa verifique que uma transacao especifica esta incluida em um bloco baixando apenas o ramo do Merkle tree — a cadeia de hashes desde a transacao ate a raiz — em vez de baixar todas as transacoes do bloco.

Os ganhos de eficiencia sao substanciais: enquanto um no completo do Bitcoin deve armazenar toda a blockchain (aproximadamente 15GB em 2013), um no de verificacao de pagamento simplificada (SPV) so precisa baixar os cabecalhos dos blocos contendo as raizes do Merkle tree, exigindo apenas 4MB de dados. Para verificar uma transacao, um no SPV solicita o ramo do Merkle tree aos nos completos, o que requer apenas O(log n) dados onde n e o numero de transacoes em um bloco. Essa escalabilidade logaritmica torna viavel executar clientes leves em dispositivos moveis e ambientes com recursos limitados.
O uso de Merkle trees pelo Bitcoin demonstra um principio-chave: estruturas criptograficas podem reduzir drasticamente os requisitos de confianca e recursos para participar de uma rede descentralizada. Esse mesmo principio fundamenta o design do Ethereum, onde Merkle trees sao usados nao apenas para transacoes, mas tambem para armazenamento de estado e recibos, permitindo protocolos de clientes leves ainda mais sofisticados.
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.

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
O sucesso da blockchain do Bitcoin inspirou inumeras tentativas de estender o conceito alem da simples moeda. Namecoin, lancado em 2010, foi um dos primeiros exemplos — um banco de dados descentralizado de registro de nomes construido sobre uma blockchain, permitindo que os usuarios registrassem nomes em um espaco de nomes distribuido que nenhuma autoridade central poderia censurar ou revogar. Os colored coins surgiram como uma forma de representar ativos alternativos na blockchain do Bitcoin "marcando" saidas de transacao especificas para representar a propriedade de ativos do mundo real, acoes de empresas ou outras criptomoedas. Os metacoins e metaprotocolos como Mastercoin (posteriormente Omni) adicionaram funcionalidade extra sobre o Bitcoin codificando dados adicionais nas transacoes do Bitcoin e construindo regras de protocolo separadas por cima.
No entanto, todas essas abordagens sofriam de limitacoes fundamentais impostas pela arquitetura do Bitcoin. A linguagem de scripting do Bitcoin e intencionalmente restrita — nao pode acessar o estado da blockchain, carece de loops e fluxo de controle complexo, e fornece introspecao limitada sobre os valores das transacoes. Construir aplicacoes sofisticadas exigia solucoes alternativas desajeitadas: codificar metadados em campos de transacao que nunca foram destinados para esse proposito, depender de infraestrutura fora da cadeia para logica complexa, ou aceitar limitacoes severas no que o protocolo poderia realizar.
Essas restricoes motivaram a busca por uma plataforma blockchain de proposito mais geral. Em vez de construir mais um protocolo de proposito especial sobre a base limitada do Bitcoin, o Ethereum adota uma abordagem diferente: fornecer uma blockchain com uma linguagem de programacao Turing-completa incorporada, permitindo que qualquer pessoa escreva smart contracts e aplicacoes descentralizadas com regras arbitrarias para propriedade, formatos de transacao e funcoes de transicao de estado.
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, a linguagem usada para definir as condicoes de gasto das transacoes do Bitcoin, e intencionalmente projetada com severas limitacoes. Nao e Turing-completa — notavelmente, carece de loops e estruturas complexas de fluxo de controle. A linguagem opera como um ambiente de execucao simples baseado em pilha onde as operacoes empurram e extraem valores, avaliam condicoes criptograficas e finalmente retornam verdadeiro ou falso para determinar se uma transacao e valida. Embora essa simplicidade forneca beneficios de seguranca e facilite a analise formal, tambem torna impossivel implementar muitos tipos de aplicacoes.
Essas limitacoes se dividem em tres categorias principais. Primeiro, a falta de completude de Turing impede a implementacao de maquinas de estado complexas, arvores de decisao ou qualquer algoritmo que requeira iteracao. Segundo, a cegueira de valor significa que os scripts nao podem especificar controle detalhado sobre as quantias de saque — um UTXO so pode ser gasto em sua totalidade, com o troco enviado para uma nova saida. Um script nao pode, por exemplo, limitar saques a um maximo de X por dia enquanto deixa o restante bloqueado. Terceiro, a falta de consciencia do estado da blockchain significa que os UTXO estao gastos ou nao gastos sem estados intermediarios, tornando impossivel implementar contratos de multiplas etapas puramente na cadeia.
Essas restricoes tornam aplicacoes sofisticadas como organizacoes autonomas descentralizadas, carteiras de poupanca com limites de saque, exchanges descentralizadas ou mercados de predicao impossiveis ou exigem mecanismos desajeitados fora da cadeia. Um contrato financeiro avancado pode exigir acesso a dados de mercado, a capacidade de manter estado interno atraves de multiplas transacoes e logica condicional complexa — nada do que o Bitcoin Script pode fornecer. O Ethereum elimina essas limitacoes fornecendo uma linguagem Turing-completa com acesso completo ao estado da 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
O objetivo fundamental do Ethereum e fornecer uma blockchain com uma linguagem de programacao Turing-completa incorporada que permita a qualquer pessoa escrever smart contracts e aplicacoes descentralizadas onde possam criar suas proprias regras arbitrarias para propriedade, formatos de transacao e funcoes de transicao de estado. Em vez de projetar um protocolo para aplicacoes especificas como moeda, registro de nomes ou negociacao de ativos, o Ethereum fornece uma camada fundacional — uma plataforma de computacao distribuida baseada em blockchain que os desenvolvedores podem usar para construir qualquer aplicacao que possam imaginar.
A arquitetura difere fundamentalmente do modelo UTXO do Bitcoin. O Ethereum usa um sistema baseado em contas onde o estado da blockchain consiste em um mapeamento de enderecos para objetos de conta. Cada conta tem um saldo, um contador de transacoes (nonce), e para contas de contrato, codigo associado e armazenamento. A plataforma inclui uma linguagem de programacao Turing-completa incorporada para escrever codigo de contrato que e executado na Maquina Virtual Ethereum (EVM), um ambiente de execucao baseado em pilha que processa transacoes e transicoes de estado.
Essa generalidade permite uma vasta gama de aplicacoes: criptomoedas alternativas com regras de emissao personalizadas, derivativos financeiros e stablecoins, sistemas de identidade e reputacao, armazenamento de arquivos descentralizado, organizacoes autonomas descentralizadas (DAOs), e muito mais. O whitepaper enfatiza que o Ethereum nao e otimizado para nenhum caso de uso particular, mas sim fornece os blocos de construcao fundamentais — contas, transacoes, uma linguagem Turing-completa e execucao medida por gas — que os desenvolvedores podem combinar para criar qualquer aplicacao que o ecossistema demande.
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
No Ethereum, o estado e composto por contas, e ha dois tipos fundamentais. As contas de propriedade externa (EOAs) sao controladas por chaves privadas e nao possuem codigo associado — representam usuarios humanos ou entidades externas interagindo com a blockchain. As contas de contrato sao controladas pelo seu codigo de contrato e sao ativadas quando recebem uma mensagem ou transacao. Ambos os tipos compartilham uma estrutura comum: cada conta tem um nonce (um contador usado para garantir que cada transacao so possa ser processada uma vez), um saldo de ether, e para os contratos especificamente, codigo de contrato e armazenamento persistente.
Ether e a criptomoeda interna principal do Ethereum, servindo tanto como meio de transferencia de valor quanto como unidade fundamental para pagar taxas de transacao (gas). Diferentemente do modelo UTXO do Bitcoin onde o valor esta distribuido entre multiplas saidas nao gastas, as contas do Ethereum mantem um saldo simples que aumenta quando recebem ether e diminui quando o enviam. Esse modelo baseado em contas simplifica muitos tipos de aplicacoes, particularmente aquelas que requerem estado persistente ou controle de acesso complexo, embora introduza diferentes consideracoes de seguranca comparado com a abordagem do Bitcoin.
A distincao entre EOAs e contas de contrato e crucial para entender o funcionamento do Ethereum. As EOAs podem iniciar transacoes criando e assinando mensagens com suas chaves privadas, pagando taxas de gas para que suas transacoes sejam incluidas em blocos. As contas de contrato nao podem iniciar transacoes por si mesmas, mas podem enviar mensagens para outros contratos em resposta ao recebimento de uma transacao ou mensagem, permitindo cadeias complexas de execucao onde uma unica transacao externa desencadeia multiplas interacoes de contrato para contrato.
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
As transacoes no Ethereum sao pacotes de dados assinados criados por contas de propriedade externa e transmitidos para a rede. Uma transacao contem o endereco do destinatario, uma assinatura criptografica provando a identidade do remetente, a quantidade de ether a transferir, um campo de dados opcional (crucial para interagir com contratos), STARTGAS (o numero maximo de passos computacionais que a transacao pode realizar) e GASPRICE (a taxa por passo computacional que o remetente esta disposto a pagar). Os mineradores coletam essas transacoes, as validam, as executam e as incluem em blocos, recebendo as taxas de gas como compensacao.
As mensagens sao conceitualmente similares as transacoes, mas sao produzidas por contratos em vez de atores externos. Quando o codigo de um contrato e executado, ele pode enviar mensagens para outros contratos — essas mensagens internas contem o remetente (o endereco do contrato), o destinatario, uma quantidade de ether a transferir, uma carga de dados opcional e um limite de STARTGAS. As mensagens permitem a comunicacao de contrato para contrato, possibilitando que aplicacoes complexas sejam construidas a partir de multiplos contratos interagindo entre si em vez de programas monoliticos.
O mecanismo de gas e crucial para prevenir abusos: cada passo computacional, operacao de armazenamento e byte de dados em uma transacao consome gas. Se uma transacao ficar sem gas antes de ser concluida, todas as mudancas de estado sao revertidas (exceto o pagamento de gas ao minerador), prevenindo que loops infinitos ou computacao excessiva paralisem a rede. O remetente especifica tanto o orcamento total de gas (STARTGAS) quanto o preco que esta disposto a pagar por unidade (GASPRICE), e qualquer gas nao utilizado e reembolsado apos a execucao ser concluida.
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
A funcao de transicao de estado do Ethereum APPLY(S,TX) - S' define como uma transacao transforma o estado da blockchain, e segue uma sequencia precisa de etapas. Primeiro, o sistema verifica a validade da transacao: verificando que a assinatura esta correta, confirmando que o nonce corresponde ao nonce da conta do remetente, e garantindo que o remetente tem saldo suficiente para pagar o custo inicial (STARTGAS x GASPRICE mais o valor enviado). Se qualquer verificacao falhar, a transacao e rejeitada antes que a execucao comece. Se valida, a taxa de transacao e deduzida da conta do remetente, o nonce do remetente e incrementado, e um contador de gas inicial e definido como STARTGAS menos uma taxa por byte para os dados da transacao.

Em seguida, o sistema transfere o valor de ether especificado do remetente para o destinatario. Se o destinatario e uma conta de propriedade externa, isso completa a transacao. Se o destinatario e uma conta de contrato, o codigo do contrato e executado na Maquina Virtual Ethereum, consumindo gas para cada operacao ate que o codigo seja concluido com sucesso, o codigo pare explicitamente, ou o gas se esgote. Durante a execucao, o contrato pode ler e modificar seu armazenamento, enviar mensagens para outros contratos e criar novos contratos.
Finalmente, se a transferencia de valor falhou (saldo insuficiente) ou a execucao do codigo falhou (ficar sem gas ou encontrar um erro), todas as mudancas de estado sao revertidas — exceto que o remetente ainda paga as taxas de gas ao minerador pela computacao realizada. Se a execucao foi bem-sucedida, o gas restante e reembolsado ao remetente, e o gas consumido e enviado ao minerador como taxa. Esse mecanismo garante que os mineradores sejam compensados pela computacao enquanto previne que a execucao descontrolada consuma recursos ilimitados.
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.

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
A Maquina Virtual Ethereum (EVM) e o ambiente de execucao onde o codigo dos contratos e executado — uma maquina virtual de baixo nivel baseada em pilha, similar em conceito a Maquina Virtual Java ou WebAssembly. O codigo do contrato e armazenado como uma sequencia de bytes, onde cada byte representa uma operacao (opcode) que a EVM pode executar. O modelo de execucao e deliberadamente simples e deterministico: cada no executando a EVM com o mesmo estado de entrada e transacao deve chegar ao mesmo estado de saida, garantindo o consenso atraves da rede.
A EVM fornece tres tipos distintos de armazenamento para computacao. A pilha (stack) e uma estrutura de ultimo a entrar, primeiro a sair (LIFO) limitada a 1024 elementos, usada para valores de operacao imediatos. A memoria (memory) e um array de bytes infinitamente expansivel que persiste apenas durante a duracao de uma unica chamada de mensagem e e reiniciada entre execucoes. O armazenamento (storage) e o armazem persistente de chave-valor permanentemente associado a cada conta de contrato, onde os contratos mantem seu estado de longo prazo entre transacoes. Esses tipos de armazenamento tem precos diferentes em gas — as operacoes de pilha e memoria sao baratas, enquanto as operacoes de armazenamento sao caras para prevenir o inchaamento da blockchain.
Durante a execucao, o codigo do contrato tem acesso a contexto crucial: pode ler o endereco do remetente da mensagem, a quantidade de ether enviada, a carga de dados fornecida pelo invocador, e propriedades a nivel de bloco como o numero do bloco atual, o carimbo de tempo e o endereco do minerador. O codigo pode retornar um array de bytes de saida ao invocador e pode enviar mensagens para outros contratos ou criar novos contratos. Esse modelo de execucao e Turing-completo — loops e fluxo de controle complexo sao possiveis — mas o mecanismo de gas garante que toda a computacao termine em tempo limitado, resolvendo o problema da parada de forma economica em vez de atraves de restricoes da linguagem.
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
A blockchain do Ethereum e fundamentalmente similar a do Bitcoin, servindo como um banco de dados contendo cada transacao ja executada. No entanto, enquanto o Bitcoin armazena apenas uma lista de transacoes, o Ethereum armazena tanto a lista de transacoes quanto o estado mais recente. Cada bloco no Ethereum contem o hash do bloco anterior, uma raiz de estado (o hash raiz do Merkle Patricia trie representando o estado completo), uma raiz de transacoes, uma raiz de recibos (armazenando dados da execucao de transacoes), junto com valores de dificuldade, carimbo de tempo e nonce. O estado em si e um grande Merkle Patricia trie mapeando enderecos para objetos de conta, onde cada conta tem um saldo, nonce, codigo (se presente) e armazenamento.

O Ethereum usa uma versao modificada do protocolo GHOST (Greedy Heaviest Observed Subtree) para abordar problemas de seguranca que surgem de tempos de bloco rapidos. Nos protocolos tradicionais de cadeia mais longa, blocos rapidos levam a altas taxas de obsolescencia, reduzindo a seguranca da rede e aumentando os riscos de centralizacao ja que grandes mineradores desperdicam menos computacao em blocos obsoletos. O GHOST inclui blocos obsoletos (chamados "tios" no Ethereum) no calculo de qual cadeia e mais longa, e fornece recompensas parciais aos blocos tio, incentivando mineradores a referencia-los. Isso permite ao Ethereum manter um tempo de bloco alvo de aproximadamente 12 segundos enquanto preserva a seguranca da rede.
O algoritmo de mineracao funciona de forma similar ao proof of work do Bitcoin, exigindo que os mineradores encontrem um nonce tal que o hash do bloco esteja abaixo de um certo alvo de dificuldade. No entanto, o algoritmo de mineracao de uso intensivo de memoria do Ethereum (Ethash) e projetado para ser resistente a ASIC, promovendo um ecossistema de mineracao mais descentralizado. A dificuldade se ajusta dinamicamente com base nos tempos de bloco para manter o alvo de ~12 segundos, garantindo uma producao de blocos consistente enquanto o protocolo GHOST fornece garantias de seguranca apesar dos tempos de bloco mais rapidos comparados com a media de 10 minutos do 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 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
As aplicacoes que podem ser construidas sobre o Ethereum se dividem em tres amplas categorias. A primeira categoria sao as aplicacoes financeiras, fornecendo aos usuarios formas mais poderosas de gerenciar e participar de contratos envolvendo seu dinheiro. Isso inclui sub-moedas, derivativos financeiros, contratos de hedge, carteiras de poupanca com limites de saque, testamentos que distribuem fundos automaticamente, e ate contratos de emprego que calculam pagamentos com base na verificacao de trabalho concluido. Essas aplicacoes aproveitam a programabilidade do Ethereum para criar instrumentos financeiros complexos que seriam impossiveis ou extremamente dificeis de implementar em sistemas tradicionais ou mesmo no Bitcoin.
A segunda categoria sao as aplicacoes semi-financeiras, onde o dinheiro esta envolvido, mas tambem ha um componente nao monetario substancial no que esta sendo feito. Um exemplo perfeito sao as recompensas auto-executaveis para solucoes de problemas computacionais. Alguem poderia publicar um problema computacional junto com uma recompensa, e o contrato poderia verificar automaticamente as solucoes enviadas e pagar a recompensa para a primeira resposta correta. Essa categoria faz a ponte entre financas puras e outros dominios, usando incentivos economicos para resolver problemas ou coordenar comportamento.
A terceira categoria sao as aplicacoes que nao tem nada a ver com dinheiro, como sistemas de votacao online e governanca descentralizada. Essas aplicacoes nao financeiras demonstram a flexibilidade do Ethereum como plataforma de proposito geral. Os exemplos incluem sistemas de nomes de dominio descentralizados como Namecoin, sistemas de reputacao, armazenamento de arquivos descentralizado e ferramentas de governanca organizacional. De todos esses tipos de aplicacoes, os sistemas de tokens surgiram como os mais comuns e fundamentais, servindo como blocos de construcao para muitas outras aplicacoes.
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
Os sistemas de tokens sao surpreendentemente simples de implementar no Ethereum, apesar de serem uma das aplicacoes mais poderosas e comuns. Em sua essencia, os sistemas de tokens sao simplesmente um banco de dados com uma unica operacao: subtrair X unidades da conta A e adicionar X unidades a conta B, com a condicao de que A tinha pelo menos X unidades antes da transacao e a transacao e autorizada por A. A implementacao requer manter um mapeamento de enderecos para saldos e fornecer uma funcao de transferencia que realize as verificacoes apropriadas antes de mover tokens entre contas.
O codigo do contrato para um sistema de tokens basico e notavelmente simples e pode ser escrito em apenas algumas linhas. Consiste em uma estrutura de dados mapeando enderecos para saldos, uma funcao de inicializacao que atribui o fornecimento inicial de tokens, e uma funcao de transferencia que verifica o saldo e a autorizacao do remetente antes de executar a transferencia. Essa simplicidade contrasta fortemente com a complexidade necessaria para implementar sistemas semelhantes no Bitcoin, que exigiria solucoes alternativas significativas e limitacoes devido as capacidades restritas de scripting do Bitcoin.
Os tokens no Ethereum podem representar virtualmente qualquer coisa de valor. Podem representar sub-moedas com suas proprias politicas monetarias, derivativos financeiros que rastreiam ativos externos, acoes de empresas com direitos a dividendos, pontos de fidelidade em programas de clientes, commodities como ouro ou petroleo, ou ate representacoes de propriedade fisica. A programabilidade do Ethereum permite que esses tokens tenham regras arbitrarias governando seu comportamento, como restricoes de transferencia, mecanismos de queima automatica, distribuicoes de dividendos ou direitos de governanca. Essa flexibilidade tornou os sistemas de tokens o bloco de construcao fundamental para grande parte do ecossistema 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
Os derivativos financeiros representam uma das aplicacoes mais fundamentais e importantes dos smart contracts do Ethereum. Um simples contrato de hedge demonstra o mecanismo basico: a parte A deposita uma certa quantidade de ether no valor de \(1000, a parte B deposita uma quantidade equivalente, e o contrato registra o valor em USD do ether naquele momento usando um feed de dados. Apos 30 dias, o contrato recalcula o valor e envia ether no valor de \)1000 para A e o restante para B. Se o preco do ether subiu, A recebe menos ether mas mantem o valor de $1000; se caiu, A recebe mais ether para manter esse valor. Isso permite que A se proteja contra a volatilidade enquanto B especula sobre os movimentos de preco.
A implementacao de tais contratos requer acesso a dados externos atraves de contratos oraculo ou feeds de dados. Esses oraculos fornecem informacoes de precos, dados meteorologicos ou outras informacoes do mundo real que os contratos precisam para executar corretamente. Embora os oraculos introduzam uma dependencia de confianca, podem ser projetados com redundancia e incentivos criptoeconomicos para fornecer dados confiaveis. O contrato em si simplesmente consulta o oraculo, realiza calculos com base nesses dados e distribui fundos de acordo com sua logica programada.
Stablecoins e instrumentos financeiros mais complexos podem ser construidos usando mecanismos similares. Um contrato de stablecoin poderia manter uma reserva de ether e emitir tokens atrelados a uma moeda fiduciaria, ajustando automaticamente o fornecimento ou os requisitos de colateral com base em feeds de precos. Contratos de opcoes, futuros, swaps e outros derivativos que normalmente exigiriam marcos legais complexos e intermediarios confiaveis podem ser codificados como smart contracts auto-executaveis. Essa infraestrutura de financas programaveis permite engenharia financeira sofisticada mantendo as garantias de transparencia e seguranca da tecnologia 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
Um sistema de registro de nomes similar ao Namecoin e trivialmente implementavel no Ethereum e serve como o exemplo mais simples de um sistema de identidade. O contrato mantem um banco de dados com uma tabela chave-valor mapeando nomes para dados associados (como enderecos IP, chaves publicas ou outras informacoes). Qualquer pessoa pode registrar um nome enviando uma transacao para o contrato junto com uma pequena taxa de registro, desde que esse nome ainda nao esteja em uso. O proprietario pode atualizar os dados associados a qualquer momento, e os nomes podem ser tornados transferiveis ou permanentes de acordo com as regras codificadas no contrato.
Sistemas de identidade mais avancados podem ser construidos sobre essa base para incluir pontuacoes de reputacao, relacoes de rede de confianca e verificacao de identidade descentralizada. Por exemplo, um contrato poderia manter pontuacoes de reputacao baseadas em transacoes verificadas, avaliacoes de pares ou conclusao de tarefas. Essas pontuacoes seriam publicamente visiveis e criptograficamente vinculadas a enderecos especificos, criando uma reputacao portatil que segue os usuarios atraves das aplicacoes. Os sistemas de rede de confianca poderiam permitir que os usuarios atestassem a identidade de outros, construindo grafos sociais que ajudam a distinguir usuarios legitimos de atores maliciosos.
Tais sistemas de identidade e reputacao se tornam particularmente poderosos quando integrados com outras aplicacoes. Um marketplace poderia exigir pontuacoes minimas de reputacao para vendedores, uma plataforma de emprestimos poderia ajustar as taxas de juros com base na reputacao do tomador, ou uma rede social poderia usar a rede de confianca para filtrar spam e conteudo fraudulento. Ao fornecer uma infraestrutura compartilhada de identidade que qualquer aplicacao pode consultar, o Ethereum permite uma nova classe de aplicacoes baseadas em confianca que nao dependem de provedores de identidade centralizados ou sistemas de reputacao proprietarios.
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
O armazenamento descentralizado de arquivos pode ser implementado atraves de contratos Ethereum que coordenam entre usuarios que precisam de armazenamento e provedores que o oferecem. Em um modelo de "Dropbox descentralizado", os usuarios pagariam uma taxa mensal para enviar arquivos, com o contrato distribuindo pagamentos aos provedores de armazenamento que provem que estao realmente armazenando os dados. O mecanismo de prova funciona atraves de desafios criptograficos periodicos: o contrato seleciona aleatoriamente porcoes de arquivos e pede aos provedores que fornecam provas de Merkle tree demonstrando que possuem aqueles dados. Os provedores que falharem nos desafios ou ficarem offline perderiam seus depositos e fluxo de pagamentos futuros.
Essa abordagem oferece varias vantagens sobre o armazenamento centralizado. As provas de Merkle tree permitem verificacao eficiente — os usuarios e o contrato podem confirmar a disponibilidade de arquivos sem baixar arquivos inteiros. O sistema distribui naturalmente os arquivos entre multiplos provedores independentes, criando redundancia sem exigir protocolos de replicacao explicitos. Os incentivos economicos alinham o comportamento do provedor com as necessidades do usuario: os provedores ganham dinheiro armazenando dados de forma confiavel e perdem dinheiro se nao o fizerem. Isso elimina o requisito de confianca inerente nas solucoes de armazenamento centralizado.
Os custos de armazenamento em tal sistema podem ser potencialmente mais baixos que as alternativas centralizadas por varias razoes. A eliminacao de precos monopolistas permite que a competicao de mercado reduza os custos para perto do custo real de armazenamento. A redundancia implicita de multiplos usuarios armazenando arquivos semelhantes pode reduzir os requisitos totais de armazenamento. Nao ha necessidade de infraestrutura cara de data centers ou custos corporativos gerais. No entanto, permanecem desafios em torno dos mecanismos de pagamento, garantir participacao adequada de provedores e gerenciar o equilibrio entre redundancia e custo. Apesar desses desafios, o armazenamento descentralizado demonstra como o Ethereum pode coordenar interacoes complexas de multiplas partes apenas atraves de incentivos economicos.
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
Uma Organizacao Autonoma Descentralizada (DAO) e uma entidade virtual que possui um conjunto de membros ou acionistas que coletivamente tem o direito de gastar os fundos da entidade e modificar seu codigo. Uma DAO tipica opera com uma regra simples: 67% dos membros sao necessarios para tomar decisoes de gasto ou modificar o codigo da organizacao. Os membros podem enviar propostas, votar nelas, e se uma proposta receber apoio suficiente, o contrato executa automaticamente a decisao. As participacoes de membresia podem ser transferiveis, permitindo um mercado liquido para a participacao na DAO, e diferentes classes de participacoes podem ter diferentes direitos de voto ou reivindicacoes economicas.
O design mais simples de uma DAO e um contrato auto-modificavel que mantem uma lista de membros e requer maioria de 2/3 de votos para alterar qualquer aspecto do contrato, incluindo suas proprias regras de votacao. Os membros enviariam mudancas de codigo como transacoes, outros membros votariam, e ao atingir o limiar, o contrato se atualizaria. Designs mais sofisticados poderiam incluir sistemas de votacao delegada onde os membros podem atribuir seu poder de voto a representantes, ou democracia liquida onde os votos podem ser delegados mas reivindicados a qualquer momento para decisoes importantes.
As DAOs podem servir a diversos propositos alem da simples gestao de fundos. Uma DAO poderia funcionar como uma corporacao descentralizada, contratando prestadores de servicos, comprando servicos e distribuindo lucros aos acionistas — tudo governado por codigo de smart contract em vez de estruturas legais tradicionais. Poderia operar como um fundo de investimento descentralizado, com os membros votando sobre quais projetos financiar. Poderia gerenciar um recurso comum, com as partes interessadas votando sobre as regras de alocacao. A ideia-chave e que ao codificar as regras de governanca em codigo transparente e imutavel e vincula-las a uma participacao economica, as DAOs podem coordenar decisoes de grupo sem exigir gestao hierarquica tradicional ou aplicacao legal.
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
Alem das categorias principais ja discutidas, o Ethereum possibilita numerosas outras aplicacoes. Carteiras de poupanca com recursos de seguranca sofisticados podem impor limites de saque diarios enquanto fornecem chaves de emergencia para recuperacao, protegendo os usuarios contra roubo enquanto mantem o controle final. Contratos de seguro agricola podem pagar automaticamente aos agricultores com base em feeds de dados meteorologicos, eliminando o processamento de sinistros e reduzindo os custos administrativos. Aplicacoes de apostas peer-to-peer podem operar sem nenhum intermediario confiavel, com smart contracts mantendo as apostas e pagando automaticamente aos vencedores com base em numeros aleatorios verificaveis ou dados de eventos do mundo real.
Os mercados de predicao on-chain permitem que os usuarios apostem em eventos futuros, criando poderosos mecanismos de previsao atraves da sabedoria das massas. Estes podem ser aprimorados com protocolos do tipo SchellingCoin para criar oraculos descentralizados: os participantes reportam dados independentemente (como resultados eleitorais ou condicoes meteorologicas), e aqueles cujos relatorios correspondem a maioria recebem recompensas enquanto os valores discrepantes sao penalizados. Essa abordagem criptoeconomica incentiva o relato honesto e pode fornecer dados do mundo real confiaveis para outros contratos sem exigir confianca em nenhum provedor de oraculo individual.
As carteiras multisig representam outra aplicacao importante, permitindo o controle compartilhado de fundos entre multiplas partes. Uma carteira multisig 2-de-3 poderia exigir que duas de tres partes designadas aprovem uma transacao antes que os fundos possam ser gastos, util para acordos de garantia, tesourarias corporativas ou seguranca pessoal. Os marketplaces descentralizados podem combinar sistemas de identidade, pontuacoes de reputacao, contratos de garantia e mecanismos de resolucao de disputas para permitir o comercio peer-to-peer sem plataformas centralizadas. Cada uma dessas aplicacoes demonstra como a programabilidade do Ethereum permite novos modelos de confianca e estruturas organizacionais.
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
A implementacao do Ethereum do protocolo GHOST modificado inclui regras especificas para inclusao e recompensas de tios. Os tios devem ser filhos diretos de um ancestral do bloco atual (entre 2 e 7 geracoes atras), devem ser cabecalhos de bloco validos, devem ser distintos de tios anteriores e nao devem ser ancestrais diretos do bloco atual. Os blocos tio recebem 87.5% da recompensa padrao de bloco, enquanto o bloco que os inclui recebe um adicional de 3.125% por cada tio incluido (ate dois tios). Essa estrutura de incentivos encoraja os mineradores a referenciar blocos obsoletos que observam, fortalecendo a seguranca da rede enquanto recompensa mineradores que tiveram ma sorte temporaria com a propagacao da rede.
O sistema de taxas e baseado no conceito de "gas", onde cada operacao computacional tem um custo fixo em gas. Por exemplo, uma operacao de multiplicacao custa 5 gas, um hash SHA256 custa 20 gas, e cada transacao tem um custo base de 21.000 gas. Os usuarios especificam tanto um limite de gas (maximo de gas que estao dispostos a consumir) quanto um preco de gas (quanto ether pagarao por unidade de gas). Esse sistema serve a multiplos propositos: previne loops infinitos e ataques de negacao de servico garantindo que toda computacao seja paga, cria um mercado para espaco de bloco onde os usuarios fazem lances via precos de gas, e permite que mineradores definam um preco minimo de gas que estao dispostos a aceitar, protegendo os recursos da rede.

A escalabilidade continua sendo uma preocupacao significativa, ja que cada no completo deve processar cada transacao para verificar o estado. As arquiteturas blockchain atuais lutam para igualar o throughput de transacoes dos sistemas centralizados. Solucoes potenciais incluem sharding de estado, onde diferentes nos processam diferentes subconjuntos de transacoes, e uma transicao de proof of work para consenso proof of stake, que poderia permitir producao de blocos mais eficiente. Clientes leves usando provas de Merkle podem verificar transacoes sem processar todos os blocos, mas alguem ainda precisa processar tudo. Esses desafios de escalabilidade representam areas ativas de pesquisa e desenvolvimento criticas para a viabilidade de longo prazo do 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.

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
O protocolo Ethereum foi originalmente concebido como uma versao aprimorada de uma criptomoeda, fornecendo recursos avancados como garantias on-blockchain, limites de saque e contratos financeiros atraves de uma linguagem de programacao altamente generalizada. No entanto, o protocolo Ethereum vai muito alem de apenas moeda. Os protocolos em torno de armazenamento descentralizado de arquivos, computacao descentralizada e mercados de predicao descentralizados, entre dezenas de outros conceitos, tem o potencial de aumentar substancialmente a eficiencia da industria computacional e fornecer um impulso massivo para outros protocolos peer-to-peer ao adicionar pela primeira vez uma camada economica.
Em vez de fornecer um conjunto limitado de operacoes projetadas para casos de uso especificos, o Ethereum fornece uma linguagem de programacao Turing-completa que permite aos desenvolvedores construir qualquer aplicacao que possam projetar. Quer inventar seu proprio derivativo financeiro? Criar sua propria moeda? Estabelecer um governo na blockchain? Tudo isso e trivialmente implementavel com o sistema de scripting do Ethereum. O poder da plataforma nao reside em prever quais aplicacoes serao construidas, mas em fornecer a infraestrutura fundacional que torna facil construi-las.
O conceito de uma funcao de transicao de estado arbitraria implementada pelo protocolo Ethereum fornece uma plataforma com potencial unico. Em vez de ser um protocolo fechado, de proposito unico, destinado a aplicacoes especificas em armazenamento de dados, apostas ou financas, o Ethereum e aberto por design, e acreditamos que e extremamente adequado para servir como camada fundacional para um grande numero de protocolos tanto financeiros quanto nao financeiros nos anos vindouros. As aplicacoes que serao construidas sobre o Ethereum no futuro podem ser aquelas que nem podemos imaginar hoje, e essa possibilidade aberta representa a verdadeira promessa da plataforma.
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
O whitepaper do Ethereum se baseia em um extenso trabalho previo em pesquisa de criptomoedas e sistemas distribuidos. O protocolo fundacional do Bitcoin e descrito no artigo original de 2008 de Satoshi Nakamoto "Bitcoin: A Peer-to-Peer Electronic Cash System", que introduziu o conceito de moeda digital baseada em blockchain. As primeiras tentativas de estender a funcionalidade do Bitcoin incluem o Namecoin, um sistema de registro de nomes descentralizado que demonstra aplicacoes de blockchain alem da moeda, embora limitado pelas capacidades restritas de scripting do Bitcoin.
O whitepaper de colored coins propos um metodo para representar ativos alternativos na blockchain do Bitcoin "colorindo" bitcoins especificos para representar outros ativos, enquanto o Mastercoin tentou criar uma camada de protocolo sobre o Bitcoin para instrumentos financeiros mais complexos. Ambos destacaram as limitacoes de construir sobre o Bitcoin e motivaram a necessidade de uma plataforma mais flexivel. O conceito de corporacoes autonomas descentralizadas, explorado na Bitcoin Magazine, forneceu fundamentos teoricos para governanca organizacional atraves de smart contracts.
Os componentes tecnicos chave incluem verificacao de pagamento simplificada (SPV) para clientes leves, Merkle trees para verificacao eficiente de dados e Patricia tries para a representacao de estado do Ethereum. O protocolo GHOST (Greedy Heaviest Observed Subtree), descrito em um artigo de criptografia de 2013, aborda problemas de seguranca que surgem de tempos de bloco rapidos e forma a base do mecanismo de consenso do Ethereum. Essas referencias representam os fundamentos intelectuais sobre os quais o Ethereum foi construido, combinando conhecimentos de criptomoedas, sistemas distribuidos, criptografia e teoria dos jogos para criar uma plataforma blockchain de proposito geral.
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.