Тогда я расширится мой мысленный эксперимент. Скажем, что сеть Bitcoin росла, и люди используют его для торговли 100.000.000 $ стоит товаров & валюты еженедельно.
1. Мощный противник тратит 50.000.000 $ 1.000.000 купить Bitcoins от MTGOX
2. Он строит свою альтернативную двойные - расходы на цепь неделя, в то время как в то же время, люди покупают 100.000.000 $ на сумму товаров & валюты с использованием Bitcoin
3. Через неделю, противник вводит свою цепь вилку, которая дважды проводит свои 1.000.000BTC в его адрес
4. По крайней мере, 100.000.000 $ стоимость валют & товары, которые были куплены через неделю потеряны
5. Это вызывает серьезные разрушения в мире Bitcoin, доверие людей в валюте серьезно подорвано.
6. ?? ??
7. PROFIT!
Так как же нам избежать этого?
Если даже я произвел этот сценарий, разумно думать, что мощные противники могут уже работать над ней.
Кроме того, еще один логический вывод мой в том, что все альт-валюта, как Litecoin бесполезны, потому что атака, как и выше может быть организована с легкостью использованием мало энергии хеширования.
Там нет ни одного шага 7. Эта атака неэкономические, а это означает, что злоумышленник должен быть готов сжечь много богатства, чтобы сделать атаку. Это само по себе сильно ограничивает категории потенциальных злоумышленников, но это не неразумно думать, что такой злоумышленник может показать некоторый день, поэтому он заслуживает внимания.
Чтобы противостоять этому, я предложил экспоненциальный сложности пандус для реорганизаций. На реорганизацию; до X блоков (6 может быть хорошим значением для X) обычно случается, с более длинной цепью выигрыша. X вне реорганизацию; блоков требует Y
(В-Х) больше трудностей в новой цепи, чем старая цепь, где B является количество блоков, которые будут выброшены. Y может быть довольно маленьким и по-прежнему дают хорошую безопасность, может быть 1,1 или 1,05. Так, например, при Х = 6 и Y = 1,05, реверсивные 100 блоков потребуются ~ 50 раз общей мощности сети, а не половина. И замена 144 блоков (1 день) потребуется ~ 400 раз мощность сети. Получатели крупных сделок будут в состоянии решить самостоятельно, как долго им нужно ждать, чтобы удовлетворить свои собственные требования к безопасности. Продажа миллиардов долларов виджета? Подождите неделю, а затем злоумышленнику потребуется 1 * 10
21 раз суммарная мощность сети хеширования, чтобы откопать его.
Я думаю, что если блок аннулирован, все транзакции в ней, которые не дважды провели вернуться в пул памяти и могут быть включены в следующем блоке. Даже если нет, клиент, который первоначально послал сделки до сих пор он и может ретранслировать его, он по-прежнему так же, как действует.
Да, но клиент ретранслировать его? Был такой сценарий уже опробовали?
Да, естественно, случается реорганизация; каждые несколько дней. Все операции из отброшенных блоков вернуться в пул памяти, и если они все еще действительны в новом контексте, они будут повторно передаются и в конечном итоге в новых блоках.
в) Будет ли оригинальная цепь быть удалена из базы данных каждого клиента мгновенно момент, когда уже действует цепь поставки, или есть какой-то другой механизм, на работе здесь?
См клиент держит вилы, однако это может измениться, когда обрезка входит в картину.
Итак, мой логический вывод о том, что обрезка
не могу быть реализованы, пока мы не решим эту проблему раз и навсегда.
ultraprune хранит откатить информацию именно по этой причине, несмотря на то, что на самом деле не делать каких-либо подрезать еще.
Сделки, которые в осиротевших блоках становятся недействительными, если их вклад был также использован в настоящий длинной цепи (скажем, ствол дерева). Довольно много сделок фактически уже быть в багажнике (если он не является реальным и противным атака). Те сделки, которые остаются в силе, но не являются уже в багажнике должны войти в неподтвержденный пул узла.
Неподтвержденный бассейн, скорее всего, в памяти для всех реализаций узлов поэтому остается вероятность того, что действительные, но неподтвержденные транзакции перестанут в каких-то (длинных) задержках из памяти сети.
Но когда они делают, то не будет никакого способа исправить беспорядок.
Ну, даже если остальная часть сети забывает, каждый узел просматривает свой собственный кошелек, время от времени, и любые сделки, которые они видят в своей локальной базе данных бумажника, но не в блоках, а не в памяти получить передаются повторно. Таким образом, до тех пор, как ваш кошелек еще жив, сделки все еще есть способ получить обратно в сеть. Весело, это вызывает проблемы сегодня, потому что, если вы понимаете, что сделка не собираются сделать это в блок в течение разумного периода времени, не существует простой способ, чтобы ваш кошелек от держать его в живых. Вы должны взломать базу данных бумажника, чтобы удалить эту транзакцию, так что сеть может забыть об этом, так что вы можете удвоить провести его с платной или любой другой.
Кроме того, есть способы, чтобы исправить это, но они не особенно приятно. Один специальный способ получить вещи права было бы проследить за вилку обратно к исходному дивергенции, а затем жёстко хэш первого блока в черный список. Это только поможет людям, что обновление до новой черного списка с поддержкой версии, но в основном все хотели бы сделать это обновление. Черный список может быть просто текстовый файл в DATADIR, управляемый пользователем каждого узла в отдельности; они имеют мощный стимул ничего другого, кроме очевидных атаки блоков в нем не ставится.
То, что я думаю, что на самом деле спасает нас от этого сценария является то, что хеширование емкость достаточной мощности для атаки в настоящее время не существует в мире,
в легко доступной форме. Там просто не хватает физических Radeon в мире, в форме покупается, для кого-то, чтобы собрать их легко и быстро, даже с огромным бюджетом. Лучше всего атакующим будет потратить около года, разрабатывающего СИС, но это окно атаки не будет оставаться открытой гораздо дольше.