GNU Taler: Principios de Diseño
Cuando diseñamos GNU Taler, tuvimos en cuenta los siguientes principios 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 enérgicas en actividades comerciales 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 requiere transparencia en los ingresos. Así, GNU Taler debe permitir a las autoridades rastrear los ingresos.
4. Evitar el fraude en los pagos
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 impidan la confusión y los interfaces engañosos, y debemos hacer que otros inspeccionen nuestro código fuente público y disponible. Además, GNU Taler debe proveer prueba extensiva criptográfica para todos los procesos clave, y así permitir a todas las partes atribuir de forma precisa una mala conducta.
5. Recoger la mínima información necesaria
La privacidad para los compradores es dada con una 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 tomar decisiones informadas. GNU Taler debe proveer Interfaces de Programación Avanzada (APIs) bien documentadas, para permitir integraciones sin fricciones entre GNU Taler y otros proyectos.
7. Ser eficiente
GNU Taler debe ser diseñado para ser eficiente. Muy sencillo, 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 costosas, como el proof-of-work no deben ser usadas por GNU Taler.
8. Diseño tolerante a fallos
Operadores maliciosos, cometer un error al teclear, 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 pueda continuar ejecutándose de forma segura, continurá ejecutándose de forma segura. Donde deba detener una operación, otras operaciones pueden continuar ejecutándose de forma segura. Donde los sistemas fallan, deben fallar suavemente. 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, acabar con el sistema actual, donde solo unas pocas empresas dominan el mercado. Un ejemplo de elección designada que soporta 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 disponer de un sistema único monolítico.