How does a non-validating notary knows if a participant is allowed to consume a state?

Since non-validating notaries in Corda are not performing input/output state validation of a transaction, how does a notary service know that a transaction initiator is allowed to consume specific input states?

For instance, in this simple cash example:

State0{} -issueCashTX-> State1{owner:issuer, amount: 1000}
                        -transferTX-> State2{owner:issuer,   amount: 500}
                                      State3{owner:CompanyA, amount: 500}

Smart Contract Rules validate that transfer transactions are only valid, if input state is owner by the transaction initiator and sum of output amounts is equal to sum of input amounts.

[Q]: How the non-validating notary knows that consuming State1 is ok, since it has no idea about the validation rules?

1 answer

  • answered 2018-04-17 05:00 MohamedLEGH

    He doesn't knows that State1 is ok but He knows if the inputs have already been used in another transactions. Transactions send to the notary have been signed by all peers so the transactions must be valid or that's means that all peers in the transactions are cheating with each other.