29–30 June 2016, MIT Media Lab, Cambridge, Massachusetts

The World Wide Web Consortium (W3C) convened its first workshop on blockchains on 29–30 June 2016 at the MIT Media Lab in Cambridge, Massachusetts, sponsored by NTT and Blockstream, with additional funding from other W3C Members.

This workshop was an initial investigation into the technology around blockchains (or decentralized ledgers), to explore whether any aspects of blockchains were ripe for standardization. The workshop focused on aspects not related to payments, a topic belonging to W3C's existing Web Payments activity, but instead on basic infrastructure for enabling and benefiting from blockchains in a Web-facing context.

If you're interested in participating in blockchain incubation and discussion at W3C, you can join the W3C Blockchain Community Group. If you'd like to continue the conversation about this or future W3C blockchain workshops, you can subscribe to the public-blockchain-workshop mailing list.

Executive Summary This workshop attracted over 100 participants, increased by popular demand over the original goal of 60, and consisted of a mix of newcomers to W3C and existing W3C members. The majority of participants were not previously active in W3C, and many had never participated in any standardization activity. The participants were largely from the existing blockchain communities and projects or from companies offering blockchain services, bringing new expertise, perspectives, and insights into the discussion. The organizers strove to have representation by different classes of stakeholders within the larger blockchain community, loosely organized around technology stacks and applications. The technology stacks include Bitcoin, Ethereum, Hyperledger, and others. Applications include identity and asset management, smart contracts, and infrastructure around a decentralized Web (IPFS). The workshop was deliberately aimed at non-payment uses for blockchains, since W3C already has an existing Web Payments activity where payments-related technology is discussed. Some of the discussions were open-ended and pertained largely to technical issues and use cases within the blockchain community, but for the most part, the participants were interested in and motivated by possible standardization of some aspects of blockchains. Throughout the two-day workshop, the services of a graphic design facilitator were used to visually document the discussions. What follows is a detailed summary.

Opening Remarks Doug Schepers introduced the workshop, talked about W3C's interest in blockchains, and detailed the format and general topics for the event. Wendy Seltzer summarized W3C's open standards process, and discussed current technical work that might be relevant to blockchain, including authentication, privacy, security, cryptography, and payments. (slides)

Keynote: Arvind Narayanan The keynote/conversation starter was delivered by Arvind Narayanan, an Assistant Professor of Computer Science at Princeton, who leads a research team investigating the security, anonymity, and stability of cryptocurrencies as well as novel applications of blockchains. Narayanan co-created an online course and textbook on Bitcoin and cryptocurrency technologies, and also leads the Princeton Web Transparency and Accountability project to uncover how companies collect and use personal information. Narayanan's other research interests include decentralization, information privacy and security, and technology policy. Narayanan spoke about the history and impact of Bitcoin and blockchain, about the distinctions between public and private blockchains, about security concerns, and about the need to temper expectations for technical solutions to social problems. He concluded with the following: Standardization can enable new applications! – Power of the blockchain + reach of the web. A way to avoid human-crypto interaction.

A way to keep clients thin and dumb. Which blockchain? It matters. Standardization process is a chance to stop and think about social problems & tech. Narayanan's full slide deck is available for review.

Topic Session: Identity The session on identity addressed various aspects of personal identity, authentication, and authorization.

Topic Session: Provenance The session on provenance addressed various aspects of asset management, legal frameworks, and managing resources via the blockchain.

Topic Session: Blockchain Primitives and the Kitchen Sink The final breakout session included many different topics, ranging from blockchain primitives to Internet of Things Notably, Arnaud Le Hors, IBM's representative on the Hyperledger project, cautioned that bacause the blockchain landscape is still under rapid development, any related Web standards should be at the component level and should keep pace with implementations.

Commitments The final session had three phases: Proposals: participants wrote concrete ideas for future work on large sticky-pads, which were attached to the wall. Voting: each participant was given 3 stickers: pink for “committed to work on it”; green for ”want to see this done”; and yellow for “serious warning”. Each participant then voted among all of the proposals with only these 3 stickers, forcing them to prioritize. Evaluation: the facilitators (Christopher Allen and Sita Magnusson) held a public discussion of each proposal, merging and summarizing proposals where appropriate, discerning which proposals had the most support, and moving each proposal into one of three status categories: W3C Specification, Needs further discussion, or Elsewhere. W3C Specification These are technologies that the group felt appeared mature enough to develop as technical specifications or to begin incubation in a W3C Community Group for possible adoption on the W3C Recommendation (standards) track. Blockchain ID Auth contributors: Daniel Buchner (Microsoft), Ryan Shea (Blockstack Labs), Laszlo Gombos (Samsung), Mahesh Kulkarni (Samsung) summary: Begin discussions with Edge and Samsung browser teams about an experimental prototype

