Contratos Inteligentes – Ethereum

Um contrato é uma coleção de código (suas funções) e dados (seu estado) que reside em um endereço específico no blockchain Ethereum. As contas de contrato são capazes de passar mensagens entre si, além de fazer praticamente todo o cálculo de Turing. Os contratos vivem no blockchain em um formato binário específico do Ethereum chamado Bytecode do Ethereum Virtual Machine (EVM).

Os contratos normalmente são escritos em alguma linguagem de alto nível, como Solidity, e depois compilados em bytecode para serem carregados no blockchain.

Escrevendo um contrato 

Nenhuma linguagem seria completa sem um programa Hello World. Operando dentro do ambiente Ethereum, Solidity não tem nenhuma maneira óbvia de “produzir” uma string. O mais próximo que podemos fazer é usar um evento de log para colocar uma string no blockchain:

contract HelloWorld {       
event Print(string out);
function() {
Print("Hello, World!");
}
}

Fonte: http://www.ethdocs.org/en/latest/contracts-and-transactions/contracts.html#what-is-a-contract

EthStats

EthStats.net é um painel de estatísticas ao vivo da rede Ethereum. Esse painel exibe informações importantes, como o bloco atual, a dificuldade de hash, o preço do gás e os gastos com gás. Os nós mostrados na página são apenas uma seleção de nós reais na rede. Qualquer pessoa pode adicionar seu nó ao painel EthStats.

Fonte:
http://www.ethdocs.org/en/latest/network/connecting-to-the-network.html

Mineração – Ethereum

Introdução 

A palavra mineração origina-se no contexto da analogia do ouro para as moedas criptografadas. Ouro ou metais preciosos são escassos, assim como tokens digitais, e a única maneira de aumentar o volume total é através da mineração. Isso é apropriado na medida em que no Ethereum também, o único modo de emissão após o lançamento é via mineração. Ao contrário desses exemplos, no entanto, a mineração também é a maneira de proteger a rede criando, verificando, publicando e propagando blocos no blockchain.Mineração de éter = Protegendo a rede = Verificando a computaçã

O que é mineração? 

O Ethereum, como todas as tecnologias blockchain, usa um modelo de segurança baseado em incentivos. O consenso baseia-se na escolha do bloco com a maior dificuldade total. Mineiros produzem blocos que os outros verificam quanto à validade. Entre outros critérios de boa formação, um bloco só é válido se contiver prova de trabalho (PoW) de uma dada dificuldade .

O blockchain Ethereum é em muitos aspectos semelhante ao blockchain Bitcoin, embora tenha algumas diferenças. A principal diferença entre o Ethereum e o Bitcoin em relação à arquitetura blockchain é que, diferentemente do Bitcoin, os blocos Ethereum contêm uma cópia da lista de transações e do estado mais recente (o hash raiz do merkle patricia trie codificando o estado para ser mais preciso). Além disso, dois outros valores, o número do bloco e a dificuldade, também são armazenados no bloco.

O algoritmo de prova de trabalho usado é chamado Ethash (uma versão modificada do algoritmo de Dagger-Hashimoto ) e envolve encontrar uma entrada nonce no algoritmo para que o resultado fique abaixo de um certo limite de dificuldade. O ponto nos algoritmos de PoW é que não há melhor estratégia para encontrar um nonce do que enumerar as possibilidades, enquanto a verificação de uma solução é trivial e barata. Como as saídas têm uma distribuição uniforme (como são o resultado da aplicação de uma função hash), podemos garantir que, em média, o tempo necessário para encontrar tal nonce depende do limite de dificuldade. Isso possibilita controlar o tempo de encontrar um novo bloco apenas manipulando a dificuldade.

Conforme ditado pelo protocolo, a dificuldade se ajusta dinamicamente de tal forma que, em média, um bloco é produzido pela rede inteira a cada 15 segundos, ou seja um bloco produzido a cada 15 segundos. Essa “pulsação” basicamente pontua a sincronização do estado do sistema e garante que a manutenção de uma bifurcação (para permitir gastos duplicados) ou reescrever o histórico por agentes mal-intencionados, é impossível a menos que o invasor possua mais da metade da energia de mineração de rede).

Qualquer nó que participe da rede pode ser um minerador e sua receita esperada da mineração será diretamente proporcional à sua potência de mineração (relativa) ou hashate.

Recompensas de mineração 

O minerador bem-sucedido do bloco vencedor recebe:

  • uma recompensa de bloco estático para o bloco ‘vencedor’, consistindo exatamente em 5.0 Éter
  • custo do gás gasto dentro do bloco – uma quantidade de éter que depende do preço atual do gás
  • uma recompensa extra por incluir tios como parte do bloco, na forma de um adicional de 1/32 por tio incluído

Todo o gás consumido pela execução de todas as transações no bloco submetido pelo minerador vencedor é pago pelos remetentes de cada transação. O custo do gás incorrido é creditado na conta do mineiro como parte do protocolo de consenso. Com o tempo, espera-se que estes diminuam a recompensa do bloco estático.

Os tios são blocos obsoletos, isto é, com pais que são ancestrais (no máximo 6 blocos atrás) do bloco incluído. Tios válidos são recompensados ​​a fim de neutralizar o efeito do atraso da rede na dispersão das recompensas da mineração, aumentando assim a segurança (isso é chamado de protocolo GHOST). Tios incluídos em um bloco formado pelo mineiro PoW bem sucedido recebem 7/8 da recompensa de bloco estático (= 4.375 éter). Um máximo de 2 tios são permitidos por bloco.

O sucesso da mineração depende da dificuldade do bloco definido. A dificuldade de bloco ajusta dinamicamente cada bloco para regular a potência de hashing da rede para produzir um tempo de bloqueio de 12 segundos. Suas chances de encontrar um bloqueio, portanto, seguem do seu hashate em relação à dificuldade.

Fonte:
http://www.ethdocs.org/en/latest/mining.html#mining