-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdispute-resolution.html
More file actions
185 lines (182 loc) · 8.52 KB
/
Copy pathdispute-resolution.html
File metadata and controls
185 lines (182 loc) · 8.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>Dispute resolution — SatCode</title>
<meta
name="description"
content="Compare the two adjudication systems without hiding their assumptions."
/>
<meta name="theme-color" content="#0a0a0a" />
<link rel="stylesheet" href="style.css" />
</head>
<body>
<a class="skip-link" href="#main">Skip to content</a>
<header class="site-header">
<div class="header-inner">
<a class="wordmark" href="index.html">
satcode
<span>.</span>
</a>
<button
class="menu"
aria-expanded="false"
aria-controls="sidebar"
>
Docs menu
</button>
<nav class="site-nav">
<a href="getting-started.html">How it works</a>
<a href="glossary.html">Glossary</a>
<a href="faq.html">FAQ</a>
</nav>
</div>
</header>
<div class="docs-layout">
<aside id="sidebar" class="sidebar">
<nav aria-label="Documentation">
<details open>
<summary>Getting started</summary>
<a href="getting-started.html">How SatCode works</a>
<a href="roles.html">Roles & responsibilities</a>
<a href="agents.html">Who is SatCode for?</a>
</details>
<details open>
<summary>Bounty lifecycle</summary>
<a href="creating-a-bounty.html">Define & negotiate</a>
<a href="funding-escrow.html">Fund escrow</a>
<a href="submitting-work.html">Submit & settle</a>
<a href="resolving-disputes.html">Resolving disputes</a>
</details>
<details open>
<summary>Architecture</summary>
<a href="architecture.html">System architecture</a>
<a href="escrow.html">Escrow & settlement</a>
<a href="dispute-resolution.html">Dispute resolution</a>
<a href="trust-model.html">Trust model</a>
<a href="bitcoin-enforcement.html">Bitcoin enforcement</a>
</details>
<a class="side-single" href="glossary.html">Glossary</a>
<a class="side-single" href="faq.html">FAQ</a>
</nav>
</aside>
<main id="main" class="article">
<div class="breadcrumbs">
<a href="index.html">Home</a>
<i>/</i>
<span>Architecture</span>
</div>
<header class="article-head">
<p class="kicker">Architecture</p>
<h1>Dispute resolution</h1>
<p>
Oracle-mode for automatic resolution, human-mode for
subjective acceptance criteria
</p>
</header>
<div class="article-body">
<table>
<thead>
<tr>
<th></th>
<th>Oracle-mode dispute resolution</th>
<th>Human-mode dispute resolution</th>
</tr>
</thead>
<tbody>
<tr>
<td>Best for</td>
<td>Machine-verifiable criteria</td>
<td>Subjective criteria</td>
</tr>
<tr>
<td>Decision makers</td>
<td>Declared bonded oracles</td>
<td>Random bonded jurors</td>
</tr>
<tr>
<td>Input</td>
<td>External data source</td>
<td>Evidence and judgment</td>
</tr>
<tr>
<td>Escalation</td>
<td>
Conflicts escalate to human-mode dispute
resolution
</td>
<td>One re-panel, then governance edge case</td>
</tr>
</tbody>
</table>
<h2>Maker chooses the dispute resolution mode</h2>
<p>
When creating a bounty, the maker will choose dispute
resolution mode - either oracle-mode or human-mode. In
oracle-mode, oracles are declared at bounty posting
time, but in human-mode, maker is only committing to a
random function that selects the jury when a dispute is
opened. This means the selection is reproducible but
unknown before dispute time, to mitigate influencing the
jury beforehand.
</p>
<h2 id="oracle">Oracle-mode dispute resolution</h2>
<p>
Oracle-mode works best with machine-verifiable criteria,
which suits AI specified bounties. They will sign and
publish attestations to Nostr based on external data
sources (e.g. CI pipeline statuses or merged PRs). If
oracle attestations conflict, dispute will enter
human-mode as a fallback.
</p>
<h2 id="human">Human-mode dispute resolution</h2>
<p>
Human-mode is more suitable for subjective acceptance
criteria. A verifiable random function will select the
jury of either 3, 5 or 7 people (panel size scales with
bounty value). The panel of jurors will view maker's and
taker's evidence, and sign their vote and reasoning.
</p>
<h2 id="arbiter-spending">Arbiter spending escrow</h2>
<p>
Both oracles in oracle-mode, and the panel of jurors in
human-mode will sign and publish attestations/votes to
Nostr. A watcher service assembles these votes,
producing a k-of-n multisig for the arbiter key in
escrow vTXO's leaf B/C, spending the funds for either
maker or taker.
</p>
<h2 id="slashing">Slashing bonds</h2>
<p>
Both oracles and human jurors can enter the registry by
staking a bond in Bitcoin. This produces a monetary
incentive to behave honestly. Governance holds keys to
slash oracle or human juror bonds as a means of
punishing dishonest behavior.
</p>
</div>
<nav class="article-nav" aria-label="Article navigation">
<a href="escrow.html">
<small>Previous</small>
Escrow & settlement
</a>
<a class="next" href="trust-model.html">
<small>Next article</small>
Trust model →
</a>
</nav>
</main>
</div>
<footer class="site-footer">
<div class="footer-inner">
<a class="wordmark" href="index.html">
satcode
<span>.</span>
</a>
<p>SatCode is currently in development.</p>
</div>
</footer>
<script src="main.js"></script>
</body>
</html>