-
Notifications
You must be signed in to change notification settings - Fork 0
Description
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:
- if you are packing the first transaction batch then you can pack up to 1202*32 bytes worth of data per batch
- if you are packing a middle transaction batch then you can pack up to 1202*32 - 32 bytes worth of data per batch
- 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.