Проект GNU представил выпуск свободной системы электронных платежей GNU Taler 0.8. Особенностью системы является то, что покупателям предоставляется анонимность, но продавцы не являются анонимными для обеспечения прозрачности предоставления налоговой отчётности, т.е. система не позволяет отследить информацию о том, куда пользователь тратит деньги, но предоставляет средства для отслеживания поступления средств (отправитель остаётся анонимным), что решает свойственные BitCoin проблемы с налоговым аудитом. Код написан на Python и распространяется под лицензиями AGPLv3 и LGPLv3.
GNU Taler не создаёт собственную криптовалюту, а работает с уже существующими валютами, в том числе с долларами, евро и биткоинами. Поддержку новых валют можно обеспечить через создание банка, который выступает финансовым гарантом. Бизнес-модель GNU Taler основана на выполнении операций обмена – деньги из традиционных платёжных систем, таких как BitCoin, Mastercard, SEPA, Visa, ACH и SWIFT, преобразуются в анонимные электронные деньги в той же валюте. Пользователь может передавать электронные деньги продавцам, которые затем могут на точке обмена поменять их обратно в реальные деньги, представленные традиционными системами платежей.
Все транзакции в GNU Taler защищены с использованием современных криптографических алгоритмов, позволяющих сохранить достоверность даже при утечке приватных ключей клиентов, продавцов и точек обмена. Формат БД предоставляет возможность верификации всех совершённых транзакций и подтверждения их непротиворечивости. Подтверждением платежа для продавцов является криптографическое доказательство перевода в рамках заключённого с клиентом контракта и криптографически подписанное подтверждение о наличии средств на точке обмена. В состав GNU Taler входят набор базовых компонентов, предоставляющих логику для работы банка, точки обмена, торговой площадки, кошелька и аудитора.
В новом выпуске реализованы инменения, подготовленные для устранения недоработок, выявленных в результате проведения аудита безопасности кодовой базы. Аудит был выполнен в 2020 году компанией Code Blau и профинансирован через грант, выданный Еврокомиссией в рамках программы по развитию интернет-технологий нового поколоения. После проведения проверки были даны рекомендации, связанные с усиленим изоляции закрытых ключей и разделения привилегий, улучшением документирования кода, упрощению усложнённых конструкций, переработкой методов обработки NULL-указателей, инициализации структур и callback-вызовов.
Основные изменения:
- Усилена изоляция закрытых ключей, которые теперь обрабатываются с использованием отдельных исполняемых файлов taler-exchange-secmod-*, запускаемых под отдельным пользователем, что позволяет отделить логику работы с ключами от процесса taler-exchange-httpd, обрабатывающего внешние сетевые запросы.
- Усилена изоляция конфиденциальных параметров конфигурации точек обмена (бирж).
- В реализацию кошелька (Wallet-core) добавлена поддержка резервного копирования и восстановления.
- В варианте кошелька на базе технологии WebExtension, предназначенном для использования в браузерах, добавлена поддержка браузера GNU IceCat. Значительно сокращены права доступа, необходимые для работы кошелька на базе WebExtension.
- Для точек обмена и торговых площадок предоставлена возможность определения своих условий предоставления услуг.
- В бэкенд для организации работы торговых площадок добавлены необязательные инструменты для инвентаризации.
- В контракте предоставлена возможность отображения эскизов изображений продукта.
- В каталоге F-Droid размещены Android-приложения для торгового учёта (point-of-sale) и работы кассы, используемые для организации продаж на торговых площадках.
- Улучшена реализация процесса возврата средств.
- Улучшен и упрощён HTTP API для торговых площадок. Упрощено создание фронтэндов для торговых площадок, добавлена возможность генерации бэкендом готовых HTML-страниц для работы с кошельком.
- В кошельке изменено оформление представления информации о транзакциях, истории, ошибках и ожидающих выполнения операциях. Повышена стабильность работы кошелька и удобство работы. Документирован API кошелька, который теперь используется во всех интерфейсах пользователя.