WebWallet - Design Requirements
- Agnostic
- Auditable
- Scalable
Agnostic
Currency-agnostic
WebWallet transactions must support multiple units of account simultaneously. Therefore, units of account identifiers cannot be hardcoded, but must be explicitly listed as message properties in all IOUs and transaction outputs.Transport-agnostic Although WebWallet is intended to be used on the Web, there must be no restrictions regarding the transport protocols. As long as the resource representations remain valid, they should be sendable using any protocol and encoding.
Database-agnostic
The transaction clearing protocol should not rely on vendor-specific database functionality, only on general native operations such as key-based access in key-value stores or node creation and relationship traversal in graph databases.
Auditable
Openly accessible
Giving access to all transaction records for auditing purposes must be possible by default.Publicly verifiable
No private information should be needed to verify the state of the system at any given time.Cryptographically driven
All state transitions must be driven by cryptographically signed messages that make them valid.
Scalable
Domains
Both creating new transaction clearing domains, or adding more servers to existing domains, must increase the overall capacity of the information space for storing and clearing transactions.Addresses
The overall information space should scale regardless of the number of addresses using each unit of account, so that the performance of transaction clearing in any given countspace is not affected by its member size.Countspaces
There must be no limit on the number of units of account that can be defined in each transaction clearing domain, and the existing total should not impact the performance of the overall information space.