https://github.com/jamesob/vaults-covenants-paper
https://github.com/jamesob/vaults-covenants-paper
bitcoin covenants latex vaults
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/jamesob/vaults-covenants-paper
- Owner: jamesob
- Created: 2022-12-12T19:05:03.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-02-21T14:44:13.000Z (over 3 years ago)
- Last Synced: 2025-03-05T04:41:54.915Z (over 1 year ago)
- Topics: bitcoin, covenants, latex, vaults
- Language: TeX
- Homepage: https://jameso.be/vaults.pdf
- Size: 2.05 MB
- Stars: 0
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Vaults are a technique for substantially reducing the risk of Bitcoin management. In
this paper, we examine their relationship to different covenant implementations. We
survey the vault implementations that are currently usable, as well as that would be
possible only with proposed consensus updates (e.g. OP_CTV).
A new approach, `OP_VAULT`, is presented which avoids the pitfalls of a general
covenant proposal while still allowing the covenant-like behavior necessary for a
featureful vault implementation. The design assumes the deployment of package relay
and ephemeral anchors for dynamic fee management, but allows for different fee
management approaches should they come. It allows batching vault operations, partial
unvaultings, dynamic withdrawal targets, and recursive deposits.
### Compiling
Requires `xelatex`; probably, you want to install `texlive-most` on your distribution.
Use this handy shell function:
```sh
watch-tex () {
JOBNAME=${1%.tex}
xelatex -halt-on-error -shell-escape $1
evince $JOBNAME.pdf &
PDF_PS=$!
RUNTEX="xelatex -halt-on-error -shell-escape $1"
BIB="$JOBNAME.bib"
if [ -f "${BIB}" ]
then
ls $1 | entr -s "rm -f ${BIB} ; $RUNTEX ; biber $JOBNAME ; $RUNTEX ; $RUNTEX"
else
ls $1 | entr -s "$RUNTEX"
fi
kill ${PDF_PS}
}
$ watch-tex 2022-vaults-paper.tex
```