Часто возражают, что текущая задача вычисления выполняются шахтеров трата CPU. Хотя многие хорошие ответы были даны против этой идеи, самое основное, что до сих пор мы просто не знаем, какой-либо другой способ избрания узлов в анонимной, децентрализованного и поддающимся проверке образом. Конечно, было бы здорово, если бы процесс добычи может иметь полезный побочный эффект. Но до сих пор мы просто не знаем, какой-либо способ сделать это.
Я думал об этом, и вот приблизительная идея: с помощью принципа наименьшего действия для решения физических задач. Как вы знаете, найти правильный процесс складывания для длинных молекул очень сложная проблема, чтобы решить с помощью компьютера. Это настолько жестко, что часто требует использования большого количества компьютеров, работающих вместе в рамках таких как BOINC (см складной). IIRC, эта проблема решается с помощью принципа наименьшего действия (или наименьшее конфигурационной энергии, признаюсь, я не знаю деталей много, но вы получите идею), которая является в корне классической и квантовой механики. В основном, все узлы пытаются найти геометрическую структуру молекулы, которая сводит к минимуму определенной функции. Они используют более или менее метод грубой силы: они пытаются много структур, пока они не найдут тот, который дает действие, которое считается достаточно низким.
См параллельно с доказательством работы системы, используемой в Bitcoin?
Теперь, конечно, заменить криптографический доказательство работы по исчислению наименьшего действия не будет легко, потому что они все еще существуют некоторые очень важные различия.
В криптографическом доказательстве, вы можете поместить информацию в своей работе, так что никто не может "украсть" твоя работа.
Давай позвоним "ПОЛЕЗНОЙ" сообщение, которое вы должны работать на (в Bitcoin, что бы корневая Merkle сделок).
Если вы хотите, чтобы люди имели стимул работать над этой полезной нагрузкой, они должны иметь возможность добавить какой-нибудь способ, чтобы идентифицировать себя, так что вместо вычисления хэша-формы:
ПОЛЕЗНАЯ: NONCE
Они будут вычислять хэш вида:
ПОЛЕЗНЫЙ: USER_ID: NONCE
В Bitcoin на USER_ID в основном эквивалент сделки coin_base.
С наименьшим действием, это намного сложнее сделать что-то подобное, потому что действие зависит только от последовательности аминокислот и их геометрической структуры. Последовательность представляет собой эквивалент полезной нагрузки, а геометрическая структура является эквивалентом нонса. Там нет никакого способа, чтобы включить любую дополнительную информацию.
Это означает, что как только кто-то публикует особенно эффективное складывание, нет никакого способа, чтобы никто просто быстро копировать его, а также опубликовать его в сети делая вид, что он нашел его сам. Попытка использовать рассмотрение синхронизации, вероятно, будет бесполезно, так как неизбежное латентность сети делает невозможным, чтобы убедиться в точное время было введено сообщение. Это в основном главная причина, почему эта проблема двойных расходов существовала и почему Bitcoin пришлось решить.
Разве это не есть способ преодолеть эту трудность, хотя? Я считаю, что должно быть. Она будет работать точно так же, как спортивные события (я был вдохновлен здесь шахматными турнирами): вам нужно найти способ, чтобы заставить игрок, чтобы признать свое поражение.
##
EDIT: Эта схема, вероятно, не самый лучший способ сделать это. Смотрите следующее сообщение для лучшей идеи.
##
Вот основная идея.
Во-первых, мы делим список молекул, которые мы хотим работать. Тогда мы организуем "соревнование", В значительной степени, как мы могли бы сделать для спортивного события:
- Мы регистрируем все игрок. Они, конечно, были определены с открытым ключом. Децентрализация этого шага может быть не легко, но я сомневаюсь, что это невозможно;
- "Круглый" начинается: игроки вычисляют действия для каждой молекулы. Они могут сосредоточиться на конкретной молекулы, или работать на всех из них. Не имеет значения. Если они хотят работать только один, они просто выбрать одну случайную геометрическую структуру для всех остальных, но в конце концов они публикуют результат для каждой молекулы;
- они не публикуют четкие результаты текста: они издают зашифрованные подписанные результаты. Схема шифрования была выбрана игроком, и только он знает ключ (который является либо АСИММЕТРИЧЕСКИЙ ключ или symetric ключ, в этом случае необходимо другой один для каждого раунда;
- когда игрок получает (шифрованные) приводятся результаты другого игрока, он должен подписать и опубликовать его подписанную версию для остальной части сети;
- когда определенное соотношение игрока представило свои результаты, или когда все игроки, которые опубликовали свои результаты соглашаются, что некоторые ограничения по времени закончится, круглый закончена;
- на данный момент, все результаты доступны в зашифрованной версии, и все они подписаны все игроки, которые опубликовали некоторые результаты;
- Теперь все игроки публикуют ключ дешифрования. Каждый может видеть, кто нашел минимальное действие, и никто не может делать вид, что он сделал это, если он на самом деле не было.
- Мы можем выбрать, чтобы присвоить различную крипто-валюту для каждой молекулы, или MESURE относительного прогресса для каждой молекулы и выбрать игрок, который имеет достижение наилучший прогресса для любой молекулы. Не имеет большого значения.
- Победитель имеет право опубликовать блок операций для этого крипто-валюты, первая сделка является сделки создания, так же, как и в Bitcoin.
Есть, конечно, много трудностей с этой схемой. Тот, который я вижу в том, что для того, чтобы проверить блок цепи, необходимо знать всю историю всех турниров, которые произошли. Это может потребовать много дискового пространства. Но надеюсь, что с увеличением емкости дисков это не должно быть большой проблемой.
Ну, вот оно. Я знаю, что это может выглядеть надуманным, но я считаю, "Bitcoin является пустой тратой CPU" Аргумент не глупый. Так что я действительно хотел представить альтернативный протокол, который позволит решить эту проблему. Или, по крайней мере, я пытался.