# Service Bus

This documentation outlines the workflows associated with the creation of confidential and integrity-focused event messages, all made possible through the **NotVault** Service Bus.

The **NotVault** Service Bus enables developers to establish event messages with guaranteed integrity in relation to:

1. **Event Source:** Ensuring the event's origin can be accurately traced.
2. **Event Timestamp:** Capturing the exact time the event message was created.
3. **Zero-knowledge Proof:** Allowing the event's source to prove they possess the information required to generate the event without revealing the underlying information.

### Workflow Steps

Creating an event message involves the following two critical steps:

1. **Event Message Generation:** Here, the source creates an event message, incorporating three key components:
   * *Key:* This serves as a unique identifier for the event.
   * *Hashed Value:* A secure hash derived from the original value, preserving its confidentiality.
   * *Proof:* A Zero-Knowledge Proof is created, verifying that the source knows the original value of the hash, but without disclosing it.
2. **Event Message Verification and Acceptance:** After the event message is generated, the Service Bus smart contract then verifies the Zero-Knowledge Proof. If the proof passes the verification process, the event message is accepted.

By following these steps and using the **NotVault** SDK effectively, developers can establish workflows for confidential and integrity-focused event messages.
