GNU Taler: Principios de Diseño
Cuando diseñamos GNU Taler, tuvimos en cuenta los siguientes principio de diseño en mente:
1. Software Libre

GNU Taler debe ser Software Libre. Para comerciantes, el software libre previene el bloqueo en un proveedor, significando que los comerciantes pueden fácilmente elegir otro proveedor de servicio para procesar sus pagos. Para los países, el Software Libre significa que GNU Taler no puede comprometer la soberanía imponiendo restricciones o requerimientos. Y para los operadores de cambio, la transparencia es crucial para satisfacer el principio de Kerckhoffs y establecer la confianza pública.
Los clientes se benefician del Software Libre porque cualquier persona es libre de modificar el software de la cartera para que soporte plataformas adicionales. El código fuente debe estar disponible y hacer que sea fácil verificar la ausencia de características hostiles para los usuarios como el seguimiento o la telemetría.
2. Proteger la privacidad de los compradores

La privacidad es lo más significante cuando está garantizada a través de medidas técnicas, de forma opuesta a meras políticas. Sin la capa técnica proveyendo privacidad-por-defecto, las transacciones financieras revelarían innecesarios niveles de datos personales o privados. Esto sería especialmente verdadero a la hora de realizar micro-pagos para publicaciones on-line. Así, GNU Taler debe proteger la privacidad para los compradores y evitar facilitar el control totalitario sobre la población. Datos privados limitados, como la dirección de entrega para un reparto físico, pueden ser necesarios ser recogidos de acuerdo a las necesidades del negocio y protegidos por las leyes locales. En este caso, GNU Taler debe habilitar el borrado de esa información tan pronto como no sea necesaria.
3. Auditabilildad - permitir al estado gravar los ingresos y tomar medidas drásticas en negocios con actividades ilegales

Como sistema de pago debe cumplir con las leyes locales para poder operar con legalidad, GNU Taler debe ser diseñado para cumplir con estos requerimientos. GNU Taler debe proveer una pista para la auditoría de los investigadores operando bajo la ley. Además, nosotros consideramos la imposición de impuestos como beneficiosa para la sociedad, y una fiscalidad justa requieroetransparencia en los ingresos. Así, GNU Taler debe permitir a las autoridades rastrear los ingresos.
4. Previene el fraude en el pago

GNU Taler debe mitigar las fuentes más comunes de fraude. Nosotros debemos seguir las mejores prácticas de diseño de software, guías de diseño por terceros que prevengan la confusión y los interfaces engañosos, y debemos hacer que otros inspecciones nuestro código público disponible. Además, GNU Taler debe proveer prueba extensiva criptográfica para todos los procesos clave, para permitir a todas las partes atribuir de forma precisa mala conducta.
5. Recoger la mínima información necesaria

La privacidad para los compradores es dada con un prioridad particular como parte del principio (2). De todas formas, otras partes - como los comerciantes - también deben tener protección de datos. Generalmente, GNU Taler debe únicamente recoger la mínima información necesaria: los datos no recogidos o no almacenados por más tiempo, no pueden ser comprometidos.
6. Ser usable

GNU Taler debe ser usable por clientes no expertos incluyendo usuarios finales de la cartera GNU Taler, los comerciantes que deseen aceptar pagos usando GNU Taler, y terceros desarrolladores de aplicación para e-commerce y otras plataformas. GNU Taler debe seguir las mejores practicas en guias de usabilidad e incorporar retroalimentación de expertos y usuarios. El Software Libre también requiere de documentación Libre para permitir opciones informadas. GNU Taler debe proveer Interfaces de Programación Avanzada (APIs) bien documentada, para permitir integraciones sin roces entra GNU Taler y otros proyectos.
7. Ser eficiente

GNU Taler debe ser diseñado para ser eficiente. Bastante simple, eficiencia significa menos cosas que romper, y significa más transacciones por segundo y reducir el impacto medioambiental. La eficiencia es también crítica para GNU Taler para ser usado en los micro-pagos. Por lo tanto ciertas primitivas caras, como el proof-of-work no deben ser usadas por GNU Taler.
8. Diseño tolerante a fallos

Operadores maliciosos, dedos gordos, fallos de ordenador, gremlins. Las cosas salen mal. GNU Taler debe estar diseñado para tolerar fallos de componentes individuales y sistemas. Donde el sistema puede continuar ejecutándose de forma segura, continurá ejecutándose de forma segura. Donde deba detener una operación, otras operaciones no deben sin necesidad desconectarse. Donde los sistemas fallan, deben fallar grácilmente. GNU Taler debe tener un plan para recuperar los secretos principales comprometidos por operadores maliciosos.
9. Fomentar la competencia

Debe ser relativamente sencillo para los competidores, desplegar alternativas inter-operables. Las barreras para esto en sistemas financieros tradicionales son bastante altos y fuera de nuestro control. De todas formas, GNU Taler debe minimizar la carga técnica para los nuevos competidores que entran en el mercado. GNU Taler debe permitir un equipo diferente de operadores, rumpiendo el sistema curriente, donde solo un par de compañías dominan el mercado. Un ejemplo de elección designada que suporta esto es dividir el sistema entero en partes más pequeñas que pueden entonces ser operadas, desarrolladas y mejoradas de manera independiente, en lugar de tener un sistema único monolítico.