亲,你好。感谢你的提问。
这个问题,我们首先明白一个前提,那就是 交易是客户端发起的,发起的时候是不知道其他交易存在的,是不知道自己会被包含在哪个块里的,也不知道自己会被排在在区块的第几个交易。
如果明白了这个前提,问题就很好理解了。
交易2在读k1的时候,他读到的k1的值是v1,然后他可能会基于得到v1,做些逻辑。
但是在区块校验这里,当校验到他的时候,他认为的前提已经不存在了,k1的值已经变成了v1’了,因此交易2就是无效的。判断的时候我们根本就不用看其他的。只要Read的前提变了,交易肯定是无效的!
祝你学习愉快!