A перечисляет N коэнов B - транзакция.
У B теперь есть N коэнов - состояние счёта.
Последняя транзакция и её подтверждение всегда хранится
Если у большинства "соседей" текущее состояние счёта оканчивается транзакцией #123, а хацкерской ноды™ #122 - ну, у неё просто неактуальные данные и их не принимают в расчёт (в этом месте можно, например, вставить вмешательство какого-нибудь демона QoS, который решает на всякий случай продублировать данные ещё на одной-двух нодах, раз уж эта, судя по состоянию её данных, онлайн бывает эпизодически). Если #124 - все остальные "соседи" попросят им дослать недостающую транзакцию, чтобы актуализировать свои данные. Не дошлёт - значит, хакерская нода™ так и останется одна в уголочке со своим
При совершении же транзакции - получатель принимает решение: принять (т.е., подтвердить) транзакцию, или нет. Ок, допустим, злобный хацкер™ окружил себя хакерской нодой™ - но одной ноды мало, надо, чтобы все соседи отправителя подтвердили сначала первому получателю первую даблспендную транзакцию, а затем - и второму (и при этом ещё остаётся ненулевая вероятность, что транзакция - точнее, её подтверждение, посланное получателем, по пути до отправителя попадёт другим нехакерским нодам; а если получатель получает хоть одно сообщение: "зырь, чувак, у меня вот тут уже была транза с тем же номером, но другому, вот и подпись