Доказательство Bet - Альтернатива всем остальным.
Я предлагаю альтернативу доказательства чего-либо, что использует ставки, и это не требует внешнего источника случайного.
Я буду называть его Доказательство Bet. (PoBet)
1. Идея заключается в том, что мой блок-пользователи отправить ставки. Ставки либо награждены или потеряли (сожженных монету)
2. Всякий раз, когда пользователь делает ставку, сделку, где монеты ставка связана с конкретной цепи блока, с помощью sotring хэш блока. Пользователи пари, что это определенная цепь блок будет окончательно принят один.
Ставка = нормальная сделка, чей первый выход оценивается как ложное, а также указывает < хэш (PrevBlock), хэш (пользователь-Публичный), блок-высота >
Блок-высота, сколько блоков впереди ставка сделана для. Блок-высота должна указать номер блока, который некоторые блоки (скажем, 50) впереди PrevBlock.
2. Ставка влияет только на блок указанного блок-высоту в цепи PrevBlock.
3. Если одни и те же монеты ставку в два раза (для различных цепей), то ставка считается недействительным и следующий шахтера могут быть награждены монеты, включая обе операции в блоке. Это позволяет избежать двойной ставки. Для того, чтобы считать двойную ставку, значение высоты блока, присутствующее в бетах сообщениях двух ставок должно быть рядом (например, 100 блоков далеко друг от друга, в крайнем случае). Это позволяет освободить некоторые ставки, если старая цепь считается мертвым в сети.
4. Если шахтер включает в себя ставку со ссылкой на предыдущем-хэш, блок-НЕ содержатся в текущей ветке, он может собирать монеты для себя, включив в ставку.
5. Пользователь, который достиг более высокой ставки является победителем, и он может заминировать следующий блок. Если он не то второй один может претендовать на приз добывающего следующий блока и т.д. Каждый клиентское приложение создает таблицу ПОБЕДИТЕЛЬ (I) с в виде упорядоченного списка (по ставке суммы) хэш pubkeys пользователя. ПОБЕДИТЕЛИ (1) является одним с самой высокой ставкой.
6. Пользователям предлагается (в коде приложения) подождать некоторое время, прежде чем принять блок заявленного не с первым победителем (и размещение ставок ссылки на него).
Минимальное время, чтобы принять победитель я мог бы быть функцией как
MinTimeToAcceptWinner (я) = MinTimeToAcceptWinner (I-1) + T / (к ^ я)
MinTimeToAcceptWinner (1) = т
7. Если это маловероятно, так, что не награда не востребована, то шахтер первого блока цепи награждается блок. Если он не претендует, то второй шахтер, который появляется на цепи, и так далее. (Другой начать с шахтерами 1000 блоков назад)
8. Когда блок добывается шахтера, который не был победителем, например, ПОБЕДИТЕЛИ (2), то все пользователи будут знать, что есть возможность отката атаки WINNER (1). В этом случае они будут ждать больше работы, как подтверждение о текущей цепи, чтобы предотвратить это нападение. Точное количество работ подтверждения, необходимые для предотвращения любых атак такого рода может быть динамически компьютер клиентов, поэтому работа подтверждения будет ПЕРЕМЕННОЙ и не фиксировано, в течение определенного порога фиксированной безопасности.
9. Я могу думать о многих возможностях в отношении ставки монет пользователей, которые потерять:
а. Они вручаются победителю.
б. Некоторый процент теряется и некоторые награждены
с. Они вручаются победителю блока, который будет добытого 100 блоков позже.
д. Частично или полностью вернулись к первоначальным владельцам. (Это что-то вроде Доказательства аукциона)
е. Они потеряны навсегда. (Мне нравится этот самый)
10. Кроме того, ставка победившого пользователя может быть предоставлена пользователем (возвращается) или записать. (Я понятия не имею, который лучше всего)
11. Для того, чтобы сравнить работу двух различных цепей, общее количество монет сожженных используются. (Количество сожженных монет зависит от выбранного правила в правиле 9)
12. Трудно откатить цепь после п блоков, так как некоторые новые ставки были сохранены в последних п блоков.
13. Если вы хотите, чтобы создать альтернативную цепочку, то лучшее, что вы можете сделать, это разместить свои ставки, и награждаются те же монеты вы сделали ставку. Горшок ограничивается вашими имеющимися ресурсами. Напротив, остальные пользователи создают банк, который намного больше. Соотношение между горшками должно быть похоже на соотношение между принадлежащими монетами.
14. Если фальшивая шахтер X пытается предотвратить включение ставок других шахтеров в заминированном блоке, остальные шахтеры будут наказывать его, сделав ставку на альтернативной цепочке. Тогда мошенник шахтер потеряет монеты ставку в своей злой цепи, так как X ставка может быть присуждена к "хорошо" шахтеры по правилу 4.
15. Обычные операции могут включать в себя хэш предыдущего блока в текущей цепи (например, хэш-(блок (ток-50))). Это позволит связать операции с филиалами и сделать его более трудным, чтобы захватить сборы от альтернативных цепей. Это также делает операции действительны только в течение заданного интервала времени.
16. Как и в Bitcoin, периодические контрольные точки помогут избежать полного повторного создания цепи.
Видите ли вы какие-либо подводные камни?
С наилучшими пожеланиями,
Серхио.