Skip to content

Commit 3246ecb

Browse files
1.0.0-rc2
1 parent 5723aef commit 3246ecb

File tree

141 files changed

+10959
-2
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

141 files changed

+10959
-2
lines changed

.gitignore

+73
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Eclipse, ctags, Mac metadata, log files
2+
.classpath
3+
.project
4+
.settings
5+
tags
6+
.DS_Store
7+
*.log
8+
*.log.gz
9+
*.orig
10+
11+
.gradle
12+
13+
# General build files
14+
**/build/*
15+
!docs/build/*
16+
17+
lib/dokka.jar
18+
19+
### JetBrains template
20+
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio
21+
22+
*.iml
23+
24+
## Directory-based project format:
25+
#.idea
26+
27+
# if you remove the above rule, at least ignore the following:
28+
29+
# Specific files to avoid churn
30+
.idea/*.xml
31+
.idea/inspectionProfiles
32+
.idea/copyright
33+
.idea/jsLibraryMappings.xml
34+
35+
# User-specific stuff:
36+
.idea/tasks.xml
37+
.idea/dictionaries
38+
39+
# Sensitive or high-churn files:
40+
.idea/dataSources.ids
41+
.idea/dataSources.xml
42+
.idea/sqlDataSources.xml
43+
.idea/dynamic.xml
44+
.idea/uiDesigner.xml
45+
.idea/modules/
46+
47+
# Gradle:
48+
.idea/libraries
49+
50+
# Mongo Explorer plugin:
51+
.idea/mongoSettings.xml
52+
53+
## File-based project format:
54+
*.ipr
55+
*.iws
56+
57+
## Plugin-specific files:
58+
59+
# IntelliJ
60+
**/out/
61+
62+
# mpeltonen/sbt-idea plugin
63+
.idea_modules/
64+
65+
# JIRA plugin
66+
atlassian-ide-plugin.xml
67+
68+
# Crashlytics plugin (for Android Studio and IntelliJ)
69+
com_crashlytics_export_strings.xml
70+
crashlytics.properties
71+
crashlytics-build.properties
72+
73+
# docs related

.idea/runConfigurations/Clean.xml

+23
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/runConfigurations/Clean__Build___Test.xml

+24
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/runConfigurations/Release__Local_.xml

+23
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/runConfigurations/Release__Public_.xml

+23
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/runConfigurations/Run_All_Tests.xml

+9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/runConfigurations/Run_Contract_Tests.xml

+15
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/runConfigurations/Run_Contract_Tests__Test_CorDapp_.xml

+15
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/runConfigurations/Run_Integration_Tests.xml

+15
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/runConfigurations/Run_Workflow_Tests.xml

+15
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/runConfigurations/Run_Workflow_Tests__Test_CorDapp_.xml

+15
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

LICENSE-HEADER

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/**
2+
* Copyright 2020 Matthew Layton
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/

README.md

+63-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,63 @@
1-
# onixlabs-corda-identity-framework
2-
A powerful framework for building highly scalable, interoperable, digital and decentralised identities for individuals, organisations and assets on Corda
1+
![ONIX Labs](https://raw.githubusercontent.com/onix-labs/onix-labs.github.io/master/content/logo/master_full_md.png)
2+
3+
# ONIXLabs Corda Identity Framework
4+
5+
The ONIXLabs Corda Identity Framework provides a powerful framework for building highly scalable, interoperable, digital and decentralised identities for individuals, organisations and digital assets on Corda.
6+
7+
The design and implementation of this framework is influenced by the W3C specifications for Verifiable Credentials and Decentralised Identifiers and will continue to build upon these concepts in future versions.
8+
9+
[W3C Verifiable Credentials Data Model 1.0](https://www.w3.org/TR/vc-data-model/)
10+
11+
[W3C Decentralised Identifiers (DIDs) 1.0](https://www.w3.org/TR/did-core/)
12+
13+
## Objectives
14+
15+
The ONIXLabs Corda Identity Framework aims to address the following objectives:
16+
17+
- Allow individuals and organisations to take control of their digital identity.
18+
- Provide a data layer protocol for application interoperability across Corda applications.
19+
- Ensure some level of data privacy and trust through cryptographic security.
20+
- Alleviate the need for centralised and/or federated control.
21+
22+
## Claims
23+
24+
A claim is a statement or assertion about a subject, and are expressed as a subject-property/value relationship. A claim subject represents something about which claims are made; for example an individual, organisation or digital asset. Claims offer several benefits over traditional data models:
25+
26+
- All digital and completely under the owner's control.
27+
- Highly scalable and cohesive.
28+
- Much harder to fake the claim or impersonate the claim owner.
29+
- Eliminates the need for treasure troves of data.
30+
- Enables minimum disclosure.
31+
- Enables zero-knowledge proofs (ZKPs).
32+
- Data by itself becomes useless to thieves.
33+
34+
Claims in the ONIXLabs Corda Identity Framework are implemented as a comprehensive and open type hierarchy, allowing developers to consume and utilize claims immediately, or extend the framework to build custom claim types on top of the existing infrastructure.
35+
36+
### Corda Claims
37+
38+
Corda claims are part of the open claims type hierarchy. They are contract states that represent a bi-lateral fact between an issuer and a holder, or alternatively may represent a unilateral fact where the issuer and holder identities are the same (known as a self-issued claim). Corda claims _may_ evolve over time; that is, their value is subject to change. Corda claims allow information to be distributed on a need-to-know basis.
39+
40+
### Claim Pointers
41+
42+
Claim pointers are also claims themselves; specifically they are claims whose value points to and resolves a known Corda claim. The intention of claim pointers is to allow claims to be referenced, whilst keeping the underlying claim data private. There are two types of claim pointer:
43+
44+
- Linear claim pointers which always point to the latest version of a claim.
45+
- Static claim pointers which always point a specific version of a claim.
46+
47+
### Claim Type Hierarchy
48+
49+
```
50+
AbstractClaim<T>
51+
├─ Claim<T>
52+
│ └─ EmptyClaim
53+
├─ CordaClaim<T>
54+
│ └─ AttachmentClaim
55+
└─ ClaimPointer<T>
56+
├─ LinearClaimPointer<T>
57+
└─ StaticClaimPointer<T>
58+
```
59+
60+
## Attestations
61+
62+
Attestations represent a type of proof that a particular state has been witnessed and that its value has been accepted or rejected. The purpose of attestations is to enable trust of claims, or indeed any Corda state. Verifiers may accept an attestation to a particular claim or Corda state, without needing to see the claim or state itself, which enables privacy through trust.
63+

0 commit comments

Comments
 (0)