Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 21 additions & 5 deletions EVES/drafts/EVES-005/eves-005.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
eves-identifier: 005
title: ENVITED-X Contract Negotiation Process
author: Felix Hoops (@jfelixh), Carlo van Driesten (@jdsika)
author: Felix Hoops (@jfelixh), Carlo van Driesten (@jdsika), Van Thanh Le(@levanthanh3005)
discussions-to:
status: Draft
type: Process
Expand Down Expand Up @@ -37,7 +37,7 @@
The operator also acts as a trust anchor giving access and verifiable identities to participants.
For these services, the operator collects fees from providers based on sales volume.

The _provider_ is interested in selling an asset.
The _provider_ is interested in selling an asset and collect fees from _consumer_.

Check warning on line 40 in EVES/drafts/EVES-005/eves-005.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/drafts/EVES-005/eves-005.md#L40

[write-good.Passive] 'is interested' may be passive voice. Use active voice if you can.
Raw output
{"message": "[write-good.Passive] 'is interested' may be passive voice. Use active voice if you can.", "location": {"path": "EVES/drafts/EVES-005/eves-005.md", "range": {"start": {"line": 40, "column": 16}}}, "severity": "WARNING"}

Check notice on line 40 in EVES/drafts/EVES-005/eves-005.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/drafts/EVES-005/eves-005.md#L40

[Google.Passive] In general, use active voice instead of passive voice ('is interested').
Raw output
{"message": "[Google.Passive] In general, use active voice instead of passive voice ('is interested').", "location": {"path": "EVES/drafts/EVES-005/eves-005.md", "range": {"start": {"line": 40, "column": 16}}}, "severity": "INFO"}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does "collecting" fees just mean that the asset provider sells the asset for a price? Because that would already be implied by the act of "selling". If this is meant to include services, we should probably mention that explicitly.


The _consumer_ is interesting in buying an asset.

Expand Down Expand Up @@ -76,10 +76,26 @@

At this point, the contract is fully settled and the consumer can use the asset.

### 5. Fee Payment
### 5. Fee and Payment Report

Check warning on line 79 in EVES/drafts/EVES-005/eves-005.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/drafts/EVES-005/eves-005.md#L79

[Google.Headings] '5. Fee and Payment Report' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] '5. Fee and Payment Report' should use sentence-style capitalization.", "location": {"path": "EVES/drafts/EVES-005/eves-005.md", "range": {"start": {"line": 79, "column": 5}}}, "severity": "WARNING"}

On a regular basis, the providers send the accumulated fees to the operator.
To ensure the fees are correctly calculated without publishing business statistics, a provider should construct a zero knowledge proof for the accumulated amount being correct based on the submitted hashes.
#### 5.1. Asset Fee

Check warning on line 81 in EVES/drafts/EVES-005/eves-005.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/drafts/EVES-005/eves-005.md#L81

[Google.Headings] '5.1. Asset Fee' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] '5.1. Asset Fee' should use sentence-style capitalization.", "location": {"path": "EVES/drafts/EVES-005/eves-005.md", "range": {"start": {"line": 81, "column": 6}}}, "severity": "WARNING"}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should try and make a consistent distinction between "fee" as in operator fee and the "payment" (or "price"?) for an asset/service.


1. After a defined period, the provider compiles all completed contracts and generates a cumulative bill.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does "completed contracts" mean? Just signed contracts? Or service usage billed according to a service contract? This should probably be more general wording. Contracts might also define specific payment schedules.

2. The provider sends this bill to the respective customers.
3. The customers review the bill and make payments.

#### 5.2. Operator Fee

Check warning on line 87 in EVES/drafts/EVES-005/eves-005.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/drafts/EVES-005/eves-005.md#L87

[Google.Headings] '5.2. Operator Fee' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] '5.2. Operator Fee' should use sentence-style capitalization.", "location": {"path": "EVES/drafts/EVES-005/eves-005.md", "range": {"start": {"line": 87, "column": 6}}}, "severity": "WARNING"}

In addition to handling customer payments, providers are responsible for paying the accumulated fees to the operator.

Check warning on line 89 in EVES/drafts/EVES-005/eves-005.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/drafts/EVES-005/eves-005.md#L89

[write-good.TooWordy] 'In addition' is too wordy.
Raw output
{"message": "[write-good.TooWordy] 'In addition' is too wordy.", "location": {"path": "EVES/drafts/EVES-005/eves-005.md", "range": {"start": {"line": 89, "column": 1}}}, "severity": "WARNING"}

Check notice on line 89 in EVES/drafts/EVES-005/eves-005.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/drafts/EVES-005/eves-005.md#L89

[write-good.E-Prime] Try to avoid using 'are'.
Raw output
{"message": "[write-good.E-Prime] Try to avoid using 'are'.", "location": {"path": "EVES/drafts/EVES-005/eves-005.md", "range": {"start": {"line": 89, "column": 54}}}, "severity": "INFO"}

To ensure accurate fee calculations while maintaining business confidentiality:

1. Providers must construct a Zero-Knowledge Proof (ZKP) to verify the correctness of the accumulated fees based on submitted hashes.

Check notice on line 93 in EVES/drafts/EVES-005/eves-005.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/drafts/EVES-005/eves-005.md#L93

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "EVES/drafts/EVES-005/eves-005.md", "range": {"start": {"line": 93, "column": 52}}}, "severity": "INFO"}
These hashes should reference the cumulative bills issued to customers.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And this is where it gets complicated and bricks the existing spec: we do not sign bills digitally and do not publish hashes. That would possibly create privacy issues. We need to figure out how "pay-per-use" service contracts should work, since the contract does not contain a specific price that we could base market fees on.

Do we need/want to introduce invoice VCs?

The ZKP should also validate that the fees align with the agreement between the provider and the operator.

Check warning on line 95 in EVES/drafts/EVES-005/eves-005.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/drafts/EVES-005/eves-005.md#L95

[write-good.TooWordy] 'validate' is too wordy.
Raw output
{"message": "[write-good.TooWordy] 'validate' is too wordy.", "location": {"path": "EVES/drafts/EVES-005/eves-005.md", "range": {"start": {"line": 95, "column": 24}}}, "severity": "WARNING"}

2. If the operator questions the reliability of the ZKP, they may request the provider to disclose the underlying financial report referenced in the ZKP.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The entire point of using a ZKP would be that no underlying data must ever be disclosed. The operator just needs to know at least one control hash, which is part of the reason we publish them.

Showing the underlying data to the operator could be an interim solution if we want to implement a first version without a complex ZKP. But these two systems are very different and mutually exclusive.

The provider would then present the hashes and the original data used to construct these hashes, thereby proving the legitimacy of their actions.

### 6. Limitations and Discussion

Expand Down