Plater Network
  • Project Introduction
  • Plater Network Documentation
    • Disclaimer
    • Overview
    • Plater Information Flow System
    • Data Security and Encryption
    • Consensus Algorithms
    • Main features
    • Token Implementation
    • Nodes
    • Tokenomics
    • Roadmap
Powered by GitBook
On this page
  1. Plater Network Documentation

Data Security and Encryption

*This is sample solution to be tested*

Merkle Tree Hashing for Data Verification

A Merkle Tree provides efficient data integrity checks, requiring minimal computation to verify a data segment against a root hash. This allows for rapid verification while keeping data accessible.

function verifyCalldata(
    bytes32[] calldata proof,
    bytes32 root,
    bytes32 leaf
) internal pure returns (bool) {
    return processProofCalldata(proof, leaf) == root;
}

function processProofCalldata(
    bytes32[] calldata proof,
    bytes32 leaf
) internal pure returns (bytes32) {
    bytes32 computedHash = leaf;
    for (uint256 i = 0; i < proof.length; i++) {
        computedHash = _hashPair(computedHash, proof[i]);
    }
    return computedHash;
}

SHA3 Hashing for Security

The SHA3 cryptographic hash function generates a unique identifier for each transaction, ensuring data uniqueness and security. SHA3 produces a fixed-size output that’s highly sensitive to input changes—any alteration in the data drastically changes the hash, making tampering detectable.

Mathematical Basis: SHA3 produces a fixed-size output:

H(M)=SHA3(M)

For a message M. Minor changes in M create distinct hash outputs, maintaining the integrity of each transaction.

import sha3 from 'solidity-sha3';

// Example usage
sha3('a'); // Produces unique hash
sha3('0x0a'); // Another unique hash output
PreviousPlater Information Flow SystemNextConsensus Algorithms

Last updated 7 months ago