GNU Taler: עקרונות תכנון

בעת תכנון GNU Taler, היו לנגד עינינו עקרונות התכנון הבאים:

1. תוכנה חופשית

... בתחום המחשוב, חופש משמעו אי-שימוש בתוכנה קניינית

GNU Taler חייבת להיות תוכנה חופשית. עבור סוחרים, תוכנה חופשית מונעת תלות בספק (vendor lock-in), כלומר סוחרים יכולים לבחור בקלות ספק שירות אחר לעיבוד התשלומים שלהם. עבור מדינות, תוכנה חופשית משמעה ש-GNU Taler אינה יכולה לפגוע בריבונות על ידי הטלת הגבלות או דרישות. ועבור מפעילי חלפן, שקיפות חיונית כדי לעמוד בעקרון קרקהוף וכדי לבסס את אמון הציבור.

לקוחות נהנים מתוכנה חופשית משום שכל אחד חופשי לשנות את תוכנת הארנק כדי לתמוך בפלטפורמות נוספות. קוד המקור חייב להיות זמין ולהקל על אימות שתכונות עוינות-משתמש כגון מעקב או טלמטריה אינן קיימות.

2. הגנה על פרטיות הקונים

מגיעה לכם מידה של פרטיות

פרטיות היא בעלת המשמעות הרבה ביותר כאשר היא מובטחת באמצעים טכניים, בניגוד למדיניות בלבד. ללא שכבה טכנית המספקת פרטיות-כברירת-מחדל, עסקאות פיננסיות חושפות רמות מיותרות של נתונים אישיים או פרטיים. הדבר נכון במיוחד בעת ביצוע מיקרו-תשלומים עבור פרסומים מקוונים. לכן, GNU Taler חייבת להגן על פרטיות הקונים כדי להימנע מהקלה על שליטה טוטליטרית באוכלוסייה. ייתכן שיהיה צורך לאסוף נתונים פרטיים מוגבלים, כגון כתובת המשלוח עבור מסירה פיזית, בהתאם לצורכי העסק ולהגן עליהם בהתאם לחוקים המקומיים. במקרה זה, GNU Taler חייבת לאפשר את מחיקת נתונים אלה ברגע שאינם נדרשים עוד.

3. יכולת ביקורת - לאפשר למדינה למסות הכנסה ולפעול נגד פעילויות עסקיות בלתי חוקיות

הלבנת הון

מכיוון שמערכת תשלומים חייבת לציית לחוקים המקומיים כדי לפעול באופן חוקי, GNU Taler חייבת להיות מתוכננת לציית לדרישות אלה. GNU Taler חייבת לספק מסלול ביקורת עבור חוקרים הפועלים על פי החוק. יתרה מזאת, אנו רואים בגביית מסים דבר מועיל לחברה, ומיסוי הוגן מחייב שקיפות הכנסה. לכן, GNU Taler חייבת לאפשר לרשויות לעקוב אחר הכנסה.

4. מניעת הונאת תשלומים

מתקפת התחזות (phishing)

GNU Taler חייבת להפחית את המקורות הנפוצים ביותר של הונאת תשלומים. עלינו לפעול לפי שיטות עבודה מומלצות בתכנון תוכנה, הנחיות תכנון של צד שלישי המונעות בלבול וממשקי משתמש מטעים, ועלינו לאפשר לאחרים לבחון את הקוד הזמין לציבור שלנו. יתרה מזאת, GNU Taler חייבת לספק ראיות קריפטוגרפיות נרחבות עבור כל התהליכים המרכזיים כדי לאפשר לכל הצדדים לייחס במדויק התנהגות פסולה.

5. איסוף המידע המינימלי הנדרש

פרטיות מעצם התכנון, פרטיות כברירת מחדל, תואם לתקנה הכללית להגנת מידע (GDPR)

פרטיות הקונים זוכה לעדיפות מיוחדת כחלק מעקרון מס' 2. עם זאת, גם לצדדים אחרים - כגון סוחרים - חייבת להיות הגנת מידע. באופן כללי, GNU Taler חייבת לאסוף רק את המידע המינימלי הנדרש: נתונים שאינם נאספים או שאינם מאוחסנים עוד אינם יכולים להיפגע.

6. להיות שמישה

קנו בלחיצה אחת. קל לילדים.

GNU Taler חייבת להיות שמישה עבור לקוחות שאינם מומחים, כולל משתמשי קצה של ארנק GNU Taler, סוחרים המעוניינים לקבל תשלומים באמצעות GNU Taler, ומפתחי יישומים של צד שלישי עבור מסחר אלקטרוני ופלטפורמות אחרות. GNU Taler חייבת לפעול לפי הנחיות שמישות מיטביות ולשלב משוב ממומחים וממשתמשים. תוכנה חופשית מחייבת גם תיעוד חופשי כדי לאפשר בחירות מושכלות. GNU Taler חייבת לספק ממשקי תכנות יישומים (APIs) מתועדים היטב כדי לאפשר אינטגרציות חלקות בין GNU Taler לפרויקטים אחרים.

7. להיות יעילה

יעילות אנרגטית

GNU Taler חייבת להיות מתוכננת להיות יעילה. בפשטות, יעילות משמעה פחות דברים שעלולים להישבר, והיא משמעה יותר עסקאות בשנייה והשפעה סביבתית נמוכה יותר. יעילות היא גם קריטית כדי ש-GNU Taler תשמש למיקרו-תשלומים. לכן, פרימיטיבים יקרים מסוימים, כגון הוכחת-עבודה, אסור שישמשו את GNU Taler.

8. תכנון עמיד בפני תקלות

מצילי חיים

מפעילים זדוניים, טעויות הקלדה, תקלות מחשב, שדונים. דברים משתבשים. GNU Taler חייבת להיות מתוכננת לסבול כשל של רכיבים ומערכות בודדים. במקום שבו המערכת יכולה להמשיך לפעול בבטחה, היא תמשיך לפעול בבטחה. במקום שבו עליה לעצור פעולה, אסור שפעולות אחרות יורדו מהרשת ללא צורך. במקום שבו מערכות נכשלות, עליהן להיכשל בחן. ל-GNU Taler חייבת להיות תוכנית להתאוששות ממפעילים זדוניים הפורצים סודות ליבה.

9. טיפוח תחרות

שוק תחרותי

צריך להיות קל יחסית למתחרים לפרוס חלופות הניתנות לתפעול הדדי. החסמים לכך במערכות הפיננסיות המסורתיות גבוהים למדי ומחוץ לשליטתנו. עם זאת, GNU Taler חייבת למזער את הנטל הטכני עבור מתחרים חדשים להיכנס לשוק. GNU Taler חייבת לאפשר מגוון של מפעילים, ולפרק את המערכת הנוכחית שבה רק מספר מועט של חברות גלובליות שולטות בשוק. דוגמה לבחירת תכנון התומכת בכך היא פיצול המערכת כולה לרכיבים קטנים יותר שניתן להפעיל, לפתח ולשפר באופן עצמאי, במקום מערכת מונוליטית לחלוטין אחת.