Это было отмечено выше, что SPV клиенты подвержены шахтеры сговоре раздувать валюту, в основном за счет создания блоков, блок заголовка является действительным и соответствует требуемому POW, но чьи coinbase включает в себя плату за несуществующие сделки. В частности, SPV клиентов не имеют возможностей не допустить 51% картель шахтеров из обмана их так как нет никаких доказательств мошенничества SPV клиент может быть дан, кроме всего блока самой цепи. В то же время существование любой сделки легко доказать, просто обеспечить Merkle ветви в пути от ТХ к корню Merkle в заголовке блока. Что нам нужно, чтобы распространить это доказательство существования для доказательства сборов, связанных с этой сделкой.
Давайте предположим, что мы имеем честный блок со следующими операциями и платежами:
Код:
ТХА - 0,0001
TxB - 0,001
TxC - 0,01
TXD - 0,1
Мы включаем сумму каждого суб-деревьев всего сборов в промежуточных узлах дерева Merkle. Таким образом, первый уровень хешей будет Н (0,0011 | Н (ТХ) | H (TxB)), Н (0,11 | Н (TXC) | H (TXD)), а второе, и последний, уровень Н (0,1111 | H (0,0011 | H (ТХ) | H (TxB)) | H (0,11 | H (TXC) | H (TXD)))
Теперь предположит, что выше блок был создан нечестным шахтером, и она включала мошенническую сделку с изрядной платой:
Код:
faketxA - 1,0
TxB - 0,001
TxC - 0,01
TXD - 0,1
Любой честный узел теперь может опубликовать мошенничество вызов, состоящий путь от faketxA в заголовке блока. Длина этого пути, и, таким образом, общее мошенничество уведомление, чешуйки на O (log2 (п)) Конечно, если само мошенничество вызов является поддельным могут быть тривиальным опровергнуты просто ответив с реальной сделкой. (За мошенничество несколько блоков глубоко, просто опубликовать первый поддельный вход TX)
Эти проблемы мошенничества могут быть размещены на самой сети P2P и вещания. Для защиты от атак DDoS они должны быть отложены немного так опровержения могут распространяться быстрее, чем уведомления. Точно так же узлы должны отслеживать, где пришли вызовы из, так опровержения могут быть направлены соответствующим образом. Кроме того ставок вызова может быть ограничен, если это требуется HashCash, и если HashCash использует тот же алгоритм, что добыча самого рассуждая о значении HashCash по сравнению с txfee на основе анти-DDoS проста: это то же самое, как добывающая прибыль будет создавать на равное количество хеширования.
Большое преимущество этого предложения в сценарии, где поднимает максимальный предел размера блока; Масштабируемость исследования, сравнивающие Bitcoin, скажем, Visa, подразумевают размеры блоков и объем транзакций настолько велико, что даже только стоимость поддержания полного набора txout станет непомерно высокой. В этом сценарии 51% картель шахтеров имеет шанс уйти с необнаружимый инфляция мошенничества. Если доказательства такого мошенничества можно дешево транслировать по сети, даже только один честных узлов валидирующих, который не имеет к моему, может противостоять атаке, вызывая SPV узлы просто отвергают мошеннические блоки, и, например, отказаться от принимать транзакции в этих блоках в обмен на не-Bitcoin товаров и декретных валюты. Это уберет стимул к атаке, в результате чего нападавшего с хорошо известной способностью запускать двойные атаки проводить с оба обнаруживаются и может быть дешево доказаны.
Точно так же даже без измененных проблем мошенничества алгоритма хеширования может защитить клиент SPV от крупных шахтеров создания цепочки блоков с полностью мошенническими сделками, которые не существуют, но достаточно глубоко в (мошеннической) цепи выглядеть подтверждено. Обратите внимание, что вам не нужно 51% голосов, чтобы сделать это; большинство гарантирует атаки, но имея, скажем, 25% просто делает его вероятностный поэтому вам придется подождать некоторое время, чтобы получить повезло и производить достаточное количество блоков в ряд, чтобы выманить SPV узлы доверчивых некоторое заданное число подтверждений. С мошенничеством вызовов каждый может дешево предупредить те узлы, что блоки являются мошенническими просто опубликовав Merkle путь вызова поддельного ввода транзакции.
EDIT: gmaxwell указал этот соответствующий разговор на список адресов электронной почты: http://sourceforge.net/mailarchive/message.php?msg_id=29450793