Chaumian eCash to rodzina systemów cyfrowej gotówki wywodząca się z prac Davida Chauma. Portfel, czyli aplikacja do przechowywania i używania cyfrowych monet, otrzymuje od emitenta, często nazywanego mint, cyfrowe monety ze ślepym podpisem. Matematyczne ukrycie danych oddziela wydanie konkretnej monety od jej późniejszego użycia. Emitent nadal jednak odpowiada za przyjmowanie lub wykup monet, a w typowych systemach online także za wykrywanie podwójnego wydania.
Kiedy Anna sprawdza saldo w zwykłej aplikacji płatniczej, zazwyczaj widzi zapis na rachunku prowadzonym przez operatora. W eCash może zamiast tego przechowywać bezpośrednio cyfrowe poświadczenia wartości, nazywane monetami lub tokenami. Takie poświadczenie zawiera dane i potwierdzenie obliczone przez program przy użyciu tajnych danych emitenta. Nie jest metalową monetą ani automatycznie nową kryptowalutą. Chodzi o płacenie bliższe gotówce: nie każdy drobny zakup musi zostawiać zapis, który łatwo powiązać z płatnikiem. David Chaum rozwijał tę ideę na długo przed Bitcoinem, a jego firma DigiCash próbowała wprowadzić ją w życie. [1] [3]
Emitenta często nazywa się mint, czyli mennicą. Tutaj chodzi o usługę, nie maszynę wybijającą metal. Anna może na przykład przesłać do niej środki, a jej portfel otrzyma w zamian cyfrowe monety. W systemach bitcoinowych kwoty mogą być wyrażone w sats, czyli satoshi, najmniejszych jednostkach Bitcoina. Najważniejsze pytanie brzmi: kto przechowuje rzeczywiste środki, za które wydano monety? Jeżeli ma je mennica, Anna posiada roszczenie wobec niej, a nie bitcoin kontrolowany wyłącznie własnymi kluczami, czyli tajnymi danymi służącymi do podpisywania transakcji bitcoinowych. Identyczne saldo w sats może więc oznaczać zupełnie inny sposób przechowywania pieniędzy. [8] [6] [7]
Portfel przygotowuje tajne, losowe dane nowej monety i matematycznie je zasłania przed podpisaniem. Emitent widzi żądaną wartość i sprawdza uprawnienie do emisji, ale nie widzi oryginalnych ukrytych danych. Po uzyskaniu podpisu portfel usuwa zasłonę, zachowując ważność potwierdzenia. To blind signature, czyli ślepy podpis. Można go porównać do sprawdzalnej pieczęci na kartce w nieprzezroczystej kopercie; w rzeczywistości zapewnia to matematyka. Prawidłowo wykonany podpis sam w sobie nie zdradza emitentowi, z którym wcześniejszym pobraniem wiąże się przedstawiona moneta. Metody podpisywania i weryfikacji różnią się między systemami. [1] [3] [8]
Anna wysyła Piotrowi token, na przykład w wiadomości. Piotr ma już potrzebne dane, lecz Anna mogła zachować ich kopię. Dlatego w Cashu portfel odbiorcy prosi mennicę o wymianę otrzymanych monet na nowe, przygotowane przez odbiorcę. Mennica unieważnia stare monety i wydaje nowe. Dopiero po pomyślnym zakończeniu wymiany nadawca nie może wydać zachowanej kopii starych monet. Taki proces pozwala też oddzielić nowe monety od oddanych. Sam obraz kodu QR ani zielony znacznik doręczenia wiadomości nie dowodzą więc, że odbiorca bezpiecznie przejął wartość. [8] [9]
Double spend to próba wielokrotnego wydania tej samej wartości. Mennica online zapisuje dane już użytych monet i odrzuca ich kolejne użycie. Chroni w ten sposób przed prostym kopiowaniem pieniędzy przez użytkownika. Taka baza sama nie dowodzi jednak, że emitent ma wystarczające rezerwy albo że nie wydaje dodatkowych monet bez pokrycia. Ochronę przed nieuczciwym użytkownikiem trzeba odróżnić od zaufania do operatora. Nawet poprawne kryptograficzne potwierdzenie monety nie jest wyciągiem z jego rezerw. Jeśli emitent przestanie współpracować, można mieć ważny token, a mimo to nie odzyskać środków. [2] [6] [8]
Przekazanie danych między telefonami bez połączenia to jedno; pewność, że nikt właśnie nie wydał ich gdzie indziej, to drugie. Niektóre rozwiązania pozwalają bez internetu sprawdzić pochodzenie podpisu. Nie potwierdza to jednak bieżącego stanu monety. Historyczne badania Chauma, Amosa Fiata i Moniego Naora opisywały również gotówkę offline, w której powtórne wydanie mogło później ujawnić sprawcę. Nie oznacza to, że mechanizm ten stosuje każdy dzisiejszy portfel. Przy obietnicach płatności offline warto zatem rozdzielać przekazanie danych, sprawdzenie autentyczności i ochronę przed podwójnym wydaniem. [2] [10]
Portfel nie musi mieć osobnej monety na każdą możliwą kwotę. Może łączyć monety o różnych nominałach i w razie potrzeby je wymieniać. Załóżmy saldo 500 sats i płatność 300 sats. Pomijając opłaty, Anna chce przygotować monety o łącznej wartości 300 sats do wysłania i zachować 200 sats. Jeżeli nie ma odpowiedniej kombinacji, Cashu umożliwia wymianę w mennicy, która zastępuje stare monety nowymi. Nie jest to zmiana kursu ani sposób zarabiania na rozmienianiu. Rzeczywiste opłaty i dostępne nominały zależą od reguł danego systemu. [8] [9]
Ślepy podpis ogranicza możliwość powiązania wydania monety z jej późniejszym użyciem. Nie usuwa jednak adresu dostawy u sprzedawcy, logowania do aplikacji, śladów sieciowych ani charakterystycznego zestawienia czasu i kwoty. Zwykły token bez dodatkowej blokady może wydać osoba, która pozna jego tajne dane. Publiczne udostępnienie go nie jest więc tym samym co podanie adresu do odbioru płatności. Nie należy też zakładać, że kopia zapasowa portfela rozwiąże każdy problem. Przykładowo przywrócenie środków w Cashu może wymagać zarówno słów kopii zapasowej, jak i współpracy mennicy. Kopia nie odda wartości wydanej już przez kogoś innego ani nie uzupełni brakujących rezerw emitenta. [3] [11] [12]
GNU Taler wykorzystuje ślepe podpisy do ochrony klienta, ale jednocześnie przewiduje możliwość kontroli przychodów sprzedawców. Nie ma zatem ukrywać wszystkich uczestników przed wszystkimi. Cashu oferuje protokół bitcoinowej gotówki elektronicznej z mennicami. Fedimint rozdziela zarządzanie między federację, czyli grupę opiekunów, aby pieniędzy nie kontrolowała jedna osoba. Wystarczająco duża część tej grupy nadal może jednak zagrozić powierzonym środkom lub wyemitować monety bez pokrycia. Federacja zmienia rozkład zaufania, lecz go nie usuwa. Tych projektów nie można utożsamiać tylko dlatego, że korzystają z pokrewnego pomysłu kryptograficznego. [4] [5] [6] [13]
Bitcoin weryfikuje przelewy w sieci według wspólnych reguł, bez centralnego emitenta, ale jego historia transakcji jest publiczna. eCash może przenieść część płatności do bardziej prywatnego środowiska emitenta i łączyć się z Bitcoinem na przykład przez Lightning Network, sieć kanałów płatniczych do szybkich płatności. Uczestnicy kanału aktualizują podział wcześniej wpłaconych bitcoinów, nie zapisując każdej pojedynczej płatności w publicznej historii Bitcoina. Wpłata lub wypłata przez Lightning nie zamienia jednak automatycznie tokenu mennicy w bitcoin przechowywany samodzielnie. Na początek wystarczą trzy pytania: kto trzyma środki stanowiące pokrycie, kto może odmówić wykupu i kto widzi jakie informacje o płatnościach? Dopiero te odpowiedzi razem pokazują, co rzeczywiście oferuje konkretny eCash. [6] [7] [13] [14]
Pełniejszy obraz uzyskasz, czytając to hasło razem z David Chaum, Blind Signature, DigiCash, Cashu, Fedimint, Podwójne wydanie. Do tego hasła prowadzą również odsyłacze z DigiCash, Reusable Proofs of Work, The Crypto Anarchist Manifesto, Blind Signature.