OVIP: 9
Title: 6 Layers of OpenVASP
Author: Felix Laufenberg <felix.laufenberg@bitcoinsuisse.com>
Discussions-To: https://community.openvasp.org/#narrow/stream/21-protocol-.2F.20ovip
Status: Accepted
Type: Standard
Created: 2020-05-25
The author of this OVIP describes the layers which make up the OpenVASP protocol. The key idea is that the layer model does not change, but protocols for single layers are replaced to adapt to changing requirements. The purpose of this OVIP is not to define protocols for the different layers but to provide an overview of existing layers and principles of the design.
The advantage of a layered model is the modularity that it provides. By decoupling components of the protocol as much as possible we create flexibility of swapping out or adding any component with a lower cost. Any layer should make as little assumptions about its underlying layer as possible. More importantly, no layer must make any assumptions about the layers above it.
Layer | Interface Name | Purpose | Reference | Current Implementation |
---|---|---|---|---|
6 | Application | State machine and interpretation of messages. | Whitepaper | Travel Rule |
5 | Business Session | Provides context to a set of messages. | ovip-0007 | VASP Session |
4 | Authentication | VASP authentication & authorization. | ovip-0003 | VASP Dictionary |
3 | Transport | Message reliability. | ovip-0010 | Whisper Session |
2 | Addressing | Means of addressing receiver. | ovip-0003 | VASP Index |
1 | Messaging | Means of sending a message. | Whitepaper | Whisper |
Messaging Layer Abstraction of how message are transported from A to B. For detailed description refer to Section 3 of the original Whitepaper.
Addressing Layer Abstraction of how to refer to the intended receiver of a message and method of exchanges public keys used for encryption on higher Layers. Check section 4.3 of the original Whitepaper and ovip-0002.
Transport Layer Provides abstractions and guarantees around messages. Comparable to TCP/UDP in the internet stack. Should ensure message reliability and encryption. For our current implementation refer to ovip-0010.
Authentication Layer Creates a reliable link between a VASP Identifier (Identifier, ovip-0002) and a VASP (legal entity). Ovip for VASP Dictionary to follow.
Business Session Layer Responsible for creating a session between to VASPs, not only on a technical but also on a business level. This provides context to a set of messages and ensures authenticity and auditability of all messages send within one session. For more details refer to Sections 6.2 and 6.3 of the original Whitepaper which has been refined by ovip-0007.
Application Layer Responsible for handling application level state transitions and defining corresponding messages. Comparable to the Application Layer of the internet stack. Our sole initial application will be the implementation of the travel rule as described in Sections 6.4-6.8 of the original Whitepaper.
We desire to provide a framework for clearer communication and provide a basis for reasoning about protocol changes. This should encourage discussions to be made on specific parts of the protocol.
There are no protocol changes described in this OVIP. It merely provides a framework of reasoning about already existing and future proposals.
This OVIP is only superseded by OVIP-0016 in terms of terminology. All consequences of this ovip hold true by replacing the word "Whisper" with the word "Waku".