GNU Taler: Принципи дизайну
Під час розробки GNU Taler ми керувалися такими принципами дизайну:
1. Вільне програмне забезпечення
GNU Taler повинен бути вільним програмним забезпеченням. Для продавців вільне програмне забезпечення запобігає залежності від постачальника, тобто продавці можуть легко вибрати іншого постачальника послуг для обробки своїх платежів. Для країн вільне програмне забезпечення означає, що GNU Taler не може компрометувати суверенітет, накладаючи обмеження або вимоги. А для операторів обміну прозорість є вирішальною для задоволення принципу Керкгоффа та для встановлення суспільної довіри.
Клієнти виграють від вільного програмного забезпечення, тому що будь-хто може змінювати програмне забезпечення гаманця для підтримки додаткових платформ. Вихідний код повинен бути доступний і дозволяти легко перевірити відсутність функцій, що шкодять користувачам, таких як відстеження або телеметрія.
2. Захист конфіденційності покупців
Конфіденційність має значення, коли вона гарантується технічними заходами, а не просто політиками. Без технічного шару, який забезпечує конфіденційність за замовчуванням, фінансові транзакції розкривають непотрібні рівні особистих або приватних даних. Це особливо актуально при здійсненні мікроплатежів за онлайн-публікації. Таким чином, GNU Taler повинен захищати конфіденційність покупців, щоб уникнути сприяння тоталітарному контролю над населенням. Обмежені приватні дані, такі як адреса доставки для фізичної доставки, можуть потребувати збору відповідно до потреб бізнесу та захисту відповідно до місцевих законів. У цьому випадку GNU Taler повинен забезпечити видалення таких даних, як тільки вони більше не потрібні.
3. Аудитованість - забезпечити можливість держави оподатковувати доходи та боротися з незаконною підприємницькою діяльністю
Оскільки платіжна система повинна дотримуватися місцевих законів для легальної діяльності, GNU Taler має бути спроектований з урахуванням цих вимог. GNU Taler повинен забезпечувати слід аудиту для слідчих, які діють відповідно до закону. Крім того, ми вважаємо оподаткування корисним для суспільства, а справедливе оподаткування вимагає прозорості доходів. Таким чином, GNU Taler повинен дозволити органам влади відстежувати доходи.
4. Запобігання платіжному шахрайству
GNU Taler повинен зменшувати найпоширеніші джерела платіжного шахрайства. Ми повинні дотримуватись найкращих практик у дизайні програмного забезпечення, дотримуватись керівних принципів дизайну сторонніх розробників, які запобігають плутанині та введенню в оману користувацьких інтерфейсів, і дозволяти іншим перевіряти наш загальнодоступний код. Крім того, GNU Taler повинен надавати обширні криптографічні докази для всіх ключових процесів, щоб усі сторони могли точно виявити погану поведінку.
5. Збір мінімально необхідної інформації
Конфіденційності покупців надається особливий пріоритет у рамках принципу №2. Однак інші сторони – такі як продавці – також повинні мати захист даних. Загалом, GNU Taler повинен збирати лише мінімально необхідну інформацію: Дані, які не збираються або більше не зберігаються, не можуть бути скомпрометовані.
6. Зручність використання
GNU Taler повинен бути придатним для використання некваліфікованими користувачами, включаючи кінцевих користувачів гаманця GNU Taler, продавців, які бажають приймати платежі за допомогою GNU Taler, і сторонніх розробників додатків для електронної комерції та інших платформ. GNU Taler повинен дотримуватися найкращих практик у керівних принципах зручності використання та враховувати відгуки експертів і користувачів. Вільне програмне забезпечення також потребує вільної документації для прийняття обґрунтованих рішень. GNU Taler повинен надавати добре задокументовані інтерфейси програмування додатків (API), щоб забезпечити безперешкодну інтеграцію між GNU Taler та іншими проектами.
7. Ефективність
GNU Taler повинен бути розроблений таким чином, щоб бути ефективним. В ефективній системі менше речей може зламатися, вона означає більше транзакцій за секунду та менший вплив на навколишнє середовище. Ефективність також є критично важливою для використання GNU Taler для мікроплатежів. Тому деякі дорогі примітиви, такі як proof-of-work, не повинні використовуватися GNU Taler.
8. Відмовостійкий дизайн
Зловмисні оператори, помилки введення, комп'ютерні збої, гремліни. Речі можуть піти не так. GNU Taler повинен бути розроблений для того, щоб витримувати відмову окремих компонентів і систем. Якщо система може безпечно продовжувати роботу, вона буде продовжувати безпечну роботу. Якщо необхідно зупинити операцію, інші операції не повинні бути необґрунтовано зупинені. У разі відмови систем вони повинні відмовлятися плавно. GNU Taler повинен мати план відновлення у разі, якщо зловмисні оператори скомпрометують основні секрети.
9. Сприяння конкуренції
Конкуренти повинні мати відносно легку можливість розгортання сумісних альтернатив. Бар'єри для цього в традиційних фінансових системах досить високі і знаходяться поза нашим контролем. Однак GNU Taler повинен мінімізувати технічні труднощі для нових конкурентів, щоб увійти на ринок. GNU Taler повинен забезпечити можливість функціонування різноманітних операторів, розбиваючи поточну систему, де лише кілька глобальних компаній домінують на ринку. Прикладом вибору дизайну, який підтримує це, є розділення всієї системи на менші компоненти, які можуть бути незалежно керовані, розроблені та вдосконалені, замість однієї повністю монолітної системи.