hyperledger / aries-cloudagent-python

Hyperledger Aries Cloud Agent Python (ACA-Py) is a foundation for building decentralized identity applications and services running in non-mobile environments.
https://wiki.hyperledger.org/display/aries
Apache License 2.0
403 stars 509 forks source link

Can I Force Wallet to Construct Proof from a Single Credential? #1328

Closed Marco77577 closed 3 years ago

Marco77577 commented 3 years ago

The Trinsic wallet allows to construct proofs from attributes of multiple credentials.

For example, if I have two credentials for parking, one from yesterday, valid 10 hours, and one from today, valid 2 hours, I could construct a proof containing today's date (attribute from the second credential), but being valid 10 hours (attribute from first credential). Of course, this is not how it's supposed to work.

Is there a way around this? I.e., can I somehow specify in the proof request, that I want all attributes coming from a single credential?

esune commented 3 years ago

@Marco77577 when you generate the proof-request you would group the names of the attributes that must come from the same credential together using the names array, rather than the name property. Example:

{
    "name": "my-proof",
    "version": "1.5.2",
    "nonce": "874536814361966593483673",
    "requested_attributes": {
        "b20ebf57-9cb4-4c8b-b6e8-927e1ebe7eb5": {
            "names": ["parking date", "parking validity"],
            "restrictions": [
             {
                "schema_name": "parking permit",
                "schema_version": "0.0.1",
                "issuer_did": "my-did-here"
            }]
        }
    },
    "requested_predicates": {},
    "non_revoked": {
        "from": 0,
        "to": 1626968468
    }
}

This is standard Indy behaviour, I believe.

Marco77577 commented 3 years ago

Indeed, this works like a charm. Thank you very much.

Are all possible arguments to the REST API documented somewhere? I could not find the option to do it this way anywhere.

esune commented 3 years ago

I think the documentation on this end is a bit lacking - to my knowledge. I'll have to refer you to @swcurran about this.

ianco commented 3 years ago

