Politeia: propostas com registro de data e hora

8 minutos de leitura

Escrito em 25.10.2017 por Jake Yocom-Piatt, Decred Project Lead

Em vez de nos conformarmos com a infraestrutura de governança que é apenas boa o suficiente para fazer o que precisa ser feito, optamos por criar o que consideramos ser a infraestrutura ideal para a autogovernança de uma criptomoeda. Chamamos nosso sistema de armazenamento de dados de governança de Politeia, que é baseado no antigo termo grego, que significa “um sistema de governo”. A Politeia é um sistema para armazenar dados off-chain que é versionado e tem registro de data e hora, essencialmente “git, um sistema de controle de revisão popular, com timestamping”. Em vez de tentar armazenar todos os dados relacionados à governança da Decred on-chain, optamos por criar um registro de dados off-chain que esteja apenas ancorado na blockchain do Decred, minimizando seu rastro. Embora a utilizemos primeiro como base para nosso sistema de propostas, ela foi desenvolvida como uma ferramenta genérica que permite que seus usuários criem e mantenham dados arbitrários em um ambiente controlado por versão e com registro de data e hora (timestamping). A Politeia pode ser usada até por quem não possui Decred, embora dependa do uso de um servidor dcrtime para criar registros de data e hora. Além de fazer o lançamento inicial da Politeia, temos o prazer de anunciar uma competição para projetos baseados na Politeia, com os vencedores anunciados em um evento em Austin, Texas, em 1º de dezembro de 2017. Os prêmios para o 1º, 2º e 3º lugar serão o equivalente a US$ 10.000, US$ 5.000 e US$ 2.000, respectivamente, pagos em Decred.

Motivação

Como parte do trabalho do Decred para criar um sistema de governança sustentável e justo, fizemos a pergunta “como devemos armazenar dados relacionados à governança do Decred?”. Como o Decred é uma criptomoeda, uma opção natural seria armazenar esses dados diretamente na blockchain. No entanto, como muitos usuários de criptomoedas estão cientes, essa é uma maneira incrivelmente ineficiente de armazenar esses dados. Além disso, um sistema de governança necessariamente gerará conteúdo controverso ao longo do tempo. Então a pergunta “queremos todos esses dados armazenados diretamente na nossa blockchain?” teve uma resposta “não” bastante óbvia. Em vez de armazenar esses dados na blockchain, a melhor coisa que podemos fazer é armazenar esses dados em um repositório controlado por versão com registros de data e hora ancorados na blockchain.

O maior objetivo com a Politeia é criar um registro público resiliente que imite a função de sites de Estados para seus órgãos de governança, por exemplo, senate.gov ou house.gov. Ter registros públicos criptograficamente verificáveis dará aos usuários da Politeia a garantia de que sua governança está sendo executada de forma transparente, com todos os registros verificáveis e armazenados de maneira independente em um formato difícil de forjar. Ao registrar os dados de governança do Decred com data e hora de forma verificável, garantimos que as tentativas de manipular a governança do Decred, seja de fora ou de dentro, serão muito mais difíceis do que ao usar um site convencional.

Resumo técnico

A ideia geral é “git com timestamping”, e em vez de reinventar a roda, a Politeia faz uso direto do git para controle de revisão. O git é uma excelente ferramenta para o controle de revisão, mas fornece apenas garantias limitadas sobre quando uma alteração específica foi feita. Por exemplo, você pode recriar um repositório git com timestamps falsos sem muito esforço. Como você pode imaginar, essa capacidade de recriar arbitrariamente um repositório git torna-o um candidato menos do que ideal para criar um formato incontestável para gravação de dados. No entanto, ao adicionar o registro criptográfico de data e hora ao git, obtemos um meio de registrar dados que não podem ser reescritos arbitrariamente. Dessa forma, “ancorar” o hash de gravação de um repositório na blockchain do Decred usando dcrtime e, em seguida, consolidar os dados da âncora no mesmo repositório, cria um registro de tempo que é computacionalmente inviável para recriar.

Âncoras armazenadas no repositório git incluem um hash de transação e um caminho merkle, onde o caminho merkle é reduzido até a raiz merkle contida na transação correspondente ao hash de transação. Esse hash de transação, o caminho merkle e a blockchain do Decred são o conjunto mínimo de dados necessários para verificar independentemente se uma âncora é válida, indicando que um determinado hash de gravação do git existia antes do registro de data e hora na próxima âncora em seu repositório. Esse registro de tempo, combinado com o processo padrão do git para hash dos dados a serem gravados para gerar um hash da gravação, é um meio de demonstrar a procedência, ou seja, a origem ou fonte desses dados.

No contexto de propostas Decred, restringiremos propostas a textos com markdown e imagens PNG. Isso está sendo feito para limitar possíveis problemas de segurança que vêm com outros formatos de dados mais complexos, por exemplo, ZIP ou PDF. Enquanto markdown e PNGs não são exatamente formatos fascinantes, eles são simples e suficientes para expressar qualquer proposta razoável.

