Почему 6 количество подтверждений, которые считаются безопасными?

Почему 6 - количество подтверждений, которые считаются безопасными? Я не нашел математического объяснения или иначе объяснил, почему это 6, а не 5 или 7. Есть ли историческая причина для 6? Есть ли способ вычислить его так, что 6 - это просто номер, который был выбран?

106 голосов | спросил osmosis 20 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 20 Sep 2011 23:47:46 +0400 2011, 23:47:46

5 ответов


20

Вот некоторые из соответствующих разделов из статьи Сатоши: http://bitcoin.org/bitcoin.pdf

"11. Расчеты Мы рассматриваем сценарий злоумышленника, пытающегося генерировать альтернативную цепочку быстрее, чем честная цепочка. ... Гонка между честной цепочкой и цепью атакующего может быть охарактеризована как биномиальная случайная прогулка. Событие успеха - это честная цепочка, расширяемая одним блоком, увеличивающая ее лидерство на +1, а событие сбоя - цепь атакующего расширяется на один блок, уменьшая разрыв на -1. ... Вероятность того, что злоумышленник уловит определенный дефицит, аналогичен проблеме руина Игрока. ...

p = вероятность, что честный узел найдет следующий блок q = вероятность, что злоумышленник обнаружит следующий блок qz = вероятность, что злоумышленник когда-либо догонит из z блоков за

equation

Учитывая наше предположение, что p> q, вероятность падает экспоненциально, поскольку количество блоков, которые атакующий должен догнать, увеличивается. Если у него есть шансы на него, если на ранних этапах он не совершает удачный выпад, его шансы становятся исчезающе маленькими, поскольку он падает дальше ... Потенциальный прогресс атакующего будет распределением Пуассона ... Чтобы получить вероятность того, что атакующий до сих пор можно догнать, мы умножаем плотность Пуассона для каждого уровня прогресса, которого он мог бы сделать, с вероятностью, которую он мог бы преодолеть с этой точки.

Преобразование в код C.

include <math.h>
double AttackerSuccessProbability(double q, int z)
{
    double p = 1.0 - q;
    double lambda = z * (q / p);
    double sum = 1.0;
    int i, k;
    for (k = 0; k <= z; k++)
    {
        double poisson = exp(-lambda);
        for (i = 1; i <= k; i++)
            poisson *= lambda / i;
        sum -= poisson * (1 - pow(q / p, z - k));
    }
    return sum;
}

Выполняя некоторые результаты, мы можем видеть, что вероятность убывает экспоненциально с z. «

ответил osmosis 21 stEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 21 Sep 2011 11:35:52 +0400 2011, 11:35:52
63

Я считаю, что это рассмотрено на странице 8 Биткойн-бумаги , когда вы показываете вероятность захвата злоумышленника вверх.

wiki :

  

«Достаточно всего 6 блоков или 1 час, чтобы сделать обратное вычислительно непрактичным».

Ключевое слово «нецелесообразно».

Важное предложение в работе Сатоши:

  

«Предполагая, что честные блоки заняли среднее ожидаемое время на блок, потенциальный прогресс атакующего будет распределение Пуассона ».

Итак, это не значит, что кто-то не смог создать миры первым и владеть фермой ASIC на 50 миллионов долларов, чтобы иметь возможность обогнать блок-цепочку из вилки с шестью блоками ранее, но это было бы.) массовое обязательство, б) очевидное для всех и в.), ужасно невыгодное для злоумышленника.

ответил Stephen Gornick 21 stEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 21 Sep 2011 01:17:20 +0400 2011, 01:17:20
40

Многие люди неправильно цитируют газету Сатоши и предполагают, что 6 - это значение значимости.

В документе Сатоши излагается количество подтверждений, необходимых для уверенности в 99,9% (менее 1 из 1000 шансов на успех), что злоумышленник не смог построить более длинную цепочку для отмены транзакции.

http://bitcoin.org/bitcoin.pdf

P < 0.001
q=0.10   z=5
q=0.15   z=8
q=0.20   z=11
q=0.25   z=15
q=0.30   z=24
q=0.35   z=41
q=0.40   z=89
q=0.45   z=340

p - вероятность того, что злоумышленник в конечном итоге получит более длинную цепочку и реверсирует транзакцию (в этом случае 0,1%). q - это% мощности хэширования, которую контролирует злоумышленник. z - количество блоков, подверженных риску разворота ниже p (0,1%).

Таким образом, вы можете увидеть, достаточно ли у атакующего 6% хэширования 6 блоков. Помните, что 10% сети на момент написания ~ 100 ГГц /с. Однако, если у атакующего было больше% хэширования, потребовалось бы больше времени, чтобы убедиться, что транзакция не может быть отменена.

Если злоумышленник имеет q от> 50% («атака 51%»), то предоставляется неограниченное время, когда атакующий неизбежно заканчивается самой длинной цепью.

При редактировании: чтобы уточнить «неограниченное время», цепочка с более высоким хэш-сигналом неизбежно закончится самой длинной, однако вероятность все еще вступает в игру. Мы не можем сказать со 100% уверенностью, сколько времени потребуется в лучшем случае, мы можем предоставить доверительный интервал. Если атакующий является едва более быстрым, чем хорошие шахтеры (51% против 49%), то атакующему может потребоваться очень много времени, чтобы преодолеть дефицит в 6 блоков. Чем больше атакующий доминирует (т. Е. 70% против 30%), тем быстрее достигается доверительный интервал 95%.

ответил DeathAndTaxes 4 52011vEurope/Moscow11bEurope/MoscowFri, 04 Nov 2011 04:54:46 +0400 2011, 04:54:46
7

Рисунок 6 блоков абсолютно произволен. Он основан на предположениях, что злоумышленник не будет набирать более 10% хэш-хэшей сети и что пренебрежимо малая вероятность 0.1% для успешных двойных расходов приемлема.

Более подробный анализ этого можно найти на анализе двунаправленного расхода на основе Hashrate

ответил Meni Rosenfeld 5 22013vEurope/Moscow11bEurope/MoscowTue, 05 Nov 2013 19:16:10 +0400 2013, 19:16:10
1

С большим количеством подтверждений вероятность успешного удвоения расходов. Хотя можно выполнить двойную трату с менее чем 51% мощности хэширования, для этого нужно, чтобы кто-то был более удачлив, чем остальные шахтеры, т.е. решают блоки быстрее других. Это будет продолжаться вечно (если быть верным: это маловероятно), чтобы злоумышленник не смог разветвить целую цепочку. С пулами до недавнего времени контролируя 30-40% от общей мощности хэширования, правило 6-подтверждения не было бы безопасным, если оператор пула решил совершить злокачественное действие.

ответил Qba-th'Intrepid 17 +04002012-10-17T01:59:43+04:00312012bEurope/MoscowWed, 17 Oct 2012 01:59:43 +0400 2012, 01:59:43

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132