mirror of
https://github.com/logos-messaging/go-zerokit-rln.git
synced 2026-01-08 08:03:09 +00:00
chore: set 20 as default depth
This commit is contained in:
parent
bbd57f45e2
commit
144ec288d9
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,119 +0,0 @@
|
||||
{
|
||||
"protocol": "groth16",
|
||||
"curve": "bn128",
|
||||
"nPublic": 6,
|
||||
"vk_alpha_1": [
|
||||
"1805378556360488226980822394597799963030511477964155500103132920745199284516",
|
||||
"11990395240534218699464972016456017378439762088320057798320175886595281336136",
|
||||
"1"
|
||||
],
|
||||
"vk_beta_2": [
|
||||
[
|
||||
"11031529986141021025408838211017932346992429731488270384177563837022796743627",
|
||||
"16042159910707312759082561183373181639420894978640710177581040523252926273854"
|
||||
],
|
||||
[
|
||||
"20112698439519222240302944148895052359035104222313380895334495118294612255131",
|
||||
"19441583024670359810872018179190533814486480928824742448673677460151702019379"
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"0"
|
||||
]
|
||||
],
|
||||
"vk_gamma_2": [
|
||||
[
|
||||
"10857046999023057135944570762232829481370756359578518086990519993285655852781",
|
||||
"11559732032986387107991004021392285783925812861821192530917403151452391805634"
|
||||
],
|
||||
[
|
||||
"8495653923123431417604973247489272438418190587263600148770280649306958101930",
|
||||
"4082367875863433681332203403145435568316851327593401208105741076214120093531"
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"0"
|
||||
]
|
||||
],
|
||||
"vk_delta_2": [
|
||||
[
|
||||
"1342791402398183550129987853701397066695422166542200371137242980909975744720",
|
||||
"19885954793721639146517398722913034453263197732511169431324269951156805454588"
|
||||
],
|
||||
[
|
||||
"16612518449808520746616592899100682320852224744311197908486719118388461103870",
|
||||
"13039435290897389787786546960964558630619663289413586834851804020863949546009"
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"0"
|
||||
]
|
||||
],
|
||||
"vk_alphabeta_12": [
|
||||
[
|
||||
[
|
||||
"5151991366823434428398919091000210787450832786814248297320989361921939794156",
|
||||
"15735191313289001022885148627913534790382722933676436876510746491415970766821"
|
||||
],
|
||||
[
|
||||
"3387907257437913904447588318761906430938415556102110876587455322225272831272",
|
||||
"1998779853452712881084781956683721603875246565720647583735935725110674288056"
|
||||
],
|
||||
[
|
||||
"14280074182991498185075387990446437410077692353432005297922275464876153151820",
|
||||
"17092408446352310039633488224969232803092763095456307462247653153107223117633"
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
"4359046709531668109201634396816565829237358165496082832279660960675584351266",
|
||||
"4511888308846208349307186938266411423935335853916317436093178288331845821336"
|
||||
],
|
||||
[
|
||||
"11429499807090785857812316277335883295048773373068683863667725283965356423273",
|
||||
"16232274853200678548795010078253506586114563833318973594428907292096178657392"
|
||||
],
|
||||
[
|
||||
"18068999605870933925311275504102553573815570223888590384919752303726860800970",
|
||||
"17309569111965782732372130116757295842160193489132771344011460471298173784984"
|
||||
]
|
||||
]
|
||||
],
|
||||
"IC": [
|
||||
[
|
||||
"15907620619058468322652190166474219459106695372760190199814463422116003944385",
|
||||
"15752765921940703867480319151728055971288798043197983667046402260506178676501",
|
||||
"1"
|
||||
],
|
||||
[
|
||||
"12004081423498474638814710157503496372594892372197913146719480190853290407272",
|
||||
"17759993271504587923309435837545182941635937261719294500288793819648071033469",
|
||||
"1"
|
||||
],
|
||||
[
|
||||
"878120019311612655450010384994897394984265086410869146105626241891073100410",
|
||||
"17631186298933191134732246976686754514124819009836710500647157641262968661294",
|
||||
"1"
|
||||
],
|
||||
[
|
||||
"14710016919630225372037989028011020715054625029990218653012745498368446893907",
|
||||
"2581293501049347486538806758240731445964309309490885835380825245889909387041",
|
||||
"1"
|
||||
],
|
||||
[
|
||||
"766327921864693063481261933507417084013182964450768912480746815296334678928",
|
||||
"18104222034822903557262264275808261481286672296559910954337205847153944954509",
|
||||
"1"
|
||||
],
|
||||
[
|
||||
"8877686447180479408315100041907552504213694351585462004774320248566787828012",
|
||||
"15836202093850379814510995758762098170932781831518064786308541653541698178373",
|
||||
"1"
|
||||
],
|
||||
[
|
||||
"19567388833538990982537236781224917793757180861915757860561618079730704818311",
|
||||
"3535132838196675082818592669173684593624477421910576112671761297886253127546",
|
||||
"1"
|
||||
]
|
||||
]
|
||||
}
|
||||
53
rln/rln.go
53
rln/rln.go
@ -7,7 +7,6 @@ import "C"
|
||||
import (
|
||||
"encoding/binary"
|
||||
"errors"
|
||||
"fmt"
|
||||
"unsafe"
|
||||
|
||||
"github.com/status-im/go-zerokit-rln/rln/resources"
|
||||
@ -19,29 +18,27 @@ type RLN struct {
|
||||
}
|
||||
|
||||
// NewRLN generates an instance of RLN. An instance supports both zkSNARKs logics
|
||||
// and Merkle tree data structure and operations. The parameter `depth` indicates the depth of Merkle tree
|
||||
// Only a depth of 15, 19 or 20 is allowed
|
||||
func NewRLN(depth int) (*RLN, error) {
|
||||
// and Merkle tree data structure and operations. It uses a depth of 20 by default
|
||||
func NewRLN() (*RLN, error) {
|
||||
|
||||
wasm, err := resources.Asset("tree_height_20/rln.wasm")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
zkey, err := resources.Asset("tree_height_20/rln_final.zkey")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
verifKey, err := resources.Asset("tree_height_20/verification_key.json")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
r := &RLN{}
|
||||
|
||||
if depth != 15 && depth != 19 && depth != 20 {
|
||||
return nil, errors.New("unsupported depth. Only 5, 19 and 20 are allowed")
|
||||
}
|
||||
|
||||
wasm, err := resources.Asset(fmt.Sprintf("tree_height_%d/rln.wasm", depth))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
zkey, err := resources.Asset(fmt.Sprintf("tree_height_%d/rln_final.zkey", depth))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
verifKey, err := resources.Asset(fmt.Sprintf("tree_height_%d/verification_key.json", depth))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
depth := 20
|
||||
|
||||
wasmBuffer := toCBufferPtr(wasm)
|
||||
zkeyBuffer := toCBufferPtr(zkey)
|
||||
@ -55,7 +52,7 @@ func NewRLN(depth int) (*RLN, error) {
|
||||
}
|
||||
|
||||
// NewRLNWithParams generates an instance of RLN. An instance supports both zkSNARKs logics
|
||||
// and Merkle tree data structure and operations. The parameter `depth`` indicates the depth of Merkle tree
|
||||
// and Merkle tree data structure and operations. The parameter `depth“ indicates the depth of Merkle tree
|
||||
func NewRLNWithParams(depth int, wasm []byte, zkey []byte, verifKey []byte) (*RLN, error) {
|
||||
r := &RLN{}
|
||||
|
||||
@ -72,7 +69,7 @@ func NewRLNWithParams(depth int, wasm []byte, zkey []byte, verifKey []byte) (*RL
|
||||
|
||||
// NewRLNWithFolder generates an instance of RLN. An instance supports both zkSNARKs logics
|
||||
// and Merkle tree data structure and operations. The parameter `deptk` indicates the depth of Merkle tree
|
||||
// The parameter ``
|
||||
// The parameter “
|
||||
func NewRLNWithFolder(depth int, resourcesFolderPath string) (*RLN, error) {
|
||||
r := &RLN{}
|
||||
|
||||
@ -288,8 +285,8 @@ func (r *RLN) AddAll(list []IDCommitment) error {
|
||||
}
|
||||
|
||||
// CalcMerkleRoot returns the root of the Merkle tree that is computed from the supplied list
|
||||
func CalcMerkleRoot(list []IDCommitment, depth int) (MerkleNode, error) {
|
||||
rln, err := NewRLN(depth)
|
||||
func CalcMerkleRoot(list []IDCommitment) (MerkleNode, error) {
|
||||
rln, err := NewRLN()
|
||||
if err != nil {
|
||||
return MerkleNode{}, err
|
||||
}
|
||||
@ -307,9 +304,9 @@ func CalcMerkleRoot(list []IDCommitment, depth int) (MerkleNode, error) {
|
||||
// CreateMembershipList produces a list of membership key pairs and also returns the root of a Merkle tree constructed
|
||||
// out of the identity commitment keys of the generated list. The output of this function is used to initialize a static
|
||||
// group keys (to test waku-rln-relay in the off-chain mode)
|
||||
func CreateMembershipList(n int, depth int) ([]MembershipKeyPair, MerkleNode, error) {
|
||||
func CreateMembershipList(n int) ([]MembershipKeyPair, MerkleNode, error) {
|
||||
// initialize a Merkle tree
|
||||
rln, err := NewRLN(depth)
|
||||
rln, err := NewRLN()
|
||||
if err != nil {
|
||||
return nil, MerkleNode{}, err
|
||||
}
|
||||
|
||||
@ -18,7 +18,7 @@ type RLNSuite struct {
|
||||
}
|
||||
|
||||
func (s *RLNSuite) TestMembershipKeyGen() {
|
||||
rln, err := NewRLN(20)
|
||||
rln, err := NewRLN()
|
||||
s.NoError(err)
|
||||
|
||||
key, err := rln.MembershipKeyGen()
|
||||
@ -32,7 +32,7 @@ func (s *RLNSuite) TestMembershipKeyGen() {
|
||||
}
|
||||
|
||||
func (s *RLNSuite) TestGetMerkleRoot() {
|
||||
rln, err := NewRLN(20)
|
||||
rln, err := NewRLN()
|
||||
s.NoError(err)
|
||||
|
||||
root1, err := rln.GetMerkleRoot()
|
||||
@ -47,7 +47,7 @@ func (s *RLNSuite) TestGetMerkleRoot() {
|
||||
}
|
||||
|
||||
func (s *RLNSuite) TestInsertMember() {
|
||||
rln, err := NewRLN(20)
|
||||
rln, err := NewRLN()
|
||||
s.NoError(err)
|
||||
|
||||
keypair, err := rln.MembershipKeyGen()
|
||||
@ -58,7 +58,7 @@ func (s *RLNSuite) TestInsertMember() {
|
||||
}
|
||||
|
||||
func (s *RLNSuite) TestRemoveMember() {
|
||||
rln, err := NewRLN(20)
|
||||
rln, err := NewRLN()
|
||||
s.NoError(err)
|
||||
|
||||
err = rln.DeleteMember(MembershipIndex(0))
|
||||
@ -66,7 +66,7 @@ func (s *RLNSuite) TestRemoveMember() {
|
||||
}
|
||||
|
||||
func (s *RLNSuite) TestMerkleTreeConsistenceBetweenDeletionAndInsertion() {
|
||||
rln, err := NewRLN(20)
|
||||
rln, err := NewRLN()
|
||||
s.NoError(err)
|
||||
|
||||
root1, err := rln.GetMerkleRoot()
|
||||
@ -103,7 +103,7 @@ func (s *RLNSuite) TestMerkleTreeConsistenceBetweenDeletionAndInsertion() {
|
||||
}
|
||||
|
||||
func (s *RLNSuite) TestHash() {
|
||||
rln, err := NewRLN(20)
|
||||
rln, err := NewRLN()
|
||||
s.NoError(err)
|
||||
|
||||
// prepare the input
|
||||
@ -117,7 +117,7 @@ func (s *RLNSuite) TestHash() {
|
||||
|
||||
func (s *RLNSuite) TestCreateListMembershipKeysAndCreateMerkleTreeFromList() {
|
||||
groupSize := 100
|
||||
list, root, err := CreateMembershipList(groupSize, 20)
|
||||
list, root, err := CreateMembershipList(groupSize)
|
||||
s.NoError(err)
|
||||
s.Len(list, groupSize)
|
||||
s.Len(root, HASH_HEX_SIZE) // check the size of the calculated tree root
|
||||
@ -137,7 +137,7 @@ func (s *RLNSuite) TestCheckCorrectness() {
|
||||
}
|
||||
|
||||
// calculate the Merkle tree root out of the extracted id commitments
|
||||
root, err := CalcMerkleRoot(groupIDCommitments, 20)
|
||||
root, err := CalcMerkleRoot(groupIDCommitments)
|
||||
s.NoError(err)
|
||||
|
||||
expectedRoot, _ := hex.DecodeString(STATIC_GROUP_MERKLE_ROOT)
|
||||
@ -147,7 +147,7 @@ func (s *RLNSuite) TestCheckCorrectness() {
|
||||
}
|
||||
|
||||
func (s *RLNSuite) TestValidProof() {
|
||||
rln, err := NewRLN(20)
|
||||
rln, err := NewRLN()
|
||||
s.NoError(err)
|
||||
|
||||
memKeys, err := rln.MembershipKeyGen()
|
||||
@ -189,7 +189,7 @@ func (s *RLNSuite) TestValidProof() {
|
||||
}
|
||||
|
||||
func (s *RLNSuite) TestInvalidProof() {
|
||||
rln, err := NewRLN(20)
|
||||
rln, err := NewRLN()
|
||||
s.NoError(err)
|
||||
|
||||
memKeys, err := rln.MembershipKeyGen()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user