-
Notifications
You must be signed in to change notification settings - Fork 114
Q-and-A #999
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
henkvancann
wants to merge
99
commits into
decentralized-identity:master
Choose a base branch
from
henkvancann:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Q-and-A #999
Changes from 73 commits
Commits
Show all changes
99 commits
Select commit
Hold shift + click to select a range
753e936
initial draft
henkvancann d53f346
resolved a few copy errors from source
henkvancann 9e120ca
logo added and external dependencies of Sidetree?
henkvancann 776a801
delta-based and BX in Sidetree"
henkvancann a15a5f3
JWK explained
henkvancann 91f6600
Jdeterministic ruleset explained
henkvancann 3c9c078
privacy preserving GPDR proof
henkvancann 1e7b95b
difference between Sidetree and blockchain
henkvancann e95725a
Trust-over-IP
henkvancann 79db072
few general questions answered
henkvancann d704fd5
small typos corrected
henkvancann 0aeb7a8
TOC added try 1
henkvancann ce7e5fe
TOC added try 2
henkvancann f1dba68
TOC added try 3
henkvancann 96e29c6
added missing image
henkvancann 34438aa
bootstrap Sidetree, pruned or charded?
henkvancann 1ee129b
a few typos corrected?
henkvancann 291df68
Merge branch 'master' of https://github.com/decentralized-identity/si…
henkvancann 3143573
blockchain argumentation and bitcoin argumentation added
henkvancann d168f8f
various questions from WBD 321 podcast
henkvancann d57d3f4
operational instructions and consequences of contributing to Sidetree
henkvancann 18a7a79
more nuanced response to 10 principles of Chris Allen
henkvancann 388c0cb
programming languages Sidetree
henkvancann 9002304
layer 1 implementations diversity bitcoin , ethereum, hyperledger
henkvancann 18af579
Answered the course or webinar available? question based on input in …
henkvancann 5186cad
Element-DID playground based on Sidetree
henkvancann 08666e9
Merge branch 'master' of https://github.com/decentralized-identity/si…
henkvancann 447543c
Merge branch 'master' of https://github.com/decentralized-identity/si…
henkvancann 3532ec1
split operation to simplify the Q&A, glossary seperate
henkvancann 5ba8670
Section ION added to relate Sidetree and ION
henkvancann b406c61
All questions (amd answers) ranked in categories: easy, advanced, pro…
henkvancann 7a2dd7a
Copy paste error corrected
henkvancann 917177a
Q is a Sidetree identifier public?+ A
henkvancann 2b7d048
renamed picture and corrected reference to it
henkvancann b832b24
Linked to abbrevations in Glossary from Q-and-A
henkvancann 412fc7b
Added history to When ION question and several other question on twit…
henkvancann 90d70db
several questions on twitter answered by Daniele - batch 2
henkvancann 7b0f1b5
several questions on twitter answered by Daniele - batch 3
henkvancann cb3592d
repaired a link to spec directory
henkvancann f88d0d1
repaired another link to spec directory
henkvancann c9aede9
restored links to spec directory DIF
henkvancann a2af94e
Interlinked Q-and-A of ION and Sidetree
henkvancann 38c0dec
obsolete images deleted
henkvancann 19191d7
internal doc anchor links repaired
henkvancann 164fe59
refrence made to the terminology section
henkvancann df9f201
Q7A added : What is the relationship between Sidetee and DIDs? + glos…
henkvancann 1cf55a1
Merge branch 'master' of https://github.com/decentralized-identity/si…
henkvancann 153ce7e
Q&A added: What's the difference between Sidetree and blockchain? and…
henkvancann 61f588d
Q&A added: Do I need a wallet for Sidetree? and a few irrelevant Q's …
henkvancann 731d18a
Q&A added: How can I backup the Sidetree identifiers in my wallet
henkvancann 593aae2
Glossary item added: Merkle tree
henkvancann 5d9158e
Update docs/Glossary.md
henkvancann a1b25c7
Update docs/Glossary.md
henkvancann 8fa6132
Update docs/Glossary.md
henkvancann e4f8297
Q&A extended: Does Sidetree use a blockchain
henkvancann 10d16ab
Merge branch 'master' of https://github.com/henkvancann/sidetree
henkvancann a262d44
Q&A extended: What's the difference between Sidetree and blockchain? …
henkvancann 73b6c9e
Glossary picture merkle tree
henkvancann d3f170e
Glossary merkle tree typo corrected
henkvancann 54ced9e
The 6 whys answered infered from 'what is SIdetree'
henkvancann 4ad71f9
Q&A added: How does Sidetree technically relate to DID methods?
henkvancann 2eb8efa
Q&A added: What are the main components of a sidetree system?
henkvancann 5931dc4
Q&A added: various stuff added and improved
henkvancann 29acb90
Q&A added: wallet and crypto related Q&As
henkvancann 0e2f7f0
Q&A _Could we contribute to the repository?_
henkvancann cf507bf
Q&A added: Are there examples of Sidetree based identity systems and/…
henkvancann 2371212
Q&A added: How does Sidetree establish the root-of-trust that we need…
henkvancann 6a469de
Q&A added: clarifying the tree in Sidetree
henkvancann 3f9a4e9
Q&A added: clarifying the tree in Sidetree take 2
henkvancann bdae8d2
Q&A Answer added: non-DAG alternatives to IPFS could work
henkvancann 2a88a06
Q&A all empty Q&As moved to a seperate file QA-candidates.md
henkvancann d532612
QA-candidates.md contains all unanswered Qs from the original Q-and-…
henkvancann 7d2ffee
QA-candidates.md contains all unanswered Qs from the original Q-and-…
henkvancann 22d5261
orb added
henkvancann b886082
reworded blockchain bullshit
henkvancann 60e89db
Q&A anchoring systems madde more general
henkvancann b19d982
Q&A A content addressable storage layer (e.g., IPFS)
henkvancann d6852bc
Q&A Sidetree is in the Sidetree WG of DIF.
henkvancann f276856
Q&A Sidetree What is so unique to Sidetree
henkvancann 09be4ad
Q&A Sidetree global anchoring and linear-> just anchoring and linear
henkvancann 31ce082
Q&A Sidetree 1. Single point of definition
henkvancann 4fd267d
Glossary ACDC out
henkvancann 9fac917
Q&A Bitcoin BIPs out
henkvancann a4de61d
Q&A A single global ledger is not needed for a Sidetree implementation
henkvancann 86cf707
Q&A Cut out the ToIP image
henkvancann f0a14f7
deleted package-lock.json
henkvancann e8752d0
Merge pull request #1 from decentralized-identity/master
henkvancann 1a26506
Sidetree meeting processed into improvements of the Q&A and Glossary
henkvancann 8e11914
Sidetree meeting processed into improvements of the Q&A and Glossary …
henkvancann 280f428
Sidetree meeting processed into improvements of the Q&A and Glossary …
henkvancann 54a79ac
Q&A what's the tree in Sidetree illustration
henkvancann a1608e8
Update docs/Glossary.md
henkvancann c0b74c4
Update docs/Q-and-A.md
henkvancann d76b0f9
Update docs/Q-and-A.md
henkvancann 841a75d
Update docs/Q-and-A.md
henkvancann 8dfd42a
Update docs/Glossary.md
henkvancann 307568d
various edits
henkvancann 9d6b242
latests local edits
henkvancann 9caa2d6
merged an edit
henkvancann File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,172 @@ | ||
| # Definitions | ||
|
|
||
| There is seperate section [terminology](./spec/terminology.md) is a separate file additional to this Glossary for the Q&A. The terminology is for advanced to proficient Sidetree users. | ||
|
|
||
| ## Abbreviations | ||
| In alphabetic order:\ | ||
| ACDC = Authentic Chained Data Container Task Force | ||
| BX = [Bidirectional model transformation](#bidirectional-model-transformation) | ||
| CAS = Content Addressable Storage | ||
henkvancann marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| DID = [Decentralized Identity](#decentralized-identity) or Digital Identity dependent of the context.\ | ||
| DIF = Decentralized Identity Foundation\ | ||
| DDO = DID Document, look up W3D DID standardization for more info\ | ||
| DHT = Distributed Hash Table\ | ||
| DIF = Decentralized Identity Foundation, https://identity.foundation\ | ||
| DKMI = Decentralized Key Mangement Infrastructure\ | ||
henkvancann marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| JWK = [JSON Web Key](#json-web-key) | ||
| IPv4 = standard Internet Protocol, version 4\ | ||
| PKI = [Public Key Infrastructure](#public-key-infrastructure)\ | ||
| PR = Pull Request; github terminology\ | ||
| SDK = Software Development Kit\ | ||
| SSI = [Self Sovereign Identity](#self-sovereign-identity)\ | ||
| VC = Verifiable Credential, look up W3C Verifiable Credentials for more info\ | ||
| WASM = [WebAssembly](#WebAssembly) | ||
|
|
||
| ## Definitions in alphabetic order | ||
|
|
||
| Terminology specific for Sidetree can be found [here](https://identity.foundation/sidetree/spec/#terminology). The following definitions are specificly listed to support the [Question and Answers](Q-and-A.md) on a simpler level, and to be able to put Sidetree in relation to other fields of interest. | ||
henkvancann marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
|
|
||
| #### Authentic Chained Data Container Task Force | ||
henkvancann marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| Or ACDC. The purpose of the Authentic Chained Data Container (ACDC) Task Force is to draft a TSS (ToIP Standard Specification) that defines the standard requirements for the semantics of Authentic Provenance Chaining of Authentic Data Containers. [See more](https://wiki.trustoverip.org/display/HOME/ACDC+%28Authentic+Chained+Data+Container%29+Task+Force) | ||
|
|
||
| #### Agent | ||
| A representative for an _identity_. MAY require the use of a _wallet_. MAY support _transfer_ | ||
|
|
||
| #### Agency | ||
| Agents can be people, edge computers and the functionality within [`wallets`](#digital-identity-wallet). The service an agent offers is agency. | ||
|
|
||
| #### Bidirectional model transformation | ||
| Or `BX`. Keeping a system of models mutually consistent (model synchronization) is vital for model-driven engineering. In a typical scenario, given a pair of inter-related models, changes in either of them are to be propagated to the other to restore consistency. This setting is often referred to as bidirectional model transformation (BX). Delta-based is the way to go for Side-tree. | ||
| [Source and more info](https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.386.7739&rep=rep1&type=pdf) | ||
|
|
||
| #### Claim | ||
| An assertion of the truth of something, typically one which is disputed or in doubt. A set of claims might convey personally identifying information: ½name, address, date of birth and citizenship, for example. ([Source](https://www.identityblog.com/?p=352)). | ||
|
|
||
| #### Content-addressable hash | ||
| Content addressing is a way to find data in a network using its content rather than its location. The way we do is by taking the content of the content and hashing it. Try uploading an image to IPFS and get the hash using the below button. In the IPFS ecosystem, this hash is called Content Identifier, or CID. | ||
|
|
||
| #### Controller | ||
henkvancann marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| The entity that has the ability to make changes to an _identity_, _cryptocurrency_ or v_erifiable credential_. | ||
|
|
||
| The controller of an `autonomous identifier` is the entity (person, organization, or autonomous software) that has the capability, as defined by derivation, to make changes to an `Event Log`. This capability is typically asserted by the control of a single inception key. In DIDs this is typically asserted by the control of set of cryptographic keys used by software acting on behalf of the controller, though it may also be asserted via other mechanisms. In Sidetree an AID has one single controller. Note that a DID may have more than one controller, and the DID `subject` can be the DID controller, or one of them. | ||
|
|
||
| #### Cryptocurrency | ||
| A digital asset designed to work as a medium of exchange wherein individual coin ownership records are stored in a digital ledger or computerized database using strong cryptography to secure transaction record entries, to control the creation of additional digital coin records. See [more](https://en.wikipedia.org/wiki/Cryptocurrency) | ||
|
|
||
| #### Decentralized Identity | ||
| DID; Decentralized identity is a technology that uses cryptography to allow individuals to create and control their own unique identifiers. They can use these identifiers to obtain `Verifiable Credentials` from trusted organisations and, subsequently, present elements of these credentials as proof of claims about themselves. In this model, the individual takes ownership of their own identity and need not cede control to centralized service providers or companies. | ||
|
|
||
| #### Delta-based | ||
| Delta-based (vs. _state-based_) is a notion that is hard to grasp. See it simplified as _"keeping Sidetree data internally consistent and in sync"_. | ||
|
|
||
| The Sidetree protocol defines a core set of `DID PKI` state change operations, structured as **delta-based** Conflict-Free Replicated Data Types.\ | ||
| Given pairs of inter-related models (nodes / peers) in Sidetree, changes in either of them are to be propagated to the other to restore consistency; also called [BX](#bidirectional-model-transformation).\ | ||
| Propagation operations use deltas as input and output rather than compute them internally. Such frameworks (in our case a **tree-oriented**) have been built for the _asymmetric_ BX case, in which one model in the pair is a view of the other and hence does not contain any new information. In practice, however, it is often the case that two models share some information but each of them contains something new not present in the other; we call this case _symmetric_ `BX`. | ||
|
|
||
| [Source and more info](https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.386.7739&rep=rep1&type=pdf) | ||
|
|
||
| #### Deterministic Ruleset (of Sidetree) | ||
| Which guarantees only one `fork` of a DID’s state history can ever be valid.\ | ||
| To better understand this, read this [section](https://identity.foundation/sidetree/spec/#late-publishing) that illustrates a DID owner, Alice, creating forks by creating and anchoring operations in the past that she does not expose to the network. Known as _Late Publishing_ of a DID operation. | ||
|
|
||
| #### Entropy | ||
| Unpredictable information. Often used as a _secret_ or as input to a _key_ generation algorithm.[More](https://en.wikipedia.org/wiki/Entropy_(information_theory)) | ||
|
|
||
| The term entropy is also used to describe the degree of unpredictability of a message. Entropy is then measured in bits. The degree or strength of randomness determines how difficult it would be for someone else to reproduce the same large random number. This is called _collision resistance_. | ||
|
|
||
| #### Entity | ||
| Entities are not limited to natural persons but may include groups, organizations, software agents, things, and even data items. | ||
|
|
||
| #### Identity | ||
| A unique entity. Typically represented with a unique identifier. | ||
|
|
||
| #### JSON Web Key | ||
| A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key. [More info](https://tools.ietf.org/html/rfc7517).\ | ||
| The following **example** JWK declares that the key is an Elliptic Curve key, it is used with the P-256 Elliptic Curve, and its x and y coordinates are the base64url-encoded values shown. A key identifier is also provided for the key: | ||
| ``` | ||
| { | ||
| "kty":"EC", | ||
| "crv":"P-256", | ||
| "x":"f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU", | ||
| "y":"x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0", | ||
| "kid":"Public key used in JWS spec Appendix A.3 example" | ||
| } | ||
| ``` | ||
|
|
||
| #### Key | ||
| A mechanism for granting or restricing access to something. MAY be used to issue and prove, MAY be used to transfer and control over _identity_ and _cryptocurrency_. [More](https://en.wikipedia.org/wiki/Key_(cryptography)) | ||
|
|
||
| #### Merkle tree | ||
| <img src="./images/merkle-tree.jpg" alt="Merkle tree illustration" border="0" width="500"> | ||
| A cryptographic data structure compressing large volumes of transaction data into a single “merkle root.” This allows massive batching and pooling of transactions, and allows a different set of security and privacy guarantees to be layered on top of those of the anchor point. | ||
|
|
||
| [More on Merkle trees in Wikipedia](https://en.wikipedia.org/wiki/Merkle_tree) | ||
|
|
||
| #### Normative | ||
| In general, we call a theory “normative” if it, in some sense, tells you what you should do - what action you should take. If it includes a usable procedure for determining the optimal action in a given scenario. [Souce](https://www.quora.com/What-is-the-difference-between-normative-and-non-normative?share=1). | ||
|
|
||
| #### Non-normative | ||
| A theory is called non-normative if it does not do that. In general, the purpose of non-normative theories is not to give answers, but rather to describe possibilities or predict what might happen as a result of certain actions. | ||
| [Souce](https://www.quora.com/What-is-the-difference-between-normative-and-non-normative?share=1). | ||
|
|
||
| #### Payload | ||
| The term 'payload' is used to distinguish between the 'interesting' information in a chunk of data or similar, and the overhead to support it. It is borrowed from transportation, where it refers to the part of the load that 'pays': for example, a tanker truck may carry 20 tons of oil, but the fully loaded vehicle weighs much more than that - there's the vehicle itself, the driver, fuel, the tank, etc. It costs money to move all these, but the customer only cares about (and pays for) the oil, hence, 'pay-load'. [source](https://softwareengineering.stackexchange.com/questions/158603/what-does-the-term-payload-mean-in-programming). | ||
|
|
||
| Now payload in `Sidetree`. The payload could be one of the following cryptographical building blocks in Sidetree: | ||
| - a content digest hash | ||
| - a root hash of a Merkletree | ||
| - a public key | ||
| Note that the Sidetree never puts raw data or privacy sensitive data in its JSON files.\ | ||
| _(@henkvancann)_ | ||
|
|
||
| #### Public Key Infrastructure | ||
| A public key infrastructure (PKI) is a set of roles, policies, hardware, software and procedures needed to create, manage, distribute, use, store and revoke digital certificates and manage public-key encryption. [Wikipedia].(https://en.wikipedia.org/wiki/Public_key_infrastructure) | ||
|
|
||
| #### Race condition | ||
| A race condition or race hazard is the condition of an electronics, software, or other system where the system's substantive behavior is dependent on the sequence or timing of other uncontrollable events. It becomes a bug when one or more of the possible behaviors is undesirable. [Source](https://en.wikipedia.org/wiki/Race_condition). | ||
|
|
||
| #### Root of trust | ||
| Replace human basis-of-trust with cryptographic root-of-trust. With verifiable digital signatures from asymmetric key cryptography we may not trust in “what” was said, but we may trust in “who” said it.\ | ||
| The root-of-trust is consistent attribution via verifiable integral non-repudiable statements. | ||
|
|
||
| #### Secret | ||
| Information controlled by an identity. MAY be used to derive _key_s. | ||
|
|
||
| #### Self Sovereign Identity | ||
| SSI is a new model for Internet-scale digital identity based on an emerging set of protocols, cutting edge cryptography and open standards. Technological and social movements have come together that make SSI possible.\ | ||
| [Source](https://livebook.manning.com/book/self-sovereign-identity/chapter-1/v-8/14).\ | ||
| Decentralisation of the `root-of-trust` and `verifiable credentials` come into play and delivers “user-centric identity”: more control and self-determination of individuals, individuals machines and combinations of these, that identify as one.\ | ||
| _(@henkvancann)_ | ||
|
|
||
| #### Subject | ||
| A digital subject: A person or thing represented or existing in the digital realm which is being described or dealt with. ([Source](https://www.identityblog.com/?p=352)). | ||
|
|
||
| #### Transfer | ||
| The process of changing the _controller_ of _cryptocurrency_, _identity_ or _verifiable credential_. MAY require the use of a _key_. | ||
|
|
||
| #### Transferable identifier | ||
| And identifier of which you can rotate its controlling private key. When the private key for a transferable identifier become exposed to potential compromise then control over the identifier may be transferred to a new key-pair to maintain security. | ||
|
|
||
| #### Trust-over-IP | ||
| It's a term related to the effort of a foundation. The Trust over IP Foundation is an independent project hosted at Linux Foundation to enable the trustworthy exchange and verification of data between any two parties on the Internet. [More](https://trustoverip.org/about/faq/). | ||
|
|
||
| #### Validator | ||
| a _validator_ is anybody that wants to estblish control-authority over an identifier, created by the controller of the identifier. Validators verify the log, they apply duplicity detection or they leverage somebody else's duplicity detection or apply any other logic so they can say "Yes these are events I can trust". | ||
|
|
||
| During validation of virtual credentials for example, a `verifier` checks to see if a `verifiable credential` (VC) has been signed by the controller of this VC using the applicable verification method. | ||
|
|
||
| #### Verifiable Credential | ||
| VC; A data model for conveying claims made by an issuer about a subject. See [vc-data-model](https://www.w3.org/TR/vc-data-model/) for more. | ||
|
|
||
| #### W3C DID | ||
| The W3C consortium Decentralized ID standardization. [More](https://w3c.github.io/did-core/). | ||
|
|
||
| #### WebAssembly | ||
| WASM, or just WA) is an _open standard_ that defines a portable binary-code format for executable programs, and a corresponding textual assembly language, as well as interfaces for facilitating interactions between such programs and their host environment.\ | ||
| The main goal of WebAssembly is to enable high-performance applications on web pages, but the format is designed to be executed and integrated in other environments as well, including standalone ones. [More info](https://en.wikipedia.org/wiki/WebAssembly). | ||
|
|
||
| #### (Digital Identity) Wallet | ||
| In our context it is software and sometimes hardware that serves as a key store and functionality. Keys can be private keys and public keys, hashes and pointers. Functionality can be signing, invoices (receive), send, virtual credentials, delegation, etc. This is the [`agency`](#agency) part of a wallet. \ | ||
| [More about digital ID Wallets](https://www.thalesgroup.com/en/markets/digital-identity-and-security/government/identity/digital-identity-services/digital-id-wallet)\ | ||
| [More about cryto Wallets](https://cryptocurrencyfacts.com/what-is-a-cryptocurrency-wallet/). | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.