Assessment reports>Session Token>Threat Model>Function: pairing()

Function: pairing()

The pairing function is a wrapper to the precompile contract, computing the ate pairing operation over alt_bn128 curves as defined in EIP-197. The pairing operation is used to verify the BLS signatures.

Inputs

  • p1

    • Validation: If the points coordinates are bigger than or equal to , the pairing operation fails and the contract reverts.

    • Impact: Points in representing the generator and the aggregate public key.

  • p2

    • Validation: If the points coordinates are bigger than or equal to , the pairing operation fails and the contract reverts.

    • Impact: Points in representing the signature and the message hash.

Branches and code coverage (including function calls)

Intended branches

Negative behavior

Function call analysis

  • call(sub(gas(), 2000), 8, 0, add(input, 0x20), mul(inputSize, 0x20), out, 0x20)

    • External/Internal? External.

    • Argument control: input and sizes are controlled.

    • Impact: Paring check for the signature verification.

Zellic © 2024Back to top ↑