Contract Verification Aggregation (draft SEP, companion to Contract Verification Results) #2039
jia57b
started this conversation in
Stellar Ecosystem Proposals
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
This thread is to discuss a second draft SEP: Contract Verification Aggregation. It depends on Contract Verification Results (https://github.com/orgs/stellar/discussions/2037), and the two PRs are open side by side.
Draft: https://github.com/jia57b/stellar-protocol/blob/sep-contract-verification-aggregation/ecosystem/sep-contract-verification-aggregation.md
PR: #2040
Depends on: #2038
The problem. Independent verification is worth more than one verifier's word, but only if a reader can see every answer, including the ones that disagree. Every consumer that merges verifiers itself makes the same decisions differently (timeouts, stale results, "disputed" vs "newest wins"), and none of those decisions are visible to the person reading the result.
The approach: an aggregator relays, never adjudicates.
schema_versionit was read at.unavailable_verifiersis always present, with areason(fetch_failed,invalid_response,timeout,refused), so silence is visible.agreementdescribes how the entries relate (single,unanimous_verified,disputed, …) and is never a verdict. One verifier issingle, not "unanimous".GET /v1/verifiers) is the operator's own published input. Paused and disabled members stay listed, so an omission can be checked from outside. There is no registration API.5xx, never an empty200.On trust (re @ethanfrey in #1945). This SEP accepts that an aggregate is only as trustworthy as the aggregator, and does not try to fix that with signatures. Instead it makes every entry checkable at its source: verifier URL plus
results_urlswithsha256. A reader that does not trust the aggregator re-reads the verifiers directly.Open questions
agreement's vocabulary right? Are any states missing?GET /v1/contracts/{network}/{contract_id}worth standardising, or should it stay an explorer concern?All reactions