105 / 736B¥

b-money

Задум цифрових грошей до Bitcoin

Як двом людям заплатити одне одному, якщо вони знають лише мережеві псевдоніми й не хочуть звертатися до банку? Wei Dai досліджував це ще 1998 року. Його b-money залишилося пропозицією, але допомагає зрозуміти складність Bitcoin: підписати платіж недостатньо, треба ще узгодити, кому належать гроші.

b-money — пропозиція цифрових грошей, яку Wei Dai представив 1998 року. Вона описує два способи спільного обліку балансів і виконання договорів між людьми з цифровими псевдонімами. Це не була запущена валюта чи попередня версія програми Bitcoin. Згодом Bitcoin whitepaper поставив її першою у списку джерел.

Уявіть, що Анна замовляє в Петра ілюстрацію через інтернет. Вони знають лише псевдоніми одне одного. Хочуть заплатити й домовитися про наслідки порушення обіцянки, не розкриваючи спершу свої особи банку чи іншій установі. Такі питання цікавили Cypherpunks — спільноту, що досліджувала захист приватності за допомогою криптографії. Wei Dai відповів задумом b-money 1998 року. Цифровий псевдонім тут був не просто вигаданим ім’ям: ним слугував відкритий ключ — дані, які не потрібно тримати в таємниці й за допомогою яких інші перевіряють підпис повідомлення. Прихованість справжньої особи залежала також від передбаченої анонімної комунікації. [1] [2]

У нашому прикладі Анна має 10 одиниць і хоче переказати Петру 3. Вона опублікувала б повідомлення про переказ і підписала його цифровим підписом. Це не зображення підпису: програма обчислює його з повідомлення та приватного ключа — даних, які Анна тримає в таємниці. За допомогою відкритого ключа інші можуть перевірити, що розпорядження підписав власник відповідного приватного ключа. Ті, хто веде рахунки, перевірили б підпис і достатній баланс, відняли в Анни 3 та додали Петру; в Анни залишилося б 7. Передається не файл із монетою: змінюються записи балансів. Одразу виникає головне питання: як зберегти узгодженість усіх копій, якщо Анна розішле несумісні розпорядження? Сам підпис цього не забезпечить. [1] [5]

Перший протокол, тобто запропонований набір правил, залишає базу балансів у кожного учасника. Щоб усі вносили однакові зміни, він передбачає анонімний, синхронний і неблокований канал розсилання повідомлень. Іншими словами, повідомлення мають надходити всім із потрібною часовою узгодженістю, їхнє поширення не можна зупинити, а відправника — викрити. Це значно сильніше припущення, ніж звичайне інтернет-з’єднання із затримками та втратами повідомлень. Тому сам Dai називав перший варіант непрактичним. Він був відправною точкою для другого, а не готовою до роботи мережею. [1] [2]

Баланси повинні мати походження. Dai запропонував, щоб будь-хто міг опублікувати розв’язок нової обчислювально складної задачі й отримати грошові одиниці. Інші мали легко оцінити витрачену роботу, а розв’язок не повинен був мати іншої практичної чи інтелектуальної цінності. Кількість нових грошей залежала б від вартості обчислень у стандартному кошику товарів — погодженому наборі благ для порівняння витрат. Це нагадує Proof of Work, доказ виконаної обчислювальної роботи, але ще не є майнінгом блоків Bitcoin. Блок — це група транзакцій, яка додається до спільної історії платежів. Потрібна й спільна оцінка витрат, хоча комп’ютери людей відрізняються потужністю та вартістю. [1] [2] [5]

У другому протоколі всю книгу зберігає вже не кожен. Цю роль бере частина учасників, названа серверами. Анна й Петро перевіряли б обробку платежу у випадково обраної частини цих серверів. Оскільки це потребує певної довіри до керівників обліку, кожен сервер мав внести грошове забезпечення для покарання доведеного порушення. Сервери також регулярно публікували б стан балансів і створення грошей. Користувачі перевіряли б власний баланс і те, чи сума всіх балансів не перевищує створених грошей. Це конкретні перевірки адміністраторів рахунків, а не той самий устрій, що сучасні вузли й майнери Bitcoin. [1]

