Giter Club home page Giter Club logo

merkle-disclosure-2021's Introduction

Merkle-Disclosure-2021

This repo contains 2 specs and 2 reference implementations.

We are currently focused on JWP encoding of merkle proofs.

Allow systems to share some information that some original system approved without sharing all information that original system originally approved.

The scope this work item proposal is limited to a linked data proof suite specification (in html), suitable for registry in the https://github.com/w3c-ccg/ld-cryptosuite-registry.

Sample implementations

Contributing

Please open issues, there are no recurring calls for this work item.

About this work item

See BACKGROUND

merkle-disclosure-2021's People

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

merkle-disclosure-2021's Issues

Attacking Merkle Trees with a second preimage attack

The Merkle hash root does not indicate the tree depth, enabling a second-preimage attack in which an attacker creates a document other than the original that has the same Merkle hash root. For the example above, an attacker can create a new document containing two data blocks, where the first is hash 0-0 + hash 0โ€“1, and the second is hash 1-0 + hash 1-1.[13][14]

One simple fix is defined in Certificate Transparency: when computing leaf node hashes, a 0x00 byte is prepended to the hash data, while 0x01 is prepended when computing internal node hashes.[12] Limiting the hash tree size is a prerequisite of some formal security proofs, and helps in making some proofs tighter. Some implementations limit the tree depth using hash tree depth prefixes before hashes, so any extracted hash chain is defined to be valid only if the prefix decreases at each step and is still positive when the leaf is reached.

This raises the question of what effect starting with "salted member leaf nodes" has.

Re: [PROPOSED WORK ITEM] Merkle Disclosure Proof 2021 #209

Hi,

I was following your post W3C's github discussion and read with interest the technical methods for Merkle Disclosure Proof.

In a related merkle disclosure project we had used Open attestation's with Merkle Disclosure proof based on user credentials.
More write up of the method here: https://github.com/Open-Attestation/adr/blob/master/signature-proof-spec/spec.md

Wonder if it will be of value to the W3C community to also integrate the methods in the work item?

Thanks

Binary Representations of Merkle Paths and Tree Construction

RFC9162 defines merkle trees with some assumptions which might not map well to selective disclosure.

This spec defines merkle trees based on basicaly the "bitcoin / bittorrent" construction + some deterministic salting algorithm.

The binary aspecs of merkle trees and paths are a blocker for all higher order constructs that rely on them.

We need to gain more confidence that a new structure needs to be defined (current path) or find an existing structure we can endorse (what we wish RFC9162 was).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.