Slide 1

Slide 1 text

Overview of Polkadot and its Design Considerations Jeff Burdges, Alfonso Cevallos, Peter Czaban, Rob Habermeier, Syed Hosseini, Fabio Lama, Handan Kılınc Alper, Ximin Luo, Fatemeh Shirazi, Alistair Stewart, Gavin Wood Colóquios Papers We Love 06/07/2021

Slide 2

Slide 2 text

Alan R. Fachini alfakini alanfachini alfakini.com

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Como ler um artigo científico? Como eu faço: 1. Ler Abstract, Introdução e Conclusão a. Queremos antes de qualquer coisa saber se o artigo nos interessa 2. Escanear o miolo a. Determinar o propósito e a estrutura 3. Ler com cuidado a. Grifar e anotar b. Buscar resumo sobre conceitos que não entende 4. Criticar os argumentos a. Faz sentido? Existem contradições? Pontos fortes, fracos do argumento b. Comparar com outros trabalhos c. Buscar outros artigos que fazem citação 5. Buscar as referências deste artigo

Slide 5

Slide 5 text

Porque ler este artigo? ● Polkadot trouxe diversas inovações para o universo das Blockchain; ● Entender o que motivou a criação da Polkadot; ● Entender de forma introdutória como a Polkadot funciona; ● Entender como resolver problemas de coordenação em sistemas distribuídos não permissionados. A implementação da Polkadot tem muitas especificidades e diferenças.

Slide 6

Slide 6 text

Introdução ● A Internet foi originalmente projetada sobre um protocolo descentralizado ● No entanto, sua comercialização levou à centralização ● Riscos para usuários: ○ o serviço pode parar ○ vender dados do usuário ○ manipular o serviço ● Essa tendência para a descentralização não é nova; tem sido usado em várias áreas do desenvolvimento da web e outros sistemas, como o movimento do software livre

Slide 7

Slide 7 text

Introdução ● Solução: Polkadot, um protocolo multi-chain ● Tentando resolver esses problemas de blockchain: ○ difícil para os usuários utilizarem apps em diferentes blockchains ○ apps separados devem ser capazes de interagir ○ a segurança de cada blockchain torna-se mais fraca ○ Os sistemas blockchain existentes geralmente têm alta latência ○ problemas de escalabilidade ○ problemas de interoperabilidade ● Polkadot é: sistema, framework, protocolo, plataforma ● Parece criar uma estrutura em fractal: blockchain de blockchains

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

Introdução: reflexão ● Ok, centralização é um problema, acredita-se que blockchain é uma forma de descentralizar aplicações. Porém a China puxa um cabo, liga um firewall e ninguém mais acessa a aplicação ● A preocupação com o problema é legítima, mas me parece equivocado acreditar que é no nível dos protocolos de aplicação da internet que nós vamos solucionar o problema ● O problema é político, cultural e de infra-estrutura, mas a gente só sabe fazer aplicação, então é onde nos limitamos a atuar?

Slide 10

Slide 10 text

DECENTRALIZAÇÃO

Slide 11

Slide 11 text

Polkadot ● Parachains são aplicações (criptoativos são aplicações) ● Relay chain é plataforma de segurança e mensageria ● The Wisdom of Crowds: Why the Many Are Smarter Than the Few ○ Why the Many are Safer Than the Few? ● heterogeneous sharding, where each parachains can be customised through the Substrate development framework, enabling them to be optimised for a specific use case and running in parallel rather than same across all shards

Slide 12

Slide 12 text

Dissecando conceitos

Slide 13

Slide 13 text

Nodes ● Light client: wallets, applications, user-related data ● Full node: all type of data long term highly avalilable ● Sentry node: public-reachable proxying full node ● Sometimes we refer to a full node of a parachain

Slide 14

Slide 14 text

Roles

Slide 15

Slide 15 text

Roles ● Validators (similar to mining pools on PoW): ○ help create new blocks ○ runs relay chain client ○ security: slashes, lose bonds ○ validates the state transition of connected parachains ● Nominators (similar to miners on PoW): ○ contribute to the security bond, place risk capital ○ signal that they trust a particular validator ● Collators: ○ produce parachain blocks ○ full node of parachain ○ exist because validators can't know the full history of parachains ● Fishermen: ○ detect invalid parachain blocks ○ not implemented yet

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

Relay chain ● responsável pela segurança compartilhada da rede, consenso e interoperabilidade entre blockchain ● protegido por Validators e Nominators staking os tokens DOT ● o número de parachains é determinado pelo número de validadores ● Cada parachain sendo capaz de cerca de 1.000 transações por segundo ● se Relay Chain precisar reverter por qualquer motivo, todos os parachains também serão revertidos. Isso é para garantir que a validade de todo o sistema pode persistir, e nenhuma parte individual é corruptível

Slide 18

Slide 18 text

Parathreads ● apps que não exigem o desempenho ● taxa para incluir transações no próximo bloco ● permitir que pequenos projetos comecem

Slide 19

Slide 19 text

