-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbitcoin-enforcement.html
More file actions
107 lines (107 loc) · 4.32 KB
/
Copy pathbitcoin-enforcement.html
File metadata and controls
107 lines (107 loc) · 4.32 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
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>Bitcoin enforcement — SatCode</title>
<meta
name="description"
content="How Taproot scripts, thresholds, covenants, and witnesses settle a bounty."
/>
<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>Bitcoin enforcement</h1>
<p>
How Taproot scripts, thresholds, covenants, and witnesses settle a
bounty.
</p>
</header>
<div class="article-body">
<h2 id="tree">Taproot tree</h2>
<p>
The escrow uses a provably unspendable internal key, so every spend
must reveal one of four expected leaves. Standard SIGHASH_ALL binds
a signature to its specific escrow input and prevents replay against
another vTXO.
</p>
<h2 id="threshold">k-of-n threshold</h2>
<p>
ArkadeOS <code>MultisigTapscript</code> uses
<code>+
OP_CHECKSIGADD</code>. Each juror or oracle keeps and signs
with an individual key; the witness supplies at least k valid
signatures plus the winning party’s signature.
</p>
<h2 id="covenant">SDK policy covenant</h2>
<p>
For human-mode dispute resolution, the funded tree contains a
deterministic commitment placeholder. At dispute time, output
introspection verifies replacement with the panel derived from
registry data and a Bitcoin block hash. This is Ark Operator policy
enforcement, not a Bitcoin-native covenant.
</p>
</div>
<nav class="article-nav" aria-label="Article navigation">
<a href="trust-model.html"><small>Previous</small>Trust model</a
><a class="next" href="glossary.html"><small>Continue</small>Glossary →</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>