Каким образом сложность (по сути, случайный перебор кучи вариантов в поисках того, хеш которого удовлетворяет неким условиям) позволяет защититься от атак и повышает надёжность системы в целом?
Как происходит транзакция? Рассмотрим упрощённый вариант.
Упрощённый вариант поскипан
Таким образом,
не имея достаточной вычислительной мощности, не получится вертеть историей по своему желанию. А вот если такие мощности есть в наличии, то можно попробовать смухлевать.
- Создаём свою сеть майнеров.
- Изолируем её от общей сети.
- В общую сеть передаём транзакцию на много BTC какому-нибудь трейдеру, например.
- В свою сеть передаём такую же транзакцию, но уже на какой-то свой адрес.
- Ждём подтверждение транзакции трейдером и получаем от него то, что нам полагается.
- Объединяем нашу сеть с общей сетью. Если в нашей сети суммарная "сложность" новых блоков превысит сложность новых блоков в общей сети, то наш хвост будет признан истинным, и все транзакции, прошедшие в общей сети, будут отменены. (Отменённые транзакции могут быть автоматически восстановлены, кроме нашей "фальшивой" транзакции.)
- Трейдеры SOSNOOLEY.
- ...
- PROFIT!
Это - довольно простая схема. Я слышал, что есть варианты атак, требующих меньший процент вычислительной мощности всей сети.
Вчитайтесь внимательно в мой вопрос.
Вопрос был:
"Каким образом сложность позволяет защититься от атак?"Из Вашего объяснения следует, что вычислительная мощность "сети-шулера" должна быть выше вычислительной мощности "частной" сети. Иначе, сеть-шулер просто не успеет за указанное время нагенерить блоков на большую суммарную сложность, нежели "честная сеть".
Теперь допустим, сложность снизилась в 2 раза. Что это изменило? А ничего! Отношение вычислительных мощностей 2-х сетей осталось одинаковым! В любом случае, за то же самое время при той же сложности "честная" сеть нагенерит больше блоков, чем "сеть-шулер", соответственно и суммарная сложность блоков будет выше. Можно снизить сложность хоть в 4, хоть в 8 хоть в стопицот раз, это
ничего не изменит в данной схеме. И даже не имеет значения, будет ли снижаться сложность постоянно или временно. Т. к. за одно и то же время при одинаковой вычислительной мощности ты нагенеришь либо 10 блоков текущей сложности, либо 20 блоков сниженной в 2 раза сложности. В любом случае суммарная сложность зависит
только от вычислительной мощности сети и никак не от сложности генерации отдельного блока.
Итак, повторю вопрос ещё раз:
"Каким образом сложность позволяет защититься от атак?"