Giter Club home page Giter Club logo

rwot8-barcelona's Introduction

Rebooting the Web of Trust VIII: Barcelona (March 2019)

This repository contains documents related to RWOT8, the eighth Rebooting the Web of Trust design workshop, which ran in Barcelona, Spain on March 1st to 3rd, 2019. The goal of the workshop was to generate five technical white papers and/or proposals on topics decided by the group that would have the greatest impact on the future.

Final Papers

Dan Burnett, Ken Ebert, Amy Guy, Drummond Reed, Manu Sporny

The Decentralized Identifier (DID) specification describes a new type of URL that is globally unique, highly available, and cryptographically verifiable and which has no central authority. The DID spec document describes the expected ecosystem, data model, and syntaxes for DIDs. In December 2018, the W3C held a Strong Authentication and Identity Workshop that determined that a reasonable next step would be to create a W3C Working Group to standardize the DID specification. As a result, the W3C Credentials Community Group, which has been incubating the specification, will eventually need to hand the specification over to the newly formed W3C DID Working Group. In preparation for this hand off, a group at Rebooting the Web of Trust triaged issues related to the DID specification, refined existing proposals related to the specification, and gathered new features and requirements from the community. The result of this work is outlined in this document.

Sam Mathews Chase, Joni McKervey, Carsten Stöcker, and Daniel C. Burnett

This paper investigates two primary forces that have the potential to drive adoption of decentralised technology by both individuals and enterprises: safety and security. Among the most basic human needs, safety and security are fundamental to the functioning of society, and without them collective existence would fall into chaos. By protecting the sovereignty of each individual and ensuring access to secured shared resources, governments maintain a state in which its citizens may thrive.

Sean Gilligan, Peg, Adin Schmahmann, Andrew Hughes, Christopher Allen

As systems where people are required to manage their own cryptographic keys become more popular, social recovery or reissuance of keys increases in importance. Such systems are inherently empowering to users but safeguarding keys is a hard problem.

We focus on the social recovery of control of an identifier. There are several techniques to re-assert control over identifiers including key recovery and issuance of a new key. In many situations it is preferrable to establish a new key than recover the old one.

We propose a rubrik for evaluating such schemes, and give a brief overview of possible schemes to consider.

Adrian Gropper, Michael Shea, Martin Riedel

The Self-Sovereign Identity (SSI) community has described several groundbreaking properties that arise from the adoption of its principles. Governance, as in business and financing structure, is arguably the most challenging of these properties, captured succinctly by Shoshana Zuboff as: "Who decides? Who decides who decides?" However, even though the technology has matured greatly over recent years, bootstrapping an SSI product within the existing capitalistic market environment is complicated and has not been achieved at scale within any functional domain.

A RWOT6 paper explored the challenges to a sustainable commons. In this paper, we apply the SWOT framework (Strengths, Weaknesses, Opportunities, and Threats) to identify potential paths to adoption. For example, what are the general implications of introducing a credential holder into existing issuer/verifier relationships? Our analysis leads to cooperative (in the legal sense) governance with focus on the holder (the wallet) as the key innovation, since issuers and verifiers already exist. The healthcare industry is used as an example.

Brent Zundel, Timo Welde, Mike Varley, Marton Csernai

This paper consists of objectives, use cases and observations around a "peer" DID method, based off a draft specification submitted to RWOT8. The following abstract is from that draft specification, located here.

"This DID method spec conforms to the requirements in the DID specification currently published by the W3C Credentials Community Group. For more information about DIDs and DID method specifications, please see the DID Primer and DID Spec.

"This document defines a 'peer' DID Method that can be used independent of any source of truth external to the relationship in which it is used. The method is cheap, fast, scalable, and secure. It is suitable for most private relationships between people, organizations, and IoT things. DIDs associated with this method are also promotable to a more public context. That is, blockchains with different DID methods can graft some or all peer DIDs into their namespace(s) with no risk of accidental collision, and no loss of meaning. Peer DID will have a recognizable and consistent identity in all of them."

