taler-www

Main taler.net website
Log | Files | Refs | Submodules | README | LICENSE

principles.html.j2 (9776B)


      1 {% extends "common/base.j2" %}
      2 {% block subtitle %}{{ _("Principles")}}{% endblock subtitle %}
      3 {% block body_content %}
      4 <main id="maincontent">
      5   <script>
      6     function expand(n) {
      7     var x = document.getElementById(n);
      8     console.log(x);
      9     x.setAttribute("style", "");
     10     }
     11   </script>
     12 
     13   <style>
     14     h2 {
     15     margin-top: 1em;
     16     }
     17   </style>
     18 
     19   <div class="container">
     20     <div class="row">
     21       <div class="col">
     22         <h1>{{ _("GNU Taler: Design Principles") }}</h1>
     23       </div>
     24     </div>
     25     <p>
     26       {% trans %}
     27         When designing GNU Taler, we had the following design principles in mind:
     28       {% endtrans %}
     29     </p>
     30     <div class="row">
     31       <div class="col-lg-12">
     32         <h2>{{ _("1. Free/Libre Software") }}</h2>
     33         <a href="https://www.gnu.org/graphics/freedom.html">
     34           <img style="width:20vw;float:right" src="{{ url_static('images/1-libre.png') }}" alt="{{ _("... in the area of computing, freedom means not using proprietary software") }}">
     35         </a>
     36         <p>
     37           {% trans %}
     38             GNU Taler must be <a href="https://www.gnu.org/philosophy/free-sw.html">Free/Libre Software</a>.
     39             For merchants, Free/Libre Software prevents vendor lock-in meaning
     40             merchants can easily choose another service provider to process
     41             their payments.
     42             For countries, Free/Libre
     43             software means GNU Taler can not compromise sovereignty by imposing
     44             restrictions or requirements. And for exchange operators, transparency is crucial to satisfy
     45             <a href="https://en.wikipedia.org/wiki/Kerckhoffs's_principle">Kerckhoffs's principle</a>
     46             and to establish public confidence.
     47           {% endtrans %}
     48         </p>
     49         <p>
     50           {% trans %}
     51             Customers benefit from Free/Libre Software because anyone is free to modify the wallet software to support additional platforms.
     52             The source code must be available and make it easy to verify that user-hostile features such as tracking or telemetry are absent.
     53           {% endtrans %}
     54         </p>
     55       </div>
     56     </div>
     57     <div class="row">
     58       <div class="col-lg-12">
     59         <h2 id="privacy">{{ _("2. Protect the privacy of buyers") }}</h2>
     60         <!-- From https://www.pixabay.com/ -->
     61         <img style="width:20vw;float:left;padding:15px" src="{{ url_static('images/2-buyer-privacy.png') }}" alt="{{_("You deserve some privacy")}}">
     62         <p>
     63           {% trans %}
     64             Privacy is most meaningful when it is guaranteed via technical measures, as opposed to mere
     65             policies. Without a technical layer providing privacy-by-default, financial transactions
     66             reveal unnecessary levels of personal or private data. This would be especially true
     67             when making micropayments for online publications. Thus, GNU Taler must protect
     68             the privacy of buyers to avoid facilitating totalitarian control over the population.
     69           {% endtrans %}
     70 
     71           {% trans %}
     72             Limited private data, such as the shipping address for a physical
     73             delivery, may need to be collected according to business needs
     74             and protected according to local laws. In this case, GNU Taler must enable deletion
     75             of such data as soon as it is no longer required.
     76           {% endtrans %}
     77         </p>
     78       </div>
     79     </div>
     80     <div class="row">
     81       <div class="col-lg-12">
     82         <h2>{{ _("3. Auditability - enable the state to tax income and crack down on illegal business activities") }}</h2>
     83         <!-- From https://www.pxhere.com/ -->
     84         <img style="width:20vw;float:right;padding:15px" src="{{ url_static('images/3-taxable.png') }}" alt="{{_("Money laundering")}}">
     85         <p>
     86           {% trans %}
     87            As a payment system must comply with local laws in order to operate
     88            legally, GNU Taler must be designed to comply with these
     89            requirements. GNU Taler must provide an audit trail for investigators
     90            operating under the law.
     91 
     92            Furthermore, we consider levying of taxes as
     93            beneficial to society, and fair taxation requires income transparency.
     94            Thus, GNU Taler must enable authorities to track income.
     95           {% endtrans %}
     96         </p>
     97       </div>
     98     </div>
     99     <div class="row">
    100       <div class="col-lg-12">
    101         <h2>{{ _("4. Prevent payment fraud") }}</h2>
    102         <!-- From https://www.maxpixel.net/ -->
    103         <img style="width:20vw;float:left;padding:15px" src="{{ url_static('images/4-fraud.png') }}" alt="{{_("Phishing attack")}}">
    104         <p>
    105           {% trans %}
    106            GNU Taler must mitigate the most common sources of payment fraud.
    107            We must follow best practices in software design, 3rd party
    108            design guidelines that prevent confusion and misleading user interfaces,
    109            and must have others inspect our publicly available code.
    110 
    111            Furthermore, GNU Taler must provide extensive cryptographic evidence for
    112            all key processes to enable all parties to precisely attribute bad behavior.
    113           {% endtrans %}
    114         </p>
    115       </div>
    116     </div>
    117     <div class="row">
    118       <div class="col-lg-12">
    119         <h2>{{ _("5. Collect the minimum information necessary") }}</h2>
    120         <img style="width:20vw;float:right;padding:15px" src="{{ url_static('images/5-data-minimization.png') }}" alt="{{_("Privacy by design, privacy by default, General Data Protection Regulation (GDPR) compliant")}}">
    121         <p>
    122           {% trans %}
    123             The privacy of buyers is given particular priority as part of
    124             <a href="#privacy">principle #2</a>. However, other parties - such as merchants - also
    125             must have data protection.
    126 
    127             Generally, GNU Taler must only collect the minimum information necessary:
    128             Data that is not collected or is no longer stored cannot be compromised.
    129           {% endtrans %}
    130         </p>
    131       </div>
    132     </div>
    133     <div class="row">
    134       <div class="col-lg-12">
    135         <h2>{{ _("6. Be usable") }}</h2>
    136         <img style="width:20vw;float:left;padding:15px" src="{{ url_static('images/6-usable.png') }}" alt="{{_("Buy with one click. Easy for children.")}}">
    137         <p>
    138           {% trans %}
    139            GNU Taler must be usable for non-expert customers including
    140            end-users of a GNU Taler wallet, merchants who wish to accept payments
    141            using GNU Taler, and 3rd party application developers for e-commerce and
    142            other platforms.
    143 
    144            GNU Taler must follow best-practices usability guidelines and
    145            incorporate feedback from experts and users. Free/Libre software also
    146            requires Free/Libre documentation to allow for informed choices.
    147            GNU Taler must provide well-documented Application Programming Interfaces (APIs)
    148            to allow frictionless integrations between GNU Taler and other projects.
    149           {% endtrans %}
    150         </p>
    151       </div>
    152     </div>
    153     <div class="row">
    154       <div class="col-lg-12">
    155         <h2>{{ _("7. Be efficient")}}</h2>
    156         <img style="width:20vw;float:right;padding:15px" src="{{ url_static('images/7-efficient.png') }}" alt="{{_("Energy efficiency")}}">
    157         <p>
    158           {% trans %}
    159             GNU Taler must be designed to be efficient.
    160             Quite simply, efficiency means fewer things to break, and it means more
    161             transactions per second and lower environmental impact. Efficiency
    162             is also critical for GNU Taler to be used for micropayments.
    163             Therefore certain expensive primitives, such as proof-of-work,
    164             must not be used by GNU Taler.
    165           {% endtrans %}
    166         </p>
    167       </div>
    168     </div>
    169     <div class="row">
    170       <div class="col-lg-12">
    171         <h2>{{ _("8. Fault-tolerant design")}}</h2>
    172         <img style="width:20vw;float:left;padding:15px" src="{{ url_static('images/8-fault-tolerant.png') }}" alt="{{_("Life Safers")}}">
    173         <p>
    174           {% trans %}
    175           Malicious operators, fat fingers, computer glitches, gremlins. Things
    176           go wrong.
    177 
    178           GNU Taler must be designed to tolerate failure of individual components and
    179           systems. Where the system can continue running safely, it will continue
    180           running safely. Where it must halt an operation, other operations
    181           must not be needlessly pulled offline. Where systems fail,
    182           they must fail gracefully.
    183 
    184           GNU Taler must have a plan to recover from malicious operators
    185           compromising core secrets.
    186           {% endtrans %}
    187         </p>
    188       </div>
    189     </div>
    190     <div class="row">
    191       <div class="col-lg-12">
    192         <h2>{{ _("9. Foster competition")}}</h2>
    193         <img style="width:20vw;float:right;padding:15px" src="{{ url_static('images/9-competition.png') }}" alt="{{_("A competitive market")}}">
    194         <p>
    195           {% trans %}
    196             It must be relatively easy for competitors to deploy interoperable alternatives. The
    197             barriers for this in traditional financial systems are rather high and outside
    198             of our control. However, GNU Taler must minimize the technical
    199             burden for new competitors to enter the market.
    200 
    201             GNU Taler must enable a diverse set of operators, breaking up the current
    202             system where only a few global companies dominate the market.
    203 
    204             An example for a design choice that supports this is to split the whole system into
    205             smaller components that can be operated, developed and improved upon independently,
    206             instead of having one completely monolithic system.
    207           {% endtrans %}
    208         </p>
    209       </div>
    210     </div>
    211   </div>
    212 
    213 
    214 {% endblock body_content %}