# Internet of Things and Blockchain Integration: Security, Privacy, Technical, and Design Challenges
## 3 RQ 1 and RQ 2--Current Challenges and Recommendations to Enhance BIoT Integration
### Computational Processing
#### 3.5.3 Throughput  
Throughput refers to the maximum processed number of transactions in a given amount of time. The throughput is calculated by dividing the number of transactions per second by the number of concurrent workloads and IoT nodes. IoT gadgets create terabytes of data in real time, but BC is not intended to store that much data [11]. Only a few transactions per second are processed by some BCs such as Bitcoin. This is undeniably a constraint for BiIoT systems. Implementing consortium's or private BCs may help in this case [11]. Quick synchronization of new Blocks across BC nodes necessitates more bandwidth, which can enhance BC throughput. As a result, increasing BC throughput due to numerous transactions in IoT systems is a difficulty [58]. The BC implementation architecture, on the other hand, needs the execution of a huge number of transactions each minute. This makes BiIoT integration challenging in either way. Although Bitcoin is one of the most popular platforms, it is also one of the least scalable, due to the PoW algorithm and blocks size limitations, which result in a low transaction rate [25]. While Ethereum's smart contracts, which allow for the execution of sophisticated logic, enable a wide range of transaction types and block sizes, transaction validation still takes a long time [93]. Public permissioned systems can manage significantly greater transaction rates; HLF can handle 100,000 transactions per second [36]. In terms of transaction rates, private BCs offer no benefit over public permissioned BCs. Multichain, on the other hand, has the benefit of being Bitcoin-compatible [62; 107]. As a result, appropriate schemes must be carefully devised to enhance the throughput of BC systems while keeping sufficient security to handle billions of IoT devices and sustain a large number of real-world transactions. Many ways to enhance the throughput of BC systems have now been proposed [26; 28; 93; 170; 171]. * Segregated witness, commonly known as SegWit, is where digital signatures are separated from the rest of the transactions and moved to the end of the block. As a result, transaction sizes are smaller, and one block may carry more transactions. * Off-chain transactions: Here, if nodes make several transactions, off-chain micropayment channels are formed between them to carry out serval transactions off the chain rapidly, and BC only processes the final payment transaction. * Sharding is a useful method for enhancing the horizontal scalability of BC systems. Nodes are partitioned into shards using BC sharding. Only a tiny percentage of all transactions are processed by each shard. Transactions are handled in parallel in this manner. Two examples of sharding BC systems are Elastico and OmniLedger. * Reduced block interval time: Block generation in BC systems consists of two processes: transaction serialization and leader selection. The selection of one or more leader nodes is the responsibility of the leader election. Transaction serialization refers to the validation of transactions and the generation of new blocks by the chosen leader nodes. Leader nodes are picked at a low pace to reduce collisions during leader elections. Every 10 min, for example, the Bitcoin BC leader node is chosen. Each leader election in a typical BC system can only create one new block. Transaction validation and block creation are delayed due to the connection of leader election and transaction serialization. Rapid transaction serialization and slow leader selection need to be separated to minimize block interval time and enhance throughput. Many alternatives, including ByzCoin, Bitcoin-NG, and Solida, have incorporated the concept. * Systems based on TDAG: TDAG is the next step of BC's development. In a TDAG-based system, transactions are immediately added to a graph, creating a graph of transactions. IOTA is an example of a TDAG system. IOTA's underlying technology is Tangle. When a new transaction is added to the IOTA Tangle, it selects between two prior transactions to approve.