Joe Andrieu,Eric Welton, Will Abramson, Ganesh Annan

We set out to create a JavaScript native interpretation of Jupyter https://jupyter.org/, a notebook for both static narrative and interactive code.

Ivan Basart, Egido Casati, Michael B. Jones, Andrés Junge, David Stark, Oliver Terbu, and Dmitri Zagidulin

Proving control of a DID requires proving ownership of a private key corresponding to a public key for the DID. Of course, this could be done with a new DID-specifc protocol. However, standard protocols for proving ownership of a public/private key pair already exist.

This paper describes how to reuse the Self-Issued OpenID Connect (SIOP) specifcation and related protocol messages to prove control of a DID. It describes both why and how to do this. Related topics, such as release of claims, are also touched upon.

Complete Rebooting the Web of Trust Listing

A different repository is available for each of the Rebooting the Web of Trust design workshops:

License

All of the contents of this directory are licensed Creative Commons CC-BY their contributors.

rwot8-barcelona's People

Contributors

albertoelias avatar alexpuig avatar ameba23 avatar benjibeta avatar boymanjor avatar brentzundel avatar bs-io avatar bumblefudge avatar christophera avatar creatornader avatar csmarc avatar cstoecker avatar dmitrizagidulin avatar drabiv avatar hankchiuhc avatar jandrieu avatar keutmann avatar kimdhamilton avatar mavarley avatar qubeo avatar rado0x54 avatar rhiaro avatar satazor avatar sheldrake avatar shigeya avatar shirikatsu avatar stonematt avatar talltree avatar vongohren avatar wip-abramson avatar

Stargazers

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

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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rwot8-barcelona's Issues

[DID Content References] "!" notation is problematic for a DID Resolver

Consider the following single "Hashlink" example from the paper https://github.com/WebOfTrustInfo/rwot8-barcelona/blob/master/topics-and-advance-readings/DID-Content-References.md ...

