░ Алиса продает лимоны, но сейчас они подгнили, и покупателям придется сразу выбросить такой товар. Должна ли она продавать лимоны? (Нужно иметь в виду, что на этом рынке очень много продавцов и за репутацией каждого не уследишь.) Ожидаемая выгода для Алисы: $5 выручки за лимон минус $1 расходов на доставку/хранение = $4. Ожидаемые потери для общества в целом: $5 выручки минус $1 расходов минус $5 потраченных впустую денег покупателя = —$1. Алиса в итоге продает лимоны.
░ Должен ли Боб пожертвовать $1000 на разработку Bitcoin? Ожидаемая выгода для общества: $10 × 100 000 человек минус $1000 = $999 000, ожидаемая выгода для Боба: $10 минус $1000 = —$990, так что Боб не жертвует деньги.
░ Чарли нашел чужой кошелек, в котором было $500. Должен ли он вернуть его? Ожидаемая выгода для общества: $500 (получателю) минус $500 (потеря Чарли) плюс $50 (нематериальная выгода для общества от того, что каждый может немного меньше беспокоиться о сохранности своих кошельков). Ожидаемая выгода для Чарли: —$500, так что он оставляет кошелек себе.
░ Должен ли Дэвид снизить расходы своей фабрики за счет сброса токсичных отходов в реку? Что в этом случае получит общество: экономия Дэвида $1000 минус увеличение средних медицинских расходов на $10 × 100 000 человек = —$99 900. Что получит Дэвид: $1000 минус $10 = $990. Дэвид выбирает загрязнение окружающей среды.
░ Ева разработала лекарство от одного вида рака, и производство необходимой дозы обходится в $500. Она может продать его за $1000, и тогда 50 000 больных смогут позволить себе лечение, или за $10 000, и тогда лекарство смогут купить 25 000 больных. Должна ли она продавать лекарство по более высокой цене? Что в этом случае получит общество: −25 000 жизней (включая прибыль Евы, которая компенсирует потери более богатых покупателей). Что получит Ева: доход в размере 237,5 миллиона долларов вместо 25 миллионов долларов, то есть ее выгода составит 212,5 миллиона долларов. Ева выставляет более высокую цену.
Конечно, во многих из этих ситуаций люди могут руководствоваться моральными принципами и выбирать сотрудничество, игнорируя собственную выгоду. Но с чего бы им это делать? Ведь мы созданы эволюцией – довольно эгоистичным механизмом оптимизации. Объяснений много, но сегодня мы сосредоточимся на одном из них, связанном с концепцией сверхрациональности.
Рассмотрим следующее описание нравственности, любезно предоставленное Дэвидом Фридманом:
Корыстному человеку придется затратить много когнитивных ресурсов, чтобы в нужный момент убедительно притвориться нравственным, – гораздо проще действительно быть нравственным. Многие древние философы придерживались такой же точки зрения и рассматривали нравственность как привычку, которую можно культивировать; Дэвид Фридман просто оказал нам услугу, что, должно быть, вполне привычно для экономиста, и придал интуитивному представлению более пригодную для анализа форму. Давайте формализируем это утверждение еще сильнее. Суть в том, что люди очень быстро себя выдают – каждым своим поступком мы постепенно раскрываем свой исходный код. Если мы искренне руководствуемся благими намерениями, мы действуем одним образом, а если только притворяемся добрыми, чтобы в нужный момент нанести удар, мы действуем иначе, и другие часто могут это заметить.
Возможно, это кажется недостатком, но на самом деле именно это качество позволяет нам сотрудничать, выходя за рамки механизмов из теории игр, которые были описаны выше. Предположим, что агенты A и B обладают способностью «считывать» уровень «нравственности» друг друга с некоторой степенью точности и разыгрывают классическую дилемму заключенного. В этом случае агенты могут придерживаться следующей стратегии, которую мы считаем нравственной.
1. Попытаться определить, позитивные ли намерения у другой стороны.
2. Если намерения другой стороны позитивные – сотрудничать.
3. Если намерения другой стороны негативные – предать.
Если два агента с позитивными намерениями вступят в контакт, оба пойдут на сотрудничество и получат наибольшую награду. Если агент с позитивными намерениями вступит в контакт с негативно настроенным агентом, первый выберет предательство. Так что в любом случае агент с позитивными намерениями справится не хуже агента с негативными намерениями, а часто и лучше. В этом и есть суть сверхрациональности.
Какой бы запутанной ни казалась эта стратегия, в человеческих культурах уже есть прочно усвоенные механизмы ее реализации: например, недоверие к тем, кто старается сделать так, чтобы понять их намерения было как можно сложнее, – вспомним расхожую фразу, что не стоит доверять человеку, который не пьет. Конечно, есть категория лиц, которые могут убедительно притворяться дружелюбными и в любой момент предать, – их называют социопатами, и они, вероятно, основной дефект этой системы, когда речь идет о людях.
Можно сказать, что последние 10 000 лет такого рода сверхрациональное сотрудничество во многом служило основой человеческого сосуществования и позволяло людям оставаться честными даже в тех случаях, когда простые рыночные стимулы подталкивали их к предательству. Но когда появились современные крупные централизованные организации, это повлекло за собой неблагоприятный побочный эффект: они позволяют людям успешно искажать чужие представления о своих намерениях, что усложняет сверхрациональное сотрудничество.
Большинству участников современной цивилизации это принесло только выгоду: более того, мы косвенно финансировали новый подход к сотрудничеству, покупая товары, цена на которые упала потому, что некто решил сбросить токсичные отходы в реку одной из стран третьего мира. Но мы даже не осознаём, что косвенно участвуем в этом предательстве, потому что корпорации делают всю грязную работу за нас. Могущество рынка позволяет корректировать даже наши представления о морали, делегируя самую неприятную работу людям, которым проще отказаться от своих этических принципов. Крупным корпорациям совсем несложно собрать команду хороших маркетологов, чтобы создать позитивный имидж и подобрать красивые слова для потенциальных клиентов. Причем сами маркетологи могут и не знать обо всех неприятных деталях, связанных с производством продукта.
Решить многие из этих организационных и политических проблем часто предлагают с помощью интернета, и это действительно прекрасное средство против информационной асимметрии и непрозрачности. Но проблему сверхрационального сотрудничества интернет может даже усугубить. В интернете даже отдельному человеку довольно просто «не выдать» себя и таким образом скрыть свой злой умысел. Отчасти поэтому в интернете и в криптоиндустрии мошенничество встречается чаще, чем в физическом мире; и это же – самый популярный аргумент в пользу несостоятельности идеи перенести все экономические взаимодействия в интернет в духе криптоанархизма (другой аргумент заключается в том, что криптоанархизм делает невозможными безгранично суровые наказания, что ослабляет многие экономические механизмы).
Возможно, решение в том, чтобы добиться гораздо более высокого уровня прозрачности. Люди выдают себя с умеренной скоростью, современные централизованные организации – очень медленно, но больше всего риска у организации, где информация регулярно и случайным образом распространяется по всем уголкам земного шара. Представьте себе мир, где, если вы даже просто задумаетесь об обмане друга, делового партнера или супруга, с вероятностью в 1 % левая часть вашего гиппокампа взбунтуется и отправит полную запись ваших мыслей предполагаемой жертве в обмен на вознаграждение в размере $7500. Примерно так «ощущает» себя член правления организации, из которой происходят утечки.
По сути, это пересказ идеологии WikiLeaks и ее еще более радикальной альтернативы slur.io. Но непрозрачные централизованные организации прекрасно сосуществуют с WikiLeaks и прозрачней от этого не становятся. Возможно, стимулирование в сочетании с чем-то вроде механизмов прогнозирования, позволяющих людям извлекать выгоду из разоблачения проступков своих работодателей, откроет дорогу для большей прозрачности, но вместе с тем мы можем попробовать кое-что другое: предложить организациям радикальный способ добровольно решиться на невиданные до этого уровни прозрачности и сверхрациональности.
Как концепция децентрализованные автономные организации уникальны тем, что их алгоритмы управления не просто «выдают себя» – они полностью общедоступны. То есть если прозрачные централизованные организации позволяют посторонним получить общее представление о характере компании, в ДАО посторонние могут посмотреть весь ее исходный код. Но этот «исходный код» отражает цели не конкретных участников ДАО, а всей организации, независимо от того, кто в нее входит. Футархия, максимизирующая среднюю продолжительность жизни человека, будет действовать совсем иначе, чем футархия, максимизирующая производство скрепок, даже если ими будут управлять одни и те же люди. Поэтому дело не просто в том, что организация сразу же раскроет всем обман: сам ее «разум» просто не будет способен на обман.
Итак, как бы выглядело сверхрациональное сотрудничество через ДАО? Во-первых, нужно дождаться появления самих ДАО. Есть несколько потенциально успешных вариантов внедрения этой идеи: азартные игры, стейблкойны, децентрализованное хранение файлов, предоставление данных по одному ID на человека, SchellingCoin и прочие. Однако такие ДАО мы можем назвать ДАО первого типа: у них есть некоторое внутреннее состояние, но мало автономного управления. Они ничего не смогут сделать, кроме как настроить несколько своих параметров, чтобы максимизировать некоторые показатели полезности с помощью ПИД-регуляторов[21], имитации отжига[22] или других простых алгоритмов оптимизации. С натяжкой их можно назвать сверхрациональными, но они довольно глупы и ограниченны и поэтому часто будут подстраиваться под внешний процесс, который точно не сверхрационален.
Чтобы двигаться вперед, нам нужны ДАО второго типа: ДАО с алгоритмом управления, способным принимать теоретически произвольные решения. Футархия, различные формы демократии и субъективного внепротокольного управления (в случае существенных разногласий ДАО делят себя на несколько частей, соответствующих каждому предложению, и каждый выбирает, с какой версией взаимодействовать) – единственные фундаментальные подходы, о которых мы пока знаем, хотя в дальнейшем наверняка появятся другие, а также их хитроумные комбинации. Как только ДАО смогут принимать произвольные решения, они смогут вести сверхрациональную торговлю не только со своими клиентами-людьми, но потенциально и друг с другом.
Какие рыночные сбои, с которыми не справляется обычное сотрудничество, может устранить сверхрациональное сотрудничество? К сожалению, проблемы общественных благ выходят за рамки описанных здесь механизмов – ни один из них не решает проблему массового многопартийного стимулирования. Согласно этой модели, организации будут становиться децентрализованными/прозрачными, потому что им начнут больше доверять, и в противном случае они будут лишены экономических преимуществ этого «круга доверия». Проблема с общественными благами в том, что здесь никого нельзя лишить выгоды, и поэтому такая стратегия не работает. Однако все, что связано с информационной асимметрией, попадает в сферу ее охвата, и этот охват действительно велик. По мере усложнения общества обманывать становится все проще, а проконтролировать или даже заметить обман – все труднее. Современная финансовая система – лишь один из примеров.
Возможно, истинная задача ДАО, если им вообще можно ставить такого рода задачи, заключается именно в решении этой проблемы.
Ценность технологии блокчейна
БЛОГ ETHEREUM
13 апреля 2015 года
В своих исследованиях блокчейна я прежде всего задавался вопросом: чем, собственно, эта технология может быть полезна? Для чего нам создавать блокчейны, какие виды сервисов должны работать на блокчейн-архитектуре и зачем нам отказываться от привычных серверов? Что может дать нам блокчейн: нечто совершенно необходимое или просто любопытное? Ну и, пожалуй, самый главный вопрос: каким будет его «убийственное приложение»[23]?
Последние месяцы я много размышлял над этими вопросами и обсуждал их с разработчиками криптовалют, представителями венчурных компаний и людьми, которые далеки от блокчейн-пространства, – активистами движений за гражданские свободы, представителями финансовой, платежной и других индустрий. В ходе этого процесса я пришел к ряду важных и ценных выводов.
Во-первых, у технологии блокчейна не будет никакого «убийственного приложения». Причину объясняет теория «низко висящих фруктов»[24]. Если бы технология блокчейна однозначно подходила для какого-то определенного приложения лучше, чем для всех остальных, это давно стало бы очевидным. Это напоминает старый анекдот: экономист видит на земле двадцатидолларовую купюру и решает, что она поддельная, потому что в противном случае ее бы уже обязательно кто-нибудь подобрал. Но здесь ситуация несколько иная: если затраты на поднятие купюры ничтожно малы и сделать это имеет смысл, даже если вероятность ее подлинности составляет всего 0,01 %, то в случае блокчейна затраты на разработку «убийственного приложения» очень высоки, и множество людей занимались этим ради потенциальной выгоды в миллиарды долларов. Но никто пока не придумал такого приложения, которое серьезно выделялось бы среди всех остальных и превосходило бы их.
На самом деле есть все основания утверждать, что ближе всего к статусу «убийственного приложения» приблизились уже давно запущенные, сто раз обсужденные и успевшие надоесть WikiLeaks и Silk Road. Silk Road – закрытый в 2013 году по решению суда анонимный онлайн-рынок наркотиков – за два с половиной года существования обработал сделок более чем на миллиард долларов. В свою очередь, WikiLeaks, заблокированная платежными системами, большую часть доходов получала через пожертвования в биткойнах и лайткойнах[25]. В обоих случаях блокчейн показал свою востребованность и экономическую перспективность, ведь до биткойна купить наркотики можно было только из рук в руки, а поддержать WikiLeaks – только наличными почтовыми переводами. Биткойн оказался намного удобнее, и этой возможностью тут же воспользовались. Но сейчас подобные кейсы встречаются редко, и найти новые неочевидные возможности применить технологию блокчейна не так просто.
Но значит ли это, что «полезность» блокчейна достигла пика? Конечно, нет. Достигнут лишь пик «необходимости» – в смысле максимальной полезности для отдельного пользователя, – но это не то же самое, что максимальная полезность блокчейна в принципе. Хотя Silk Road для многих своих пользователей был незаменим, в целом у потребителей наркотиков всегда есть какая-нибудь лазейка. Поразительно, как обычные люди умудряются обзаводиться такими связями, но у большинства действительно всегда найдется какой-то «парень», который может достать травку. Интерес к курению травки, по-видимому, сильно коррелирует с наличием легкого доступа к ней. Так что, по большому счету, у Silk Road был шанс стать актуальным только для очень узкой группы людей. То же самое с WikiLeaks: среди всего населения планеты доля людей, настолько озабоченных прозрачностью корпораций и правительств, чтобы жертвовать деньги сомнительной организации, не так уж и велика. Так где же максимальная полезность? Если коротко – в «длинном хвосте»[26].
Что же такое этот «длинный хвост»? Сложно объяснить. Я мог бы привести список приложений, которые к нему относятся, но блокчейн ни для одного из них не является обязательным и даже не предлагает достаточно мощных фундаментальных преимуществ. О чем бы ни шла речь, сторонники идей вроде «приложения блокчейна переоценены, важна только валюта биткойн» или «технология блокчейна в целом бесполезна» вполне могут придумать простой способ реализовать ту же схему на централизованном сервере, заменить управление посредством блокчейна на юридический контракт и любыми другими путями приблизить продукт к традиционной системе. И они будут совершенно правы, поскольку в этом конкретном случае блокчейн не является незаменимым. Но в том и суть: эти приложения находятся не в «голове», как WikiLeaks и Silk Road, иначе их бы уже реализовали. В «длинном хвосте» блокчейны не необходимы, но удобны. Они просто несколько лучше, чем ближайший доступный инструмент. И все же, поскольку эти приложения куда более широко распространены и могут принести пользу сотням миллионов пользователей, общая выгода для общества (что видно на приведенной выше диаграмме) намного больше.
Эту логику можно проиллюстрировать, задав такой же вопрос относительно «открытого исходного кода»: что может стать его «убийственным приложением»? Польза открытого исходного кода несомненна, его используют для миллионов программ по всему миру, но ответить на этот вопрос все равно очень сложно. Причина все та же: нет никакого «убийственного приложения», зато есть очень-очень длинный хвост из всех вообразимых приложений, с особым акцентом на низкоуровневые библиотеки, которыми пользуются миллионы проектов, и важнейшие библиотеки криптографической безопасности.
Итак, какие именно особенности блокчейна пригодятся в «длинном хвосте»? Для начала я хотел бы поделиться определением, которого сам сегодня придерживаюсь:
Обратите внимание, чего нет в этом определении:
░ финансовых терминов вроде «реестр», «деньги» или «транзакции» и вообще каких-либо терминов, намекающих на конкретные сценарии использования;
░ упоминания каких-либо конкретных алгоритмов консенсуса и вообще технических подробностей работы блокчейна (за исключением того факта, что он «криптоэкономичен» – этот технический термин сообщает о блокчейне, что «он децентрализован, а также использует криптографию с открытым ключом и экономические стимулы, чтобы все работало без сбоев»);
░ ограничений на какие-либо функции перехода состояния.
В этом определении конкретно сказано только одно – на что способен блокчейн, и этого достаточно, чтобы любой разработчик смог достаточно четко, хотя бы на интуитивном уровне, понять, чем может быть ценна эта технология. Что касается практики, иногда язык, на котором выполняются программы, очень ограничен. Язык Bitcoin можно рассматривать как последовательность DESTROY COIN: <txid> <index> <scriptsig>, за которой следует последовательность CREATE COIN: <scriptpubkey> <value>, где scriptpubkey – ограниченная математическая формула, а scriptsig – присваивание переменной в соответствии с этой формулой (например, [x = 5, y = 7] удовлетворяет 2 × x – y = 3). Попытка уничтожить несуществующую монету, или уничтожить монету, не указав действительный scriptsig для scriptpubkey этой монеты, или указать бóльшую ценность монеты, которую вы уничтожили, выдает ошибку. В то же время другие языки программирования могут быть куда более выразительными. Разработчик должен сам решать, какой язык подойдет для его конкретной задачи, точно так же как ему приходится выбирать между Python, C++, Node.js и Malbolge.
Это определение очень хорошо подчеркивает, что цель блокчейна – не привнести в этот мир какой-то конкретный набор правил, будь то валюта с ограниченной эмиссией, реестр имен с 200-дневным сроком перерегистрации, конкретный тип децентрализованного обмена или что-то еще. Суть блокчейна – в свободе очень быстро создавать новые механизмы с новым набором правил и запускать их. Это своего рода Lego Mindstorms[27] для построения экономических и социальных институтов.
В этом суть более умеренной и популярной сегодня в индустрии позиции «интересен блокчейн, а не валюта». Валюта действительно необходима для работы криптоэкономических блокчейнов (но не структур данных, подобных блокчейну и работающих на субъективной модели консенсуса Stellar), однако она скорее выполняет функцию экономического водопровода для стимулирования участия в консенсусе, хранения депозитов и оплаты комиссий за транзакции – и уж точно не задумана как объект спекулятивной мании, потребительского интереса и ажиотажа.
Итак, чем же могут быть полезны блокчейны? Подведем итог.
░ В них можно хранить данные, и эти данные гарантированно будут иметь очень высокую степень доступности.
░ В них можно запускать приложения, и у них будет гарантированно чрезвычайно высокое время безотказной работы.
░ В них можно запускать приложения, и у них будет гарантированно чрезвычайно высокое время безотказной работы в далеком будущем.
░ В них можно запустить приложение и гарантировать пользователям, что логика его работы основана на честности и оно будет работать именно так, как вы обещаете.
░ В них можно запустить приложение и гарантировать пользователям, что оно всегда будет соблюдать заданные условия, даже если вы потеряете к нему интерес, если вас подкупом или угрозами заставят его изменить или если вы захотите подзаработать, манипулируя его функционалом.
░ В них можно запускать приложения и при острой необходимости создавать для себя бэкдор[28], НО накладывать «конституционные» ограничения на его использование – например, предварять каждое обновление месяцем публичного ожидания или, если обновление срочное, немедленно уведомлять о нем пользователей.
░ В них можно запускать приложения и создавать бэкдор для отдельного алгоритма управления (например, голосования, футархии, сложной многопалатной парламентской архитектуры), объясняя пользователям, что этот алгоритм управления подчиняется приложению.
░ В них можно запускать приложения, и эти приложения могут взаимодействовать друг с другом со стопроцентной надежностью – даже если надежность их базовой платформы будет равняться 99,999 %.
░ Группы пользователей и компании могут создавать на блокчейне собственные приложения, и эти приложения могут взаимодействовать друг с другом невероятно быстро, без каких-либо сетевых сообщений, при этом каждая компания сможет быть уверена, что полностью контролирует свое приложение.
░ В них можно создавать приложения, которые будут с максимальной эффективностью использовать данные, произведенные другими приложениями (пожалуй, лучший пример здесь – комбинация систем платежей и репутаций).
Все это может помочь миллиардам людей по всему миру, особенно в тех регионах, где сегодня еще не сложилась высокоразвитая экономическая, финансовая и социальная инфраструктура (хотя решение многих проблем требует сочетания технологии с политическими реформами). Блокчейн может стать основой для такой инфраструктуры. Очевидно, что наибольшую ценность он представляет для финансовой сферы – самой требовательной индустрии в вопросах вычислений и доверия, – но он может пригодиться и в других областях интернет-инфраструктуры. Конечно, существуют и другие архитектуры, способные предоставить такие возможности, но они в большей или меньшей степени уступают блокчейну. Гэвин Вуд начал описывать эту идеальную вычислительную платформу как «мировой компьютер» – компьютер, состояние которого распределено между всеми элементами системы и работу которого поддерживает огромная группа людей, куда может войти любой желающий.
Самый большой потенциал технологии блокчейна, как и в случае открытого исходного кода, связан с тем, что можно назвать сервисами «инфраструктуры базового уровня». Этим сервисам присущи следующие свойства.
░ Зависимость – существует множество других сервисов, функциональность которых тесно связана с сервисом базового уровня.
░ Высокий сетевой эффект – использование одного сервиса очень большими группами людей (или даже всеми) дает существенные преимущества.
░ Высокие затраты на переключение – человеку трудно переключаться с одного сервиса на другой.
Обратите внимание, что среди этих свойств не упоминается исключительная «необходимость» или «важность». Бывают и маловажные базовые уровни (например, RSS-каналы), и важные небазовые уровни (например, продукты питания). Сервисы базового уровня появились еще до зарождения цивилизации: в так называемые времена пещерных людей самым важным сервисом базового уровня был язык. Со временем сюда добавились дороги, право, почтовые и транспортные системы, в ХХ веке – телефонные сети и финансовые системы, а в конце прошлого тысячелетия – интернет. Новейшие сервисы базового уровня – почти полностью информационные: системы интернет-платежей, идентификация, системы доменных имен, центры сертификации, системы репутации, облачные вычисления, различные виды каналов данных и, вероятно, уже в ближайшем будущем – рынки прогнозирования.
Возможно, крайне взаимосвязанный и взаимозависимый характер этих сервисов через десять лет приведет к тому, что переключиться с одной системы на другую людям будет сложнее, чем сменить собственное правительство. Поэтому чрезвычайно важно выстроить эти сервисы правильно и проконтролировать, чтобы отдельные структуры не получили над ними слишком много власти. На сегодняшний день многие из таких систем выстроены очень централизованно, и отчасти это связано с тем, что создатели Всемирной паутины не сумели понять важность этих сервисов и включить их по умолчанию – поэтому даже сегодня большинство сайтов просят вас «войти в систему через Google» или «войти в систему через Facebook», а центры сертификации сталкиваются с такими проблемами[29].
░ Иранский хакер-одиночка взял на себя ответственность за кражу нескольких SSL-сертификатов крупнейших сайтов, в том числе Google, Microsoft, Skype и Yahoo.
░ Мнения экспертов по безопасности разделились: одни поверили заявлению хакера, у других возникли сомнения.
░ На прошлой неделе основная версия стала гласить, что это была атака, организованная государством, – предположительно при финансировании иранского правительства и под его руководством, – в результате которой был взломан реселлер сертификатов при американской компании Comodo.
░ 23 марта Comodo признала факт атаки, заявив, что восемью днями ранее хакеры заполучили девять поддельных сертификатов для входа на сайты Hotmail от Microsoft, Gmail от Google, службы интернет-звонков и переписки Skype и Yahoo Mail. Также к ним попал сертификат для сайта расширений Mozilla Firefox.
Почему бы центрам сертификации снова не стать децентрализованными, по крайней мере до уровня модели M-of-N?[30] (Заметьте, что случай гораздо более широкого использования M-of-N логически отделим от случая с блокчейнами, но блокчейны оказались хорошей платформой для запуска M-of-N.)
Рассмотрим конкретный сценарий использования – «идентификация в блокчейне». Что вам понадобится для идентификации? Простейший ответ: приватный и публичный ключи. Вы публикуете публичный ключ, который становится вашим идентификатором, и подписываете каждое сообщение приватным ключом посредством цифровой подписи, чтобы каждый мог быть уверен, что это сообщение написали именно вы (в этом контексте «вы» означает «объект, который владеет этим конкретным публичным ключом»). Однако здесь есть несколько проблем.
1. Что, если ваш ключ украдут и вам нужно будет перейти на новый?
2. Что, если вы потеряете свой ключ?
3. Что, если вы захотите сослаться на других пользователей по их именам, а не по случайным 20-байтовым строкам криптографических данных?
4. Что, если вы захотите использовать не только ключ, но и более продвинутый подход к обеспечению безопасности вроде мультиподписи?
Давайте разберем каждую проблему по отдельности. Начнем с четвертой. Для нее есть простое решение: вместо того чтобы требовать один конкретный тип криптографической подписи, ваш публичный ключ можно сделать программой, и тогда действительная подпись становится строкой, которая при вводе в программу вместе с сообщением возвращает 1. Теоретически в этой парадигме можно закодировать одноключевой, многоключевой или любой другой набор правил.
Но есть проблема: публичные ключи будут слишком длинными. Для ее решения можно внести изначальный «публичный ключ» в какое-то хранилище данных (например, в распределенную хеш-таблицу, если мы хотим децентрализации) и использовать хеш «публичного ключа» в качестве идентификатора пользователя. Для этого пока не требуются блокчейны – хотя в последних разработках по своей конструкции масштабируемые блокчейны не так уж сильно отличаются от распределенных хеш-таблиц. Вполне возможно, что лет через десять все виды децентрализованных систем, используемые в любых целях, случайно или намеренно сойдутся в какой-то масштабируемый блокчейн.
Перейдем к первой проблеме. Можно посмотреть на нее как на проблему отзыва сертификата: если вы хотите «отозвать» определенный ключ, как вы сможете убедиться, что об этом узнáют все, кому нужно? Ситуация может решиться сама собой с помощью распределенной хеш-таблицы, но тогда возникает другая проблема: если вы хотите отозвать ключ, то чем вы его замените? Если ваш ключ украден, он есть и у вас, и у злоумышленника, и никто из вас не сможет доказать, что именно он – настоящий владелец. Одно из решений – иметь три ключа, а затем, если один из них будет отозван, потребовать подписи от двух из них или от всех, чтобы утвердить следующий ключ. Но это приводит к проблеме «ничего на кону»: если злоумышленнику в конечном итоге удастся украсть все три ваших ключа в одной точке истории, он сможет имитировать историю назначения нового ключа, назначая оттуда дополнительные новые ключи, и ваша собственная история перестанет иметь силу. В этом случае помогут временны´е метки, и для этого понадобится блокчейн.
Для второй проблемы тоже хорошо подойдет хранение нескольких ключей и переназначение – и здесь блокчейн не нужен. На самом деле переназначение тоже не требуется; при грамотном использовании разделения секрета вы можете вернуть потерянный ключ, просто сохранив его в «осколках», – если вы потеряете один осколок, всегда можно использовать математику разделения секрета и восстановить его из других. Что касается третьей проблемы, здесь самое простое решение – реестры имен на основе блокчейна.
Однако на практике большинство людей недостаточно технически подкованы для безопасного хранения нескольких ключей. Всегда будут возникать сбои, и здесь централизованные сервисы играют важную роль, помогая людям вернуть свои учетные записи. В этом случае блокчейны могут предложить простое решение: социальный бэкап M-of-N.
Вы выбираете восемь объектов: это могут быть ваши друзья, ваш работодатель, какая-то корпорация, некоммерческая организация, а в будущем даже правительство, и, если что-то пойдет не так, пятеро из них коллективно смогут восстановить ваш ключ. Эта концепция социального бэкапа с мультиподписью – пожалуй, один из мощнейших механизмов для любого вида децентрализованной системы. Она обеспечивает очень высокий уровень безопасности без существенных расходов и необходимости доверяться централизованным институтам. Обратите внимание, что с идентификацией на основе блокчейна, особенно с контрактной моделью Ethereum, все это очень легко запрограммировать: в реестре имен зарегистрируйте свое имя, свяжите его с контрактом, и дальше контракт будет хранить текущий главный ключ и резервные ключи, связанные с идентификатором, а также логику для их обновления через какое-то время. Такая система идентификации безопасна, не требует чьего-либо вмешательства (кроме вашего!) и так проста, что с ней справится даже бабушка.
Блокчейны могут решить не только проблему идентификации, но и тесно связанную с ней проблему репутации. «Системы репутации», существующие в современном мире, либо небезопасны, потому что не могут гарантировать, что организация, оценивающая другую организацию, действительно с ней взаимодействовала; либо централизованы, и данные о репутации привязаны к определенной платформе и находятся под ее контролем. Если вы перейдете с Uber на Lyft, ваш рейтинг не перейдет туда вместе с вами.
Случай с репутацией интересен тем, что здесь сочетаются многочисленные преимущества блокчейна как платформы.
░ Использование как хранилища данных для идентификации.
░ Использование как хранилища данных для записей о репутации.
░ Возможность взаимодействий между приложениями (рейтинги, привязанные к подтверждению платежа, способность любого алгоритма работать с одним и тем же базовым набором данных и так далее).
░ Гарантия того, что данные останутся неизменными в течение неограниченного времени (компании могут добровольно предоставить сертификат репутации в экспортируемом формате, но у них нет возможности обеспечить неизменность данных в будущем).
░ Использование децентрализованной платформы в целом для гарантии того, что никто не вмешается в процесс расчета репутационного рейтинга.
Сегодня у всех этих преимуществ блокчейна есть эквиваленты: можно доверять Visa и Mastercard в предоставлении криптографически подписанных квитанций о том, что была проведена конкретная транзакция; можно хранить репутационные записи на archive.org; можно заставить серверы общаться друг с другом; можно попросить частные компании указать в своих условиях предоставления услуг, что они обещают вести себя хорошо, и так далее. Все эти варианты достаточно эффективны, но они и рядом не стояли с возможностью просто выложить все в открытый доступ, запустить на «всемирном компьютере» и доверить работу криптографическим проверкам и доказательствам. Аналогичный аргумент можно привести для любого другого кейса.
Если, как утверждается в этой статье, главная ценность блокчейна проявляется в «длинном хвосте», отсюда следует важный вывод:
Отсюда следует, что на первом месте стоит проблема удешевления консенсуса, как в абсолютном смысле (то есть proof of stake), так и в смысле каждой транзакции (то есть с помощью масштабируемых алгоритмов блокчейна, где каждую транзакцию обрабатывает не более нескольких сотен нод). Кроме того, разработчики блокчейна должны иметь в виду, что за последние сорок лет разработка ПО постоянно переходила на все менее и менее эффективные парадигмы и языки программирования просто потому, что это позволяло разработчикам меньше напрягаться и не заботиться о получении нового опыта. При создании алгоритмов блокчейна необходимо учитывать, что разработчики будут не такими уж умными и рассудительными в отношении того, что они помещают и не помещают в блокчейн, – хотя грамотно продуманная система комиссий за транзакции, скорее всего, приведет к тому, что разработчики в любом случае изучат большинство важных моментов уже по ходу дела.