The documentation about the Indy proof request will be in the indy-sdk repository somewhere (https://github.com/hyperledger/indy-sdk)

esune commented 3 years ago

Thanks @ianco

I am going to close the issue since it should now be resolved, please feel free to reopen if deemed appropriate.

swcurran commented 3 years ago

I think the request is for documentation about the ACA-Py Admin API itself. The best is the OpenAPI file that is generated from ACA-Py. That said, some of the arguments to the Admin API calls are data structures from other components (like Indy AnonCreds) and for those, you have to look at those projects for the documentation.

Anyway -- hopefully you found what you need.

Marco77577 commented 3 years ago

I found it with your help, thank you.

However, the Swagger interface just lists an "example" JSON body. This example body does not show all options that can be set. It is somewhat difficult to look for all the options, if you don't even know if they are (already) present.

Fethbita commented 3 years ago

@esune How would we go about the requested_predicates if we want to achieve the same thing? If I use the names array for requested_attributes, and I also request predicates, I can still submit different credentials. However I don't know if this is why, but the submitted proof does not verify. If I choose the same credential, it verifies successfully. If the names attribute is used, does Indy implicitly force the predicates to be from the same credential?

esune commented 3 years ago

@Fethbita can you provide an example of what you are doing? I am not sure I follow your thought process, sorry.

swcurran commented 3 years ago

I think the question is -- how can I have multiple predicates and be assured that they are from the same credential. Likewise, how can I have a combination of names and predicates and be assured that the combination are all from the same credential?

AFAIK, those capabilities are not supported. The "names" concept was a relatively late addition, and I don't think it was extended to the predicates, or to a combination of predicates and names.

FYI -- if you ever want to see a whole set of proof requests in Indy, you can look at the test cases in the indy-sdk, here:

https://github.com/hyperledger/indy-sdk/blob/master/libindy/tests/anoncreds.rs

Not quite the same as definitive documentation, but useful in the absence of that.

Fethbita commented 3 years ago

Yes, Stephen is actually correct, but as far as I can understand there is an issue or a bug. So to give an example:

If I am using a credential with 3 fields, 2 fields to be used as an attribute and 1 field as a predicate, and issue these two to the prover:

{
   "auto_issue":false,
   "auto_remove":false,
   "comment":"Test credential offer to d566c6a1-6022-4a4b-b496-7fc02c02c9c8 using credential definition {cred_def_id}",
   "connection_id":"d566c6a1-6022-4a4b-b496-7fc02c02c9c8",
   "cred_def_id":"WTfNo59jrsv6iDtj4D1TPx:3:CL:341:tag1",
   "credential_preview":{
      "@type":"issue-credential/1.0/credential-preview",
      "attributes":[
         {
            "mime-type":"text/plain",
            "name":"field1",
            "value":"aaaaa"
         },
         {
            "mime-type":"text/plain",
            "name":"pred_field",
            "value":"10"
         },
         {
            "mime-type":"text/plain",
            "name":"field2",
            "value":"aaaaa"
         }
      ]
   },
   "trace":true
}
{
  "auto_issue":false,
  "auto_remove":false,
  "comment":"Test credential offer to d566c6a1-6022-4a4b-b496-7fc02c02c9c8 using credential definition {cred_def_id}",
  "connection_id":"d566c6a1-6022-4a4b-b496-7fc02c02c9c8",
  "cred_def_id":"WTfNo59jrsv6iDtj4D1TPx:3:CL:341:tag1",
  "credential_preview":{
    "@type":"issue-credential/1.0/credential-preview",
    "attributes":[
      {
        "mime-type":"text/plain",
        "name":"field1",
        "value":"bbbbb"
      },
      {
        "mime-type":"text/plain",
        "name":"pred_field",
        "value":"0"
      },
      {
        "mime-type":"text/plain",
        "name":"field2",
        "value":"bbbbb"
      }
    ]
  },
  "trace":true
}

And ask for a proof requesting field1, field2 and pred_field>5 from verifier:

{
    "created_at": "2021-09-01 09:14:00.008459Z",
    "presentation_request": {
        "nonce": "1203901722347608332881546",
        "name": "Proof Request",
        "version": "1.0",
        "requested_attributes": {
            "0907f12c-ffef-4940-8475-8db9714e4483": {
                "restrictions": [
                    {
                        "cred_def_id": "WTfNo59jrsv6iDtj4D1TPx:3:CL:341:tag1"
                    }
                ],
                "names": [
                    "field2",
                    "field1"
                ]
            }
        },
        "requested_predicates": {
            "835d319a-3ebd-4ea4-bcdb-2ba390804a1e": {
                "p_value": 5,
                "name": "pred_field",
                "restrictions": [
                    {
                        "cred_def_id": "WTfNo59jrsv6iDtj4D1TPx:3:CL:341:tag1"
                    }
                ],
                "p_type": ">"
            }
        },
        "non_revoked": {
            "to": 1630487639
        }
    },
    "auto_present": false,
    "thread_id": "a18a295f-f6f5-4b7b-9560-84caf6955d63",
    "initiator": "self",
    "state": "request_sent",
    "connection_id": "d566c6a1-6022-4a4b-b496-7fc02c02c9c8",
    "trace": true,
    "role": "verifier",
    "presentation_exchange_id": "8b8bdfd5-15fd-4d28-96e1-7c2a3b65576a",
    "presentation_request_dict": {
        "@type": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/present-proof/1.0/request-presentation",
        "@id": "a18a295f-f6f5-4b7b-9560-84caf6955d63",
        "~trace": {
            "target": "log",
            "full_thread": true,
            "trace_reports": []
        },
        "comment": "",
        "request_presentations~attach": [
            {
                "@id": "libindy-request-presentation-0",
                "mime-type": "application/json",
                "data": {
                    "base64": "eyJuYW1lIjogIlByb29mIFJlcXVlc3QiLCAibm9uX3Jldm9rZWQiOiB7InRvIjogMTYzMDQ4NzYzOX0sICJyZXF1ZXN0ZWRfYXR0cmlidXRlcyI6IHsiMDkwN2YxMmMtZmZlZi00OTQwLTg0NzUtOGRiOTcxNGU0NDgzIjogeyJuYW1lcyI6IFsiZmllbGQyIiwgImZpZWxkMSJdLCAicmVzdHJpY3Rpb25zIjogW3siY3JlZF9kZWZfaWQiOiAiV1RmTm81OWpyc3Y2aUR0ajREMVRQeDozOkNMOjM0MTp0YWcxIn1dfX0sICJyZXF1ZXN0ZWRfcHJlZGljYXRlcyI6IHsiODM1ZDMxOWEtM2ViZC00ZWE0LWJjZGItMmJhMzkwODA0YTFlIjogeyJuYW1lIjogInByZWRfZmllbGQiLCAicF90eXBlIjogIj4iLCAicF92YWx1ZSI6IDUsICJyZXN0cmljdGlvbnMiOiBbeyJjcmVkX2RlZl9pZCI6ICJXVGZObzU5anJzdjZpRHRqNEQxVFB4OjM6Q0w6MzQxOnRhZzEifV19fSwgInZlcnNpb24iOiAiMS4wIiwgIm5vbmNlIjogIjEyMDM5MDE3MjIzNDc2MDgzMzI4ODE1NDYifQ=="
                }
            }
        ]
    },
    "updated_at": "2021-09-01 09:14:00.008459Z"
}

When the prover sends fields with "bbbbb" and the only predicate (with value of 10) that it can prove:

{
  "requested_attributes":{
    "cbe9de98-eaa7-452a-a062-a0af172061fd":{
      "cred_id":"52abc93d-ec45-4941-b4fc-4b781c44e96e", // this is fields with "bbbbb"
      "revealed":true
    }
  },
  "requested_predicates":{
    "89470a0f-ee49-40be-9521-a3793b2cf51a":{
      "cred_id":"5e3760b3-114e-4c23-8e0b-b98f479ae044" // this is predicate with value 10
    }
  },
  "self_attested_attributes":{

  },
  "trace":true
}

And the verifier tries to verify the presentation, the verification fails.

{ "created_at": "2021-09-01 09:25:42.190847Z", "presentation_request": { "nonce": "838448410288562570561561", "name": "Proof Request", "version": "1.0", "requested_attributes": { "cbe9de98-eaa7-452a-a062-a0af172061fd": { "restrictions": [ { "cred_def_id": "WTfNo59jrsv6iDtj4D1TPx:3:CL:341:tag1" } ], "names": [ "field1", "field2" ] } }, "requested_predicates": { "89470a0f-ee49-40be-9521-a3793b2cf51a": { "p_value": 5, "name": "pred_field", "restrictions": [ { "cred_def_id": "WTfNo59jrsv6iDtj4D1TPx:3:CL:341:tag1" } ], "p_type": ">" } }, "non_revoked": { "to": 1630488342 } }, "presentation": { "proof": { "proofs": [ { "primary_proof": { "eq_proof": { "revealed_attrs": { "field1": "42751379689553602458976805273473046882104118497640132631939466380655173032786", "field2": "42751379689553602458976805273473046882104118497640132631939466380655173032786" }, "a_prime": "84492063883607620371765121526799828073330830039687468898217862135576033823831837847241495514853637338719437959851178747339107532680075163178238016781910390165125453486086695278410633542015383449554089687236978664638356502865679950167511557783533284791313494724291141405200510463056572603385755888776099224777039888074176230718382775307644142215830963761170327858764025640734540993705490612862835721230212886204275478373998563691296853256849479192472566905830639702666782137319194344800129616932404827568818056545315200710238614353278435886772585323916834543172257140780120508368487130543153650850209282577401241542430", "e": "145721711477127679979877943533405149881327091352901889453400086012140327703970799658457325225466328071657652602389496268127302241037853801", "v": "1062186632100156173953080544730213404374521039134594860872252560412066696943430605880998749886761143847101566756883179740650536885443194074619760306910630586076323129434752325739336521674520017280213730666043497148127145502895889708604529784568499317970297683147318372515205102487469588508112547870783597864213017606385610375041694907051935311160268003123970736328707951228830798508057929363151898622144978320076407722970500476827129374438626918208465931262937416420814839005145222318275276798289974736356914217235473326674314060305593287594832723408468347178045623920730289548566225803942306744270461651799536534894893626380273867540661640905428725869184167537042464230981622523963409573179282082161943528256959097888301931563530544615347351488258499925231321072904484358245678690821764556201449875950784504552773101602029460166093975057446095161472917722149229461007723013193444644905123827777568080094938128448147479676", "m": { "master_secret": "5628258316903560171408928669164950650459686204271403786831642413249738270814369220846195073088976865553753918719963475620323965032110851235283087605007145192135763211421715376615", "pred_field": "10398112039043880067690509473816075386956812487656472533856719502359900651072624455621464242624071539743765168478128183352926131031832140407866963805859354718400562766780336021403" }, "m2": "4459055276563864840494218252269944201389986484759057685658958702582087253745811677677744971884350743521417227119989447734417311594183946993272098898571522" }, "ge_proofs": [] }, "non_revoc_proof": { "x_list": { "rho": "0A50B9632A9051DB1E2E6A7FF5AB9A2E596A66EAEE8DFF4742A3C017EC5E4797", "r": "0AC9EC9CB0F59F7A1D807664A0C604F4FA19DDBA53C7DB32B01E5B07508334DC", "r_prime": "0A5620E45130225855414ECF9C02E01F88797FE89702202EBE21169EC8BF3445", "r_prime_prime": "01E3E07C7015B5C3271159C381C4801A45FBB1561B1C63DF34CE7AF32BBD8297", "r_prime_prime_prime": "0ECF906BC3AC9A02CA5DFE158910A07816C7D58D741BA9591E36027568AF90BB", "o": "24915285F12AE28BEA410F09A0A35349D98493EA7A1473F69C0F6A92945F931C", "o_prime": "1F896D2F6848E2A0BDC01EF4B7F6C0C7D80BDAE96D512A6D41DA3F67E9CE6566", "m": "0A4A8A8DB0867B6C69898959040513BD068A0B1D4039A09670AAE69CB159DAF7", "m_prime": "210E02A0982D0977966BC6E1E7190A0DD1D77FA209C1163C82F895A22AD2B463", "t": "06A718D1291BB616B2EA92124C61E41F0C82F4AB0EF11597F9B0406E5EC86A58", "t_prime": "172C74F56A69C4885CACDB976BC84AE8A00DA9CEBB6AEB422C47AAAFD0AF1D7B", "m2": "1477C307B42F67439D96F75F89122DC48C04789A125BBB7D0C458B38F88CD68C", "s": "0B779FCE3ABC175758ECD3B6F9208D20B7A16BE38C9CD4DFE28667DCAEF2EFB0", "c": "199F73A9A8301666710B47DED4DBEBC88C3E2B1E5A69F794639D7775E7099360" }, "c_list": { "e": "6 4599D2DDE4BA063EC11B1FB3DF5C6E462FC1378C76559F0E0053CBE925A27642 4 3DBB3ACD32213DE73C7D480135D63DDE0DB8AEE8C37F6DF0CF286E3C796BF0F2 4 1D6A44F4C79A7541C66EF6AA02C9C958C0933AA10288C26F0A9481D5EB98D220", "d": "6 49BA7082F8FD24240E0248A68B2A41044EDA7EEF73857BF48E3C18969498BC0F 4 1A60477F69813BA4C28DA88F62EAA2F5D55681AC9D7E0C1A63461DD09C34C9DF 4 3CF15670648C62A55E51244A2DE241E417FAE2E0122569C0EB85CE3F1C7138F4", "a": "6 4D1FE48A4BF124CE9E274ABFC93AE48D50019F497BD2452819EC96FD07E7B2E0 4 1F93375344ED32101821C2357FBAC21E8666E57911D15C16FB19B6A012ADC254 4 2D1514DBF349735C0175A608A444161C7A5041D3F552C45EEC250E48E5BE34D9", "g": "6 3D2D6104259204FEF18FEF06C884191BBC1FEA5315C6FF8995F90EDE7B5F283B 4 1D3583FF0A28072CAD6816AC5D9B563BCBAEDDE576B9D737192EC620A7352D6C 4 3B4603EF428832B524B2E400B9DD28F6C189AA1A8DF618964B64079FC428F473", "w": "21 117732D80EA99786FCF72D8E308C6A5E31C8B8CF16B873224ADEB8B7D3EEB1EAC 21 14127ADDC14443442EFE7C6EAE7F671F0899FCC942E160C61588765D8FC355809 6 77435519E6193B12F06FB321988C67C3BE4E12D11585D1EF62A4EDE5D9A81A09 4 1FC930466022A1F629B27D0C0A0060D69205B603DF198EF55FF0B40FDB21BD3F 6 726E5E8A6C36DAE6FF758258C67495C72D2D3765314F4DB8E2ED912E59576510 4 14770D158162079365E2A44B9C4000E910912E15E29E7A58FCC2A47C3E7D33E5", "s": "21 131D1293E8DFA639A5D21506FEB5BCFB0F916387ACE001E873B3595764987E42B 21 11544E0E986A9A5F311E844F38CF3957E1D5638591B96A21318B7E3EFF4023302 6 712DDD3F317FF2A2F36B5B2FDD1641107EA03FF1A79A9A2BFD7BEB58162C07B4 4 32D27BD2847EECC298EFE6A8EE766A9A00BBA91040ECB42AE227E22570A50CFC 6 61F4DAF5B1049EE0848990346ECB3B86B480E1FD496681D773BF23913422877A 4 0BEE6938581F99A8BB8FE806036A8155E73D76E0FC23A6156EF54BF1F6D2575C", "u": "21 1251DE38F2891B0BE545A2941AEB66E51B667C3031DDDA76A4ECA6ADAC867AA26 21 13DC1BDB33D1A20DE2A8C8111DFDE18C94D601949111AB301F134EF4CCD283D8C 6 765CF2493512FC36391F7D199A1C0B3ED99BD6FE7FFFBCD0BB2DCFEC37397A11 4 16ED1EFFC356453975DAD4D76B97043184F96C62A6F81F066497C29718E380CA 6 91DF197106CC7FBF9524C8D322C0C32E228F8A45A8CB6D7C59F3118191F236B5 4 2B22029EA0E30F0EAFEDE150AEC74387EC5127B7C2AE4C92D23541E5E88980F5" } } }, { "primary_proof": { "eq_proof": { "revealed_attrs": {}, "a_prime": "51904970661987935003810405599679849565258275545791019051416315042659995569253959102139329150676166175601971733363530540909641531948825791922938867412698811735489201142676697686846089466290639004722112214265876649355050398836320674299615748138863362625993696205465344407192243911012356708973980015673947335257931770147773816878613352375109737785411273367576204192134705532244346826968820745000407204552266931031828575696627800710397379895256275820535084098944894157472778974187588066586641692286585137305261399982638924878426065854189487040033940514981790764742817806254552001892919366931560026307038844766504083006889", "e": "168628453350877752765542971724277421340020704663627780521692016329979054650656599007962293789409871936353080312079680221091765353547400239", "v": "1206174957878334146261653145854316346483460376334657628245756867774835129448117238045519349213722697675211627255457038156807001859484749242742341063112397633022613422880484405663979726815930975341608494641881467366872361416264836413683548470434108955249900249453764082550226008876060618592711460396450185193628068713063933695280573154168046149247655616351898131038502006977682157325402879426631532137865499191552517807403664210150888240503032399889207120515610018807305481181290353884376457460980296873055781989953079155566618818440180588374918620418837248955938377015680787040129361211696024591382685670708173053426722946326053275009238853994517523046955807539664558161909292320781049045813856575411979779079143669477752084940594228766400618697848419766392820071079392212427873985067645770230012803374162726594932097261015548538017918609982629319548802486418323158814865422807366666091102887568627548831922692950386806499", "m": { "pred_field": "12196490990781625460522870896155022466753392506526433893730796844234936826961323938994306743430947021128356140294088976446617479564854210448966517747700651616463372579888862892251", "field1": "2652731964503546173246993385190910807659662215922986065984291778740221630207943784104720364467840093374754856525844391415319268521621378174358823281417384043031537900254531290246", "field2": "13163819422948781557901371950739072939601832045736092148071072336094537489465455975360655344321491639097436846963398766608215316645242934755455839447106250994030436544794017152842", "master_secret": "5628258316903560171408928669164950650459686204271403786831642413249738270814369220846195073088976865553753918719963475620323965032110851235283087605007145192135763211421715376615" }, "m2": "1898824480953799479724642784784545669897228749231755201018665601907530241080406749353861434983817587663020801702381307794488691556134817188754420057846756" }, "ge_proofs": [ { "u": { "1": "14287791293622204804604071345424697456893810901141162274312719180070395193267526906180597492058802433143334065837453381836241011043718100593194386746500336213797004384333200237280", "3": "9893892715289139821989576800199794888710924905424593187291068707439124089360344605631753441068176060366028903548004487945601818881913724192772969624058999738275026959011059398631", "2": "15643467468023872277241204002922878974894103379272642994095205028364238831394980855315435746736044613886357536652318565591332692184121265308248039341813400929569462432834316855513", "0": "6282379558546830196630892516771860743705235816148579130187956321378775262312447825564218967494298976543658873281720441308650037468669939107801443280313061839857014640539069098171" }, "r": { "DELTA": "216084202426339280685959439816967240345649910414718080669023392798648435726463440451059778912361852080469477277650061471178602145672881079210992724728148523279657353755918422175027952895374636315034568822034277189163933048988926707424330180056056989731192422225318152604670475108802670676013895135360055633258986805890028461807852567560789922679555283378533178382226319088633008840040412974476857751331183583694592689403633140877180974332749242629787601109909598517078722618068997701645515829355108606340241554328428451787457325520889456109509291118053019405279265901302693551152373244064519659488788031265018341768182314382403062446012657671009035493854783905581068475978068836213909963768437082263954766468459694395", "0": "1651958798919962406908883163182526343934620640373044014651571507888860402449527123836237764528666831874024992864644059518031469054318001376088556964749017320811791202427143048288124698862644876181851675715270570995371070341533957250606323657655130302663485888398271277262667128444064516003048146477103569340030211195772202803161811885434918154183947121823076820262487405586724607484493854703203509801986632378047038968567071702183007111177540120572272252246347856342880087552996656588473188168932095636506753093457447650022837279619894925798569155681323816358509848016162216011948113386819471962045354399522990181570102006328114228094823918752508468377535215534380713856663449176034391478290747796964034367340880061743", "1": "1316105587317122688333720552555101829927063459712061811562391750559232607278118269801793942508234715727846413768154940712987779796752139538678887613783183180371870142173219766728175131489426714680669354033956306372291479445223220519610916133500566146164935602335389610003521516952195643034727287671926856502540857916527821808477420820179136359465262546573922487709067836350258802232573222653657446124746322714684341157437384027760230480513159171714718027881993235520915360696355241263077702094497580678564111450415393792050282103891954145224853053627607150401868655998871916365101207804281155314838112125700770228091471994614051232911379149236759381265996617208081548730510365966860680468744258832645913234734737353669", "2": "490667904911186782728002374596751920336537894878698195620151218228213849654869488549198155524060463458329761560393981458980379126743688515392205740555242175659670397857473668565507672059751917357454507256409148029317114209658605535978892100593123277455553432650679289780171789458340133632700539886431940589088694157128796753841055156911878146182954135299043049409025919472733395238072495133432456241333829461287395688674435760668838580913428674166893178879519769835068053225903905672839163412122470009565197395264173969247478099400115594251176367314099721515634834237445663492437006667559837399135713559097647762113765237345888871534820771613599450041710542537333715173089159554850483831611455936792477352878032713978", "3": "1282730545768820608425169548776087535438060713563139789420255481829845188284790506780787030321196541671869261863295288064455888029279569670322110482041799780412139586497550902053762893164374275206059538900229762306003494829753462379147589361135841153084048409590380348334179264663064668983359550702834425977972886945402204652446625153206417458231602793345250334871419712746771573999661662346585305205979492154238486935756071587716879382290855845120519707638266012871269841767341635306413157268572125993015693760424637647871151075886092614852591274112259880171109806679300879024485271126825395219068807074757149044921699266659844804902557943917016583733088109545614076306723681484593640434447719739041745154404679913488" }, "mj": "12196490990781625460522870896155022466753392506526433893730796844234936826961323938994306743430947021128356140294088976446617479564854210448966517747700651616463372579888862892251", "alpha": "78966903596478159454787760080094382534266083059939245700371486420325547660277462711515310611213396880336368725430328446693048670485233918269924404495921950858391892336088015145320814181354669703375365395738008659140743065275537681251209863730844050199709741223839694369585954277162654819215680482530171786399154070459925277702589460240250229319711337780808308170437025836949601115955238218681830296509647981137452625983618653997518010616126149542161037403533455198426809746554731570196153319391911252764857100794427367830464531670915325173279114018071865843352597765890257252533139405111158204452412897903331679088529301335563245583878685219103449120369848188398895913900483739777677462337088976157924638101580505792320763937788395552992813443660623319150786879535147491095541599029046285187038558663604597774903615960664256258443546526765", "t": { "0": "20810172568148112091899292713934105175963715066290494269000886188828436136491793353762553203807508337312556149204573761167744207137895295190445888263873154933853250728510974280338731710628421209980821423557820083712005026043730628776446234998868679677681023884123220927527151272549507056098958235815019992607419481268425240521287111120404188062272943253946128946311171636047501085901179695367900590071035151090393722048177635831679023351752590343070756571970417123837187502457520834973403690290772298553396292913990333955519387729123289558191610046731992852722823374929545367081037532389127345695211001985150501279478", "3": "642564690978797228500545396458534506477963518331531877340134872116426212923908050434317985273516498599441507138687772737547999514381016240002372541495496919251324806475141487101727815197997646530189895318759588018569856739302940471092698123710277575574035008073191105403860672779783133620462171582344368198504017261042923994391780188509711645322909038345684065194087707000586170261274307361609746157159566473496481861115069002655391520975228337494502810785413916325434396018988643188069468753838726376984538520189137075400371300580770126897933356498939649875755781700518297260588494570347931986869869322106141891920", "DELTA": "3869343208958527035809838102431029355294280207397069757328091623353733422251278326531752253141651215050095202960634716221418583075563847110810518284591954988759990921718914328507550363486816700199002939349417312558991754379962705017310243598000241310065475501542683472802497953509720488662007935823691885211380300800635726127733644395556112527451457637751276520055980555998914368712104107131492420394993814722061840346116385544018596065860078980733332120834395296527736900238845251585442257498136007605914359756506796113388314323028541075239796838141678904222434170502005409676935200426486774682291105688253507461096", "1": "83498590009089993507864755692788588530617706405860337624562184111715573682402556640123995019944202758362263776881457959436659995939426857871861338387928375380515452241526932295188716949341411226650579354544392098401688703528708125842478918998670772712554571324039475201207457175692120668845669574768193511737299672766284362215771135821823447250616144707092472978898275337204764341945620684828330291258348605575318989432889238925229467845364065026170344352446577605063442375154586050764246644055713812703985938472540446630844384158526000064235421293339358034271686035050324061395818011302261107666751232562194333881420", "2": "49763960675121623559409679799671848220242413788984887762378064529880531237696283338663765245178305995553324817402834039879236490200405527722404369213167491875975885355313463445954825604786152462863274366202031493712551438055500615938775084012095502101784036509787681829871629415735111237359925213735261609496075682942691741177509525609489925842360533195438239196765142747003054984368223812296168776688281409119244953451184816793363647565712373429368552295567620493574999922930725109058935890251757084196739890196957706698542765266501558124533162324455696439800096587140329865650049932624148015217242626628553684618162" }, "predicate": { "attr_name": "pred_field", "p_type": "GT", "value": 5 } } ] }, "non_revoc_proof": { "x_list": { "rho": "04810238E13336384361FCE89062EC8611641287C5C8C75F1D91E15927115B66", "r": "12B8C29643D3364C2FFAA178C6D2A2A5EC547B6DBF09CA5478858F0AD151308B", "r_prime": "0907CF4F5994BDB777014603FF4DBFE9820502E40540FFBE46F830E243D5287A", "r_prime_prime": "15628DBBF158D227F28B3314FE9E286BDAC69A8CA715D3EBBBF5FB3567286279", "r_prime_prime_prime": "18623262D637C2B2CE3FF19ACF4E72FAA1B274CA016043239FCA2F44EDDC017F", "o": "000FA304A6590695D542C7E6E9ADEBE5D1F5646BEF1E0118EA7E703496AE20EB", "o_prime": "0AECD8DFAFCF71C96B98ED71FE053DAB9F1F00A983D48F5B70EE7672132571FE", "m": "20AC9AA09BB262908721649042D7914F1F37089989AC6D1A828FB41EBFF41465", "m_prime": "0C702E8E6589F21CE785E7A69171DC9464DD345E69EF8BC9667D3977B33F5BF8", "t": "140022E239DFC3CF8E860ACAFDE6AF88FBC4B82CFA95DC3EDC665A07BDBED7F5", "t_prime": "1A0D742E391683A0A68861B6BCEC74913DD03B9DDC7326016004D0333BF46D38", "m2": "0BA0586CF1CCB003C157C1B265DA5D5807B40524D461855D07DFB4239A14F293", "s": "055E77CDC318F22C48AC4B3D6B36A4D1DBA11F43DAF18885CA1AB951C5E607A1", "c": "083B911B12EDA5D8843518D07D37AAF3734C0F756D913F0AA61CAFF7E16A8ED6" }, "c_list": { "e": "6 413FF8966D8257FEC3DA9DC9A02765F67760B91D84DD10AAAADA6A56E364ECCB 4 1C1413195C5C1267688642DB43EE699091B43CE8E7D20593FF42B0F2F9AFB9D3 4 18172ED9F7EDEEBA3B7B92E66D2C6AB830403613F1828850ECF2559C9D5AB79F", "d": "6 53B3AEA332D6BE76AA9AC5F7C79277F48E58B3C059EE0DAE8262242287CAD66E 4 2CCA0F503EB46C277AB1D913994B1E3E132E5E91EB8D855FEF56AFF9E8EC5369 4 293419A0F7D7EA065B97F6AD0BEFF76FFAB51D28C4E10194A0CA1240FD448245", "a": "6 4556BB4BB535E35125885D1FCB63570E0127E380A1A29EE19D0F96A4DC88A967 4 16ED5AFD40AFE88F2A237BC494DB3664B3FE31F744843018613D292C3CC8B852 4 045B3843575952836F6BA87D8C709D8659734E722025B9D53AA672745D632A74", "g": "6 64B15BC235E9CF7E319F551FF109EBC6E7628346EE9DB7B13E5FDED3EAD66A75 4 2BE3D960CC6E423A0721E5863FF868ED731400A7ABEED43F69E29879CC29A514 4 21B9165429C09EF68110C56015B5033FD788FD8DD948E4BCF04175989CA609B0", "w": "21 11DF2EBDAAC626D1761701917E089CBA9EDF3767C49DD36CB42851FE1674D1E1D 21 1076FA0DD6F8DE3CD527232E654CC67755232E181F85C6AD1EAD837468A13595F 6 6F7154A31AECA46E155263D9F0D5109ACEAF6463A920B25426BEA2D51CCC0459 4 39E54D511158B1A088A34E794F5467D16440AC4E6D4C2A2A6C737EC8E6198731 6 69D30E7FAE2584AE54151493922529B88F6C6426A82EA0C5CCD46C28CBFE6949 4 167CC81CF8FB31113560E5FDEB004D029F2C0770CE0976EDD20935F0E884AD1D", "s": "21 127EA34DF959B2E4D31F5BB7FFE3EEA64453A0BA6C417D70CB636C21B995BEBAB 21 120F1D9DF00668315F13646BC9F75C670C10B9742CE65FEAEE6363AC0E5582DCE 6 6A8628A5C8418BEE41BFD091D992964C0C9F8D6D8C38B6A530B41E076AF05CF7 4 226A2B3913475DC6FC758D1ED698F5F4DCB66B8E6243454E0B441A6C1D34B5FE 6 5DE65BE7F43E0577D414E825F448156D36AF14E406480BF937D93D03B6A8A383 4 3A0D7B3B767F0D0DAAC486BE69C8B65D78CE2B60DCF454A4FEBC6DAC93F964AB", "u": "21 11394A23DC3DFD560C72D04072629D49D1580C3C1CD4A3D820CEAC48B6A336DF1 21 1153EB5ED150D4480767828C1824FA7CAB4EC36859D69FA64161D981254E87ED4 6 7187FF83DE73CE0DEC49AA52F004DC54B9AE07816B48FEC33CAE763D1D78EECD 4 222769B94EF3ECA4BAE72371C5A0A29CD53B0FAF4E6679B86FDDA4ED755B85BA 6 72503C84E0A6F3E71E40B7F995310ED28CBDA923C66DD15213AA796D848296B8 4 24642E2EA2417DC782F99FDCA7ABE5D1C6D7349B8F99B3DCC334E24306788B19" } } } ], "aggregated_proof": { "c_hash": "47077874673433794196085209241646076743200557427833770204283220544400207919929", "c_list": [ [ 4, 11, 117, 201, 156, 147, 23, 164, 74, 17, 92, 111, 16, 19, 243, 136, 20, 75, 248, 168, 149, 153, 99, 185, 196, 210, 183, 244, 225, 234, 175, 93, 81, 36, 121, 11, 199, 195, 224, 95, 155, 180, 92, 42, 87, 29, 177, 188, 57, 6, 235, 147, 241, 107, 158, 202, 90, 120, 99, 13, 177, 57, 153, 2, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 4, 35, 129, 14, 149, 58, 65, 174, 210, 241, 123, 218, 79, 82, 193, 211, 157, 106, 67, 109, 66, 249, 249, 135, 27, 165, 130, 178, 187, 144, 193, 243, 89, 31, 251, 14, 36, 251, 223, 188, 93, 204, 203, 15, 129, 243, 31, 224, 157, 222, 183, 95, 135, 198, 121, 149, 141, 197, 206, 94, 27, 238, 8, 44, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 4, 20, 38, 106, 19, 24, 153, 118, 20, 45, 246, 84, 248, 106, 140, 14, 0, 114, 38, 26, 164, 197, 87, 73, 74, 110, 155, 229, 166, 148, 34, 128, 107, 28, 241, 93, 229, 90, 218, 97, 240, 244, 211, 177, 25, 136, 148, 18, 115, 143, 169, 107, 160, 251, 103, 109, 16, 187, 173, 233, 147, 58, 73, 158, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 4, 16, 182, 172, 211, 155, 203, 113, 161, 223, 172, 66, 48, 57, 14, 125, 118, 6, 252, 93, 216, 184, 218, 129, 159, 226, 143, 8, 207, 21, 117, 55, 78, 32, 34, 237, 125, 190, 34, 48, 25, 95, 138, 255, 213, 238, 15, 37, 249, 3, 201, 136, 106, 208, 88, 243, 150, 68, 218, 101, 96, 141, 95, 244, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 20, 240, 83, 100, 22, 182, 71, 196, 180, 255, 241, 137, 92, 14, 148, 222, 219, 216, 126, 63, 68, 232, 67, 84, 194, 106, 97, 221, 224, 0, 171, 197, 3, 139, 180, 147, 83, 169, 235, 218, 98, 123, 140, 134, 136, 244, 27, 64, 217, 89, 154, 92, 65, 210, 74, 146, 24, 46, 251, 73, 129, 82, 105, 137, 15, 178, 19, 17, 254, 107, 191, 201, 215, 198, 107, 104, 26, 168, 76, 150, 243, 26, 237, 75, 47, 130, 158, 199, 93, 181, 117, 224, 237, 159, 184, 249, 30, 232, 230, 123, 88, 131, 158, 36, 142, 104, 67, 159, 207, 39, 49, 164, 191, 173, 53, 47, 8, 13, 128, 95, 82, 91, 139, 90, 38, 125, 119, 173 ], [ 0, 210, 75, 215, 188, 56, 66, 206, 132, 254, 81, 157, 47, 224, 239, 167, 141, 230, 252, 91, 91, 126, 107, 60, 243, 35, 19, 247, 24, 252, 13, 219, 1, 205, 69, 169, 36, 225, 136, 226, 2, 180, 103, 236, 247, 160, 109, 226, 189, 142, 13, 52, 242, 101, 255, 200, 252, 102, 37, 40, 246, 141, 28, 255, 25, 174, 159, 191, 154, 65, 140, 71, 85, 174, 103, 6, 65, 204, 114, 242, 207, 121, 67, 54, 164, 167, 68, 62, 33, 102, 240, 252, 159, 34, 187, 175, 27, 40, 30, 84, 192, 200, 43, 253, 80, 132, 171, 91, 71, 88, 111, 72, 44, 120, 105, 128, 42, 47, 243, 116, 29, 216, 161, 35, 175, 162, 48, 79 ], [ 14, 181, 50, 237, 29, 52, 189, 181, 230, 0, 247, 168, 71, 8, 10, 237, 182, 192, 77, 224, 182, 148, 52, 65, 178, 83, 9, 140, 136, 147, 3, 13, 1, 17, 216, 159, 31, 222, 165, 115, 91, 66, 181, 216, 145, 92, 27, 157, 66, 164, 95, 89, 183, 253, 176, 158, 56, 136, 8, 129, 95, 164, 180, 240, 24, 230, 202, 221, 3, 97, 8, 103, 15, 88, 88, 188, 144, 36, 252, 142, 77, 128, 134, 75, 237, 201, 71, 217, 115, 39, 161, 61, 106, 157, 114, 165, 5, 166, 136, 87, 164, 90, 18, 121, 171, 232, 183, 17, 212, 50, 102, 147, 132, 60, 86, 71, 247, 141, 214, 54, 96, 14, 72, 62, 129, 38, 7, 29 ], [ 2, 157, 78, 90, 168, 59, 73, 209, 146, 29, 36, 94, 100, 161, 165, 197, 135, 135, 27, 212, 133, 221, 144, 94, 195, 79, 137, 67, 250, 186, 15, 148, 247, 229, 6, 123, 154, 153, 10, 6, 183, 207, 27, 238, 205, 249, 130, 252, 187, 30, 174, 6, 140, 185, 183, 120, 161, 121, 156, 1, 99, 49, 23, 198, 12, 191, 250, 64, 129, 42, 153, 30, 71, 239, 93, 75, 82, 212, 87, 63, 143, 183, 9, 176, 199, 17, 129, 98, 81, 228, 130, 136, 58, 251, 199, 234, 35, 149, 15, 120, 30, 247, 230, 234, 2, 161, 26, 81, 40, 35, 239, 176, 60, 44, 31, 225, 166, 21, 113, 67, 14, 226, 166, 114, 73, 204, 53, 39, 141, 65, 116, 145, 87, 76, 254, 180, 224, 236, 243, 173, 202, 104, 237, 236, 94, 155, 5, 213, 128, 86, 228, 240, 77, 57, 165, 250, 14, 155, 196, 239, 60, 40, 2, 54, 54, 216, 134, 191, 153, 19, 108, 86, 116, 28, 244, 155, 106, 143, 69, 142, 205, 100, 86, 154, 214, 187, 186, 60, 83, 159, 93, 47, 92, 45, 48, 176, 137, 187, 51, 230, 0, 131, 156, 65, 243, 211, 78, 254, 35, 159, 102, 138, 210, 180, 89, 70, 159, 219, 232, 118, 45, 120, 40, 188, 146, 188, 236, 108, 27, 129, 137, 105, 207, 195, 71, 186, 78, 177, 190, 254, 114, 112, 168, 199, 123, 24, 184, 84, 127, 21, 57, 68, 114, 64, 114, 31, 30 ], [ 4, 5, 39, 54, 170, 177, 2, 119, 251, 227, 157, 75, 32, 102, 192, 52, 78, 134, 37, 200, 124, 23, 172, 169, 113, 223, 174, 56, 87, 93, 193, 9, 42, 26, 227, 245, 41, 41, 164, 27, 188, 83, 248, 49, 247, 194, 204, 20, 180, 82, 204, 137, 204, 105, 127, 213, 12, 160, 64, 159, 58, 126, 183, 166, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 4, 34, 0, 117, 162, 40, 45, 144, 243, 59, 51, 252, 149, 212, 165, 239, 142, 240, 60, 163, 61, 255, 1, 226, 88, 182, 136, 57, 125, 15, 213, 198, 13, 5, 204, 64, 47, 184, 65, 3, 240, 248, 66, 215, 194, 213, 51, 0, 161, 119, 225, 135, 64, 245, 215, 52, 26, 225, 241, 29, 87, 107, 27, 34, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 4, 16, 6, 133, 174, 146, 188, 190, 51, 12, 144, 207, 18, 229, 23, 192, 171, 251, 245, 56, 222, 167, 114, 61, 194, 90, 129, 217, 6, 233, 192, 105, 103, 9, 173, 132, 17, 187, 241, 14, 16, 42, 214, 15, 238, 107, 228, 244, 2, 234, 130, 48, 163, 224, 136, 141, 136, 252, 62, 228, 113, 160, 118, 120, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 4, 9, 48, 105, 168, 97, 131, 110, 96, 217, 161, 87, 230, 52, 11, 104, 64, 42, 25, 135, 193, 240, 77, 12, 87, 239, 154, 103, 44, 216, 125, 188, 193, 3, 221, 182, 114, 10, 97, 87, 181, 167, 239, 78, 3, 123, 165, 133, 26, 7, 204, 212, 250, 129, 75, 187, 188, 206, 166, 38, 29, 191, 247, 138, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 88, 13, 37, 90, 119, 40, 166, 166, 29, 63, 97, 230, 80, 169, 23, 106, 33, 188, 172, 88, 181, 49, 74, 16, 158, 67, 45, 199, 52, 11, 226, 11, 222, 255, 47, 104, 108, 27, 25, 174, 121, 153, 135, 32, 85, 225, 53, 108, 57, 135, 239, 148, 51, 101, 103, 22, 3, 131, 68, 248, 135, 23, 193, 13, 103, 113, 72, 133, 242, 186, 61, 199, 73, 55, 166, 212, 220, 29, 187, 177, 22, 192, 86, 1, 236, 87, 250, 202, 77, 188, 14, 169, 118, 96, 108, 4, 34, 242, 29, 51, 214, 6, 70, 198, 6, 186, 67, 193, 71, 74, 209, 55, 28, 31, 207, 0, 253, 169, 110, 110, 93, 189, 60, 24, 39, 14, 98 ], [ 20, 63, 234, 118, 127, 198, 30, 40, 21, 34, 41, 216, 115, 60, 113, 59, 212, 86, 21, 7, 203, 168, 163, 137, 183, 240, 149, 74, 233, 210, 125, 138, 25, 104, 135, 180, 159, 125, 96, 46, 215, 242, 115, 92, 111, 41, 167, 50, 21, 182, 85, 58, 91, 156, 229, 58, 21, 156, 210, 243, 46, 171, 114, 176, 21, 232, 141, 208, 102, 112, 241, 160, 64, 76, 72, 145, 173, 184, 253, 222, 37, 176, 231, 252, 77, 19, 151, 141, 182, 239, 208, 98, 210, 76, 229, 154, 19, 81, 73, 135, 143, 158, 58, 118, 143, 39, 60, 117, 53, 163, 137, 128, 77, 25, 104, 252, 253, 64, 48, 163, 241, 173, 92, 243, 120, 190, 238, 17 ], [ 10, 172, 188, 52, 212, 218, 183, 252, 88, 81, 18, 42, 2, 237, 104, 145, 112, 5, 135, 141, 177, 150, 122, 250, 156, 154, 91, 207, 195, 224, 249, 209, 29, 213, 207, 27, 45, 39, 33, 30, 16, 18, 116, 111, 75, 137, 94, 193, 240, 62, 238, 233, 113, 247, 227, 34, 152, 37, 111, 18, 57, 223, 83, 204, 5, 213, 220, 220, 243, 150, 200, 6, 139, 188, 123, 132, 25, 30, 241, 148, 173, 141, 8, 143, 194, 79, 50, 74, 226, 16, 173, 125, 103, 253, 153, 143, 14, 110, 88, 52, 212, 139, 179, 84, 48, 167, 5, 84, 196, 230, 154, 188, 82, 209, 240, 52, 233, 24, 3, 183, 25, 230, 234, 189, 87, 236, 180, 121 ], [ 1, 155, 42, 164, 59, 38, 105, 40, 215, 204, 153, 250, 12, 164, 18, 225, 210, 179, 122, 171, 59, 234, 74, 85, 178, 223, 129, 171, 153, 84, 77, 115, 182, 109, 142, 211, 254, 252, 18, 138, 248, 190, 253, 145, 207, 62, 197, 166, 153, 74, 5, 157, 38, 61, 125, 107, 250, 241, 165, 110, 49, 90, 244, 72, 181, 130, 174, 24, 117, 138, 221, 191, 199, 113, 215, 55, 193, 216, 234, 13, 33, 0, 29, 185, 70, 97, 227, 13, 197, 32, 215, 172, 230, 4, 222, 224, 129, 77, 210, 216, 146, 31, 38, 102, 143, 127, 97, 1, 252, 43, 48, 226, 37, 158, 245, 249, 146, 188, 140, 171, 169, 67, 142, 29, 58, 231, 202, 63, 2, 133, 135, 193, 154, 102, 184, 184, 86, 61, 26, 81, 135, 92, 11, 225, 131, 253, 168, 76, 88, 251, 26, 88, 127, 143, 15, 127, 94, 17, 33, 139, 75, 216, 13, 135, 177, 100, 179, 150, 246, 218, 246, 80, 54, 230, 12, 48, 41, 64, 225, 135, 1, 251, 42, 32, 102, 82, 195, 49, 244, 151, 171, 29, 49, 126, 193, 242, 220, 132, 22, 15, 81, 121, 180, 198, 41, 183, 216, 104, 236, 226, 145, 213, 114, 243, 110, 39, 10, 67, 142, 115, 123, 142, 207, 158, 6, 15, 113, 215, 98, 94, 19, 101, 229, 186, 91, 75, 208, 104, 56, 24, 142, 76, 7, 170, 249, 172, 241, 110, 110, 75, 248, 190, 158, 78, 188, 37, 169 ], [ 164, 217, 43, 137, 210, 254, 172, 17, 149, 138, 207, 64, 224, 92, 158, 247, 21, 117, 231, 210, 9, 243, 88, 13, 39, 232, 206, 35, 239, 156, 191, 100, 182, 218, 188, 161, 113, 29, 11, 217, 13, 127, 239, 95, 92, 119, 212, 22, 194, 230, 211, 88, 38, 194, 8, 79, 169, 62, 115, 86, 5, 229, 41, 64, 22, 138, 145, 186, 143, 68, 174, 118, 95, 117, 102, 232, 39, 162, 199, 238, 148, 149, 185, 42, 82, 31, 119, 212, 62, 16, 190, 24, 94, 123, 40, 90, 200, 200, 117, 113, 13, 255, 214, 10, 49, 223, 96, 71, 214, 58, 52, 212, 102, 77, 198, 15, 39, 142, 131, 189, 66, 56, 189, 0, 213, 196, 88, 119, 149, 137, 150, 42, 146, 232, 222, 83, 224, 237, 8, 159, 45, 22, 107, 239, 139, 113, 218, 111, 103, 176, 138, 181, 233, 173, 186, 5, 48, 175, 97, 251, 92, 57, 16, 148, 195, 47, 212, 125, 163, 241, 107, 43, 187, 176, 68, 209, 86, 86, 227, 137, 42, 213, 167, 0, 113, 201, 252, 48, 82, 131, 76, 169, 189, 2, 123, 234, 41, 78, 110, 142, 7, 122, 122, 160, 239, 255, 91, 148, 30, 95, 49, 20, 81, 127, 109, 19, 132, 30, 43, 255, 81, 250, 156, 76, 172, 182, 86, 171, 88, 232, 150, 215, 37, 156, 140, 55, 123, 255, 203, 94, 25, 144, 133, 190, 24, 113, 87, 30, 217, 8, 191, 190, 139, 64, 86, 246 ], [ 2, 149, 111, 173, 139, 14, 220, 215, 63, 238, 48, 208, 124, 165, 93, 62, 107, 216, 107, 180, 0, 101, 13, 139, 82, 234, 31, 215, 233, 244, 90, 207, 152, 71, 206, 149, 95, 31, 204, 231, 212, 240, 246, 45, 171, 192, 19, 95, 182, 206, 235, 136, 126, 206, 243, 183, 0, 5, 26, 162, 144, 140, 26, 83, 207, 144, 70, 190, 202, 46, 63, 217, 35, 180, 19, 191, 62, 187, 227, 231, 33, 171, 93, 5, 131, 210, 78, 2, 36, 125, 67, 71, 128, 182, 220, 236, 220, 167, 215, 60, 10, 60, 108, 145, 108, 118, 12, 188, 199, 228, 149, 252, 10, 15, 247, 37, 231, 117, 85, 13, 151, 128, 71, 231, 187, 63, 38, 135, 172, 8, 83, 206, 9, 144, 98, 249, 37, 132, 213, 71, 71, 145, 131, 174, 188, 40, 50, 117, 206, 127, 41, 222, 0, 101, 145, 84, 241, 129, 188, 127, 5, 114, 151, 95, 62, 6, 12, 108, 37, 105, 201, 110, 144, 32, 234, 209, 171, 205, 237, 176, 105, 93, 154, 88, 75, 2, 155, 125, 3, 138, 63, 200, 202, 26, 227, 235, 96, 200, 205, 197, 181, 202, 233, 198, 84, 145, 95, 93, 205, 190, 141, 234, 238, 144, 190, 148, 21, 16, 79, 200, 208, 68, 209, 98, 17, 83, 48, 227, 134, 184, 206, 27, 70, 60, 58, 10, 45, 0, 253, 109, 119, 67, 30, 69, 35, 250, 57, 117, 132, 56, 8, 205, 178, 243, 16, 212, 76 ], [ 1, 138, 52, 221, 88, 27, 69, 221, 176, 103, 92, 174, 122, 111, 45, 89, 100, 188, 90, 110, 13, 167, 181, 40, 249, 59, 28, 163, 79, 86, 112, 70, 135, 35, 62, 37, 255, 8, 27, 255, 112, 201, 152, 75, 190, 91, 75, 150, 205, 59, 176, 57, 220, 135, 139, 165, 46, 17, 68, 5, 21, 191, 1, 185, 44, 196, 155, 245, 63, 237, 167, 5, 59, 56, 195, 154, 217, 226, 125, 160, 242, 63, 28, 150, 74, 226, 58, 134, 217, 126, 208, 254, 52, 15, 128, 125, 149, 186, 249, 31, 108, 71, 85, 72, 36, 211, 4, 195, 196, 44, 221, 117, 243, 147, 99, 86, 112, 251, 105, 183, 151, 29, 123, 198, 68, 238, 90, 58, 53, 127, 195, 143, 236, 176, 60, 110, 32, 30, 103, 8, 185, 140, 131, 15, 238, 206, 209, 203, 5, 240, 238, 189, 84, 79, 154, 201, 200, 100, 83, 1, 28, 220, 121, 218, 110, 181, 148, 90, 26, 122, 69, 179, 32, 162, 236, 181, 83, 198, 62, 93, 255, 204, 30, 250, 47, 241, 115, 100, 144, 184, 112, 11, 193, 185, 174, 6, 38, 252, 53, 52, 154, 171, 137, 62, 80, 74, 107, 7, 29, 205, 28, 206, 60, 92, 162, 111, 25, 9, 205, 66, 162, 27, 54, 243, 197, 101, 162, 101, 216, 184, 216, 185, 92, 193, 228, 41, 195, 70, 171, 230, 132, 68, 47, 149, 58, 159, 215, 216, 255, 247, 180, 213, 125, 253, 165, 11, 178 ], [ 5, 23, 16, 82, 222, 113, 181, 228, 74, 86, 34, 181, 25, 130, 251, 115, 188, 18, 105, 179, 207, 111, 242, 91, 156, 159, 196, 255, 254, 255, 79, 107, 216, 65, 100, 170, 128, 133, 112, 129, 168, 64, 130, 116, 150, 163, 234, 204, 141, 238, 241, 168, 198, 236, 83, 37, 178, 49, 194, 242, 116, 138, 137, 31, 233, 199, 167, 185, 65, 97, 70, 168, 73, 131, 73, 163, 52, 31, 140, 163, 61, 7, 170, 50, 185, 27, 213, 89, 123, 203, 152, 175, 246, 218, 167, 100, 234, 207, 193, 48, 201, 30, 242, 47, 170, 133, 164, 202, 75, 38, 192, 91, 5, 138, 64, 161, 60, 33, 104, 183, 89, 252, 188, 215, 62, 80, 18, 254, 75, 152, 21, 21, 177, 232, 146, 120, 82, 86, 172, 54, 249, 208, 135, 79, 86, 148, 243, 103, 72, 144, 114, 88, 1, 228, 85, 61, 132, 205, 16, 130, 21, 160, 202, 250, 145, 122, 215, 183, 94, 207, 245, 156, 94, 202, 21, 82, 115, 184, 145, 1, 218, 187, 2, 94, 20, 20, 91, 156, 199, 122, 210, 85, 199, 11, 208, 9, 99, 139, 209, 34, 117, 214, 103, 245, 147, 7, 217, 120, 180, 103, 182, 97, 103, 75, 23, 81, 55, 105, 113, 68, 223, 49, 59, 123, 111, 83, 132, 192, 235, 253, 159, 247, 146, 185, 232, 86, 33, 253, 55, 159, 127, 187, 241, 138, 6, 169, 66, 220, 232, 134, 230, 41, 169, 175, 93, 80 ], [ 30, 166, 174, 165, 40, 20, 103, 94, 64, 87, 94, 26, 201, 204, 173, 46, 193, 208, 147, 85, 68, 145, 98, 152, 230, 202, 242, 7, 117, 214, 74, 98, 236, 114, 224, 120, 32, 203, 106, 146, 15, 179, 124, 148, 64, 220, 46, 9, 93, 230, 161, 107, 210, 246, 224, 245, 222, 56, 16, 145, 115, 114, 248, 125, 251, 145, 60, 212, 73, 54, 226, 162, 85, 201, 64, 148, 33, 166, 24, 210, 225, 26, 65, 174, 30, 100, 38, 211, 119, 3, 81, 142, 186, 174, 175, 201, 48, 25, 251, 6, 125, 143, 4, 42, 36, 201, 95, 38, 137, 170, 138, 77, 32, 80, 42, 63, 131, 247, 213, 124, 36, 220, 52, 99, 187, 111, 238, 136, 6, 10, 23, 168, 65, 157, 42, 191, 44, 78, 143, 222, 106, 125, 228, 145, 211, 32, 190, 128, 238, 28, 245, 230, 101, 126, 31, 71, 140, 39, 149, 138, 162, 86, 115, 165, 80, 58, 4, 204, 238, 13, 4, 59, 59, 151, 253, 118, 22, 159, 128, 176, 129, 114, 14, 168, 187, 194, 113, 110, 138, 17, 248, 131, 83, 16, 55, 138, 211, 35, 182, 62, 80, 140, 46, 248, 228, 114, 222, 110, 196, 105, 32, 45, 21, 206, 41, 100, 9, 51, 39, 107, 207, 156, 224, 176, 115, 126, 170, 106, 248, 7, 85, 91, 74, 140, 71, 234, 65, 44, 157, 17, 85, 3, 107, 57, 234, 202, 252, 143, 147, 128, 237, 102, 42, 42, 95, 232 ] ] } }, "requested_proof": { "revealed_attrs": {}, "revealed_attr_groups": { "cbe9de98-eaa7-452a-a062-a0af172061fd": { "sub_proof_index": 0, "values": { "field2": { "raw": "bbbbb", "encoded": "42751379689553602458976805273473046882104118497640132631939466380655173032786" }, "field1": { "raw": "bbbbb", "encoded": "42751379689553602458976805273473046882104118497640132631939466380655173032786" } } } }, "self_attested_attrs": {}, "unrevealed_attrs": {}, "predicates": { "89470a0f-ee49-40be-9521-a3793b2cf51a": { "sub_proof_index": 1 } } }, "identifiers": [ { "schema_id": "WTfNo59jrsv6iDtj4D1TPx:2:test_for_pred:1.0.0", "cred_def_id": "WTfNo59jrsv6iDtj4D1TPx:3:CL:341:tag1", "rev_reg_id": "WTfNo59jrsv6iDtj4D1TPx:4:WTfNo59jrsv6iDtj4D1TPx:3:CL:341:tag1:CL_ACCUM:f272f361-412b-4825-be5c-2747261ee777", "timestamp": 1630486922 }, { "schema_id": "WTfNo59jrsv6iDtj4D1TPx:2:test_for_pred:1.0.0", "cred_def_id": "WTfNo59jrsv6iDtj4D1TPx:3:CL:341:tag1", "rev_reg_id": "WTfNo59jrsv6iDtj4D1TPx:4:WTfNo59jrsv6iDtj4D1TPx:3:CL:341:tag1:CL_ACCUM:f272f361-412b-4825-be5c-2747261ee777", "timestamp": 1630486922 } ] }, "auto_present": false, "thread_id": "1437aa32-6db5-4983-97d7-2f469db5917b", "initiator": "self", "state": "verified", "connection_id": "d566c6a1-6022-4a4b-b496-7fc02c02c9c8", "trace": true, "role": "verifier", "presentation_exchange_id": "ff29922c-3e57-4fbd-a785-0367ac67314d", "presentation_request_dict": { "@type": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/present-proof/1.0/request-presentation", "@id": "1437aa32-6db5-4983-97d7-2f469db5917b", "~trace": { "target": "log", "full_thread": true, "trace_reports": [] }, "comment": "", "request_presentations~attach": [ { "@id": "libindy-request-presentation-0", "mime-type": "application/json", "data": { "base64": "eyJuYW1lIjogIlByb29mIFJlcXVlc3QiLCAibm9uX3Jldm9rZWQiOiB7InRvIjogMTYzMDQ4ODM0Mn0sICJyZXF1ZXN0ZWRfYXR0cmlidXRlcyI6IHsiY2JlOWRlOTgtZWFhNy00NTJhLWEwNjItYTBhZjE3MjA2MWZkIjogeyJuYW1lcyI6IFsiZmllbGQxIiwgImZpZWxkMiJdLCAicmVzdHJpY3Rpb25zIjogW3siY3JlZF9kZWZfaWQiOiAiV1RmTm81OWpyc3Y2aUR0ajREMVRQeDozOkNMOjM0MTp0YWcxIn1dfX0sICJyZXF1ZXN0ZWRfcHJlZGljYXRlcyI6IHsiODk0NzBhMGYtZWU0OS00MGJlLTk1MjEtYTM3OTNiMmNmNTFhIjogeyJuYW1lIjogInByZWRfZmllbGQiLCAicF90eXBlIjogIj4iLCAicF92YWx1ZSI6IDUsICJyZXN0cmljdGlvbnMiOiBbeyJjcmVkX2RlZl9pZCI6ICJXVGZObzU5anJzdjZpRHRqNEQxVFB4OjM6Q0w6MzQxOnRhZzEifV19fSwgInZlcnNpb24iOiAiMS4wIiwgIm5vbmNlIjogIjgzODQ0ODQxMDI4ODU2MjU3MDU2MTU2MSJ9" } } ] }, "updated_at": "2021-09-01 09:32:16.947997Z", "verified": "false" } 

However if the prover submits the same credential for both the predicates and fields, it doesn't fail. I wanted to know the reason for this, is it because if the "names" field is included, Indy automatically assumes that the predicate will be from the same credential as well?

esune commented 3 years ago

I remember @ianco mentioning that for some predicate operations involving value comparisons the field used in the predicate also needs to be presented as an attribute in order to be able to disclose/process the value. Maybe this is the case? Could you try adding the field used in the predicate to the attribute list and see if you get a different result in the proof validation?

ianco commented 3 years ago

As far as I know the attributes and predicates can be presented from different credentials and the proof should verify (regardless of whether you use "name" or "names"). "names" should enforce that the attributes (or predicates) come from the same credential, only for the attributes within that "names" array (not between attributes and credentials).

The thing @esune is referring to above ("I remember @ianco mentioning that for some predicate operations ...") relates to the restrictions that are placed on the predicates. You can add value-based restrictions on both the attributes and predicates, and in this way enforce that the attributes/predicates come from the same credential, however (a) you need to make sure any attributes used in restrictions are revealed attributes, and (b) this feature was added in indy-sdk 1.16.0 and I'm not sure this has been updated to any mobile wallets yet.

Fethbita commented 2 years ago

@ianco I am actually using aca-py on both sides. Still not quite sure why the verification fails when the names for attributes and predicates are included and they come from different credentials.