История криптовалют. Биткойн-детектив - страница 30
Благодаря идее общедоступного глобального регистра, предложенный Вэй Даем подход к созданию криптовалюты b-money отличался от существовавших ранее подходов к созданию систем электронных денег. Собственные счета ведутся децентрализовано всеми участниками системы, а не одним или несколькими централизованными серверами. Конфиденциальность сохраняется благодаря использованию псевдонимов.
Чтобы попытаться решить проблему создания денег, Вэй также предложил схему, аналогичную алгоритму доказательства работы PoW. Что интересно, в электронном сообщении для криптопанков упоминавшийся выше криптограф Адам Бэк поддержал эту инициативу и предложил использовать своё раннее изобретение HashCash в качестве «основной функции для децентрализованной идеи чеканки монет Вэя». Хотя это и открыло путь для создания почти всех современных криптовалют, b-money сами так и не были реализованы как полноценная электронная валюта, так как имели и существенные недостатки. В первую очередь это их подверженность риску гиперинфляции.
Небезынтересно изучить и сами предложенные Дэем протоколы. Первый протокол был очень коротким:
«Каждый участник поддерживает свою базу данных: сколько денег принадлежит каждому псевдониму. В совокупности эти базы определяют право собственности на деньги. Протокол должен обеспечить обновление баз данных по результатам операций с деньгами.
Предметом протокола являются:
1. Создание денег. Каждый участник может создать деньги путем рассылки решения нерешенной ранее вычислительной задачи. Надо определить относительную вычислительная мощность, потребовавшуюся для решения, иначе решению нельзя присвоить какую-либо ценность. Количество созданных денежных единиц определяется стоимостью вычислительной мощности методом стандартной корзины потребителя. Например, если решение достигается за 100 часов машинного времени на наиболее эффективном компьютере, и необходимые 100 часов на открытом рынке набираются тремя 3 стандартными корзинами, то передача решения этой проблемы обязывает всех участников кредитовать счет передающего на 3 единицы.
2. Перевод денег. Если Алиса, владелец псевдонима K_A, хочет передать X единиц денег Бобу, владельцу псевдонима K_B, она передает сообщение: «Я даю Х единиц денег на счет K_B» с подписью K_A. Получив это сообщение, участники проверяют остаток на счете K_A. Если операция не создаст отрицательный баланс на счете K_A, участники списывают с него Х единиц и увеличивают на эту сумму счет K_B. Если на счете K_A нет Х единиц, это сообщение игнорируется.
3. Выполнение договоров (контрактов). В исполняемом (valid) контракте должны быть указаны (максимальные) суммы обеспечения для каждого из участников в случае неисполнения условий договора (default). Договор должен предусматривать участие третьей стороны, арбитраж. До начала действия договора все стороны, включая арбитра, должны его подписать. После публикации (broadcast) подписанного договора каждый участник системы списывает со счета каждой из сторон сумму его (максимального) обеспечения и зачисляет эту сумму на специальный счет «Контракт с SHA-1 хэш H», определенный именно для этого контракта (a secure hash of the contract). Договор вступает в силу, если со счета каждого участника можно списать указанную сумму, не получив в результате отрицательный баланс, в противном случае контракт игнорируется и счета откатываются.