Риски двойной атаки
Возможно, вы не знаете, что биткойн - это не первый в истории проект цифровой монеты. Перед этим были разработаны другие идеи, для создания цифровой валюты, но все они потерпели неудачу из-за очень серьезной проблемы безопасности, которую разработчики не смогли решить. В случае с физическими деньгами, вы должны. Дать их торговцу, чтобы заплатить ему. Если владелец магазина не увидит купюры в руках, он не отпустит вас с купленным товаром. Как только вы дадите ему свои деньги, вы не сможете снова потратить их, так как у вас их просто нет. Хотя в физическом мире весь процесс оплаты очень прост, мы не можем сказать то же самое о цифровом. На самом деле, в теории сравнительно просто скопировать ваши цифровые деньги и потратить их дважды! Так называемая двойная атака расходов состоит именно в том, чтобы одновременно отправить один и тот же платеж двум получателям. Биткойн стал первой цифровой валютой, способной решить проблему двойных расходов. В этой статье мы объясним, как Bitcoin пытается противостоять атакам с двойными расходами.
Биткоин решает удвоить расходы атаки путем внедрения Блокчейна. С самого начала истории его сделок, каждая каждая транзакция была зарегистрирована и отмечена Bitcoin. Группа транзакций называется блоком, а все блоки, связанные друг с другом, образуют Blockchain (блок-цепочку).
Каждый узел в цепочке сохраняет память о всей цепочке, начиная с 2009 года и по этой причине, когда вы скачиваете официальный Bitcoin кошелек под названием Bitcoin Core, вы должны скачать более ста гигабайт Blockchain. Bitcoin также использует систему подтверждений, это означает, что при отправке платежа он должен быть подтвержден до получения получателем.
Как вы можете быть уверены, что каждая транзакция является законной? При совершении транзакции она включается в блок, закодированный с помощью системы хэширования. Хэш представляет собой последовательность символов, которая генерирует преобразование информации в одном блоке с использованием математической формулы. После создания хэша невозможно узнать, какова последовательность символов, которые его генерировали. Если изменяется только один символ в блоке, то изменится соответствующий хэш. Кроме того, каждый хэш вычисляется с использованием фрагмента блока прецедентов, поэтому каждый блок связан с прецедентом.
Если кто-то хочет изменить блок для создания поддельной транзакции, майнеры заметят, что хэш этого блока не будет соответствовать блоку прецедентов и вытащат фейковый блок из сети.
Возвращаясь к нашему двойному примеру, клиент отправляет свои деньги на адрес продавца. Платеж ожидает подтверждения. Затем он отправляет те же деньги на другой адрес и тот платеж также ждет подтверждения.
По той причине, что каждая транзакция имеет временную отметку, майнеры, ответственные за управление регистром, разрешат только первую транзакцию, которую они увидят, вытаскивая вторую из сети. В случае, если майнеры получают обе транзакции одновременно, они подтвердят только транзакцию с большим количеством подтверждений. Подтверждением является не что иное, как блок, добавленный к первому. Если блок успешно добавлен в ваш платежный блок, это означает, что он является законным, потому что каждый блок математически связан с предыдущим. Если продавец ожидает минимум шести подтверждений, он может быть уверен, что никто не сможет вычислить шесть хэшей и вмешаться в блок.
Случайные двойные атаки
-Если кто-то может владеть 51% вычислительной мощности сети, он мог бы эффективно создать поддельную блок-цепочку, которой бы все доверяли. Из-за затрат на оборудование и электричество это физически невозможно на данный момент.
- Теоретически, если клиент отправляет платеж продавцу и себе, он может получить шесть подтверждений перед торговцем. В этом случае, если продавец не дождался шести подтверждений, он не получит свой платеж.
- The Finney Attack: эта атака берет свое название от Гарольда Томаса Финни, программиста PGP и разработчика нескольких видеоигр. Он получил первую сделку у Сатоши Накамото.
Из списка рассылки Cyberpunks:
"Мне казалось, что это так очевидно; здесь мы сталкиваемся с проблемами потери конфиденциальности, массивных баз данных, большей централизацией - и Chaum предлагает совершенно другое направление для входа, которое наделяет властью отдельные лица, а не правительства и корпорации. Компьютер можно использовать как инструмент для освобождения и защиты людей, а не для их контроля".
The Finney Attack требует от злоумышленника быть майнером, который контролирует собственный блок транзакций. Также требуется владеть хэш-мощностью менее 50%. Злоумышленник отправляет платеж продавцу и себе, не транслируя транзакцию. Как только продавец принимает платеж, не дожидаясь подтверждения, транзакция транслируется злоумышленником, и платеж недействителен.
Таким образом, злоумышленник может уйти с предметом, который он купил, не потратив ни одного биткойна.