Есть много ситуаций, при которых блокчейн может потерпеть неудачу. Всегда хорошо думать о том, как выглядит сбой, потому что он позволяет нам увидеть: насколько он может быть опасным, как можно восстановиться после сбоя и как можно предотвратить сбой.
В криптовалюте есть (как минимум) 2 класса сбоев:
- сбои в управлении;
- технические сбои.
Сбои в управлении могут быть довольно серьезными, потому что управление может потребоваться для плавного восстановления после технического сбоя.
Для того, чтобы исправить сбои в управлении, предлагается участие членов сообщества в процессе управления (просто исправить это) или придется сдаться и начать заново. Человек может принять это решение как лично, так и на основе коалиций или картелей. Но управление на практике является проблемой. Это не всегда просто.
Как может сработать блокчейн?
Блокчейн может испытывать множество технических сбоев. Ошибки в этом списке не являются исчерпывающими:
- Ожидается, что возврат блоков будет консенсусом (сбой безопасности);
- Консенсус по недействительным блокам (сбой безопасности);
- Недоступность консенсуса по новым блокам (провал жизнеспособности);
- Цензура транзакций или блоков (потеря жизнеспособности);
- Блокировка недоступности (отказ в живучести).
Возврат блоков консенсуса (51% двойного расходования). Что это?
Реверсия блоков – это классическая «атака с двойным расходом 51%». Можно представить, что после ожидания более 6 (или 200) подтверждений подтвержденная транзакция становится неподтвержденной.
Обычно считается, что это результат атаки злоумышленника с большей частью хэшрейта, потому что единственный способ перевернуть блок при проверке работы – это представить более тяжелую цепь без этого блока.
Как блокчейн восстанавливается после этого?
В блокчейне с проверкой работы протокол заключается в том, что узлы всегда выбирают блокчейн с наибольшим количеством доказательств работы. Менее официальной стороной истории является то, что клиенты и даже полные узлы имеют контрольные точки.
Если будет возвращено большое количество блоков, то, возможно, ущерб будет достаточно велик, чтобы оправдать попытки восстановить историю транзакций оригинальной технологии блокчейна.
Если небольшое количество блоков будет возвращено, то, возможно, стоимость была не слишком высокой, и сеть не будет против реверсии.
Атака реверсии легко оправится, если сообщество, управляющее блокчейном, сможет прийти к согласию относительно того, какая цепочка возникла первой. И это легко смягчить с помощью не реверсивных правил. Атаки в 51% очень страшны, только если человек не может полагаться на уровень управления, чтобы обратить или смягчить ущерб.
Похоже, что было бы более эффективно восстановиться после атаки с возвратом, чем предотвратить ее, особенно в условиях с хорошо финансируемыми противниками и низкими затратами на управление.