Почему целевое время блокировки было выбрано равным 10 минутам?

Согласно вики , 10 минут были выбраны как «компромисс».

Почему именно десять минут? Это компромисс, выбранный Сатоши между временем распространения новых блоков в больших сетях и объемом работы, потраченной впустую из-за разделения цепочки.

Однако в оригинальной статье Сатоши 10 минут используются просто для целей расчета требований к дисковому пространству.

Заголовок блока без транзакций будет иметь размер около 80 байт. Если предположить, что блоки генерируются каждые 10 минут, 80 байт * 6 * 24 * 365 = 4,2 МБ в год.

Есть ли где-нибудь обсуждение, объясняющее, как было достигнуто 10-минутное время блока?

Я думаю, что если требование 10-минутного блока по какой-то причине окажется проблематичным, и большинство майнеров и пользователей с этим согласятся, в будущем это может быть снижено.
Майк Хирн однажды объяснил мне, что Сатоши оценил время распространения блока в 1 минуту и ​​выбрал 10-минутные интервалы между блоками, потому что «тратить впустую» 10% работы по майнингу было изрядной суммой. Однако в настоящее время время распространения блоков намного быстрее.
@pinhead Что именно вы имеете в виду, говоря о трате 10% работы по добыче полезных ископаемых?
@FivePoints в этом контексте мы имеем в виду, что 10% добытых блоков «проиграют гонку» против другого блока, добытого почти в то же время, и устареют, а это означает, что выплата субсидии майнеру никогда не будет потрачена, а энергия, потребляемая майнер для производства этого блока будет потрачен впустую.
@pinhead имеет смысл, но как были рассчитаны эти 10%? Это просто (задержка/время блокировки)?
@FivePoints точно. По словам Майка Хирна, по-видимому, так думал Сатоши.
Источник @FivePoints, сколько стоит: reddit.com/r/Bitcoin/comments/30lxo4/…
@pinhead Похоже, что ваш учет отходов не включает все отходы машин, которые не закончили работу за 10 минут.

Ответы (5)

10-минутные блоки — это просто компромисс.

Сокращенное время блокировки:

  • PRO – Более быстрое 1 подтверждение (для защиты от 0-подтверждения двойной траты)
  • PRO — Меньшая дисперсия выплат для майнеров (меньше зависимость от больших пулов)
  • ПРОТИВ — требуется увеличенная пропускная способность (межузловая связь)
  • ПРОТИВ — больше форков, более длинные форки и больше времени реорганизации
  • ПРОТИВ — большая часть необработанной хэш-мощности тратится впустую, что приводит к снижению эффективной безопасности.

При более длительном целевом интервале блокировки более 10 минут плюсы и минусы будут обратными.

Основным преимуществом более короткого времени блока является сокращение времени 1 подтверждения. Хотя транзакция с 1 подтверждением более быстрого блока имеет меньшую силу, чем транзакция с 1 подтверждением более длинного блока, она все же лучше, чем транзакция с 0 подтверждением любого блока.

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

Другой фактор, снижающий реальный потенциал более коротких целевых интервалов блокировки, заключается в том, что для многих продавцов даже «более быстрое» время подтверждения все еще недостаточно быстро. Для транзакции в торговой точке среднее время подтверждения в 2 минуты по-прежнему значительно больше, чем то, что большинство продавцов считает приемлемым. Средняя транзакция по кредитной карте занимает около 20 секунд (включая задержки со стороны клиента). Вся индустрия потратила значительные ресурсы, чтобы сэкономить хотя бы несколько секунд. Такие изменения, как разрешение покупателю проводить картой, проводить пальцем до того, как все элементы будут активированы, и не требовать подписи при низком значении, — все это связано с сокращением на пару секунд и без того быстрого процесса, и стоимость этих изменений считается приемлемой для небольшого улучшения. оперативность кассы.

Другой фактор заключается в том, что уменьшение целевого интервала только уменьшает среднее время подтверждения, но половина из них будет длиннее, а хвост может быть очень длинным. Из-за случайного характера решений блоков примерно 15% блоков будут занимать больше времени, чем 2-кратное целевое значение, 3% дольше, чем 3-кратное целевое значение, > 7,5 минут и около 0,5% займет больше времени, чем 4-кратное целевое значение. Эта неопределенность затрудняет ожидание подтверждений для бизнеса, чувствительного ко времени. Подтверждение большинства транзакций в течение 30 секунд, но некоторые из них занимают минуты, может привести к разочарованию клиентов в точках продаж.

