Конечно, абсолютной нейтральности не бывает. При выплате вознаграждений за блок преимущества получают те, кто имеет доступ к необходимому оборудованию и дешевой электроэнергии. При капитализме преимущества имеют элиты и богачи, при этом происходит дискриминация бедных и тех, кто зависит от государственной помощи. Политический дискурс дискриминирует любые идеи, которые не проходят через фильтр социальной желательности[67]. Любой механизм, корректирующий сбои в координации, должен искать источник этих сбоев и дискриминировать тех, чье поведение сочтет ненадлежащим. Но все это не умаляет того факта, что некоторые механизмы гораздо нейтральнее других.
Вот почему частная собственность так эффективна: не потому, что это данное богом право, а потому, что это достоверно нейтральный механизм, который решает множество общественных проблем – далеко не все, но достаточно многие. Вот почему вполне допустима фильтрация по популярности, но проделать то же самое с политической идеологией будет проблематично: легче согласиться с тем, что нейтральный механизм относится ко всем достаточно справедливо, чем убедить разношерстную группу людей в обоснованности конкретного черного списка запрещенных политических точек зрения. И именно поэтому к вознаграждениям разработчиков относятся с бóльшим подозрением, чем к вознаграждениям за майнинг: тот факт, что человек действительно занимается майнингом, проверить намного проще, к тому же на практике большинство попыток определить, действительно ли человек участвовал в разработке кода, заканчивается обвинениями в фаворитизме.
Обратите внимание, что здесь нужна не просто нейтральность, а именно
Получается, нам нужно что-то вроде теоретико-игровой концепции общего знания – или, выражаясь менее математически, разделяемое всеми понятие
Существует четыре основных правила разработки достоверно нейтрального механизма.
1. Не вписывайте в механизм конкретных людей или конкретные результаты.
2. Обеспечьте открытый исходный код и публично проверяемое исполнение.
3. Сделайте механизм простым.
4. Не меняйте механизм слишком часто.
Первый пункт вполне понятен. Возвращаясь к нашим предыдущим примерам, «любой, кто создает блок, получает 2 ETH» – достоверно нейтрально; «Боб получает 1000 монет» – нет. «При отрицательных голосах пост будут показывать реже» – достоверно нейтрально; «из-за предубеждений против голубоглазых людей пост будут показывать реже» – нет. «Боб» – это конкретный человек, а «предубеждение против голубоглазых людей» – это конкретный результат. Боб действительно может быть великим разработчиком, который определил успех какого-либо блокчейн-проекта и заслуживает награды, а дискриминация людей с голубыми глазами – не та идея, которую я бы стал поддерживать (и, надеюсь, вы тоже). Но задача при разработке достоверно нейтрального механизма – не вписывать в него желаемые результаты; они должны появляться сами благодаря действиям участников. На свободном рынке факт того, что продукт Чарли бесполезен, а продукт Дэвида полезен, обнаруживается через механизм цен: постепенно люди перестают покупать продукт Чарли, и тот становится банкротом, а Дэвид получает прибыль, возможность расширяться и производить еще больше товаров. Выходные данные должны в основном определяться входными данными, которые вносят участники, а не правилами, запрограммированными в самом механизме.
Второй пункт тоже довольно прост: необходимо обеспечить доступ к правилам механизма и возможность публично проверять их соблюдение. Обратите внимание, что во многих случаях вам вряд ли захочется публично разглашать входные или выходные данные: в статье «О сговорах» я уже рассматривал преимущества высокого уровня конфиденциальности, когда доказать долю своего участия не получится даже при большом желании. К счастью, проверяемости и конфиденциальности можно достичь за счет комбинации блокчейна и доказательства с нулевым разглашением[68].