Просто так люди не должны идти за ним ...
Рассмотрим сценарий злоумышленник пытается сформировать альтернативную цепь быстрее, чем честному цепи. Даже если это будет сделано, он не бросает систему, открытую для любых изменений, таких как создание ценности из воздуха или брать деньги, которые никогда не принадлежали к атакующему. Узлы не собираются принимать недопустимую операцию в качестве оплаты, а честные узлы никогда не смирится блок, содержащий их. Злоумышленник может только попытаться изменить одну из своих собственных сделок, чтобы забрать деньги, которые он недавно потратил.
Гонка между честной цепочкой и атакующей цепи можно охарактеризовать как биномиального Random Walk. Событие успеха честная цепь расширяется на один блок, увеличивая его ведущую роль на +1, и событие неудачи цепи атакующей быть продлена на один блок, сократив отставание от -1.
Вероятность того, что злоумышленник догоняет из данного дефицита аналогична задаче разорить игрок. Предположим, что игрок с неограниченным кредитом начинается дефицит и играет потенциально бесконечное число попыток, чтобы попытаться достичь самоокупаемости. Мы можем вычислить вероятность того, что он когда-либо достигнет безубыточности, или что злоумышленник постоянно догоняет честной цепи, следующим образом [8]:
р = вероятность честный узел находит следующий блок
д = вероятность злоумышленник находит следующий блок
Кв = вероятность злоумышленник будет когда-нибудь догонит от г блоков позади
Учитывая наше предположение о том, что р > д, вероятность падает экспоненциально по мере числа блоков злоумышленник должен догнать увеличивается. С шансами против него, если он не делает удачный выпад вперед на ранней стадии, его шансы стать исчезающе малы, как он падает дальше позади.
Рассмотрим теперь, как долго получатель новой транзакции нужно ждать, прежде чем быть достаточно уверены отправитель не может изменить транзакцию. Мы предполагаем, что отправитель злоумышленник, который хочет, чтобы получатель поверить, что он заплатил ему за некоторое время, а затем включите его, чтобы окупить к себе после того, как прошло некоторое время. Приемник будет извещение, когда это произойдет, но отправитель надеется, что это будет слишком поздно.
Приемник генерирует новую пару ключей и дает ключ общественности к отправителю незадолго до подписания. Это предотвращает отправитель от подготовки цепочки блоков загодя, работая над ней непрерывно, пока он не станет достаточно удачлив, чтобы получить достаточно далеко вперед, затем выполняя операцию в тот момент. После того, как сделка будет отправлена, нечестный отправитель начинает работать в тайне от параллельной цепи, содержащей альтернативный вариант его сделки.
Получатель ожидает, пока транзакция не была добавлена к блоку и г блоков были связаны после него. Он не знает точное количество прогресса злоумышленник сделал, но если предположить, что честные блоки взяли среднее ожидаемое время на блок, потенциальный прогресс атакующего будет распределением Пуассона с ожидаемым значением:
Для того, чтобы получить вероятность того, злоумышленник может еще нагнать теперь умножим плотность Пуассона для каждой суммы прогресса он мог бы сделать вероятностью он мог нагнать с этого момента:
Перестановка, чтобы избежать суммирования бесконечного хвоста распределения ...
Преобразование кода C ...
#включают
двойной AttackerSuccessProbability (двойной д, Int г)
{
двойной р = 1,0 - д;
двойной лямбда = г * (д / р);
двойная сумма = 1,0;
INT I, к;
для (к = 0; K <= Г; к ++)
{
двойная пуассоновский = ехр (-lambda);
для (я = 1; я <= K; я ++)
пуассоновский * = лямбда / я;
сумма - = пуассоновский * (1 - пау (д / р, г - к));
}
вернуть сумму;
}
Запуск некоторых результатов, мы можем видеть вероятность упасть экспоненциально с г.
д = 0,1
г = 0 Р = 1,0000000
г = 1 Р = 0,2045873
г = 2 Р = 0,0509779
г = 3 Р = 0,0131722
г = 4 С = 0,0034552
г = 5 Р = 0,0009137
г = 6 Р = 0,0002428
г = 7 Р = 0,0000647
г = 8 p = 0,0000173
г = 9 Р = 0,0000046
г = 10 Р = 0,0000012
д = 0,3
г = 0 Р = 1,0000000
г = 5 Р = 0,1773523
г = 10 Р = 0,0416605
г = 15 Р = 0,0101008
г = 20 Р = 0,0024804
г = 25 Р = 0,0006132
г = 30 Р = 0,0001522
г = 35 Р = 0,0000379
г = 40 Р = 0,0000095
г = 45 Р = 0,0000024
г = 50 Р = 0,0000006Решение для P менее 0,1 ...
п < 0,001
д = 0,10 г = 5
д = 0,15 г = 8
д = 0,20 г = 11
д = 0.25 г = 15
д = 0,30 г = 24
д = 0.35 г = 41
д = 0.40 г = 89
д = 0,45 г = 340
Требуется тщательное чтение бумаги. Он не говорит, "вероятность того, что злоумышленник шахтер выиграет в
Z блоки"
Что это сказать, что если злоумышленник
Z блоки за текущую высоту,
QZ есть вероятность атакующая
Когда-либо поймать вверх от г блоков позади. "Когда-либо", как в "учитывая бесконечное количество времени, какова вероятность того, что когда-либо один момент времени, когда плохой шахтер догнал и находится на ту же высоту блока, как и остальная часть сети.
Это на самом деле не практические измерения, как злонамеренный шахтер не мой до тепловой смерти вселенной, чтобы отменить отдельный блок, потенциально выбрасывая каждый блок награду они могли когда-либо сделать. Стоимость выполнения этой атаки является бесконечной, так как он будет принимать бесконечное количество электроэнергии, помоему навсегда, не говоря уже о потерянных блоках награды, которые имеют высокую вероятность быть отброшены и стоимость горно-шахтного оборудования для поддержания соотношения. Это конечная высокая вероятность того, что будет
Когда-либо быть замена блока.
входные к формулам, приведенным в
р = вероятность честный узел находит следующий блок а также
д = вероятность злоумышленник находит следующий блок.
Один из них легко заменить - так как вероятность того, что
кто угодно находит следующий блок равен 1, то вероятность честный узел находит следующий блок равен 1-кв.
Что значит "Вероятность честный узел находит следующий блок" значит, хотя? Это действительно означает, "учитывая как шахтеры, начиная добычу в то же время, вероятность того, что один шахтер найти
Любые данный блок. Это связано с hashrate, но ясное объяснение, что это
непосредственный а также
эквивалент отношения не дано в работе. При данной сложности 90% минер имеет среднюю скорость блока около 11,1 минут, в то время как 10% минер имеет среднюю скорость блока 100 минут. Шахтеры мчатся друг против друга, хотя, не трудности, поэтому трудности сокращается. В конце концов, мы должны были бы показать наши математические: использование Пуассона расы (вплоть до отдельного хэша уровня вероятности) и как это переводится в горнорудном режим, доказать, что 10% hashrate шахтер действительно имеет 10% шанс найти следующий блок.
Z Также начиная ввода.
Z= 1 означает, что плохо шахтер за одним блоком. Это также может означать, "сделка имеет Z подтверждения от хорошей сети, плохой шахтер нужно будет добывать блоки Z заменить блок держа его",
Если
Z= 0, это означает, что плохо шахтер в настоящее время на той же высоте, что и остальной частью сети, так что цель уже достигнута.
Z= 0 не имеет смысла в качестве отправной точки.
Итак, теперь давайте посмотрим на столы и посмотреть, что они на самом деле означает.
Изучить д = 0,1 таблицы в нижней части. д = 0,1 означает, что 10% вероятность злоумышленник находит следующий блок, и может быть интерпретирован как атакующая, имеющими 10% от сети hashrate. Шанс, что они когда-либо будут в состоянии догнать их от дефицита одного блока и заменить предыдущий блок Р = 0,2045873.
Мы должны ответить на лучшие вопросы для конкретных сценариев. Для злоумышленников: какова стоимость замены г = 1 блок, если мы продолжим нашу попытку на глубине 10 блоков, и вероятность успеха? Когда попытка заменить конкретную сделку стать прибыльной (как большой сделки), и после того, как долго мы должны отказаться от нашей попытки? Для пользователей: Когда это безопасно доверять сделки X BTC с корыстным нападающим Q% hashrate пытается повернуть его вспять.