Блоки, масштабирование и вопрос segwit

Немного новичок в биткойнах, пытаюсь понять технологию... Насколько я понимаю, все транзакции идут в блок, каждые 10 минут блок добывается и все транзакции в нем подтверждаются. С каждым подтвержденным блоком (то есть каждые 10 минут) более старые блоки становится все труднее взломать. Алгоритм блокчейна умеет регулировать свою сложность так, чтобы каждые 10 минут добывался блок. Верно ли вышесказанное?

Если да, то почему проблема масштабирования заключается в размере блока, а не в частоте блока? Если сеть может сама подстраиваться под вычислительную мощность, почему бы не разрешать блок каждую минуту, уменьшая при этом количество BTC, которое будет производиться с каждым блоком, и сохраняя размер блока на уровне 1 МБ?

Спасибо

Ответы (1)

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

Однако изменение частоты блоков означает изменение формулы корректировки сложности. Для этого требуется хард-форк, как и изменение максимального размера блока. В любом случае сетевые узлы, которые не принимают новые правила, будут считать новые блоки недействительными, и если не все согласятся принять новые правила, валюта фактически разделится на две части.

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

Кроме того, увеличение частоты блоков означает, что «подтверждения» не будут означать то же самое, что и раньше. Мы думаем о «6 подтверждениях» как о контрольной точке для транзакции, которую будет чрезвычайно сложно отменить, но на самом деле это означает «60 минут времени майнинга». Если бы вы отрегулировали частоту так, чтобы среднее время блокировки составляло одну минуту, теперь всем пришлось бы использовать «60 подтверждений» в качестве эталона для эквивалентной безопасности, и все программное обеспечение, которое подсчитывало подтверждения, должно было бы быть обновлено. (Например, подумайте о биржах, которые не хотят кредитовать учетную запись пользователя, пока их депозиты не будут достаточно подтверждены). Любое программное обеспечение, которое не обновляется, потеряет 90% своей защиты от атак двойного расходования. Так что это будет более разрушительным, чем изменение размера блока.

Вот пример. Текущая сложность биткойнов составляет около 6,8e11. Это означает, что для майнинга одного блока требуется в среднем 6,8e11 * 2^32 = 2,9e21 хеш-операций. Допустим, у вас есть транзакция в блоке с номером 400000 в основной цепочке, и у нее есть 6 подтверждений, поэтому мы сейчас на высоте блока 400005. Чтобы совершить двойную трату, кто-то должен создать конфликтующую транзакцию в конфликтующем блоке, родительский блок которого был блок 399999, поэтому новый блок также будет на высоте 400000. Затем им нужно добыть еще 5 блоков поверх своего нового блока, чтобы их новая цепочка была по крайней мере такой же длинной, как и существующая, и надеются, что будущие майнеры будут майнить на своей новой цепочке вместо старой. Таким образом, для майнинга требуется 6 блоков = 6 * 2,9e21 = 1,7e22 хеш-операций.

Теперь представьте, что вы хотите, чтобы среднее время блока составляло 1 минуту, поэтому вы снизили сложность до 6,8e10. Теперь для майнинга одного блока требуется всего 2,9e20 хэшей. Таким образом, транзакция с 6 подтверждениями по этой новой схеме требует для реверсирования всего 1,7e21 хэша. Если вам нужна та же безопасность, что и раньше, т. е. 1.7e22 хэшей, необходимых для реверсирования, вам нужно дождаться 60 подтверждений.

Спасибо, я понимаю ваши мысли о хардфорке и потерянных блоках, но в последнем я не совсем уверен. Почему безопасность должна составлять 60 минут, а не шесть хэшей?
@EliahuHorwitz: я добавил пример, который может помочь.
Спасибо! Помимо segwit и шардинга, есть ли другие предложения по масштабированию? Насколько хороша сеть Tangle, реализованная в IOTA?
Задайте как новый вопрос, пожалуйста (но сначала выполните поиск существующих вопросов).