Skip to content

Proposer: receive transaction and build shreds #3

@lijunwangs

Description

@lijunwangs

Problem

This tasks cover proposer component to receive transaction and build shreds to be ready to be broadcast to the relayers.

Proposed Solution

To ensure the hiding property, each transaction batch will be encrypted. The first n-1 transaction batches will be encrypted using 256 bit symmetric AES-GCM encryption. Each of the first n-1 transaction batches will generate a new encryption key ussing sym.keygen() and this key will be included at the start of the next transaction batch (before the next transaction batch is encrypted). The final transaction batch for each proposer in each block will be threshold encrypted. For the threshold encryption scheme the cyphertext is padded by a fixed 12 BLS-12-381 group elements worth of bytes relative to the plaintext.

So:

  1. if you are packing the first transaction batch then you can pack up to 1202*32 bytes worth of data per batch
  2. if you are packing a middle transaction batch then you can pack up to 1202*32 - 32 bytes worth of data per batch
  3. if you are packing the last transaction batch then you can pack up to 120232 -32 - 485 bytes worth of data per batch

as a special case if you only have the one transaction batch for your proposal then you can pack 120232 - 485 bytes worth of data in that batch.

each BLS-12-381 group element takes up 48 bytes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions