-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
181 lines (168 loc) · 8.72 KB
/
Copy pathindex.html
File metadata and controls
181 lines (168 loc) · 8.72 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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>xorpool — the pool never holds the money</title>
<meta name="description" content="A TIDES-style non-custodial mining pool design for the BIP-110 proof-of-work-change fork of Bitcoin — open-source reference implementation. No public pool operates under this name.">
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='13' fill='none' stroke='%232E8FA3' stroke-width='3'/%3E%3Cpath d='M16 6v20M6 16h20' stroke='%232E8FA3' stroke-width='3'/%3E%3C/svg%3E">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap" rel="stylesheet">
<style>
:root{
--paper:#F4F6F5; --grid:#E3E8E7; --ink:#1A232D; --muted:#4A5763;
--accent:#2E8FA3; --accent-soft:#D6E9ED;
color-scheme: light;
}
*{margin:0;padding:0;box-sizing:border-box}
body{
font-family:'Inter',system-ui,sans-serif;font-size:17px; color:var(--ink); background:var(--paper);
background-image:linear-gradient(var(--grid) 1px,transparent 1px),
linear-gradient(90deg,var(--grid) 1px,transparent 1px);
background-size:28px 28px; line-height:1.6;
}
.sheet{max-width:880px;margin:0 auto;padding:0 24px}
a{color:var(--ink);text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:3px}
a:hover{color:var(--accent)}
a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mono{font-family:'IBM Plex Mono',ui-monospace,monospace}
header{padding:56px 0 0}
.mark{display:flex;align-items:baseline;gap:10px}
.xor{color:var(--accent);font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:30px;font-weight:600}
.wordmark{font-family:'Inter',system-ui,sans-serif;font-weight:600;font-size:30px;letter-spacing:.3px}
h1{
font-family:'Inter',system-ui,sans-serif;font-weight:600;
font-size:clamp(38px,7vw,64px);line-height:1.05;margin:36px 0 18px;letter-spacing:-0.5px;
}
h1 em{font-style:normal;color:var(--accent)}
.lede{font-size:19px;max-width:640px;color:var(--muted)}
.lede strong{color:var(--ink)}
.status{
margin:34px 0 0;border:2px solid var(--ink);
display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;
padding:10px 14px;font-family:'Inter',system-ui,sans-serif;font-size:15px;
}
.status b{background:var(--ink);color:var(--paper);padding:2px 8px;font-weight:600}
.status span{color:var(--muted)}
.eyebrow{
font-family:'Inter',system-ui,sans-serif;font-size:14.5px;letter-spacing:.6px;
text-transform:uppercase;color:var(--muted);margin-bottom:14px;
}
.eyebrow::before{content:"// ";color:var(--accent)}
.flow{margin:56px 0 0;border:2px solid var(--ink)}
.flow-row{display:grid;grid-template-columns:1fr 1fr 1fr}
.flow-cell{padding:16px 18px;border-left:2px solid var(--ink)}
.flow-cell:first-child{border-left:none}
.flow-cell .t{font-family:'Inter',system-ui,sans-serif;font-size:14.5px;font-weight:600;letter-spacing:.3px;text-transform:uppercase}
.flow-cell .v{font-family:'Inter',system-ui,sans-serif;font-size:15px;color:var(--muted);margin-top:4px}
.flow-coin{border-top:2px solid var(--ink);background:var(--accent-soft);padding:16px 18px}
.flow-coin .t{font-family:'Inter',system-ui,sans-serif;font-size:14.5px;font-weight:600;letter-spacing:.3px;text-transform:uppercase}
.outs{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.out{border:2px solid var(--ink);background:var(--paper);padding:5px 10px;
font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:14.5px}
.out b{color:var(--accent)}
.mapnote{margin-top:18px;color:var(--muted);max-width:600px}
.mapnote b{color:var(--ink)}
@media(max-width:640px){.flow-row{grid-template-columns:1fr}.flow-cell{border-left:none;border-top:2px solid var(--ink)}.flow-cell:first-child{border-top:none}}
section{margin:72px 0}
.specrow{display:grid;grid-template-columns:200px 1fr;gap:8px 28px;border-top:2px solid var(--ink);padding:18px 0}
.specrow:last-of-type{border-bottom:2px solid var(--ink)}
.specrow h3{font-family:'Inter',system-ui,sans-serif;font-size:15px;font-weight:600;letter-spacing:.3px;padding-top:3px}
.specrow p{color:var(--muted)}
.specrow p b{color:var(--ink)}
@media(max-width:640px){.specrow{grid-template-columns:1fr;gap:4px}}
footer{border-top:2px solid var(--ink);margin-top:88px;padding:26px 0 60px;
font-size:15px;color:var(--muted);display:flex;flex-wrap:wrap;gap:8px 24px}
footer a{text-decoration-thickness:1px}
</style>
</head>
<body>
<div class="sheet">
<header>
<div class="mark"><span class="xor" aria-hidden="true">⊕</span><span class="wordmark">xorpool</span></div>
<h1>The pool never holds <em>the money</em>.</h1>
<p class="lede">A TIDES-style mining pool coordinator for the BIP-110
proof-of-work-change fork of Bitcoin. <strong>Every block pays miners directly in
its own coinbase.</strong> The pool is a transparent scoreboard — never a wallet.
Published as an open-source <strong>design and reference implementation</strong>.</p>
<div class="status" role="note">
<b>STATUS</b><span>design & reference implementation · <b>no public pool
operates under this name, and none is planned</b> · the fork activated
2026-08-30 at block 961640 · unaudited — use at your own risk</span>
</div>
</header>
<div style="margin-top:56px">
<div class="eyebrow">how a block pays out</div>
<div class="flow" aria-label="Diagram: a found block's coinbase splits directly to miners">
<div class="flow-row">
<div class="flow-cell"><div class="t">your node</div><div class="v">builds the template</div></div>
<div class="flow-cell"><div class="t">your miner</div><div class="v">finds the block</div></div>
<div class="flow-cell"><div class="t">the block itself</div><div class="v">pays the window</div></div>
</div>
<div class="flow-coin">
<div class="t">coinbase outputs</div>
<div class="outs">
<span class="out">miner A <b>62%</b></span>
<span class="out">miner B <b>27%</b></span>
<span class="out">miner C <b>9%</b></span>
<span class="out">pool fee <b>2%</b></span>
</div>
</div>
</div>
<p class="mapnote">No balances, no payout queue, no pool wallet.
<b>If the pool vanished tomorrow, nobody's funds would vanish with it</b> —
there were never deposits, only published claims on future blocks.</p>
</div>
<section>
<div class="eyebrow">design</div>
<div class="specrow">
<h3>direct coinbase payouts</h3>
<p>Rewards are split <b>inside the winning block</b>, proportional to a
published window of recent shares. Paid the moment the block exists.</p>
</div>
<div class="specrow">
<h3>your own templates</h3>
<p>Miners build blocks from <b>their own nodes</b> — the pool publishes the
required payout split and verifies it, but never chooses your transactions.</p>
</div>
<div class="specrow">
<h3>transparent scoreboard</h3>
<p>An append-only share ledger with the split snapshot stored for every
block. <b>Anyone can recompute every payout</b> from public data.</p>
</div>
<div class="specrow">
<h3>two implementations</h3>
<p>A Python reference and a production Java port, wire-compatible, pinned to
each other by golden test vectors. <b>One protocol, no lock-in.</b></p>
</div>
</section>
<section>
<div class="eyebrow">the fork's own answer to pool trust</div>
<p style="max-width:640px">The fork as shipped bakes a pool mechanism into
consensus itself: a secret <span class="mono">xor_key</span> held by the pool
masks the block hash, so a miner can verify its own shares but
<b>cannot tell a share from a winning block</b> — only the key-holder can,
which defeats block-withholding attacks. This reference implementation
predates that design and implements the published-claims TIDES model;
the two are complementary reading for anyone building a real pool for
this chain.</p>
</section>
<section>
<div class="eyebrow">source</div>
<p style="max-width:640px">The pool coordinator lives in the xorminer repository:
<b><a href="https://github.com/bitcoinxor/xorminer">github.com/bitcoinxor/xorminer</a></b>.
<b>No public pool operates under this name, and none is planned.</b> Anything
claiming to be xorpool and asking for your hashrate, funds, or keys is an
impersonation.</p>
</section>
<footer>
<span>MIT license</span>
<a href="https://github.com/bitcoinxor/xorminer">GitHub</a>
<a href="https://bitcoinxor.org">bitcoinxor.org</a>
<a href="https://xorminer.com">xorminer.com</a>
<span>Not affiliated with Bitcoin Core, Bitcoin Knots, or the BIP-110 developers.</span>
</footer>
</div>
</body>
</html>