GNU Taler: principios de deseño
Ao deseñar GNU Taler, tiñamos en mente os seguintes principios de deseño:
1. Software libre (Free/Libre)
GNU Taler debe ser software libre. Para os comerciantes, o software libre evita a dependencia dun único provedor (vendor lock-in), o que significa que os comerciantes poden escoller facilmente outro provedor de servizos para procesar os seus pagos. Para os países, o software libre significa que GNU Taler non pode comprometer a soberanía impoñendo restricións ou requisitos. E para os operadores de exchange, a transparencia é crucial para satisfacer o principio de Kerckhoffs e para establecer a confianza pública.
Os clientes benefícianse do software libre porque calquera é libre de modificar o software da carteira para admitir plataformas adicionais. O código fonte debe estar dispoñible e facer doado verificar que non existen funcións hostís para o usuario, como o rastrexo ou a telemetría.
2. Protexer a privacidade dos compradores
A privacidade é máis significativa cando se garante mediante medidas técnicas, en oposición a meras políticas. Sen unha capa técnica que proporcione privacidade por defecto, as transaccións financeiras revelan niveis innecesarios de datos persoais ou privados. Isto sería especialmente certo ao realizar micropagos por publicacións en liña. Así, GNU Taler debe protexer a privacidade dos compradores para evitar facilitar o control totalitario sobre a poboación. Pode ser necesario recompilar datos privados limitados, como o enderezo de envío para unha entrega física, segundo as necesidades comerciais, e protexelos de acordo coas leis locais. Neste caso, GNU Taler debe permitir a eliminación de tales datos en canto deixen de ser necesarios.
3. Auditabilidade - permitir que o Estado grave os ingresos con impostos e tome medidas contra as actividades comerciais ilegais
Como un sistema de pago debe cumprir as leis locais para operar legalmente, GNU Taler debe estar deseñado para cumprir estes requisitos. GNU Taler debe proporcionar un rastro de auditoría para os investigadores que actúan ao abeiro da lei. Ademais, consideramos que a recadación de impostos é beneficiosa para a sociedade, e unha tributación xusta require transparencia nos ingresos. Así, GNU Taler debe permitir que as autoridades rastrexen os ingresos.
4. Previr a fraude no pago
GNU Taler debe minimizar as orixes máis comúns de fraude en liña. Debemos seguir as mellores prácticas no deseño de software, as directrices de terceiras partes para evitar a confusión e o engano nas interfaces das aplicacións, e ten que estar auditada por persoas alleas que evalúen o código. Ademáis, GNU Taler ten que proporcionar completa evidencia criptográfica de todos os procesos para que as partes involucradas na transacción poidan atribuir responsabilidade en caso de malas prácticas.
5. Recompilar a mínima información necesaria
A privacidade dos compradores recibe unha prioridade especial como parte do principio n.º 2. Porén, outras partes (como os comerciantes) tamén deben ter protección de datos. En xeral, GNU Taler só debe recompilar a mínima información necesaria: os datos que non se recompilan ou que xa non se almacenan non poden ser comprometidos.
6. Ser usable
GNU Taler debe ser usable para clientes non expertos, incluíndo os usuarios finais dunha carteira GNU Taler, os comerciantes que desexen aceptar pagos usando GNU Taler e os desenvolvedores de aplicacións de terceiros para o comercio electrónico e outras plataformas. GNU Taler debe seguir as directrices de usabilidade de mellores prácticas e incorporar comentarios de expertos e usuarios. O software libre tamén require documentación libre para permitir eleccións informadas. GNU Taler debe proporcionar interfaces de programación de aplicacións (APIs) ben documentadas para permitir integracións sen fricción entre GNU Taler e outros proxectos.
7. Ser eficiente
GNU Taler debe estar deseñado para ser eficiente. Simplemente, a eficiencia significa menos cousas que poidan fallar, e significa máis transaccións por segundo e un menor impacto ambiental. A eficiencia tamén é fundamental para que GNU Taler se poida usar para micropagos. Polo tanto, certas primitivas custosas, como a proba de traballo (proof-of-work), non deben ser usadas por GNU Taler.
8. Deseño tolerante a fallos
Operadores maliciosos, erros de dedos, fallos informáticos, gremlins. As cousas saen mal. GNU Taler debe estar deseñado para tolerar o fallo de compoñentes e sistemas individuais. Onde o sistema poida seguir funcionando con seguridade, seguirá funcionando con seguridade. Onde deba deter unha operación, outras operacións non deben quedar fóra de liña innecesariamente. Onde os sistemas fallen, deben fallar de forma controlada. GNU Taler debe ter un plan para recuperarse de operadores maliciosos que comprometan segredos esenciais.
9. Fomentar a competencia
Debe ser relativamente doado para os competidores despregar alternativas interoperables. As barreiras para isto nos sistemas financeiros tradicionais son bastante altas e están fóra do noso control. Porén, GNU Taler debe minimizar a carga técnica para que novos competidores entren no mercado. GNU Taler debe permitir un conxunto diverso de operadores, rompendo o sistema actual no que só unhas poucas empresas globais dominan o mercado. Un exemplo dunha decisión de deseño que apoia isto é dividir todo o sistema en compoñentes máis pequenos que se poidan operar, desenvolver e mellorar de forma independente, en lugar de ter un sistema completamente monolítico.