Don't use this of course!
I'm playing with something to understand it better.
What follows are my notes on how they work. They're essentially all taken from this page, but with all typos fixed.
Using the bls12-381 curve(s) with the two cyclic groups
We will generate the keypair in
We use a dot for the group operation:
We use juxtaposition for scalar multiplication:
Generate a 32-byte secret key scalar
We initialise the accumulator with:
To add a 32-byte number
To add
To remove
The public key and accumulator value can be public without revealing the accumulated values.
To generate a witness that an element
To verify that a witness
where
We can prove this equation given
Taking:
We use the pairing rule
We can replace the public key with
And move over the
Now we combine the first two terms again:
Now, we recognize the definition of
Which is the identity element