Ika Decentralized MPC Signature Network
repository·main·Indexed 41 days ago
https://github.com/dwallet-labs/ikaA zero-trust MPC signature network enabling multi-chain interoperability through dWallets. Ika allows developers to control assets across blockchains like Bitcoin, Ethereum, and Solana using native signatures without bridging. The ecosystem includes the Ika CLI for dWallet and key management, Ika Proxy for secure Prometheus metrics collection from validators, and ika-swarm for network testing and benchmarking.
What's inside Ika
- Ika Proxy is a secure metrics proxy server designed for the Ika blockchain network. It acts as an intermediary that collects Prometheus metrics from Ika validators and bridge nodes via secure TLS-based communication and forwards them to remote monitoring systems like Mimir or other time-series databases (TSDB).
Overview of ika-types cryptography functionality
mainThe
ika-typescrate provides core cryptographic primitives used within the Ika ecosystem. Currently, the package focuses on signature and hashing functionality implemented across three primary modules:crypto.rs: The central library for cryptographic structs and functions, including signing, verification, and hashing.signature_seed.rs: Provides deterministic signer functionality using a seed, a domain, and a key identifier. This is particularly useful for custodial services where keys are derived from identifiers like usernames or email addresses rather than standard BIP44/BIP32 paths.messages.rs: Handles the logic for adding and verifying signatures to transactions for both account holders and validators.
For details on supported signature schemes and requirements for user and authority signatures, refer to the Sui Cryptography documentation. The underlying implementations leverage fastcrypto.
Overview of Move Contract Integration
mainMove integration allows you to embed Ika's distributed wallet (dWallet) functionality directly into Sui Move smart contracts. This enables programmable, decentralized signing for cross-chain operations (like Bitcoin or Ethereum) directly from Sui.
Key Capabilities:
- Programmable Signing: Define custom logic to control signature creation.
- Cross-Chain Operations: Sign transactions for non-Sui chains from Sui contracts.
- Decentralized Custody: Build DAOs, treasuries, and governance systems using distributed key management.
- Automated Workflows: Use shared dWallets to allow contracts to sign without direct user interaction.
Overview of available Ika skills
mainIka provides four specialized skill sets for AI agents to provide expert-level assistance:
- ika-cli: Covers the Ika CLI for dWallet operations (create, sign, presign, import), validator management, configuration, and shell completions.
- ika-sdk: Covers the
@ika.xyz/sdkTypeScript SDK, includingIkaClient,IkaTransaction, cryptography (DKG, signing),UserShareEncryptionKeys, and end-to-end flows like KeySpring. - ika-move: Covers Sui Move integration, including contract patterns (Treasury, DAO), protocol implementation (DKG, presign), and the Coordinator API.
- ika-operator: Covers Ika network node operations, including validator setup, node configuration (Validator, fullnode, notifier), monitoring (Prometheus), and recovery procedures.
Understand the Ika protocol specifications
mainThe Ika protocol specifications provide behavioral specifications for all Ika subsystems. These specs define the protocol-level contract, including actors, messages, decision rules, invariants, and failure modes. They are designed to be readable independently of the source code.
Note on Code vs. Spec: The specifications and the code are intended to be in sync. Code references within the specs act as anchors. If a discrepancy is found between a spec and the implementation, it is treated as a bug in one of them that must be resolved.
Understand the Ika engineering context and documentation structure
mainThe
dev-docs/directory serves as the engineering context for both humans and AI agents. It is organized into several functional areas to help developers navigate the protocol's complexity:specs/: Protocol behavioral contracts. These define actors, messages, decision rules, invariants, and failure modes. Crucial: Read the relevant spec before changing any subsystem it covers.playbooks/: Operational guides for running, debugging, and diagnosing the system (e.g., MPC stalls, localnet setup, production alerts).conventions/: Repository-specific procedures and rules (e.g., naming, logging, Sui versioning, metric naming).learnings/: Documentation of non-obvious failure classes and pitfalls encountered during development.reference/: Pointers to external sources, such as the pinned Sui upstream source.plans/: Active implementation plans for multi-PR/multi-session efforts. Once a plan is implemented, its behavior moves tospecs/and the plan is moved toplans/archive/.reviews/: Point-in-time records of PR and design reviews. These are not maintained truth; for current behavior, refer tospecs/.
bitisi Frontend project overview
mainThe bitisi frontend is a Bitcoin multisig wallet application built on Sui using the IKA protocol.
⚠️ WARNING: TESTNET ONLY This application is for testing and educational purposes only. It is not audited and should only be used on Bitcoin testnet. Do not use with real funds or production wallets.
Key Technologies
- Framework: Next.js 14+ (App Router)
- Language: TypeScript
- Styling: Tailwind CSS + shadcn/ui
- Blockchain:
@mysten/sui.js+@mysten/dapp-kit - Data Fetching: SWR (stale-while-revalidate)
- State: React Context API
- Forms: React Hook Form
Use ika-swarm for network testing and benchmarking
mainTheika-swarmcrate provides utilities for managing complete Ika networks. It is primarily designed for performing end-to-end testing and benchmarking of the network. While the architecture is designed to support multiple backends (such as multi-process or Kubernetes), the current implementation focuses on in-process network management.Integration patterns for Move contracts with Ika dWallet
mainWhen integrating Ika dWallet into Move smart contracts, there are two primary patterns depending on whether the contract needs to sign autonomously or manage a pool of pre-authorized signatures. Most production contracts combine these patterns to ensure continuous, automated signing capabilities.
Available Patterns
- Shared dWallet for Smart Contracts: The contract owns a shared dWallet and controls signing through its internal business logic. This is ideal for DAOs, treasuries, or automated systems where the network can sign without direct user interaction.
- Presign Pool Management: Since presigns are consumed upon use, this pattern involves maintaining a vector of
UnverifiedPresignCapobjects to ensure the contract always has available signatures for frequent operations.
Combining Patterns
Real-world implementations typically combine both patterns by storing a
DWalletCapfor authorization and avector<UnverifiedPresignCap>for signature availability, alongside payment balances and network encryption keys.What is MPC (Multi-Party Computation)
mainMulti-Party Computation (MPC) is a cryptographic field that enables multiple parties to perform a joint computation without any single party revealing their private, secret information to the others.
Key characteristics:
- Privacy: No party shares their secret input.
- Communication-based: MPC relies on multiple rounds of communication between participating parties to complete the computation.
- Specialized Protocols: While generic MPC can perform any computation, Ika utilizes specialized MPC protocols optimized for specific use cases (like signing) to ensure efficiency.
What is Ika and how do dWallets work?
mainIka is a decentralized, zero-trust MPC (Multi-Party Computation) signature network. It allows developers to create protocols that operate natively across multiple blockchains (such as Bitcoin, Ethereum, and Solana) without the need for bridging, wrapping, or trusted intermediaries.
At the core of the network is the dWallet, a decentralized and programmable signing mechanism.
Key characteristics of dWallets:
- Noncollusive: A signature requires both the user's consent and a 2/3 threshold of the Ika network. No single party, including the network itself, can sign alone.
- Multi-chain: dWallets support ECDSA and EdDSA, allowing them to natively control assets and accounts on various chains (e.g., Bitcoin, Ethereum, Solana).
- Massively Decentralized: The network scales to hundreds of nodes to provide the required threshold for signing.
- Cryptographically Secure: Security is derived from cryptography rather than hardware or trust assumptions.
What is 2PC-MPC?
main2PC-MPC is a novel Multi-Party Computation (MPC) protocol designed for dWallets and the Ika network. It combines Two-Party Computation (2PC) with Multi-Party Computation (MPC) to provide blockchain-optimized security.
In this 'nested' MPC model:
- 2PC Layer: A user and a network threshold are both required to generate a signature. This ensures non-collusivity, as a signature cannot be generated by the network alone without the user.
- MPC Layer: The network participation is managed by an MPC process among nodes, requiring a threshold consistent with the network's consensus threshold.
This architecture allows the network to be autonomous and flexible while remaining transparent to the end-user.