Skip to content

Commit acc0554

Browse files
committed
Add: Use for proving computation section
1 parent 43259a7 commit acc0554

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

bip-PC.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,25 @@ ELSE
120120
ENDIF
121121
```
122122

123+
### Use for proving computation
124+
125+
Merkle trees can be used to prove out computation where the root of the tree
126+
represents the function and the leaves represent the inputs and output. There
127+
are practical limits to the entropy space for the inputs as it needs to be
128+
iterated over and hashed up.
129+
130+
Currently MAST trees can cover 128 bits of entropy space, which is well over
131+
the practical limits to iterate over and merklize. Therefore we assume this
132+
capability does not materially extend what computations are possible to prove
133+
out in bitcoin script. While `OP_PAIRCOMMIT` is not limited to a height of 128,
134+
that should not be prectically feasible to utilize.
135+
136+
There is a way to reduce the size of the witness for proving out computation,
137+
by eliminating the merkle path inclusion proofs, using `OP_CHECKSIGFROMSTACK`
138+
together with `OP_PAIRCOMMIT`. This method involves deleted key assumptions,
139+
most likely using MPC to create an enormous amount of signatures for the stack
140+
elements representing the inputs and the output of the function.
141+
123142
## Reference Implementation
124143

125144
A reference implementation is provided here:
@@ -174,7 +193,7 @@ TBD
174193

175194
## Credits
176195

177-
Jeremy Rubin, Brandon Black, Salvatore Ingala, Anthony Towns
196+
Jeremy Rubin, Brandon Black, Salvatore Ingala, Anthony Towns, Ademan555
178197

179198
## Copyright
180199

0 commit comments

Comments
 (0)