Способ обнаружить, что кто-то манипулировал и смягчил состояние в одном из пиров, заключается в использовании и тщательном определении политики одобрения.
Например, предположим, что у вас есть две организации, и у каждой есть два партнера: OrgA, OrgB и peer1_orgA, peer2_orgA, peer1_orgB, peer2_orgB. Следовательно, вы можете определить политику одобрения, которая потребует одобрения всех 4 пиров. Далее, предположим, что peer1_orgA
скомпрометировано и состояние подделано.
Поскольку клиент должен выполнить политику одобрения, он отправит предложение о транзакции всем одноранговым узлам, одноранговые узлы будут имитировать транзакцию и возвращать RWSet на основе состояния и подписи на хешированном RWSet.
Теперь, поскольку состояние peer1_orgA
подделано, он вернет другой RWSet, и, следовательно, подпись будет отличаться, как следствие, клиент не сможет удовлетворить политику одобрения, более того, он сможет обнаружить, что результат peer1_orgA
имеет расходились.
Это позволяет предотвратить разветвление в состоянии, а также позаботится о недетерминированности, обеспечивающей целостность состояния.