4.3.1. Transactions Pooling

Given a certain period of sliding window for ENF collection, each validator collects transactions from valid nodes. If a transaction stores reference that point to ENF proof, it is an ENF proof transaction. In the current block generation round, each node is required to send only one ENF proof transaction. After receiving the broadcasted transactions, each validator verifies buffered transactions according to predefined conditions:


The condition (i) prevents transactions from invalid nodes or any malicious modification, while conditions (ii) and (iii) are mainly for preventing duplicated ENF proof *tx* in current period time slot. After the verification process, only valid transactions are cached as local transaction pools denoted as *TX* = {*tx*1, *tx*2, ..., *txN*}, where *N* is the transactions pool size. The validator also uses condition (iii) to regularly check the local transaction pool and removes outdated transactions that have not been recorded in the latest confirmed block.
