Какое количество подтверждений считается безопасным в Ethereum?

В Биткойне 6 подтверждений считаются безопасными (очень низкая вероятность отмены транзакции/блока).

Какое текущее число в Эфириуме?

Эт, вы говорите о подтверждении блока здесь, верно? Я спрашиваю из-за комментария, который lungj сделал к моему вопросу здесь: ethereum.stackexchange.com/questions/21686/… - Ваше разъяснение было бы здорово.
@Tesa Я понимаю, что терминология не очень хороша. Вы бы сказали, что транзакция имеет 6 подтверждений; но на самом деле мы не говорим, что блоки подтверждаются, и необычно говорить, что блок имеет 6 подтверждений. Хорошо написанное определение из Биткойн : «подтверждения представляют собой количество блоков в цепочке блоков, которые были приняты сетью с момента блока, включающего транзакцию». (Когда мы добираемся до Proof of Stake, появляются понятия о финализации блоков.)

Ответы (6)

От Джорджа Халлама :

12 подтверждений; тем не менее, биржам и организациям, обрабатывающим очень большие объемы эфира, часто по-прежнему рекомендуется запускать две разные реализации Ethereum и принимать только транзакции, которые были подтверждены обеими для максимальной безопасности (например, Go и C++).

Для справки: 12 подтверждений — это примерно 3 минуты.

Не могли бы вы указать, почему 12 подтверждений — это хорошее число?
В этой статье обсуждается ожидание соответствующего значения, которое будет собрано майнерами, прежде чем считать транзакцию завершенной. Стоимость пропорциональна стоимости, которую вы совершаете. Называется «Правило Оу» в статье: medium.com/@nic__carter/…
Что происходит, когда форк выходит за пределы 12 блоков, а вы проверяете только 12 подтверждений?

Клиент geth ждет 5 блоков для подтверждения новых блоков (около 1 минуты).

I0201 19:07:07.354260    9098 worker.go:349] 🔨  Mined block (#1483 / a2648b58). Wait 5 blocks for confirmation

Чтобы убедиться, что блок не является дядей или транзакция, включенная в блок, не зависнет в оммере, я бы предложил подождать 7 подтверждений (около 2 минут). Из технического описания :

Дядя, включенный в блок B, должен иметь следующие свойства: [...] Он должен быть прямым потомком предка B в k-м поколении, где 2 <= k <= 7. [...]

Майнерам необходимо проверить параметры последних 250 блоков. Если вы хотите быть в самой безопасной цепочке, всеми ногами стоять на земле, делайте это как майнеры и ждите 250 подтверждений (около 1 часа).

Некоторые биржи практикуют дабл-олл-ин и даже ждут 500 подтверждений (около 2 часов). Это может сопровождаться предупреждением о безопасности, которое можно прочитать повсюду, потому что граница все еще не считается стабильной. Думаю, это перебор.

Подводя итог, всегда зависит от вашего приложения и приложенного значения, чтобы определить, какое количество подтверждений считается безопасным .

что такое оммер?
FWIW, я бы не стал слишком углубляться в число из 5 блоков в клиенте geth. Я написал это, но не сделал глубокий анализ на лучшую глубину, и никто из рецензентов не прокомментировал глубину .

Эфириум теоретически приближается к завершению за меньшее время, чем Биткойн, благодаря протоколу GHOST. Это означает, что при 15-секундном времени блока требуется примерно 40 блоков, чтобы соответствовать 60 минутам, которые занимают 6 блоков биткойнов.

Поэтому, при условии отсутствия серьезных ошибок консенсуса, 40 подтверждений должны быть более безопасными, чем 6 подтверждений в биткойнах. На практике около 20-25 подтверждений должно быть достаточно для транзакций разумного размера.

Почему 20-25? В ethereum.stackexchange.com/a/203/76 Виталик упоминает об ожидании 12 подтверждений для внесения «необратимых» изменений в данные .
Ethereum на самом деле не реализует GHOST; правило выбора цепочки такое же, как у Накамото. Структура DAG позволяет платить непреднамеренным дядям, чтобы демотивировать централизацию.

От Виталик Бутерин говорит в блоге Ethereum в 2015/09/14 о теме обсуждения « О медленных и быстрых блочных временах » https://blog.ethereum.org/2015/09/14/on-slow-and-fast- блок-тайм/

требуется лишь небольшое количество дополнительных подтверждений (точнее, от двух до пяти) в более быстрой цепочке, чтобы преодолеть разрыв; следовательно, 17-секундный блокчейн, вероятно, потребует десять подтверждений (~ три минуты) для достижения такой же степени безопасности в рамках этой вероятностной модели, что и шесть подтверждений (~ один час) в десятиминутном блокчейне.

Из статьи делаю вывод, что зависит от атаки, поэтому заповедь десяти подтверждений действительна только для "нормального случая", а не для византийской и экономической атаки.

Я видел, как биржи используют 375 подтверждений. Но по мере того, как сложность увеличивалась, а сеть становилась все более децентрализованной, безопасно опускаться ниже этого уровня.

Конечно, это зависит от того, насколько критична транзакция. Как правило, подождите не менее 5 подтверждений для сумм, превышающих 500 долларов США. Затем добавьте 5 подтверждений на каждые 1000 долларов, которые стоит транзакция.

Это ваше личное эмпирическое правило или какая-то передовая практика в отрасли, продвигаемая авторитетным источником (возможно, Ethereum Foundation)? Пожалуйста, уточните источник, чтобы улучшить этот ответ
Не углубляясь в цифры, кажется разумным проявлять большую осторожность при обработке больших сумм. Но имейте в виду, что 100 транзакций на сумму 100 долларов каждая имеют такое же значение/риск, что и одна транзакция на 10 000 долларов, поэтому к обеим ситуациям следует относиться с одинаковой осторожностью.
@joeytwiddle: Это имеет смысл, но есть разница. 100 транзакций на сумму 100 долларов действительно имеют риск в 10 000 долларов, но вероятность того, что все они будут отменены, строго ниже, чем вероятность отмены одной транзакции на 10 000 долларов. Так что технически риск в этом случае ниже.
@Symeof Я согласен, что это верно для нормальных (ожидаемых) реверсий. Как сказал Роланд в своем комментарии , это действительно зависит от типа атаки, от которой вы защищаете. Я думал об обмене, защищающем от редкой, но серьезной проблемы, такой как эксплойт нулевого дня. (Хардфорк 2016 года восстановил примерно 165 блоков , возможно, сообщая о указанном вами лимите в 375.)
@joeytwiddle: мы согласны.

Я наткнулся на очень интересный исследовательский документ под названием «О безопасности и производительности блокчейнов с доказательством работы».

авторы заявляют следующее:

Из-за меньшего вознаграждения за блок и более высокой доли устаревших блоков Ethereum2 по сравнению с биткойном (от 0,41% до 6,8% из-за более быстрого времени подтверждения), Ethereum (интервал блока между 10 и 20 секундами) требуется не менее 37 подтверждений , чтобы соответствовать биткойну. безопасность (интервал блока в среднем 10 минут) с 6 подтверждениями блока против противника с 30% общей мощности майнинга.

Вы найдете демонстрацию в газете