Key Types & Algorithms
Key Types & Algorithms
IDA supports multiple cryptographic key types to serve different use cases: authentication, signing credentials, encrypting communications, and enabling selective disclosure.
Supported Key Types
Ed25519
Ed25519 is the default and recommended key type for IDA. It provides fast, secure digital signatures based on the Twisted Edwards curve.
Properties
Key Generation (Go)
Key Generation (JavaScript)
Signing and Verification
Usage in IDA
- DID Auth: Challenge-response authentication
- VC Proof:
Ed25519Signature2020proof suite - IBCT Signing: EdDSA-signed compact JWTs for single-hop delegation
secp256k1
secp256k1 is the elliptic curve used natively by most blockchains (Ethereum, Bitcoin). IDA supports it for blockchain-native operations and compatibility.
Properties
Key Generation (Go)
Usage in IDA
- Blockchain transactions: Signing ADI blockchain transactions
- Ethereum compatibility: Interop with EVM-based systems
- Address derivation: Ethereum-style address from public key
X25519 (Key Agreement)
X25519 is a Diffie-Hellman function used for key agreement in DIDComm v2 encrypted messaging.
Properties
Key Agreement Flow
DIDComm Encryption
BBS+ Signatures
BBS+ is a pairing-based signature scheme on the BLS12-381 curve that enables selective disclosure of signed attributes without revealing the full credential.
Properties
How It Works
- Issuance: Issuer signs all credential attributes as a single BBS+ signature
- Derivation: Holder derives a proof that reveals only selected attributes
- Verification: Verifier confirms the proof without learning hidden attributes
Selective Disclosure Example
ZK Predicate Proofs
BBS+ can be combined with ZK circuits to prove predicates:
Zero-Knowledge Identity (zkSync Airbender Compatible)
IDA implements a full ZK Identity system that enables privacy-preserving credential verification on the ADI blockchain. The system is compatible with zkSync Airbender’s proving system and zkEVM execution model.
ZK Proof Architecture
Proof Generation
The ZKP prover generates proofs using Pedersen-like commitments and Schnorr-like responses:
- Predicate Evaluation: Validates that credential values satisfy all predicates (without revealing values)
- Commitment Generation: For each predicate:
C = H(attribute_value || blinding_factor || predicate) - Response Computation: For each predicate:
R = H(C || nonce || challenge || blinding_factor) - Aggregation: Single proof hash:
A = H(sorted_commitments || sorted_responses || nonce) - Signing: Ed25519 signature over
A || challenge || proverDID
Supported Predicate Types
Proof Verification (4-Stage)
- Structural Integrity: All required fields present (ID, type, prover DID, predicates, proof data, nonce)
- Ed25519 Signature: Verify prover’s signature against public key resolved from DID document
- Aggregate Consistency: Recompute aggregate hash from commitments/responses, compare with proof
- Per-Predicate Check: Each predicate has matching commitment and response entries
On-Chain Anchoring
Proofs can be anchored on-chain via the ZKProofVerifier contract on ADI blockchain:
- Proof hashes are stored as
bytes32(Poseidon-friendly for Airbender circuits) submitProof()registers the proof hash with prover DID and credential referenceisProofValid()returns validity status (exists and not revoked)verifyProofOnChain()marks verification timestamp and emitsProofVerifiedevent
zkSync Airbender Compatibility
The ADI blockchain implements zkSync Airbender standards natively:
- zkEVM Execution: Contracts compile with standard Solidity 0.8.24 to zkEVM opcodes
- Poseidon Hashing:
bytes32proof hashes are compatible with Poseidon hash circuits used in Airbender validity proofs - State Diff Compression: Proof registry state changes are compressed in zkSync’s state diff model
- Cross-Chain Verification: Proof existence on ADI can be verified on L1 via Airbender’s validity proof mechanism
ZK Identity Use Cases
- Age Verification: Prove
age >= 18without revealing birthdate or name - KYC/AML: Prove jurisdictional compliance without storing passport data
- Proof of Humanity: Verify uniqueness without biometric exposure (Sybil resistance)
- Anonymous Governance: DAO members vote without revealing identity
- Selective Health Data: Share vaccination status without full medical record
- Financial Eligibility: Prove creditworthiness without exact score disclosure
Key Rotation
Key rotation is critical for long-lived DIDs. IDA supports seamless key rotation: