chore: set 20 as default depth

This commit is contained in:
Richard Ramos 2022-10-04 18:44:07 -04:00
parent bbd57f45e2
commit 144ec288d9
No known key found for this signature in database
GPG Key ID: BD36D48BC9FFC88C
8 changed files with 60 additions and 278 deletions

File diff suppressed because one or more lines are too long

View File

@ -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"
]
]
}

View File

@ -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
}

View File

@ -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()