Возможные уязвимости блокчейна
Несмотря на непревзойденную криптографическую защиту, на любой из блокчейнов могут быть проведены атаки нескольких видов, поэтому необходимо рассказать о способах защиты от таких нападений.
Наиболее известный способ атаки на блокчейны криптовалют – так называемая «двойная трата» (double spending), то есть возможность потратить одни и те же монеты дважды. Для этого злоумышленнику необходимо отправить крупную сумму в качестве «правильного» платежа, а затем совершить аналогичную транзакцию на собственный адрес и добиться ее включения в блокчейн. В результате, если будет подтверждена вторая транзакция, получатель платежа увидит, что его транзакция исчезла, а реально совершена другая на неизвестный ему адрес. Такая атака может быть успешна в двух случаях:
1. Злоумышленник отправил вторую транзакцию до подтверждения первой, а получатель не дождался подтверждения в блокчейне. Это частный случай, основанный на неизбежной дискретности изменения состояний блокчейна – например, для Bitcoin среднее время между блоками составляет 10 минут. Все добросовестные операторы криптовалютных платежей просят своих клиентов дождаться хотя бы одного подтверждения транзакции. Такая атака не затрагивает работу других пользователей.
2. Злоумышленник обладает более чем половиной мощности хеширования в конкретном блокчейне и способен перезаписать цепочку из нескольких последних блоков, добытых им самим. В таком случае исчезнут все транзакции в замененных блоках, а вместо них появятся только те, что были подтверждены в блоках злоумышленника. Этот вид атаки называется «атака 51 %» и опасен для всех пользователей блокчейна. Атака 51 % может быть применена только в малоизвестных блокчейнах, так как популярные блокчейны, подобные Bitcoin или Ethereum, достаточно хорошо защищены мощностями добросовестных майнеров.
Для предотвращения этого вида атак все поступающие в кошелек транзакции проходят проверку на возможность двойного расходования, и, если такая попытка зафиксирована, кошелек отвергает все транзакции, кроме первой. Но атаке 51 % может воспрепятствовать только увеличение мощностей добросовестных майнеров.
Также попытка двойной траты может быть произведена путем проведения противоречивых транзакций на географически удаленных узлах блокчейна, однако она возможна только в случае достаточно длительной изоляции сегментов распределенной сети друг от друга, например, в случае аварии на международных магистральных каналах связи или в результате действий сетевых экранов государственного уровня, подобных китайскому «Золотому щиту».
В подавляющем большинстве ситуаций существующая система защиты блокчейнов, основанная на распределенном майнинге, успешно справляется с угрозами – за все время существования криптовалют не произошло ни одной успешной атаки 51 % на популярные блокчейны. Однако во всех случаях двойная трата может быть проведена только со своими монетами – ни при каких обстоятельствах она не может дать доступа к чужим кошелькам.