Fedimint — відкрите програмне забезпечення й протокол для спільної платіжної системи. Її веде група опікунів, федерація, що випускає e-cash: цифрові токени для обміну на біткоїни з її резерву. Користувач має токени, а не самостійне право підписати виведення з резерву.
Уявіть: Анна користується гаманцем місцевої федерації, а Петро приймає її e-cash у кав’ярні. Кожна кава не мусить створювати окрему транзакцію Bitcoin. Застосунки передають цифрові токени спільного монетного двору, mint. Самі біткоїни залишаються в резерві федерації; між Анною та Петром передаються токени. Fedimint надає складові, опікуни керують конкретною федерацією, а гаманець — інтерфейс Анни. Це різні речі. Стандартні модулі працюють із Bitcoin, Lightning Network та e-cash; інші можуть додавати послуги. Кожна федерація має власну роботу й резерви. Її токени не приймають автоматично всі інші федерації. Навіть згода опікунів усередині федерації не замінює правил мережі Bitcoin. [1] [2]
Федерація має усунути залежність важливих дій від одного оператора. За умовного порога 3-of-4 для випуску токена потрібні три дійсні частки підпису від чотирьох опікунів. Недоступність одного ще залишає досить часток, двох — уже ні. Але троє власників часток можуть і спільно підписувати без згоди четвертого. Розподіл повноважень не гарантує чесності чи достатніх резервів. Це Counterparty risk: залежність від людей або організацій, які можуть не виплатити кошти. Порогові підписи e-cash і Multisig, спільне право розпоряджатися резервом Bitcoin, також мають різні завдання. Перевіряйте справжні правила обраної федерації. [3] [4]
Коли Анна вносить біткоїни прямо через блокчейн, публічну історію підтверджених транзакцій, її застосунок подає доказ відповідного виходу, який федерація має прийняти за своїми правилами. Кожен такий вихід містить суму й умови, за яких її можна витратити. При виведенні федерація складає й підписує транзакцію Bitcoin з резерву. Сам токен не дає Анні ключа, щоб вивести кошти без інших. Це важлива відмінність від Self-Custody, самостійного керування ключами, якими підписують платежі Bitcoin. Потрібні доступні опікуни, достатні кошти, комісії й необхідні підтвердження. Швидкий внутрішній платіж не обіцяє такого ж швидкого виведення будь-якої суми. [4] [7]
Приватність e-cash спирається на Blind Signature, сліпий підпис. Клієнт математично приховує конкретний токен, просить його підписати, а потім прибирає засліплення. Результат можна перевірити, але сам токен не дозволяє mint пов’язати пізніше погашення з певним запитом на випуск. Для технічно допитливих: документація описує порогові підписи BLS на BLS12-381, а не FROST як підпис токена. Клієнт поєднує достатньо дійсних часток в один перевірюваний підпис. Кожен номінал має власний ключ, тож прихована ідентичність токена не приховує від mint номінали, які він випускає. [3]
Петро може перевірити дійсний підпис федерації. Але це не показує, чи хтось уже погасив токен. Цифрові дані копіюються, і Анна може досі мати такий самий токен. Федерація тому записує витрачені ідентифікатори, nonce, й відхиляє повторне витрачання. Одержувачу потрібен успішний обмін на нові токени, а не лише обіцянка, що іншу копію не використають. Справжність підпису, невитрачений стан і достатній резерв — три окремі питання. Перевірка одного не дає відповіді на всі. [3]
Якщо кав’ярня приймає звичайний платіж Lightning Network, переказ може забезпечити gateway, платіжний шлюз. Він поєднує федерацію з Lightning і потребує ліквідності, доступних коштів, з обох боків. Шлюз не обов’язково є опікуном федерації. Документація модуля V2 описує контракти, що ставлять виплату в залежність від умов платежу, та preimage, секретне значення, яке розкривається при виконанні умови. Невдалі платежі мають шляхи повернення за контрактом, але це не гарантує постійної доступності. Несправний шлюз або брак ліквідності зупиняє платіж навіть за робочого mint. [5]
Сліпий підпис не дає mint за самим токеном пов’язати його випуск із подальшим погашенням. Він не стирає решти слідів. Одержувач може знати, що платила Анна; шлюз бачить дані для роботи з Lightning; спостерігач може порівнювати час або суми. Дані мережевого з’єднання теж бувають підказкою. Запитуйте, що має бути приховано й від кого: опікуна, кав’ярні, шлюзу чи спостерігача мережі. Приватніший обіг токенів не робить автоматично анонімними всі внесення, виведення й людські контакти. [3] [5]
Втрачений телефон не обов’язково означає втрачені токени, якщо застосунок підтримує правильно налаштоване відновлення. Описаний механізм використовує головне секретне значення, з якого застосунок може знову обчислити потрібні дані, зашифровані копії стану й доступну історію федерації. Точний порядок залежить від застосунку та версії; це не просто введення Seed Phrase для Bitcoin у будь-який гаманець. Перш ніж покладатися на сервіс, окремо випробуйте відновлення клієнта й невелике виведення. Копія допомагає при втраті даних, але не наповнює порожній резерв і не змушує потрібних опікунів співпрацювати. [6] [4]
Для повної картини прочитайте також Cashu, Chaumian eCash, Lightning Network, Multisig, Counterparty risk, Самостійне зберігання. На цю статтю також посилаються Chaumian eCash, Blind Signature, Cashu.