Представьте себе 51% атаки против Bitcoin, что была начата в тайне, чтобы создать большую альтернативную цепочку, просто меняются местами очень большое количество блоков, и настойчиво предотвращены любые сделки от подтверждения. Цепь будет опубликована сразу как сюрприз и будет распространяться по сети быстрее, чем любой червь.
Даже если многие из нас могли бы справиться с этим, новость будет сказать "Bitcoin Hacked", Который был бы конец Bitcoin, как мы знаем, по крайней мере, на некоторое время, пока все мы не рассеяны вокруг и понял, что с этим делать.
Проблема с 51% атаками решенных таким образом, является его влиянием будет внезапно и мгновенно. Ремонт будет несколько дней, в то время как разработчики выяснить, что делать, и еще несколько в то время как ошибки исправляются, и много больше времени, в то время как люди скачать его, восстановить свои блочные цепи, портировать патч своих индивидуальных клиентов, чтобы вернуться в бизнес ... Между тем, мы бы много гневных шахтеров, чьи горные работы на поддельной цепи получил вспять, и т.д. ...
Я хотел бы предложить пару простых вещей, которые в настоящее время в связи с контрольными точками, так что решение известно и бедствием предотвратимого всего пути заранее.
В общем, что я предлагаю, что а) доверенные лица ставить подписанные контрольно-пропускные пункты в блоке цепи - которые являются не более чем утверждения, что "Я видел блок с хэш-х"И б), что клиент имеет какое-то список доверенных открытых ключей (модифицируемых пользователями мощности, но в противном случае предварительно высевал авторы клиента), так что доверенные лица могут быть признаны, но и удалены, если это необходимо.
Подписи будут появляться периодически в блоках, которые были бы часть реальных или фиктивных сделок. MtGox, например, иногда может инициировать транзакцию к себе (или встроить в одном из своих выплат сделок) подпись ссылки на хэш предыдущего блока, просто сказать, "я видел это", MtGox не нужно подписывать каждый блок - поскольку каждая подпись подтверждает все блоки перед ним, будут и другие подписанты участников, а схема в основном ориентированы на нападения на 6+ блоков, подписей можно было бы сделать три или десять или любое другое разумное количество блоков друг от друга.
Майнинг будет делать то же самое, за исключением, вероятно, использовать транзакцию coinbase в качестве места для своей подписи.
Очень просто - если я как клиент имеет блок X, который я знаю, был замечен MtGox, TradeHill и дюжину майнинг и доверенные стороны ... Я могу быстро и уверенно отвергнуть блок Y, который претендует заменить блок X с выше доказательство работы.
Для реализации этого предложения, все, что нужно будет случиться:
- клиент получает мини-базу данных для отслеживания надежных открытых ключей, возможно, хранится в wallet.dat, но предварительно высевали из закодированных значений в клиенте
- клиент получает вызов RPC, чтобы изменить эту базу данных для опытных пользователей
- значение "стандартная сделка" внесены изменения, чтобы включить один, который упаковывает сигнатуру OP_DROPped так, что доверенные стороны могут рассчитывать на их печатях утверждения ретранслируется
- логика для обработки цепи более реорганизации; 3 блоков глубоко пересмотрена таким образом, что блоки, известные было замечено большинством доверенной толпы непроницаемы, чтобы быть вытеснены блоками, которые не имеют.
Подавляющее большинство пользователей клиентов будет использовать по умолчанию списка доверенных открытых ключей и вряд ли его изменить, таким образом, бремя было бы на авторах клиентов соответствующим образом судить, кто принадлежит быть в списке. Идея позволяет автор клиента для обновления списка удалена не может быть и речь - это предложение, вероятно, не подходит для ссылочного клиента - но вполне правдоподобным для меньшего времени клиентов, пользователи могли бы просто отказаться от использования, если авторы были до махинации.