# Check transactions TZIP

**URL:** https://forum.tezosagora.org/t/check-transactions-tzip/2582
**Category:** TZIP
**Created:** [January 5, 2021, 2:20pm UTC](https://forum.tezosagora.org/t/check-transactions-tzip/2582 "2021-01-05T14:20:48Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![prometheansacrifice](https://forum.tezosagora.org/letter_avatar_proxy/v4/letter/p/bb73d2/32.png) [@prometheansacrifice](https://forum.tezosagora.org/u/prometheansacrifice)
#### Post date: [January 5, 2021, 2:20pm UTC](https://forum.tezosagora.org/t/check-transactions-tzip/2582/1 "2021-01-05T14:20:48Z")

</div>

Request for Comments for the [A New Check Transactions Opcode](https://gitlab.com/tzip/tzip/-/merge_requests/120) TZIP.

---

<div class="post-metadata">

### Author: ![tom](https://forum.tezosagora.org/letter_avatar_proxy/v4/letter/t/3d9bf3/32.png) [@tom](https://forum.tezosagora.org/u/tom)
#### Post date: [February 1, 2021, 5:41am UTC](https://forum.tezosagora.org/t/check-transactions-tzip/2582/2 "2021-02-01T05:41:39Z")

</div>

The Michelson details in the TZIP seem to be incorrect.

```auto
IS_TX_INCLUDED :: key : nat : 'S -> bool : 'S 

```

and

```auto
IS_TX_INCLUDED int 5;

```

should read:

```auto
IS_TX_INCLUDED :: operation_hash : 'S -> bool : 'S

```

and

```auto
IS_TX_INCLUDED;

```

based on the draft MR?

* * *

An interesting side effect of this, I think, is that it will enable smart contracts to verify a “proof” of the block hash which is the branch of the operation, providing a workaround for the absence of BLOCK\_HASH. This in turn enables proofs of the context hash, and so also any data in the context.

---

<div class="post-metadata">

### Author: ![prometheansacrifice](https://forum.tezosagora.org/letter_avatar_proxy/v4/letter/p/bb73d2/32.png) [@prometheansacrifice](https://forum.tezosagora.org/u/prometheansacrifice)
#### Post date: [February 4, 2021, 3:31pm UTC](https://forum.tezosagora.org/t/check-transactions-tzip/2582/3 "2021-02-04T15:31:58Z")

</div>

Thank you @tom for the feedback.

Indeed, the TZIP needed the update as per the implementation. Just made the changes.

---

<div class="post-metadata">

### Author: ![keefertaylor](https://forum.tezosagora.org/user_avatar/forum.tezosagora.org/keefertaylor/32/486_2.png) [@keefertaylor](https://forum.tezosagora.org/u/keefertaylor)
#### Post date: [December 14, 2021, 6:44pm UTC](https://forum.tezosagora.org/t/check-transactions-tzip/2582/4 "2021-12-14T18:44:53Z")

</div>

This instruction would be really useful for [Flashbake](https://forum.tezosagora.org/t/announcing-flashbake-an-initiative-to-tackle-bpev-on-tezos/4006/2).

Flashbake currently registers bakers on chain, and users trust that bakers are honest. If we had a way to prove a transaction was (or wasn’t included) then:

- Flashbake could require bakers to lock a security deposit when registering in the registry smart contract
- Flashbake could be modified to have bakers provide proof of receipt of transaction hash when a tx is submitted to them
- A new entrypoint on the registry could be implemented: `slash(operationHash, proofOfReceipt)`. It would penalize a baker for providing a proof of receipt but not including the transaction.

There are probably some edge cases to think about around this system (particularly, network latency or uncle blocks) but having this instruction would enable us to make flashbake a lot more trustless.