Como a Politeia exigirá a revisão manual das propostas enviadas, criamos dois status para novas propostas: não verificados e verificados. Essa classificação é útil porque os dados enviados para inclusão podem ter erros de formatação, conter conteúdo impróprio ou precisar satisfazer outras restrições antes de serem incluídos na Politeia. Cada submissão de proposta tem um token de censura correspondente emitido que permite que o emissor da proposta demonstre publicamente que sua proposta foi censurada, no caso de um dos administradores a censurar. Esse token de censura permite que a Politeia evite uma das práticas mais traiçoeiras e comuns dos sites de mídia social modernos, em que os dados são silenciosamente censurados. Ao usar tokens de censura, a Politeia cria um processo de censura transparente, de modo que os administradores podem ser responsabilizados publicamente por suas ações de censura, quando considerado que estão agindo de forma inadequada.

Casos de uso

Para o Decred, a Politeia fornecerá um registro público inalterável de propostas, comentários sobre propostas e votos dos stakeholders. Embora o Decred use a Politeia de uma forma pública, ela pode fornecer uma utilidade semelhante como armazenamento privado e inalterável de dados. Esse conceito genérico de dados com versionamento e registro de data e hora pode ser aplicado em vários casos de uso público e privado, por exemplo, armazenamento de documentos e registros, sistemas de reputação e identidade e cadeias de suprimentos.

Usando a Politeia

O backend da Politeia pode ser usado atualmente para armazenar texto puro, markdown e imagens PNG. Embora essa lista de tipos de arquivo aceitáveis seja bastante curta, ela pode ser facilmente expandida para incluir outros tipos de arquivos, conforme necessário. Atualmente, a Politeia suporta a criação de novas contas de usuários, usuários que enviam propostas, administradores que revisam essas propostas e administradores que aprovam ou censuram as propostas.

Os usuários do Decred devem usar a interface web da Politeia para fazer comentários e enviar propostas. Os desenvolvedores interessados em explorar aplicações alternativas para a Politeia podem usar a interface de linha de comando para interagir diretamente com o backend, de acordo com o exemplo no GitHub.

Politeia Frontend

A parte backend da Politeia está quase completa, mas o frontend é mínimo e o trabalho ainda está sendo feito. O frontend da Politeia é uma interface web, escrita usando React e Redux, junto com um sistema de gerenciamento de usuários. Atualmente, essa interface está em um estado muito bruto e receberá um fluxo constante de atualizações nas próximas semanas. O frontend da Politeia foi projetado com o intuito de incorporá-lo diretamente ao Decrediton, nossa carteira para ambientes gráficos.

Comentários sobre propostas, edição de propostas e votação de propostas serão adicionados (nesta ordem) nas próximas semanas. Durante esse tempo, manteremos e atualizaremos um servidor de teste público para a Politeia em test-proposals.decred.org, para que os usuários possam participar via frontend enquanto os recursos estão sendo adicionados. Depois de executar esse servidor de teste público por um tempo e adicionar os recursos ausentes, zeraremos o sistema e iniciaremos formalmente nosso sistema de propostas públicas permanente. Enquanto isso, os usuários são encorajados a dar feedback depois de usar nosso servidor de teste público.

Anúncio da competição

Como a Politeia tem muitos usos em potencial e só podemos explorar razoavelmente alguns deles por restrições de tempo, estamos anunciando uma competição para usos alternativos da Politeia. A competição acontecerá entre hoje e 1º de dezembro de 2017 e convidaremos os concorrentes mais promissores para apresentações em uma conferência de um dia em Austin, TX. Em termos de requisitos, as propostas devem ser baseadas no código-fonte da Politeia e estar preparadas para uma curta demonstração pública. Os concorrentes são incentivados a trabalhar em pequenos grupos e o registro é aberto a todos, seja local ou remoto. Os vencedores serão anunciados na conferência em Austin e os prêmios serão de US$ 10.000 (1º lugar), US$ 5.000 (2º lugar) e US$ 2.000 (3º lugar), pagos diretamente em Decred. Por ter cerca de 5 semanas para preparar uma apresentação entre agora e este evento em Austin, os candidatos deverão demonstrar o software no nível de prova de conceito. Isso significa que esperamos que os envios sejam necessariamente escassos em recursos, mas eles devem demonstrar que a ideia funciona e tem utilidade além do nosso sistema de propostas. Para evitar muitos envios do mesmo tipo, sugerimos que os concorrentes contatem o usuário ingsoc no Slack para verificar se uma aplicação em particular já está sendo trabalhada por outro concorrente.

Conclusão

A Politeia é uma continuação do compromisso do Decred em fornecer infraestrutura de governança inovadora e de alta utilidade. A criação de um registro público permanente da história da governança do Decred é um passo importante em direção a um método de governança mais transparente e eficaz. Qualquer proposta enviada à Politeia que seja censurada pode ser publicamente demonstrada como tendo sido censurada, gerando responsabilidade para os administradores do sistema de propostas. Há uma infinidade de usos potenciais para a Politeia e estamos entusiasmados para ver o que os concorrentes levarão para o evento em 1º de dezembro. Se você estiver interessado em entrar em contato e debater sobre a Politeia, fale conosco no GitHub, Slack, Reddit ou através do nosso Forum.