Если экономика BTC станет достаточно большой, мы можем увидеть более широкое использование «зеленых адресов», чтобы удовлетворить потребность в мгновенном приеме без подтверждений. Такие услуги могут предоставляться крупными корпорациями и обеспечиваться страхованием от мошенничества (за небольшую комиссию за транзакцию). Это было бы более жизнеспособным решением с 0-подтверждением, чем простое уменьшение интервала между блоками.

При этом 10-минутная цель, вероятно, была чрезмерно консервативной, и у более короткого времени блока есть некоторые преимущества.

Ваша ошибка в том, что вы думаете, что «атака с двойным расходом» означает «атака 51%». Вы можете попытаться удвоить расходы с меньшими затратами, но успех вам не гарантирован. Чем больше блоков ждали, тем меньше ваш шанс. > 50% — это точка, в которой вам гарантирован конечный успех, независимо от того, сколько блоков вы ожидаете. Вероятность успеха при атаке <50% зависит от количества блоков, а не от количества времени. Это преимущество более коротких блоков.
У более короткого времени блока есть еще одно преимущество для майнеров. Кроме того, дополнительное пространство для хранения коротких блоков незначительно, поскольку большая часть данных — это транзакции, а не заголовки блоков.
У вас есть несколько опечаток: первые 2 записи для «более длительного времени блокировки» должны быть «CON» и «PRO», ​​а не «PRO» и «RRO».
@MeniRosenfeld Спасибо за исправления, я добавил различия в дисперсии и удалил различия в хранении, поскольку вы правы, различия будут довольно небольшими. Я также удалил аспект, основанный на времени, потому что, хотя я слышал, что он требует дополнительных подтверждений, у меня нет точных знаний. Других известных отличий достаточно.
Очень хорошее обновление, я хотел бы снова проголосовать. ;)
Далее: более короткие блоки означают больше места для сокращенных узлов и узлов SPV.

Я нашел эту часть вики тоже разочаровывающей, и я просто отредактировал ее. Буду признателен за исправления. Вот что я написал:

Десять минут были специально выбраны Сатоши как компромисс между временем первого подтверждения и объемом работы, потраченной впустую из-за разделения цепочки. После того, как блок добыт, другим майнерам требуется время, чтобы узнать об этом, и до тех пор они фактически конкурируют с новым блоком, а не добавляют к нему. Если кто-то добудет еще один новый блок на основе старой цепочки блоков, сеть сможет принять только один из двух, и вся работа, затраченная на другой блок, будет потрачена впустую. Например, если майнерам требуется в среднем 1 минута, чтобы узнать о новых блоках, а новые блоки приходят каждые 10 минут, то вся сеть тратит впустую около 10% своей работы. Увеличение времени между блоками уменьшает эти потери.

В качестве мысленного эксперимента: что, если сеть Биткойн расширится и будет включать Марс? От самых дальних точек на их орбитах сигнал доходит от Земли до Марса примерно за 20 минут. Поскольку между новыми блоками всего 10 минут, майнеры на Марсе всегда будут на 2 блока отставать от майнеров на Земле. Для них было бы почти невозможно внести свой вклад в цепочку блоков. Если бы мы хотели сотрудничать с такими задержками, нам потребовалось бы как минимум несколько часов между новыми блоками.

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

Вероятно, нет никакого обсуждения этой темы, поскольку первая версия Биткойна была создана одним Сатоши, поэтому, пока он не раскроет свою истинную личность или не вернется в сообщество, точные причины не могут быть точно выяснены.

Анализ в статье Сатоши вовсе не относится к тому, сколько времени нужно ждать — это зависит исключительно от практичности поддержания высокого хешрейта в течение длительного времени. Он обсудил количество блоков для ожидания — он показал, например, что если получатель ждет 6 блоков, а у злоумышленника есть 10% хешрейта сети, попытка двойной траты имеет только <0,025% шансов на успех. При 1 минуте на блок это 6 минут и т.д.

Время блокировки было определено Сатоши Накамото как компромисс между двумя факторами.

1. Сетевая задержка:
после добычи блока другим майнерам требуется некоторое время, чтобы узнать об этом узле, и в течение этого времени на самом деле другие майнеры все еще конкурируют (что означает майнинг) с этим блоком вместо того, чтобы добавлять этот блок в цепь. Это приводит к пустой трате ресурсов майнинга, потому что несколько майнеров все еще добывают свои блоки, но сеть может добавить только одного. Кроме того, это факт, что потребуется некоторое время, чтобы любой новый добытый блок появился на всех узлах, поскольку отставание в сети имеет значение.

