> For the complete documentation index, see [llms.txt](https://mysther.gitbook.io/knowledge-base/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mysther.gitbook.io/knowledge-base/ataques/blockchain.md).

# Blockchain

### Blockchains

Fundamentalmente, um blockchain (que hoje está na 3ª geração) é um banco de dados compartilhado, que consiste em um livro-razão de transações. Muito parecido com um banco, os livros de blocos simples controlam a propriedade da moeda (neste caso, criptomoeda). Ao contrário de um banco centralizado, todos têm uma cópia do livro-razão e podem verificar as contas uns dos outros. Cada dispositivo conectado com uma cópia do razão é chamado de "nó".

Blockchains eliminam o problema de confiança que afeta outros bancos de dados das seguintes maneiras: \* Descentralização total: a leitura / gravação no banco de dados é totalmente descentralizada e segura. Nenhuma pessoa ou grupo controla um blockchain. \* Tolerância a falhas extrema: A tolerância a falhas é a capacidade de um sistema de lidar com dados corrompidos. Embora a tolerância a falhas não seja exclusiva do blockchains, ela leva o conceito ao seu extremo lógico, fazendo com que todas as contas que compartilham o banco de dados validem suas alterações. \* Verificação independente: as transações podem ser verificadas por qualquer pessoa, sem terceiros. Isso às vezes é conhecido como "desintermediação".

No Blockchain, um pacote de transações (que pode ser dinheiro ou até mesmo dados pessoais) é chamado de "bloco". Em um blockchain "público", qualquer pessoa pode ler ou gravar dados gratuitamente, mas para escrever no blockchain público é pago. Esse custo é conhecido como "gas" e serve para evitar spams.

### Truffle

```bash
https://trufflesuite.com/docs/truffle/
https://trufflesuite.com/guides/ethereum-overview/

sudo apt install npm
sudo npm install truffle
sudo npm install @openzeppelin/contracts

truffle unbox <box_name>
truffle init
truffle compile
truffle migrate (execute antes o comando "ganache-cli" em outro terminal)
```

###

### Infura

infura.io/register Para implantar via Infura, você precisará de um provedor de carteira (@truffle/hdwallet-provider) para assinar suas transações antes de serem enviadas a um nó público remoto. As contas Infura estão disponíveis gratuitamente em: infura.io/register.

###

### Contratos Inteligentes

São linhas básicas de código armazenadas em um blockchain e executadas automaticamente quando certas condições são atendidas, permitindo que os desenvolvedores criem dApps financeiros altamente escaláveis, seguros e de baixo custo de execução. Esse Smart Contract é escrito em uma linguagem chamada Solidity.

###

### Solidity

Solidity é a linguagem utilizada para escrever os Smart Contract, ela é estaticamente tipado e suporta herança, bibliotecas e tipos complexos definidos pelo usuário, entre muito mais. A sintaxe do Solidity é semelhante ao JavaScript.

###

###

### Ganache

O blockchain Ethereum pode ser simulado localmente para desenvolvimento. As redes de teste locais processam transações instantaneamente e o Ether pode ser distribuído conforme desejado. Uma das ferramentas que simulam o Ethereum é o Ganache.

###

### Clarity

Linguagem de Programação que veio junto com o Stack 2.0

###

### Stacks 2.0

É um blockchain da 1ª camada que usa o blockchain BTC como uma camada base

###

### Ethereum

Ethereum é um blockchain que permite executar programas em seu ambiente confiável. Para isso, a Ethereum possui uma máquina virtual, denominada Ethereum Virtual Machine (EVM). O EVM permite que o código seja verificado e executado no blockchain, garantindo que ele será executado da mesma forma na máquina de todos. Este código está contido em "Contratos Inteligentes" (Smart Contract)

###

### Decentralized Applications (dApps)

Os aplicativos que usam contratos inteligentes para seu processamento e / ou armazenamento de dados são chamados de "aplicativos descentralizados" ou "dapps"

####

#### Sites

```bash
# Console Cowboy Cource
http://console-cowboys.blogspot.com/

# Solidity
https://docs.soliditylang.org/en/v0.8.10/

# Ganache
https://trufflesuite.com/ganache/
```
