Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Papers We Love: Overview of Polkadot and its Design Considerations

AF
July 06, 2021

Papers We Love: Overview of Polkadot and its Design Considerations

Apresentação do artigo Overview of Polkadot and its Design Considerations realizada para o grupo Papers We Love de Joinville, com comentários e aprofundamentos sobre a plataforma Polkadot, seus protocolos e algoritmos.

AF

July 06, 2021
Tweet

More Decks by AF

Other Decks in Technology

Transcript

  1. 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
  2. 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
  3. 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.
  4. 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
  5. 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
  6. 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?
  7. 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
  8. 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
  9. 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
  10. 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
  11. Parathreads • apps que não exigem o desempenho • taxa

    para incluir transações no próximo bloco • permitir que pequenos projetos comecem
  12. 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
  13. 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
  14. 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
  15. 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
  16. • 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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.
  22. 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
  23. 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!