$30 off During Our Annual Pro Sale. View Details »

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

    View Slide

  2. Alan R. Fachini
    alfakini
    alanfachini
    alfakini.com

    View Slide

  3. View Slide

  4. 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

    View Slide

  5. 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.

    View Slide

  6. 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

    View Slide

  7. 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

    View Slide

  8. View Slide

  9. 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?

    View Slide

  10. DECENTRALIZAÇÃO

    View Slide

  11. 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

    View Slide

  12. Dissecando conceitos

    View Slide

  13. 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

    View Slide

  14. Roles

    View Slide

  15. 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

    View Slide

  16. View Slide

  17. 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

    View Slide

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

    View Slide

  19. 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

    View Slide

  20. Nominated Proof-of-Stake

    View Slide

  21. Proof-of-Stake

    View Slide

  22. 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

    View Slide

  23. View Slide

  24. 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

    View Slide

  25. View Slide

  26. 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

    View Slide

  27. View Slide

  28. View Slide

  29. Relay Chain State Machine

    View Slide

  30. ● 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

    View Slide

  31. Consensus

    View Slide

  32. 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

    View Slide

  33. View Slide

  34. 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

    View Slide

  35. View Slide

  36. Parachains
    (vou pular)

    View Slide

  37. 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

    View Slide

  38. 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

    View Slide

  39. 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.

    View Slide

  40. 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

    View Slide

  41. 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!

    View Slide