commit阶段peer节点作恶的问题
来源:4-1 共识机制介绍

慕娘6931346
2018-11-08
你好,请问在commit阶段,假如有一个peer作恶,把区块里一个原本无效的交易标识位有效交易,并写入ledger和修改world state,此时系统会有什么问题?
写回答
1回答
-
自游蜗牛
2018-11-10
亲,你好。
这个问题从三个维度来看,第一个维度是操作类型,分别是query,invoke。另一个维度是节点类型,分别是背书节点、一般记账节点。最后一个维度是背书策略。
没有表格,凑合看:
query背书节点&记账节点: 如果仅仅是读账本而不做其他操作,那么作恶是发现不了的。但是是对系统没有什么影响的,一般query的结果只是给人看,比如在UI上。如果操作员在基于UI的错误显示想做下一笔交易的时候,他必定是将交易发送(invoke)给背书节点。
invoke背书节点,如果当前背书节点是作恶节点,那么我们假定他模拟出来的结果是错误的。我们假设他是只是修改了状态里的value,而没有对读集的version产生什么影响,那么在提交的时候他必定是可以通过读写集校验的,这样就相当于他作恶成功了。但是呢,这里有个前提,那就是背书策略。
如果这笔交易要求的背书策略就只需要作恶的这个节点一个背书就可以了,那么作恶是可以成功的。但是如果要求至少2个背书,而另一个节点是忠诚的,那必定这笔交易无效的,也是不会对系统造成影响的。
这只是我们对这三个维度的推测,现在我们返回来对你的问题做个解读,如果他想修改无效交易为有效交易,肯定是需要修改保存在区块头里的交易校验码,但是只要一修改,区块哈希是否就改变了,就跟其他节点不一致了,所以也是不可能成功的。
祝你学习愉快!
20
相似问题