did:sov:21tDAKCERh95uGgKbJNHYp!hl:zQmWvQxTqbG2Z9HPJgG57jjwR154cKhbtJenbyYTWkjgF3e

  1. How is a DID Resolver for the "did:sov:" DID method supposed to know what type of JSON document to return for the identifier 21tDAKCERh95uGgKbJNHYp (within the "did:sov:` DID method context)?

Clearly the data for the object as serialized and stored on the ledger will know its object type (via some sort of type or subtype attribute) ...i.e. whether the corresponding object is a DID Document, a Hashlink object, etc.

  1. What if 21tDAKCERh95uGgKbJNHYp is the id for a DID Document and the Resolver is asked to apply the "!" operator to a DID Document instead of an intended Hashlink object? Does the Resolver return some sort of "type mismatch" error diagnostic to the caller?

CC: @talltree @peacekeeper

[Understanding DIDs in Greater Depth] Missing annotation in the draft DID ABNF

@talltree In Appendix A of https://github.com/WebOfTrustInfo/rwot8-barcelona/blob/master/draft-documents/understanding-dids-in-greater-depth.md#appendix-a-anbf-for-dids-and-did-urls , there is some sort of "syntax" tag that is missing from the beginning of the draft ABNF specification (to make it machine processable/validateable). See the first (light gray) line in the following:

; !syntax("abnf")
did                       = "did:" method ":" method-specific-idstring
method                    = 1*methodchar
methodchar                = %x61-7A / DIGIT
method-specific-idstring  = idstring *( ":" idstring )
idstring                  = 1*idchar
idchar                    = ALPHA / DIGIT / "." / "-"
did-url                   = did [ did-relative-ref ]
did-relative-ref          = did-fragment-ref / did-content-ref / did-service-ref
did-fragment-ref          = "#" fragment
did-content-ref           = "!" content-id                                                  
content-id                = content-idstring *( ":" content-idstring )                      
content-idstring          = 1*uri-safe-char                                                 
uri-safe-char             = idchar / "_" / pct-encoded
did-service-ref           = "$" service-id [ path-abempty ] [ "?" query ] [ "#" fragment ]
service-id                = service-idstring *( ":" service-idstring )
service-idstring          = 1*uri-safe-char
did-reference             = did-url / did-relative-ref

Here's an example: http://arran.fi.muni.cz/bnfparser2/share/rfc4234-B.1.abnf

[DID Data Object References] I believe the proposed additions to the proposed ABNF are superfluous

Reference: https://github.com/WebOfTrustInfo/rwot8-barcelona/blob/master/topics-and-advance-readings/DID-Data-Object-References.md

@talltree @ken-ebert I believe the proposed additions to the proposed ABNF (i.e. the "!" and "$" operators) are superfluous.

The current proposed ABNF specification (listed in the paper) already includes the "#" operator for deferencing any component of a DID Document that has a "#" anchor in it's id attribute. See use case 2a in w3c-ccg/did-resolution#32 for an example as well as Example D in w3c-ccg/did-spec#170 (comment)

This might similarly lead us to question why is the ";" operator is needed if we have the "#" operator? I think having both makes sense because the ";" operator can have a very different semantic meaning: see use cases 2b, 2c and 2d in w3c-ccg/did-resolution#32

Conclusion: This paper doesn't establish a strong rationale for adding "!" and "$" as new operators in DID ABNF grammar ...(apologies for sounded so brutal) but they appear to be "syntactic sugar" with no additional semantic value above what the "#" operator already provides.

As I state at the bottom of w3c-ccg/did-resolution#32 (comment),

The DID ABNF is more than a syntax specification ...more than a grammar...

The DID ABNF is an algebra for working with the DID Document associated with a DID.

Let's use it that way. We don't need to invent anything new or extra.

That is, we only need one "+" sign in our algebra (figuratively speaking) (aka "#" operator), not 3 IMO. Just like "+" is overloaded for integers, real numbers, strings, etc. in ordinary algebra/arithmetic, the "#" operator can similarly be applied to any component of a DID Document that has an id attribute containing a "#" anchor.

[DID Namespace Records] DID Methods are already able to support this capability, n'est pas?

Reference: https://github.com/WebOfTrustInfo/rwot8-barcelona/blob/master/topics-and-advance-readings/did-namespace-records.md

@talltree For example, it is already permissible for a DID method to define second, third, etc. level of ":" separated names as part of the method-specific-idstring as described the latest proposed DID Base ABNF Syntax.

e.g. did:xyz:testnet:1234abcd

This paper should be updated to document and acknowledge this current state capability.

Is this intent of this paper to propose a universal solution across all DID methods?

Issues

  1. I believe there is a strong probability that the proposed concepts of DID namespaces will create confudsion with the current state DID method concept.

  2. For each level, it will be necessary to state which DID Resolver is to be used to resolve which proposed DID namespace? There is an existing proposal for querying the ("first level") methods within a particular DID Resolver - see use cases 6, 7, 8 in w3c-ccg/did-resolution#32. In addition, use case 10 can be used to query second, third, etc. level names within a DID method within the scope of a particular DID resolver.

  3. Is this proposal necessary? ...or can this be requirement be "resolved" by clarifying the existing DID resolution use cases? That is, is:
    a) new, more complex DID Document construct needed? or...
    b) can be addressed using a capability within DID Resolution?
    I believe it can be addressed using the latter.

I believe we should strive to keep the DID Document algebra as concise as possible.

[Understanding DIDs in Greater Depth] Missing declarations for ALPHA and DIGIT in DID ABNF

Reference: email from the maintainers of bnfparser2...

From: Václav Vacek [email protected]
Sent: March 7, 2019 10:24 AM
To: Michael Herman (Parallelspace) [email protected]
Cc: Vojtech Rehak [email protected]; [email protected]
Subject: Re: FW: http://arran.fi.muni.cz/bnfparser2/ is failing with a web server error

Hi Michael,
please let me take over from Vojtěch - I am the author of the Bachelor thesis on the parser.