Investigate required spec additions to leverage blockchain identities with WebAuth post-workshop progress report: Once the first version of the open source blockchain identity layer is up on Azure (release imminent), we can turn our attention to experimenting with cross-org integrations and standards. One high-value standard is the augmentation of the Web Auth spec to allow users to login via blockchain identity keys. The Web Auth flow is not far off from the exiting blockchain identity verification flow, so this should be less difficult than most of the blockchain-centric browser integrations discussed at the W3C blockchain event. I will be meeting with the Samsung folks just as soon as we have the new version of the identity registration/resolution layer (Blockstack) up on Azure. From there we can determine timelines and a more precise plan for the work required to do this. We're moving to finalize a public, open foundation that will serve as a hub for development of the open source blockchain-based identity components we need to support the ecosystem. The intent is to welcome any and all developers, groups, and organizations (including those listed here) to participate in transparent collaboration toward a common goal. We'll have more public information available in September. – Daniel Buchner (Microsoft) Proof and Verification contributors: Rick Dudley (Eris Industries), Wayne Vaughan (Tierion), Ethan Buchman (Tendermint), Jae Kwon (Tendermint) summary: Publish Chainpoint 2.0

Formalize Tendermint SPV (Simple Payment Verification)

Generalize to others (maybe using IPLD, DEX, etc.) post-workshop progress reports: Proof-of-Existence is a general method in blockchains for proving the existence of a transaction in the blockchain, or even the value of the blockchain application state. As an example in the former case, proof-of-existence can be used to prove the existence of an unspent transaction output (UTXO) in Bitcoin, but it cannot be used to prove that the transaction had not been spent. As an example in the latter case, proof-of-existence can be used for blockchain applications that support Merkle-ized search trees (such as Ethereum's Patricia Trie) to prove the current value of a key. The goal is to create a standardize proof-of-existence data structure that works for all popular consensus systems and all popular Merkle-ized search trees. The consensus systems to support: Proof-of-work

Tendermint BFT

other? The Merkle-ized search trees: Bitcoin's UTXO Merkle tree

Ethereum's Patricia Trie

Tendermint's IAVL Tree and Simple Tree

IPLD The resulting data structure includes both a proof of block-hash along with a Merkle proof to the transaction or key-value pair that Merkle-izes to the aforementioned block-hash. Some of the formalization is already done for Atom (a proposed blockchain staking token), via Inter-blockchain Communication (IBC), which is about using proof-of-existence between two Tendermint ledgers. – Jae Kwon (Tendermint) We're just a few days away from launching Chainpoint 2.0. We're going to publish the updated information to http://github.com/chainpoint. We're also going to launch Chainpoint.org. Some tools that support the standard exist at http://github.com/tierion. For several months we've been working on Chainpoint 2.0 with Manu Spoorny of the W3C Verifiable Claims Workgroup as well as Christopher Allen. Chainpoint is a standard for anchoring data to the blockchain and generating blockchain receipts. Each receipt contains the information needed to verify the data without relying on a trusted third party. Our mission is to transform the blockchain into a global platform for verifying the integrity and authenticity of any data, file, or business process. – Wayne Vaughan (Tierion) IPLD and Multiformats contributors: Rick Dudley (Eris Industries), Juan Benet (IPFS Project) summary: Call for people to form a working group (W3C or IETF)

Decide home for each sub-protocol (W3C or IETF)

Write spec drafts 2 (draft 1 ready)

Commit to work tasks and pipeline so community can contribute

Publish "IPLD Playground" (IPLD.io)

Publish "Multiformats Playground" (Multiformat.io) post-workshop progress report: multiformats is a suite of self-describing formats to increase interoperability, reduce the cost of upgrading protocols, and enable choice in contentious design spaces. A design goal is to enable systems to treat values opaquely whenever possible, and make no assumptions, so that other systems, including future iterations, may interoperate cleanly and be deployed cheaply. Addresses: "Never going to change" considered harmful. Most relevant multiformats: multihash is a format that self-describes cryptographic hash function outputs, so that systems can upgrade cleanly after cryptographic functions break. This is an important contribution, that many projects are adopting. Multihash is ready to be standardized, either through W3C or IETF. (IETF may be better candidate, as it is very low level). (Important note: Multihash is a time sensitive thing. There are many projects wanting to adopt it right now and are pressing for a standard spec to be written)

is a format that self-describes cryptographic hash function outputs, so that systems can upgrade cleanly after cryptographic functions break. This is an important contribution, that many projects are adopting. Multihash is ready to be standardized, either through W3C or IETF. (IETF may be better candidate, as it is very low level). multiaddr is a format that self-describes network addresses, so that distributed systems (like the web, blockchains, peer-to-peer systems) can address nodes in the network across a large range of network transports. Multiaddr is particularly useful in browsers and other "exotic transport" environments, wherever "opening up a publicly reachable TCP/IPv4 address" is not an easy option.

is a format that self-describes network addresses, so that distributed systems (like the web, blockchains, peer-to-peer systems) can address nodes in the network across a large range of network transports. Multiaddr is particularly useful in browsers and other "exotic transport" environments, wherever "opening up a publicly reachable TCP/IPv4 address" is not an easy option. multicodec is a format that self-describes serialized data, encodings, and other formats. This enables systems to address and manipulate opaque content they may not know how to use. Similar in spirit and compatible with MimeTypes. Very useful to bridge and link across blockchains.

is a format that self-describes serialized data, encodings, and other formats. This enables systems to address and manipulate opaque content they may not know how to use. Similar in spirit and compatible with MimeTypes. Very useful to bridge and link across blockchains. multikey is a format that self-describes cryptographic keys, proofs, and other kinds of cryptographic outputs. Multikey helps different cryptosystems (eg different blockchains) link, look into, and understand each others algorithm choices, key material, and other cryptographic artifacts. Actionables: Multihash is ready for standardization, is very small, and would be a great candidate to start with. It is also a very time sensitive thing. Next steps are to find a home (W3C or IETF?) write an W3C or IETF style draft, and get it reviewed.

Multiformats as a project is being established (website, documentation, clean repos in own org, instead of IPFS org, more implementations, etc)

Publish mutliformats.io

Publish Multihash Playground IPLD is a new interchange format for hash-linked data structures. Think of it like Web Principles meet Blockchains. It can enable massive interoperability between cryptosystems, including blockchains, IPFS, git, bittorrent, and more. IPLD is being developed by the IPFS project, as a standalone standard and tooling. IPLD is a "thin waist" protocol, and can bring blockchain links to the web in a very clean way. It is interoperable natively with all the blockchains (btc, eth, ...), with IPFS, git, bittorrent, and more. Consider links like: We have these and other versions of links working: Bitcoin Txn : ipld:/<bitcoin-block-hash>/tx/10/outputs/0 or ipld:/<bitcoin-txn-hash>/10/outputs/0

: ipld:/<bitcoin-block-hash>/tx/10/outputs/0 or ipld:/<bitcoin-txn-hash>/10/outputs/0 Ethereum Txn : ipld:/<ethereum-block-hash>/previous/previous/tx/10/outputs/0

: ipld:/<ethereum-block-hash>/previous/previous/tx/10/outputs/0 IPFS files : ipld:/<file-hash>/foo/bar/baz.png

: ipld:/<file-hash>/foo/bar/baz.png git commits: ipld:/<commit-hash>/parent/parent/tree/foo/bar/baz.png IPLD is already adopted by several organizations, and in the long term they need more formal standards. Several research groups are also adopting and using IPLD. Momentum is growing fast! Actionables: IPLD belongs in W3C. Speak with W3C about standardizing IPLD.

Write a W3C draft of the IPLD spec.

Write a W3C draft for CBOR-LD (JSON-LD meets CBOR, which is useful for IPLD)

Publish ipld.io website

Publish IPLD Playground (like JSON-LD playground) – Juan Benet (IPFS Project) LibP2P contributors: Rick Dudley (Eris Industries), Juan Benet (IPFS Project) summary: Gather interested people in this (and other) groups

Finish writing current revision of protocol interfaces

Create a sub-protocol completeness pipeline (specs, implementations, cross-implementation tests, playground)

Publishing LibP2P 1.0 for awareness and docs

Figure out working group home and trajectory (involve IETF?) post-workshop progress report: libp2p is a modular networking library for peer-to-peer protocols. It solves many common problems in small pieces, so that systems can use only what they strictly need. libp2p has been extracted from the IPFS project, and now forms the basis of several other peer-to-peer protocols. It has many sub-pieces, from making exotic network Transports usable in p2p software, to making it possible to connect nodes in the browser and deployment scenarios, to common modules for Peer Discovery, Peer Routing, Content Routing, Pub/Sub, and even Consensus. It is getting adoption beyond IPFS and it would be very useful to start a working group to formally standardize interfaces. This will help larger organizations trust the standards, and has been explicitly requested. Most relevant interfaces: Transports: many blockchains are not able to be used in some environments (like browsers) because of connectivity problems. libp2p transports can make it possible or much easier to connect nodes across exotic deployments (WebRTC, Websockets, QUIC, SCTP, Bluetooth, Tor, i2p, ...)

many blockchains are not able to be used in some environments (like browsers) because of connectivity problems. libp2p transports can make it possible or much easier to connect nodes across exotic deployments (WebRTC, Websockets, QUIC, SCTP, Bluetooth, Tor, i2p, ...) Consensus: many blockchains, or systems building on or related to blockchains, require clean interfaces around consensus. This would enable many applications to swap out the low-level implementation of a consensus protocol, and make it easier to build interoperable applications. (Eg have applications that work with Ethereum, Bitcoin, Tendermint, etc.) Actionables: Find a standardization home -- IETF or W3C? and start a working group.

Identify and start drafting the most relevant specs to blockchain groups. – Juan Benet (IPFS Project) Needs Further Discussion These were promising ideas that the group felt need further conversation to see if they can be developed into specifications, including identifying related or competing work and finding points of integration. Digital Assets contributors: Kenji Saito (Keio University, BlockchainHub Inc), Tarique A. Bhuiyan (Hashkloud) post-workshop progress reports: see the Blockchain Digital Assets Community Group Key Management Outside the Browser contributors: Won-Beom Kim 김원범 (Blocko Inc) summary: Identify existing standards

Discuss use cases post-workshop progress report: Blockchain key management outside browser is related to the position statement I submitted. I'm looking into a key-management scheme for blockchain built upon existing FIDO or Web Authentication authenticator model (https://www.w3.org/TR/webauthn/#authenticator-model.) Since Web Auth authenticators are used for safe-keeping private keys and generating signatures, the same design and principles can facilitate interactions between user owned-private keys and blockchain-based services. I'm working with FIDO solution providers (including Samsung) to design and demonstrate the scheme leveraging their own FIDO authenticator implementations. After we get some results, I would like to publish my designs and ideas on blockchain community group to gather traction. I'm expecting Mountie Lee to help me in the process. – Won-Beom Kim 김원범 (Blocko Inc) Smart Signatures contributors: Adrian Hope-Bailie (Ripple), Evan Schwartz (Ripple), Christopher Allen (Blockstream), Peter Todd, Ryan Shea (Blockstack Labs) summary: Publishing final draft of white paper in two weeks

DEX initial spec Best Practices Regarding Security contributors: Joshua Daniel (BT), Gladis Filchtiner (Mobile Technology Team), Géry Ducatel (BT) summary: Track other communities and standards bodies to understand how it contributes to security standards

Define security risk/requirement profiles

Globally distributed testnets for attacks and tests Demo contributors: Rick Dudley (Eris Industries), Adrian Gropper (Patient Privacy Rights), Chris Tse (Monegraph) summary: WebAuth

Verified Claims

Blockchain ID

Blockchain receipts

OAuth2/ UMA Auth post-workshop progress report: Standards for Self-Sovereign Support Technology Discussion A standards-based personal agent combines emerging W3C, blockchain, and OAuth standards in a way that can be owned and completely controlled by a single individual. WebAuthn and Verified Claims, Blockchain ID and Blockchain transaction receipts, and an OAuth-based personal authorization server will be integrated in an example high-value transaction such as a physician writing a prescription. Some details are in the short white paper, “Self-Sovereign Support Technologies and Decentralized ID”. An updated version of the paper describing the value proposition of the Demo has been published as “Powering the Physician-Patient Relationship with HIE of One Blockchain Health IT”. – Adrian Gropper (Patient Privacy Rights) Blockchain Vocabularies / Blockchain Voltron contributors: Rick Dudley (Eris Industries), Manu Sporny (Digital Bazaar), Allan Third (The Open University) summary: Begin discussions / identify community

Draft vocabulary?

Initial scoping – ID subvocabs post-workshop progress reports: My take on the goal is to document a common data model and data vocabulary for a large subset of Blockchain technologies. Provide one or more syntaxes for expressing this data model so that it will be possible for Blockchains to enable reads and writes via standards-track messages and protocols. We are working on a draft vocabulary in the Web Payments Community Group, and a data model spec. There is also this presentation from the Blockchain workshop. But, that's only one of the potential inputs and I hesitate to distribute this stuff that broadly to make sure that people don't think that the stuff above is exactly what we'll be working on as a group. We still haven't convened to figure that out. – Manu Sporny (Digital Bazaar) Here at the Open University, we're currently working on semantic indexing of blockchains with the aim of exposing blockchain contents according to Linked Data principles, including, e.g, URL addressability, via a draft vocabulary (BLONDiE) from our colleagues at the University of Bonn. We’re keen to convene the relevant community to figure out how the various inputs can be brought together - not to standardise early, but at least to make sure that when the time comes to standardise, we haven’t each headed off in directions which are too disparate. – Allan Third (The Open University) Standardize Interface of Consensus Logic contributors: Ethan Buchman (Tendermint) Elsewhere These were ideas that the group felt might be mature enough for specification, but may fit better at other standards organizations such as IETF. Interledger contributors: Adrian Hope-Bailie (Ripple), Evan Schwartz (Ripple) post-workshop progress reports: see the Interledger Payments Community Group Note that there were many other topics discussed at the workshop, and this session focused only on those topics that participants proposed as possible standards.

Conclusions Feedback has been very positive, and we expect to continue the conversation and consider various efforts toward incubation. We encourage interested people and organizations to join the W3C Blockchain Community Group to keep informed about future developments. We are expanding the scope of that group to include coordination for our various activities around blockchains, including links to related specific-topic community groups, such as the new Blockchain Digital Assets Community Group that was formed as a result of the workshop. For more consideration on next steps, see the blog post, “Building Blocks to Blockchains”.

Exercise: Collaboration As part of the warmup on the first day, just after the W3C introductions, Christopher Allen organized a meet-and-greet exercise, where each table tackled the question of the “secret sauce” of collaboration. Each participant recounted a story of a successful collaboration, and collectively, the table decided on a single “lesson learned”, which was reported back to the workshop as a whole. This exercise formed the basis for the ”topic table and report” format used through the rest of the two days.

Thanks! The organizers acknowledge with deep gratitute the efforts of those who helped with the organization and execution of this workshop. Notably, Susan Westhaver, W3C's meeting planner, was crucial to the success of the logistics planning and coordination, and thoughtfully and diligently led all of the background event work with other W3C team including Amy van der Hiel and Maria Auday; Susan and Veronica Thom helped keep the planning timeline on track, as well. Lots of W3C team contributed in important ways: Amy Guy stepped up to coordinate the scribing of minutes by various volunteers, including W3C's Sandro Hawke, Jeff Jaffe, Alan Bird, and Wendy Seltzer, and the tireless and lightning fingers of Bryan Bishop; Jeff Jaffe suggested delving into blockchain initially, and Wendy Seltzer help guide my planning steps; and Harry Halpin was crucial in providing technical background and introductions throughout the planning stages to bring the right people to the event; and Susan Westhaver, Ralph Swick, Amy van der Hiel, Maria Auday, Tim Berners-Lee, and other W3C team (among numerous workshop attendees) helped set up and clean up after the event. The chairs and the program committee each provided unique and crucial planning and technical guidance at all stages of planning and during the event, and many other blockchain experts generously provided insight through conversations leading up to the event. The MIT Media Lab was an excellent venue, generously provided by Professor Sandy Pentland, secured by the great initiative of Dazza Greenwood and the logistics and details of Nicole Freedman, along with help from Neha Narula of MIT's Digital Currency Initiative (DCI). Dazza Greenwood was a flexible planning partner with enormous initative and imagination, who provided video webinars leading up the event and live video streams throughout the workshop. The event wouldn't have happened without him. Neha Narula brought in many participants from MIT Media Lab and DCI and provided keen and directed technical guidance. Daniel Buchner helped drive the topics and lead coordinated discussions in and out of the event to lead to productive opportunities and outcomes. Christopher Allen went above and beyond for the event, effectively an informal chair; he helped with the schedule and to define, explain, and facilitate the event format, which was a great success, and he suggested and secured Blockstream sponsorship for the exceptional graphical facilitation by Sita Magnuson from dpict (who provided the images in this report). Marta Piekarska was a joyous and engaging facilitator who kept the topic table discussions on time and productive throughout the event. Bailey Reutzel, as an independent financial journalist with a long history and good technical knowledge of blockchains, participated in the discussions and gave an excellent summary of the event in the closing remarks. She also wrote and published two articles about the workshop in trade news sites. NTT provided critical financial support and technical contributions that allowed the event to occur and to permit its expansion from 60 attendees to over 100, as well as showing leadership in their implementations and demos. Many other participants volunteered to step up to additional tasks, including Gladis Filchtiner and Rick Dudley, and many others did impromptu tasks, including the scribes, facilicators, and reporters for the topic tables. For all the unnamed people not listed here, we thank you. And finally, the event participants were the soul of the event, and their engagement and willingness to have productive fun within the format of the workshop (not to mention travelling long distances to attend) made it a lively and positive event.