Гроші були лише частиною b-money. Для замовлення Анни й Петра договір визначав би умови та максимальну компенсацію за порушення. Сторони й можливий арбітр, людина для оцінки спору, підписали б його та внесли встановлені суми на спеціальний рахунок. Після погодженого завершення кошти розподілили б за результатом. Задум ішов далі: якщо навіть арбітраж не допоміг, сторони оприлюднюють аргументи, а кожен, хто веде рахунки, сам визначає компенсації чи штрафи. Тут видно межу. Підпис підтверджує згоду, але не вирішує, чи ілюстрацію справді передали, і не гарантує однакового судження всіх адміністраторів. [1] [2]

Dai усвідомлював, як складно погодити справжню вартість обчислень. Технології змінюються, а деякі учасники можуть мати невідомі іншим переваги. Тому додаток A запропонував альтернативу для обох протоколів. Спочатку ті, хто веде рахунки, планували б кількість нових одиниць. Охочі далі пропонували б розв’язати певну задачу за бажану суму грошей, виконували обчислення й публікували розв’язки. Потім відбувалася б емісія за прийнятими пропозиціями. Чотири фази — планування, пропозиції, обчислення й створення грошей — мали замінити просту оцінку витрат. Це не визначений наперед ліміт 21 мільйон біткоїнів і не Halving, регулярне зменшення вдвічі кількості нових біткоїнів у кожному блоці. [1] [3]

Adam Back обговорював задум у грудні 1998 року. Зокрема, звертав увагу на різну вартість обчислень і можливість пов’язувати платежі під сталими псевдонімами. Приховане справжнє ім’я саме собою не робить платежі непов’язуваними. Початковий текст містить перевірки серверів, тож було б неправильно казати, що він повністю ігнорував нечесність. Однак він не запропонував повного, практично випробуваного способу узгоджувати всі бази за різних збоїв і спорів. Такі ситуації й становлять частину відстані між пропозицією та робочою системою. Тому збережену дискусію корисно читати разом із самим задумом. [1] [3] [7]

22 серпня 2008 року Satoshi Nakamoto написав Wei Dai, що Adam Back звернув його увагу на b-money, і запитав рік публікації для посилання. Dai відповів, що оголосив задум 1998 року. Bitcoin whitepaper згодом поставив b-money першим у бібліографії. В іншому листі, від 10 січня 2009 року, Satoshi повідомив про Bitcoin v0.1 і висловив думку, що він досягає майже всіх цілей b-money. Це документовані контакти й визнання попередньої ідеї. Вони не доводять, що Wei Dai написав Bitcoin, що обидві схеми працюють однаково або скільки окремих технічних рішень запозичено безпосередньо. [4] [5] [6]

b-money — важлива зупинка в історії ідей, а не валюта, яку за цим задумом сьогодні можна покласти в гаманець. Його не реалізували як описану тут діючу платіжну систему. Воно не мало ланцюжка блоків Bitcoin чи правила вибору чинного ланцюга з найбільшою накопиченою роботою. Але ставило зрозуміле питання: як поєднати цифрові підписи, створення грошей і спільний облік без одного банку, який усім керує? Bitcoin пізніше поєднав власні відповіді в робочу мережу. Читання b-money відділяє ідею цифрових грошей від складнішого завдання: підтримувати спільний перевірний стан серед людей, які не зобов’язані довіряти одне одному. [1] [4] [5]

Для повної картини прочитайте також Wei Dai, Шифропанки, Reusable Proofs of Work, Proof of Work, Hashcash, Bit Gold. На цю статтю також посилаються Шифропанки, Bit Gold, Wei Dai, The Genesis Book.

DOC · 001Wei Dai — b-money original proposalПервинне джерело DOC · 002Satoshi Nakamoto Institute — b-money archiveДокументація DOC · 003Cypherpunks Mailing List — b-money discussion threadДокументація DOC · 004Gwern archive — Wei Dai and Satoshi Nakamoto emailsДокументація DOC · 005Bitcoin whitepaperПервинне джерело DOC · 006Metzdowd Cryptography — archived 2008 draft correspondenceДокументація DOC · 007Cryptoanarchy Wiki — Cypherpunks mailing-list archive repositoryДокументація
Переглянуто: Спочатку джерела · Не інвестиційна порада