2. Время подтверждения:
мы можем быть уверены в подтверждении добавления блока в цепочку/сеть только после добавления некоторых блоков в эту цепочку. А чтобы подтверждение было более надежным, необходимо добавить в цепочку после нашего блока около 5-6 блоков. Это, безусловно, займет некоторое время. Но нам нужно ускорить этот процесс.

Теперь фактор задержки сети требует, чтобы время блока было больше, тогда как фактор времени подтверждения требует, чтобы оно было короче. Поэтому был выбран компромисс, который составляет 10 минут. Этот временной отрезок наверняка был выбран после некоторых расчетов. Но теоретическая причина времени блокировки такая же, как описано в этом ответе.

AFAICS, единственным возможным преимуществом более длительного времени блока является сокращение накладных расходов на полосу пропускания из-за меньшей вероятности разделения цепочки блоков.

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

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

Если нет доказательств, я сомневаюсь в утверждении, что более короткое время блока создает больше времени для достижения консенсуса (т. е. перераспределения), потому что, например, если есть в 4 раза больше разбиений с 1/4 времени блока, существует примерно Еще 7 итераций для достижения консенсуса в течение той же продолжительности.

G̶i̶v̶e̶n̶ ̶t̶h̶a̶t̶ ̶i̶r̶r̶e̶v̶e̶r̶s̶i̶b̶i̶l̶i̶t̶y̶ ̶i̶s̶ ̶a̶ ̶f̶u̶n̶c̶t̶i̶o̶n̶ ̶o̶f̶ ̶n̶u̶m̶b̶e̶r̶ ̶o̶f̶ ̶b̶l̶o̶c̶k̶s̶&̶m̶d̶a̶s̶h̶;̶ ̶n̶o̶t̶ ̶o̶f̶ ̶t̶i̶m̶e̶— ̶a̶n̶d̶ ̶t̶h̶e̶ ̶d̶i̶s̶a̶d̶v̶a̶n̶t̶a̶g̶e̶ ̶o̶f̶ ̶d̶e̶l̶a̶y̶s̶ ̶i̶n̶ ̶t̶r̶a̶n̶s̶a̶c̶t̶i̶o̶n̶s̶,̶ ̶i̶t̶ ̶s̶e̶e̶m̶s̶ ̶a̶ ̶s̶h̶o̶r̶t̶e̶r̶ ̶b̶l̶o̶c̶k̶ ̶t̶i̶m̶e̶ ̶i̶s̶ ̶c̶o̶m̶p̶e̶l̶l̶i̶n̶g̶.̶

Я был бы признателен, если бы минусующие хотя бы попытались защитить свою логику комментарием под моим ответом. Это дает мне возможность обсудить их и показать им, почему я думаю, что они неправы (или признать свою ошибку). Смысл в том, чтобы убедиться, что у нас коллективно есть правильная логика.

В этом ответе не учитываются затраты времени на передачу блока и проверку блока. Поскольку это время является примерно фиксированным значением для полного блока, оно является большей относительной частью более короткого интервала блока, чем более длинного интервала блока.
@Murch, я написал этот ответ через несколько дней или недель после начала изучения блокчейнов, криптографии и биткойнов. Поэтому мои взгляды значительно изменились. Однако, предполагая, что объем транзакций на блок уменьшается из-за более высокой частоты блоков, ваше утверждение о постоянном распространении и времени проверки неверно. Крейг Райт заявил, что сеть Биткойн достигает 99% хешрейта примерно за секунду.
Поскольку практически все майнеры подключены к оптоволокну, а опубликованные данные свидетельствуют о том, что скорость чуть медленнее скорости света, менее 1 секунды — несложное заявление… Однако наиболее значительным влиянием в этом году, вероятно, стало то, что майнеры обновились до последней версии. Bitcoin Core, чтобы сигнализировать об активации segwit. Ранее в этом году мы все еще видели несколько потерянных блоков в неделю. Блоковое время, например, 60 секунд вернуло бы нас обратно к нескольким потерянным блокам в день. Поскольку есть данные, на которые можно посмотреть, вызывает недоумение то, что вы, кажется, отрицаете эффект.
@Murch, SegWit уменьшил средний размер блока в 10 раз? Если нет, то, по-видимому, данные, которые вы цитируете, не соответствуют моей точке зрения. Теперь я понимаю (не то, что я понял в 2016 году, когда писал этот ответ), что более короткое время блока также увеличивает асимметричные преимущества для коалиций хешрейта, таких как пулы, которые мгновенно видят свои выигрышные блоки (без задержки распространения). Таким образом, чрезмерные сироты могут быть эгоистичной добычей полезных ископаемых в действии. Обратите внимание, что вариант GHOST от Ethereum частично решает некоторые из этих проблем.