Wei Dai — криптограф і початковий автор бібліотеки Crypto++. У проєкті b-money 1998 року він описав, як люди під цифровими псевдонімами могли б вести грошові рахунки й укладати договори. Bitcoin посилається на цю працю, проте має власну будову мережі та правила.
Щоб зашифрувати повідомлення чи перевірити цифровий підпис, програмістові не обов’язково писати всі процедури з нуля. Можна скористатися криптографічною бібліотекою — набором функцій для роботи із захищеними даними. Wei Dai початково написав саме таку бібліотеку, Crypto++, мовою C++. Це справжнє програмне забезпечення, яке можна включити до застосунку. b-money — інший вид внеску: письмовий проєкт грошової системи. Наявність робочої бібліотеки не доводить, що мережа за цим проєктом теж працювала. Щоб зрозуміти його доробок, ці два напрями слід розглядати окремо. [3]
У листопаді 1998 року Wei Dai поставив запитання, знайоме навіть зі звичайних покупок онлайн: як співпрацювати, не розкриваючи особу? У b-money він запропонував два протоколи, тобто набори правил спільного обліку й договорів. Псевдонімами мали бути публічні ключі, а повідомлення — мати цифрові підписи. Однак мережа, яка не дозволяє відстежити учасників, була вихідним припущенням, а не властивістю, яку забезпечував сам проєкт. Перший варіант автор назвав непрактичним через складні вимоги до розсилання повідомлень. Отже, перед нами продумана пропозиція, а не інструкція вже діючої анонімної послуги. [1]
Уявімо, що Анна має 5 одиниць b-money й надсилає Томові 2. У першому варіанті кожен учасник зберігає власну копію рахунків. Підписане повідомлення Анни наказує іншим списати платіж з її рахунку та зарахувати його Томові; в Анни залишаються 3 одиниці. Повідомлення, яке створило б від’ємний баланс, ігнорується. Підпис дозволяє перевірити повноваження на розпорядження, але спільному обліку потрібні також правила доставки повідомлень. Bitcoin згодом використав модель UTXO: вона відстежує конкретні виходи транзакцій, які ще можна витратити. Подібна мета не означає однакового способу обліку. [1]
Другий варіант b-money передає облік частині учасників, яких названо серверами. Це зменшує роботу інших, але потребує контролю обліковців. Сервери мають вносити заставу для можливих штрафів, періодично публікувати свої бази даних і публічно зобов’язуватися дотримуватися зафіксованого в них вмісту. Користувач перевіряє власний баланс і чи не перевищує сума рахунків обсяг випущених грошей. Одержувач також перевіряє обробку платежу на випадково вибраних серверах. Застава не усуває довіру магічним чином. Вона є частиною запропонованого нагляду за людьми й машинами, що ведуть рахунки. [1]
У початковому b-money одиниці створюються за розв’язання обчислювальної задачі. Їхня кількість мала б відповідати вартості обчислень, виміряній стандартним кошиком товарів. Кошик дає спільну міру витрат, а не визначає ціну одиниці на ринку. Проте комп’ютери вдосконалюються, а їхні справжні витрати відомі не всім. Dai визнав цю складність і в додатку запропонував аукціон: обліковці узгоджують кількість нових грошей, а охочі змагаються обчислювальними пропозиціями. Це не графік емісії BTC. Цінність тексту також у тому, що він відкрито називає проблему й шукає інший шлях. [1]
Проєкт виходить за межі платежів. У замовленні перекладу підпис може підтвердити згоду з договором, але не якість готового тексту. Тому договори b-money передбачають застави, погоджене відшкодування за порушення та допомогу арбітра. Якщо сторони не домовляться і з ним, вони подають аргументи, а кожен учасник, що веде облік, робить власний висновок. Це показує, як складно перенести людські суперечки до цифрової системи. Натомість Bitcoin Script, мова умов витрачання виходу транзакції, перевіряє точно задані технічні умови. Сама вона не визначить, чи добрим був обіцяний переклад. [1]
Satoshi Nakamoto навів b-money 1998 року як джерело 1 у whitepaper Bitcoin — документі, що пояснює його будову. Так можна простежити конкретний зв’язок ідей: цифрові гроші без спільного адміністратора досліджували ще до Bitcoin. Посилання не означає запозичення всіх механізмів. Облік, емісія та розв’язання суперечок у b-money відрізняються від Bitcoin. Воно також не розкриває, хто стояв за ім’ям Satoshi Nakamoto. Для розуміння історії корисніше порівнювати документовані тексти, ніж встановлювати особу автора за одним посиланням. [2]
Історія Crypto++ триває у виправленнях, тестах і роботі інших розробників. Історія проєкту зазначає, що в червні 2015 року Wei Dai передав щоденне керування спільноті. Для користувачів важливі не лише початковий автор, а й конкретна версія та правильне застосування функцій. Бібліотека може надати інструмент підпису чи шифрування, але сама не вирішить безпечного зберігання ключів або повного устрою гаманця. Розробник застосунку має читати документацію, стежити за виправленнями й перевіряти власне використання. Повага до внеску автора цілком поєднується з перевіркою сучасного програмного забезпечення. [3]
Для повної картини прочитайте також Adam Back, Nick Szabo, b-money, Satoshi Nakamoto. На цю статтю також посилаються b-money, Bit Gold, Adam Back, Nick Szabo.