Hyperledger Indy

AbstractHyperledger Indy provides tools, libraries, and reusable components for providing digital identities that are rooted in blockchains or other distributed ledgers so they are interoperable across administrative domains, applications, and any silo. Indy is interoperable with other blockchains or can be used standalone, powering identity's decentralization. They use a “blockchain” just as a Database. It is important to note that this “blockchains” are in a permissioned setting
Year2016
Link to the paperhttps://indy.readthedocs.io/en/latest/
Relevance scoreRelevant
Quality scoreN/A
LabelsCentralized/permissionedDecentralized identityImplementationsSelf-sovereign identityVerifiable Credentials

https://wiki.hyperledger.org/display/indy/Hyperledger+Indy

Hyperledger Indy provides tools, libraries, and reusable components for providing digital identities that are rooted in blockchains or other distributed ledgers so they are interoperable across administrative domains, applications, and any silo. Indy is interoperable with other blockchains or can be used standalone, powering identity's decentralization.

Indy has its own distributed ledger, not depending on any other blockchain. It also has its own PBFT consensus called RBFT.

Indy has been deployed on Sovrin, Findy, Kiva, etc.

Key Characteristics

Taken from https://www.youtube.com/watch?v=ncdvaJrOm_Q

Indy looks for a decentralized source of trust(blockchain) in which data is publicly available.

Hyperledger Indy is built over Indy-plenum(A ledger and consensus protocol) and Indy-node (Identity-specific tx built on Indy-plenum).

Architecture

Taken from https://www.youtube.com/watch?v=ncdvaJrOm_Q

There are two pools in Hyperledger Indy: a validator pool and an observer pool. Validators’ pool handles writes and reads with the help of the consensus protocol, and observers stay in sync with the validators pools and handle the reads of identity data on-chain.

Write requests

Ledger is permissioned, so every request must be signed by the user using Ed25519. The write request is sent to all the nodes, and it is expected to receive F+1F+1 replies. Signatures are verified against a public key stored in the Ledger, and every transaction author must have a DID in the Ledger.

Read requests

Users can request only one node, and they can trust this one node because it provides replies with BLS signatures and corresponding proof.

Anyone can read, no authentication is required.

Ledger

There is a Ledger catch-up procedure for new or lagging-behind nodes, implying that all ledger information is recoverable.

There are actually multiple layers, and new Ledgers can be introduced via plugins.

RBFT consensus

Indy use cases

https://www.hyperledger.org/learn/white-papers

References

Overview: Agents and Hyperledger Indy https://www.youtube.com/watch?v=P_9N-Kt1nF

Hyperledger Architecture, Volume II (Smart Contracts) https://www.hyperledger.org/wp-content/uploads/2018/04/Hyperledger_Arch_WG_Paper_2_SmartContracts.pdf

Indy Plenum https://github.com/hyperledger/indy-plenum/blob/main/docs/source/main.md

Indy Node https://github.com/hyperledger/indy-node/tree/main/docs/source

Hyperledger Indy https://www.hyperledger.org/use/hyperledger-indy