Wei Dai to kryptograf i pierwotny autor biblioteki Crypto++. W propozycji b-money z 1998 roku opisał, jak osoby korzystające z cyfrowych pseudonimów mogłyby prowadzić rachunki pieniężne i zawierać umowy. Bitcoin odwołuje się do tej pracy, ale ma własną konstrukcję sieci i zasady.
Programista, który chce zaszyfrować wiadomość lub sprawdzić podpis cyfrowy, nie musi pisać wszystkich procedur od początku. Może skorzystać z biblioteki kryptograficznej, czyli zestawu funkcji do pracy z chronionymi danymi. Wei Dai napisał pierwotnie taką bibliotekę, Crypto++, w języku C++. To rzeczywiste oprogramowanie, które można włączyć do aplikacji. b-money jest innym rodzajem wkładu: pisemną propozycją systemu pieniężnego. Istnienie działającej biblioteki nie dowodzi, że działała również sieć realizująca ten projekt. Te dwa obszary warto śledzić oddzielnie. [3]
W listopadzie 1998 roku Wei Dai postawił pytanie znajome choćby z zakupów internetowych: jak współpracować bez ujawniania tożsamości? W b-money zaproponował dwa protokoły, czyli zestawy reguł wspólnej księgowości i umów. Klucze publiczne miały służyć jako pseudonimy, a wiadomości miały być podpisywane cyfrowo. Sieć uniemożliwiająca namierzenie uczestników była jednak założeniem, nie czymś, co projekt sam zapewniał. Autor uznał pierwszy wariant za niepraktyczny ze względu na wymagania dotyczące rozsyłania wiadomości. Czytamy zatem przemyślany projekt, a nie instrukcję działającej już anonimowej usługi. [1]
Załóżmy, że Anna ma w b-money 5 jednostek i wysyła Tomaszowi 2. W pierwszym wariancie każdy uczestnik przechowuje kopię rachunków. Podpisana wiadomość Anny nakazuje pozostałym obciążyć jej rachunek i uznać rachunek Tomasza; Annie pozostają 3 jednostki. Wiadomość prowadząca do ujemnego salda jest ignorowana. Podpis pozwala sprawdzić uprawnienie do wydania dyspozycji, ale wspólna księgowość potrzebuje też reguł doręczania wiadomości. Bitcoin zastosował później model UTXO: śledzi konkretne wyjścia transakcji, które nadal można wydać. Podobny cel nie oznacza więc tego samego sposobu ewidencji. [1]
Drugi wariant b-money powierza rachunki części uczestników, zwanych serwerami. Pozostali mają mniej pracy, trzeba jednak kontrolować zarządców. Serwery mają wpłacać zabezpieczenie, z którego można pokryć kary, oraz regularnie publikować bazy danych i publicznie zobowiązywać się do określonej treści tych zapisów. Użytkownicy sprawdzają własne saldo i to, czy suma rachunków nie przekracza wyemitowanych pieniędzy. Odbiorca płatności ma również potwierdzać jej przetworzenie u losowo wybranych serwerów. Samo zabezpieczenie nie usuwa zaufania. Jest częścią proponowanego nadzoru nad ludźmi i maszynami prowadzącymi rachunki. [1]
W pierwotnym b-money jednostki powstają za rozwiązanie problemu obliczeniowego. Ich ilość miałaby odpowiadać kosztowi obliczeń wyrażonemu w standardowym koszyku dóbr. Koszyk daje wspólną miarę kosztów, ale nie ustala ceny, jaką ktoś zapłaci za jednostkę na rynku. Komputery jednak się rozwijają, a ich rzeczywiste koszty nie są wszystkim znane. Dai wskazał tę trudność i w dodatku zaproponował aukcję: prowadzący rachunki negocjują ilość nowych pieniędzy, a chętni rywalizują ofertami pracy obliczeniowej. Nie jest to harmonogram emisji BTC. Wartością tekstu jest także otwarte nazwanie problemu i poszukiwanie innej drogi. [1]
Projekt wykracza poza płatności. Przy zleceniu tłumaczenia podpis może wykazać zgodę na umowę, ale nie jakość dostarczonego tekstu. Dlatego umowy b-money obejmują zabezpieczenia, ustalone odszkodowania za naruszenie i pomoc arbitra. Jeśli strony nadal się nie porozumieją, przedstawiają argumenty, a poszczególni prowadzący rachunki rozstrzygają samodzielnie. Pokazuje to trudność przenoszenia ludzkich sporów do systemu cyfrowego. Bitcoin Script, język warunków wydania wyjścia transakcji, sprawdza natomiast dokładnie określone warunki techniczne. Sam nie oceni, czy obiecane tłumaczenie było dobre. [1]
Satoshi Nakamoto podał b-money z 1998 roku jako źródło 1 w whitepaperze Bitcoina, dokumencie wyjaśniającym jego konstrukcję. Pozwala to prześledzić konkretny związek intelektualny: pieniądz cyfrowy bez wspólnego zarządcy badano przed Bitcoinem. Cytowanie nie oznacza jednak przyjęcia wszystkich proponowanych mechanizmów. Rachunki, emisja i rozstrzyganie sporów w b-money różnią się od Bitcoina. Odwołanie nie ujawnia też, kto krył się pod nazwą Satoshi Nakamoto. W poznawaniu historii więcej daje porównywanie udokumentowanych tekstów niż wyprowadzanie tożsamości autora z przypisu. [2]
Historia Crypto++ to także poprawki, testy i praca kolejnych programistów. Historia projektu odnotowuje przekazanie przez Wei Dai codziennego zarządzania społeczności w czerwcu 2015 roku. Dla użytkownika liczy się więc zarówno pierwotny autor, jak i konkretna wersja oraz właściwe użycie funkcji. Biblioteka może dostarczać narzędzia do podpisywania lub szyfrowania, ale sama nie rozwiąże bezpiecznego przechowywania kluczy ani całej konstrukcji portfela. Twórca aplikacji musi czytać dokumentację, śledzić poprawki i sprawdzać własne zastosowanie. Docenianie autora idzie w parze z kontrolą dzisiejszego oprogramowania. [3]
Pełniejszy obraz uzyskasz, czytając to hasło razem z Adam Back, Nick Szabo, b-money, Satoshi Nakamoto. Do tego hasła prowadzą również odsyłacze z b-money, Bit Gold, Adam Back, Nick Szabo.