MPC Protocol & Node Architecture
Planbok's security is anchored by our 2-of-2 Multi-Party Computation (MPC) protocol. This architecture ensures that a single compromise of a server, employee, or database can never lead to the loss of funds, as the full private key never exists in any single location.
The Distributed Node Architecture
Planbok operates two cryptographically isolated nodes that collaborate to perform sensitive operations.
- Node 1 (Coordinator): Handles request orchestration and stores the "blinded" key shares. In trustless models, this node is powerless without the client's entropy.
- Node 2 (Signer): An independent cryptographic engine that holds the second share. It only participates in protocols after validating the authenticity and authorization of the request.
Isolation & Communication
All communication between nodes occurs over mutual TLS (mTLS) encrypted gRPC channels. Nodes are deployed in separate network namespaces and hardware-backed environments to prevent lateral movement in the event of a breach.
Distributed Key Generation (DKG)
Traditional wallets generate a private key and then backup its shards. Planbok reverses this: we generate the shares independently so the full key is never born.
Code
Threshold Signing
Signing a transaction is a collaborative process that uses the partial shares to produce a standard signature (ECDSA or EdDSA) compatible with public blockchains.
The Signing Flow
Code
Key Security Properties
- No Reconstruction: The shares $S1$ and $S2$ are never combined to form the private key $k$.
- Stateless Request Validation: Node 2 independently verifies the authorization of every signing request before participating.
- Indistinguishability: The resulting signature is mathematically identical to one produced by a single-key wallet, ensuring compatibility with all smart contracts.
Implementation Details
- SECP256K1: Used for Bitcoin and EVM chains like Ethereum, BSC, and Polygon.
- ED25519: Used for high-performance chains like Solana, Near, and Substrate.
- Communication Layer: Protobuf-based gRPC for sub-millisecond coordination.