
In Figure 6, user A attempts to publish alternate blocks A2 and A3. Since user B3 has already wit-nessed blocks A2, A2 would be rejected by all participants. Furthermore, A can be flagged as a malicious or compromised user for presenting two different solutions for A1
I fail to see how this can work; the concept of 'already' is totally subjective due to latency. It is just as likely that the situation presented in that figure will shortly be resolved in favour of A2 and A3 as other users see that branch 'first' before B3.
You need an objective way to sort this out.