{'fraction_non_alphanumeric': 0.03620178041543027, 'fraction_numerical': 0.011275964391691394, 'mean_word_length': 5.6117647058823525, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
PoRF: Proof-of-Reputation-based Consensus Scheme for Fair Transaction Ordering

Blockchain (BC)-driven applications ensure trust and transparency among multiple stakeholders through different consensus mechanisms. In consensus mechanisms, a dishonest node (or application), might collude with peer nodes, or miners, to prioritize its transactions over other node transactions, thereby reducing its latency and improving its quality-of-service (QoS). To address the above limitation, this paper proposes a consensus scheme, PoRF, based on a reputation-based consensus scheme that allows fair and random transaction selection. The scheme proposes that a sharded BC is considered, managed through shard managers (SM), to address latency and bandwidth issues. A reputation coefficient score is generated, and a reward-penalty setup is considered for nodes based on honest, or dishonest transaction proposals. Based on the reward-penalty outcome, the reputation score for nodes is modified. The scheme is compared with fixed transaction ordering scheme, Helix scheme, and practical byzantine fault tolerance (PBFT) consensus for transaction fairness, transaction time, and epochs required for consensus formations. The scheme outperforms the considered schemes for the considered parameters. For example, for 50% dishonest nodes, an improvement of 70 % is recorded against a fixed transaction scheme, and at 4000 nodes, the proposed scheme takes 130 milliseconds (ms) less for the execution of transactions. For consensus formation, at 250 nodes, PBFT takes 167 epochs for consensus, compared to 24 epochs in the proposed scheme, which indicates the scheme’s viability in real-world setups.