Skip to main content

Core Architecture

The core architecture of Human Wallet is based on the following core primitives:

  • Two-party computation (2PC) / two-party-multi-party computation (2PC-MPC)
  • Security boundaries between
    • user and dapp
    • device and key

Human wallet is built to avoid single points of failure: whether its a user, company or line of code which controls the assets. Users and companies often make mistakes. They lose seed phrases, make erroneous code that gets exploited, or maintain poor operational security. Hence, Human Wallet is built to eliminate single points of failure where no single user, company, or section of code, can control the whole wallet. Importantly, the user experience minimally reflects this enhanced decentralization; security happens almost entirely "behind the scenes."

Two-party (-multi-party) Computation​

2PC works via splitting the signing key into two shares. Human Wallet shares have the following nomenclature:

The Sovereign Share​

The keyshare that the user controls, preventing a company from having full access to the key. This key is generated via the Human Network, based on low-entropy user inputs such as passwords, emails, social accounts, or face ID login.

The Security Share​

The keyshare that the user never sees, preventing hacks in case of user device compromise. This is managed by a trusted execution environment (TEE) running a minimal codebase for reduced attack surface.

info

For further decentralization, a parrellel version of Human Wallet will exist that distributes this keyshare on the Ika Network.