GNU Taler: Princípios de design

Ao projetar o GNU Taler, tínhamos em mente os seguintes princípios de design:

1. Software livre (Free/Libre)

... na área da computação, liberdade significa não usar software proprietário

O GNU Taler deve ser Software Livre (Free/Libre). Para os comerciantes, o software livre evita a dependência de fornecedor (vendor lock-in), o que significa que os comerciantes podem facilmente escolher outro provedor de serviços para processar seus pagamentos. Para os países, o software livre significa que o GNU Taler não pode comprometer a soberania impondo restrições ou requisitos. E para os operadores de câmbio, a transparência é crucial para satisfazer o princípio de Kerckhoffs e para estabelecer a confiança pública.

Os clientes se beneficiam do software livre porque qualquer pessoa é livre para modificar o software da carteira a fim de oferecer suporte a plataformas adicionais. O código-fonte deve estar disponível e tornar fácil verificar que recursos hostis ao usuário, como rastreamento ou telemetria, estão ausentes.

2. Proteger a privacidade dos compradores

Você merece um pouco de privacidade

A privacidade é mais significativa quando é garantida por meio de medidas técnicas, em oposição a meras políticas. Sem uma camada técnica que forneça privacidade por padrão, as transações financeiras revelam níveis desnecessários de dados pessoais ou privados. Isso seria especialmente verdadeiro ao fazer micropagamentos por publicações on-line. Assim, o GNU Taler deve proteger a privacidade dos compradores para evitar facilitar o controle totalitário sobre a população. Dados privados limitados, como o endereço de entrega para uma entrega física, podem precisar ser coletados de acordo com as necessidades do negócio e protegidos de acordo com as leis locais. Nesse caso, o GNU Taler deve permitir a exclusão desses dados assim que eles não forem mais necessários.

3. Auditabilidade - permitir que o Estado tribute a renda e reprima atividades empresariais ilegais

Lavagem de dinheiro

Como um sistema de pagamento deve cumprir as leis locais para operar legalmente, o GNU Taler deve ser projetado para cumprir esses requisitos. O GNU Taler deve fornecer uma trilha de auditoria para os investigadores que atuam sob a lei. Além disso, consideramos a cobrança de impostos benéfica para a sociedade, e uma tributação justa exige transparência da renda. Assim, o GNU Taler deve permitir que as autoridades rastreiem a renda.

4. Prevenir fraudes de pagamento

Ataque de phishing

O GNU Taler deve mitigar as fontes mais comuns de fraude de pagamento. Devemos seguir as melhores práticas no design de software, diretrizes de design de terceiros que evitem confusão e interfaces de usuário enganosas, e devemos fazer com que outros inspecionem nosso código disponível publicamente. Além disso, o GNU Taler deve fornecer ampla evidência criptográfica para todos os processos-chave, a fim de permitir que todas as partes atribuam com precisão comportamentos indevidos.

5. Coletar o mínimo de informações necessárias

Privacidade por design, privacidade por padrão, em conformidade com o Regulamento Geral de Proteção de Dados (GDPR)

A privacidade dos compradores recebe prioridade especial como parte do princípio nº 2. No entanto, outras partes — como os comerciantes — também devem ter proteção de dados. Em geral, o GNU Taler deve coletar apenas o mínimo de informações necessárias: dados que não são coletados ou que não são mais armazenados não podem ser comprometidos.

6. Ser utilizável

Compre com um clique. Fácil até para crianças.

O GNU Taler deve ser utilizável por clientes não especialistas, incluindo os usuários finais de uma carteira do GNU Taler, os comerciantes que desejam aceitar pagamentos usando o GNU Taler e os desenvolvedores de aplicativos de terceiros para e-commerce e outras plataformas. O GNU Taler deve seguir as diretrizes de usabilidade de melhores práticas e incorporar o feedback de especialistas e usuários. O software livre também requer documentação livre para permitir escolhas informadas. O GNU Taler deve fornecer Interfaces de Programação de Aplicações (APIs) bem documentadas para permitir integrações sem atrito entre o GNU Taler e outros projetos.

7. Ser eficiente

Eficiência energética

O GNU Taler deve ser projetado para ser eficiente. Muito simplesmente, eficiência significa menos coisas para quebrar, e significa mais transações por segundo e menor impacto ambiental. A eficiência também é fundamental para que o GNU Taler seja usado em micropagamentos. Portanto, certas primitivas dispendiosas, como a prova de trabalho, não devem ser usadas pelo GNU Taler.

8. Design tolerante a falhas

Salva-vidas

Operadores mal-intencionados, dedos descuidados, falhas de computador, gremlins. As coisas dão errado. O GNU Taler deve ser projetado para tolerar a falha de componentes e sistemas individuais. Onde o sistema puder continuar funcionando com segurança, ele continuará funcionando com segurança. Onde ele precisar interromper uma operação, outras operações não devem ser desnecessariamente colocadas off-line. Onde os sistemas falharem, eles devem falhar de forma controlada. O GNU Taler deve ter um plano para se recuperar de operadores mal-intencionados que comprometam segredos essenciais.

9. Fomentar a concorrência

Um mercado competitivo

Deve ser relativamente fácil para os concorrentes implantar alternativas interoperáveis. As barreiras para isso nos sistemas financeiros tradicionais são bastante altas e estão fora do nosso controle. No entanto, o GNU Taler deve minimizar o ônus técnico para que novos concorrentes entrem no mercado. O GNU Taler deve permitir um conjunto diversificado de operadores, rompendo com o sistema atual em que apenas algumas poucas empresas globais dominam o mercado. Um exemplo de escolha de design que apoia isso é dividir todo o sistema em componentes menores que podem ser operados, desenvolvidos e aprimorados de forma independente, em vez de ter um sistema completamente monolítico.