I could not reproduce the error with (probably) the same input as you but found the problem anyway - your grammar is missing the ABNF core rules (ALPHA, DIGIT in this case). Having copied these rules to your grammar, I could successfully parse the string:
ALPHA = %x41-5A / %x61-7A ; A-Z / a-z
DIGIT = %x30-39 ; 0-9

(As a side note, one should be able to link the core rules in the GUI - it is the last checkbox above the file upload - but it seems not to work properly. I hope the workaround is not too messy. :-) The corrected/augmented grammar file is attached.

As a bonus, I have a secret tip. Technically, it is documented somewhere in the thesis BUT...

If you put a "@" behind a nonterminal on the right side of a rule, the substrings generated by this nonterminal will be marked in the output:
did = "did:" method@ ":" method-specific-idstring

Hope this helps! And thanks for trying the parser!

Best regards
Václav Vacek

Update & Confirm Abstracts & #Hashtags in /README.md

We will be promoting the advance topic readings to attract our remaining set of attendees, and this year we are trying to organize them a bit better to allow newcomers to know a bit more about what each is about.

Could you please read and update the abstract and #hashtags we initially created for your paper at https://github.com/WebOfTrustInfo/rwot8-barcelona/README.md

In addition, if you feel your paper belongs in a different major category, or needs a new category, please feel free to change it.

I have set up everyone who submitted topic papers as a collaborator for this repo, which means you can use the web interface to edit the /README.md file. To prevent PR conflicts, it may be easier to accept your collaborator status, edit quickly and submit your changes directly, rather than do a PR.

If you can do this by Wednesday it would be appreciated, as we are sending another mailing out soon and some promotions on social networks.

@alexpuig, @sandhawke, @rhiaro, @AlbertoElias, @dmitrizagidulin, @satazor, @stonematt, @ferranrego, @keutmann, @RieksJ, @brentzundel, @airoak, @shigeya, @burnburn, @cstoecker, @hackylawyER, @dlamers, @awoie, @creatornader, @sheldrake, @wip-abramson, @talltree, @Drabiv, @nalamillo, @benjibeta, @joaosantos15, @karolinkas, @mavarley, @ameba23, @msporny, @davidastark, @bford, @peacekeeper, @agropper, @andrewhughes3000, @luca-boldrin, @bumblefudge

Thanks!

[Universal DID Operations] Issues/comments related to the proposed HTTP bindings

Reference: https://github.com/WebOfTrustInfo/rwot8-barcelona/blob/master/topics-and-advance-readings/Universal-DID-Operations.md

@peacekeeper I've documented several DID resolution use cases (and their proposed HTTP bindings) here: w3c-ccg/did-resolution#32

Issues

  1. To be complete, I recommend that your paper also highlight the current state with respect to DID Document resolution and dereferencing because there represent good patterns for the additional capabilities you are proposing.
  2. Although your proposal make sense for a programmatic API, I feel strongly that the proposed HTTP bindings are much more complex that they need to be or should be.
    I believe we should strive to keep the DID Document algebra as concise as possible.
  3. For example, the method and options parameters for the create() method should be simply encoded into a single did parameter IMO. Let's not create additional, more complex syntax where it is not necessary. See w3c-ccg/did-resolution#32 (comment)

[Using Immutable Data Object] Can Overlays be used to support Mappings, etc?

Reference: https://github.com/WebOfTrustInfo/rwot8-barcelona/blob/master/topics-and-advance-readings/Using-Immutable-Data-Objects.md#mapping

@ken-ebert Is it possible to use the concept of Overlays to support Mappings as well as some of the other concepts you discuss in this paper? ...e.g. for example, by adding a Mapping card to the Overlay card stack?

Overlay card stack

Reference: Appendix F - Indy Overlays Architecture Reference Model (OVERLAYS ARM)

[Understanding DIDs in Greater Depth] What is the justification for the new "$" and "!" operators?

@talltree What is the justification for the new

  1. "$" operator?
  2. "!" operator?

"$" is particularly problematic because "$" is already in common usage in many accepted international specifications for URLs:

Reference:

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.