Photo by Glenn Carstens-Peters on Unsplash

Add and Removing Data from ECC Accumulators

Prof Bill Buchanan OBE FRSE

--

An accumulator allows Bob to add values onto a fixed-length digest, and to provide proof of the values added, without revealing them within the accumulated value. In this case, we will use a basic ECC method to make commitments to data elements.

We will use a BL12 curve, and which has two cyclic groups of 𝔾1 and 𝔾2. Initially, we generate a key pair on the 𝔾1 group, and where the private key values will be used to add and delete data entities on the accumulator. Initially, we create a random secret key value (sk) and then a public key of:

The outline code is to add the hash of a message to the accumulator, and then remove it back to its original state [here]:

package mainimport (
"fmt"
"os"
"github.com/coinbase/kryptology/pkg/core/curves"
)
func main() { msg := "Hello"
argCount := len(os.Args[1:])
if argCount > 0 {
msg = os.Args[1]
}
curve := curves.BLS12381(&curves.PointBls12381G1{})
var seed [32]byte
sk := curve.Scalar.Hash(seed[:])
acc :=…

--

--

Prof Bill Buchanan OBE FRSE
Prof Bill Buchanan OBE FRSE

Written by Prof Bill Buchanan OBE FRSE

Professor of Cryptography. Serial innovator. Believer in fairness, justice & freedom. Based in Edinburgh. Old World Breaker. New World Creator. Building trust.

No responses yet