Aprenda o básico da blockchain Polkadot
Introdução
A Polkadot permite que blockchains e aplicativos se unam e trabalhem uns com os outros em paralelo. Para ter uma web descentralizada, uma internet de blockchains interoperáveis é fundamental. Um protocolo de blockchain fragmentado. A Polkadot se considera uma blockchain de próxima geração, ou melhor ainda, uma camada de rede fundamental que realmente impulsionará a "visão da web 3.0" para criar uma rede unificada de blockchains especializadas, autogovernadas e otimizadas que funcionam juntas por meio de interoperabilidade. A Polkadot oferece escalabilidade por meio de seu modelo compartilhado, onde blockchains que costumavam operar isoladamente podem aproveitar a arquitetura Polkadot para eliminar gargalos e tráfego de rede.
O Bitcoin nos deu o primeiro conceito real de um protocolo monetário; uma blockchain que agora é geralmente aceita como uma reserva de valor. A Ethereum estendeu essa ideia para quase tudo - criando a próxima onda de novas finanças e nos permitindo desenvolver aplicativos do mundo real na cadeia por meio de contratos inteligentes. A Polkadot visa reunir essas blockchains, juntamente com muitas outras, enquanto suporta protocolos da web 3.0 e outros recursos principais de blockchain na cadeia - atuando como uma infraestrutura para infraestruturas.
Este guia vai descrever os principais conceitos de blockchain através dos olhos da Polkadot, criando distinções e tirando conclusões para cada conceito. Ou seja, o foco será em contratos inteligentes, parachains, parathreads e aplicativos descentralizados (dApps). As diferenças entre os conceitos comuns de blockchain dentro do ecossistema Polkadot podem ser melhor compreendidas apreciando a visão da Polkadot de atuar como uma camada fundamental para protocolos da web 3.0, que permite que dados arbitrários (não apenas tokens) sejam transferidos entre blockchains.
Isso é feito por meio de interoperabilidade real, segurança compartilhada, cadeias heterogêneas e governança bem pensada.
Pré-requisitos
Este tutorial tem como objetivo ser amigável para iniciantes. No entanto, é recomendável que você esteja familiarizado com o seguinte:
- Polkadot por trás do código, episódio 1;
- Uma compreensão da arquitetura da Polkadot: Polkadot: Você está pronto para começar a construir?;
- Introdução à Polkadot.
Introdução aos Conceitos Avançados em Polkadot
Polkadot e Contratos Inteligentes
Um contrato inteligente
é um conjunto de instruções (na forma de código) que são implantadas na cadeia. Estas instruções representam um acordo entre as partes que são apresentadas como um programa de computador executável. O programa de computador é executado por uma plataforma baseada em blockchain que permite a implantação de contratos inteligentes. Em outras palavras, o contrato inteligente permite que o código-fonte no nível do aplicativo seja implantado na cadeia. A execução só ocorre quando condições predeterminadas são atendidas. Atores externos podem invocar o contrato inteligente somente depois que ele for executado na cadeia. O contrato inteligente criado a partir do conjunto de instruções será associado a um endereço de cadeia específico.
A Polkadot em si não permite a implantação de contratos inteligentes. A rede principal da Polkadot terá outras cadeias conectadas que atuam como plataformas de contratos inteligentes. As cadeias externas conectadas à Polkadot são geralmente chamadas de Parachains, que serão explicadas abaixo.
A Parity Technologies é uma desenvolvedora essencial da rede Polkadot. Seu principal produto, o Substrate, é uma robusta estrutura que pode ser usada para otimamente desenvolver blockchains. As Parachains usam o Substrate para desenvolver blockchains modernas que se conectarão à rede Polkadot.
NOTA: Existem diferentes implementações da Polkadot. Parity Polkadot é o cliente Rust. Outras implementações existem e estão sendo trabalhadas em C++, Go e JavaScript. É importante ter várias implementações do protocolo Polkadot para promover a descentralização e progredir no protocolo de maneira significativa.
Se essas cadeias externas quiserem oferecer suporte para contratos inteligentes, elas podem fazê-lo usando o Palete da EVM (EVM Pallet), que permite que uma parachain implemente a Máquina Virtual Ethereum (Ethereum Virtual Machine, EVM).
Além disso, o Substrate também oferece um palete de contrato integrado ao qual as parachains podem se adaptar. Isso fornece as especificações necessárias para a implantação e execução de contratos inteligentes do WebAssembly.
Contextualização
Como o nome sugere, a Ethereum Virtual Machine
é uma máquina virtual para a Ethereum. A EVM abstrai os recursos computacionais necessários em uma pilha virtual e atua como um ambiente de tempo de execução para contratos inteligentes. Solidity é a linguagem de programação usada para desenvolver contratos inteligentes executados na EVM.
WebAssembly é um formato de instrução que funciona na Web e é executado em navegadores modernos.
Curiosidade [4]: O cofundador e ex-CTO da Ethereum, Dr. Gavin James Wood, que também é o fundador da Web 3 Foundation e Parity Technologies, é o inventor da linguagem Solidity e foi o proponente inicial em 2014 [4].
Vantagens dos contratos inteligentes
Confiabilidade, Transparência, Dependabilidade, Precisão e Automação
- Contratos inteligentes são imutáveis: isso garante que ninguém possa adulterar ou quebrar o contrato. O contrato também mantém integridade e credibilidade no momento em que foi executado;
- Contratos inteligentes permitem que casos de uso centralizados sejam descentralizados: alguns exemplos incluem finanças descentralizadas (DeFi), governança e gerenciamento de identidade digital.
Desvantagens dos contratos inteligentes
Escalabilidade, Limitações, Dependências
- Os contratos inteligentes tradicionais só podem existir em uma única cadeia: querer executar o mesmo contrato em uma cadeia diferente exige que seu próprio contrato inteligente seja implantado nessa cadeia;
- Contratos inteligentes são muito genéricos para a maioria dos casos de uso;
- Os contratos inteligentes são limitados pelas propriedades da blockchain de implantação;
- Os contratos inteligentes dependem de sua própria capacidade de atualização e devem limitar sua própria execução;
- Como o contrato inteligente depende de recursos, o código executado precisa usar os recursos do ecossistema da cadeia. Se houver aspectos do contrato inteligente que são pesados em recursos computacionais, isso pode ser problemático, resultando em um problema de interrupção. Com uma linguagem poderosa, é impossível saber de antemão se um programa interromperá ou não a execução. Algumas plataformas abordam isso por meio de uma linguagem de script bem restrita (por exemplo, Bitcoin). Outros ecossistemas da web 3.0 cobram uma taxa, geralmente chamada de "taxa de gás" - pelos direitos de executar o código na cadeia e usar esses recursos computacionais (por exemplo, Ethereum). No entanto, se um contrato inteligente for executado indefinidamente, ele interromperá sua própria execução "ficando sem gás". Limitar a execução de um contrato inteligente também é necessário para evitar ataques de DOS;
- Contratos inteligentes são imutáveis: se houver atualizações a serem feitas no código dentro do contrato inteligente, isso significa que um contrato inteligente totalmente novo precisa ser implantado, que será vinculado a um novo endereço na cadeia; qualquer coisa referente ao endereço da cadeia anterior também precisa ser movida para o novo endereço da cadeia.
O que é uma Parachain?
A rede Polkadot tem uma cadeia central chamada de cadeia de retransmissão (relay chain). O modelo de Prova de Participação Nomeada (Nominated Proof of Stake, NPoS) da Polkadot é usado para selecionar validadores, permitindo que eles participem do protocolo de consenso. Esses validadores são incluídos como participantes (stakers) na cadeia de Retransmissão. As parachains são sustentadas por um mantenedor de rede conhecido como collator.
As cadeias externas podem se conectar à cadeia de Retransmissão como Parachains
. Uma parachain é uma blockchain individual que é executada em paralelo na rede Polkadot. Como tal, as parachains também podem ser consideradas "cadeias paralelizáveis" [5].
A Polkadot é considerada uma rede multicadeia de camada 0, e as Parachains são executadas em paralelo como blockchains de camada 1 individuais. Para referência, Bitcoin e Ethereum são considerados blockchains de camada 1. O modelo parachain permite que blockchains individuais alcancem escalabilidade na camada 1 [3].
Um problema proeminente no ecossistema Ethereum é a capacidade de dimensionar onde uma dependência é criada em possíveis soluções de dimensionamento de camada 2.
Comparando Parachains e Contratos Inteligentes
Depois de desenvolver um contrato inteligente, a próxima coisa a fazer é implantá-lo. Isso significa que há uma necessidade de uma cadeia de destino, onde a cadeia de destino tem seu próprio ambiente. Usando uma parachain, o desenvolvedor pode declarar o ambiente de sua própria cadeia. As parachains também podem se atualizar por meio de um comando root ou do palete de governança, permitindo que os desenvolvedores atualizem o código. Esse é um recurso essencial da parachain para evitar bifurcações - ao contrário dos contratos inteligentes, que têm exaustivos problemas de atualização.
A Polkadot não usa um modelo de medição de gás, mas um modelo de taxa de peso, o que significa que as Parachains não possuem um modelo de medição de gás em sua lógica. Parachains podem implementar linguagens de programação poderosas. Melhor dizendo, as parachains tentam ser proativas, enquanto as plataformas de contrato inteligente são orientadas a eventos.
Usando a Ethereum como exemplo de plataforma de contrato inteligente:
Ethereum
- Contratos inteligentes podem chamar uns aos outros de forma síncrona no mesmo fragmento;
- Contratos inteligentes podem chamar uns aos outros de forma assíncrona entre fragmentos.
Polkadot
- Contratos inteligentes podem chamar uns aos outros de forma síncrona na mesma parachain;
- Contratos inteligentes podem chamar uns aos outros de forma assíncrona entre parachains.
Benefícios em se tornar um Parachain
Segurança, Escalabilidade, Amigável ao desenvolvedor, Governança na cadeia, Funcionalidade de Financiamento Coletivo (Crowdloan)
- O desenvolvimento em Substrate é baseado em componentes e abstrai o âmago da questão do desenvolvimento de blockchain para que o desenvolvedor possa se concentrar no que importa;
- Qualquer cadeia conectada à cadeia de retransmissão compartilha a segurança de todas as cadeias ativas na rede;
- A verificação e finalização do bloco são realizadas pelos validadores na cadeia de retransmissão;
- Capacidade de enviar mensagens para outras cadeias através do XCMP;
- Governança na cadeia em comparação com outras plataformas que possuem governança fora da cadeia.
A participação da Parachain na Polkadot é baseada em leilão e exige que a parachain garanta um slot de parachain disponível na cadeia de retransmissão.
E os Parathreads?
Parathreads
são parachains que não permanecem conectados à cadeia de retransmissão. Os parathreads são essencialmente parachains de pagamento conforme o uso (pay-as-you-go) e participam temporariamente da rede se baseando em cada bloco [2].
A principal diferença entre parachains e parathreads é econômica. Um leilão de parachain acontece a cada seis meses para garantir um lugar na rede. Um leilão de taxas acontece a cada bloco para um parathread.
Polkadot e dApps
dApp
significa aplicação descentralizada; nenhuma entidade tem controle total. Os dApps são executados em redes distribuídas ponto a ponto. Os contratos inteligentes são conhecidos como o pilar central dos dApps, pois o código-fonte no nível do aplicativo está dentro da lógica do próprio contrato. Como os aplicativos são baseados em uma blockchain descentralizada, existe um sistema de incentivo para os validadores por meio de algum tipo de ativo digital (geralmente um token). Um dApp requer um mecanismo de consenso para transmitir a prova de valor no sistema.
WASM vs EVM: Por que o Substrate incentiva o WebAssembly
Todo ecossistema blockchain precisa essencialmente de uma máquina virtual para processar eventos na cadeia. A EVM é considerada uma máquina virtual leve que permite executar contratos inteligentes na rede Ethereum. Existem alguns problemas atualmente enfrentados pela EVM que, em última análise, limitam a taxa de transferência da rede e criam um gargalo.
- A EVM não é tão rápida quanto deveria e impacta diretamente na eficiência da rede;
- A EVM usa códigos de operação (opcodes), que não são otimizados para diferentes plataformas de hardware;
- O suporte e o alcance para o desenvolvimento de contratos inteligentes são limitados.
Wasm
, ou WebAssembly, foi desenvolvido pelo World Wide Web Consortium (W3C); é essencialmente um novo tipo de código que pode ser executado diretamente no navegador.
- O Wasm expande as linguagens suportadas nas quais um desenvolvedor pode escrever um contrato inteligente, como Rust, C/C++, C# e Typescript;
- O Wasm possui alto desempenho;
- O Wasm é otimizado para diferentes plataformas de hardware.
Este artigo oferece uma perspectiva da Parity Technologies sobre o WebAssembly ser uma alternativa à EVM.
O desenvolvimento em tempo de execução é diferente do desenvolvimento de dApps
- O uso de uma plataforma de contrato inteligente para desenvolver um dApp permite que o desenvolvedor se concentre na lógica do próprio contrato. A implantação de um dApp em uma parachain é diferente da criação de uma parachain, pois isso requer desenvolvimento em tempo de execução. Cada parachain pode ter uma implementação exclusiva com sua própria lógica de tempo de execução. Geralmente, existem duas abordagens para o desenvolvimento de dApps na Polkadot:
- Desenvolva um dApp no Wasm, onde ele será executado em uma parachain nativa;
- Implante um dApp via Solidity em uma cadeia baseada em EVM.
Construir um dApp na Polkadot pode ser visto como construir um dApp em uma cadeia baseada em Substrate.
NOTA: Lembre-se, a Polkadot suporta parachains que não são construídos no Substrate. As cadeias também podem ser construídas no Substrate e não precisam ser implantadas na Polkadot [1].
Conclusão
Parabéns! Este tutorial ofereceu uma visão arquitetônica amigável da Polkadot, aos olhos da Polkadot. O tutorial se ramificou de "o que o espaço blockchain tem" para "para onde está indo", discutindo as diferenças entre contratos inteligentes, parachains, parathreads e DApps.
Próximo assunto?
Para mergulhar mais nesses conceitos, veja as páginas a seguir no Wiki oficial da Polkadot.
Por que não tentar construir sua primeira cadeia baseada em Substrate!
Sobre o autor
Este guia foi criado por Danny Salman. Você pode entrar em contato com Danny no Fórum do Figment e no GitHub para obter ajuda ou se tiver dúvidas relacionadas à Polkadot e a este guia.
Referências
[1] A brief summary of everything Substrate and Polkadot
[2] Parathreads: Pay-as-you-go Parachains
[3] Polkadot: The Foundation of a New Internet
[4] Polkadot, Substrate and Ethereum
[5] Research at Web3 Foundation
Guia original escrito por Danny Salman. Traduzido por Paulinho Giovannini.
Oldest comments (0)