Economic Security ● A segurança econômica da Polkadot protege todos os parachains ● em vez de 100 blockchains independentes apoiados por 1/100 de segurança, todos os blockchains conectados se beneficiam de 100% do nível de segurança ● Para que isso funcione, precisamos ser capazes de reverter o blockchain até sabermos com boa probabilidade que todos os parachains estão corretos ● Isso significa que precisamos ser capazes de reorganizar o chain e, para isso, ele precisa ser capaz de ser forked

Slide 20

Slide 20 text

Nominated Proof-of-Stake

Slide 21

Slide 21 text

Proof-of-Stake

Slide 22

Slide 22 text

Nominated Proof-of-Stake ● validators são selecionados pelo NPoS ● não mais eficiente, mas mais seguro do que outros PoS ● alto nível de segurança e escalabilidade ● atinge um nível sem precedentes de descentralização ● representação proporcional justificada (teoria dos votos) ● Os nominators atuam como cães de guarda (será?) ● Cada era (1 dia) seleciona um novo conjunto de validadores ● O objetivo de segurança de Polkadot é ser tolerante a falhas bizantinas https://w3f-research.readthedocs.io/en/latest/polkadot/NPoS

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

NPoS schema ● o arranjo torna muito difícil para uma entidade adversarial eleger validators ● eles precisam construir uma boa reputação para obter o apoio necessário ● muito caro atacar o sistema ● porque qualquer ataque resultará em grandes quantidades de DOTs perdidos

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

Fair representation (decentralization) ● No final do século 19, os métodos eleitorais tendiam a dar todas as cadeiras ao partido político mais popular ● O matemático sueco Lars Edvard Phragmén propôs a representação proporcional justificada ● garantiu que o número de assentos atribuídos a cada partido fosse proporcional aos votos dados a eles, de modo que deu mais representação às minorias ● o nomeador que detém pelo menos um k-th do staking total tem a garantia de ter pelo menos um de seus validadores de confiança eleito

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

Relay Chain State Machine

Slide 30

Slide 30 text

● State: associative array data structure [(key, value), (key, value)] ● arranjado em uma Merkle Tree, a raiz da árvore identifica o estado atual da cadeia ● State transition: changes via an executing ordered set of instructions ● Extrinsics: input data ○ transactions: signed and are gossiped on the network nodes ○ inherents: e.g.: the timestamp of a block ● Relay chain block producers listen to all transaction network messages ● Block: ○ Header: hash of parent block, block number, the root of the state tree, the root of the Merkle tree, the digest ○ Body contains a list of extrinsics

Slide 31

Slide 31 text

Consensus

Slide 32

Slide 32 text

Blind Assignment for Blockchain Extension (BABE) ● atribui validators eleitos aleatoriamente para produzir blocos ● usar a regra da cadeia mais longa como parte de consenso ● próximo produtor de bloco não é conhecido com antecedência ● requer muito tempo de espera para saber que o bloco não será revertido ● para finalizar mais rápido, os validators finalizam os blocos usando GRANDPA ● Details: Blind Assignment for Blockchain Extension protocol

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

Finalise blocks using GRANDPA ● Mecanismo para finalizar blocos ● para trabalhar com o BABE: em vez de construir na cadeia mais longa, um validator que produza um bloco deve construir na cadeia mais longa, incluindo todos os blocos que ele vê como finalizados ● Byzantine agreement protocol, mas focado em concordar em muitos blocos ao mesmo tempo, não apenas um ● uso de uma Greedy Heaviest Observed Subtree (GHOST) na regra de votos Paper: Extended Abstract: GRANDPA Finality Gadget

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

Parachains (vou pular)

Slide 37

Slide 37 text

Cross-chain Message Passing (XCMP) ● sends faster than block finalization, so deals with chain forks ● optimistically execute ● Wants to ensure: ○ messages arrive quickly ○ messages from one parachain arrive to another in order ○ arriving messages were indeed sent in the finalised history of the sending chain ○ recipients will receive messages fairly across senders, helping guarantee that senders never wait indefinitely for their messages to be seen

Slide 38

Slide 38 text

Economics and governance ● taxa de inflação anual quase constante (10%) ● A programação de recompensa garante que a participação geral no NPoS permaneça alta e que os stakes dos validators sejam uniformemente distribuídos ● governança: os detentores de tokens participam do processo de tomada de decisão para atualizar a lógica da rede ● todas as decisões importantes, como alterações de código, são feitas por referendos ponderados pelo estado ● Há um conselho eleito, responsável por tomar decisões menores e priorizar parcialmente os referendos, de forma que não possam bloquear uma mudança que a maioria deseja

Slide 39

Slide 39 text

Validators and Nominators What’s really important to understand is that both the validators own stake and the nominated stake will be slashed, so you could lose all your DOT that you have staked against a validator if they perform maliciously.

Slide 40

Slide 40 text

Temas não abordados, ou sem profundidade ● SPREE module for token transfer ● Criptografia (uma palestra só para isso) ● Parachains/Parathreads (uma palestra só para isso) ● Governança ● Economia ● Detalhes do BABE e GRANDPA (uma palestra só para isso) ● XMXP (uma palestra só para isso) ● Networking ● Storage

Slide 41

Slide 41 text

Sugestão de temas para o próximo artigo? Uma oportunidade para discutir publicamente artigos que você precisa ler para sua pesquisa acadêmica, TCC ou dissertação!