Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Add covenant-related information #806

Closed
wants to merge 11 commits into from

Conversation

harding
Copy link
Contributor

@harding harding commented Jul 8, 2022

WIP PR to add a collection of information about covenant proposals and their uses to the site. Seeking concept-level feedback at this time, particularly opinions about the per-entry data and presentation, since changing the templates later will be much harder than changing them now.

Previews

TODO

  • Fill in remaining information, mainly based on this sketch
  • Organize commits for review
  • Integrate proposal/application pages with corresponding topic pages
  • Write announcement blog post

@jamesob
Copy link
Contributor

jamesob commented Jul 12, 2022

Awesome! Concept ACK. Very much looking forward to reviewing this in the next few days.

@harding
Copy link
Contributor Author

harding commented Jul 12, 2022

I just noticed that the BIP119 site uses the term "uses" for what I've been calling "applications". I think "uses" has the advantage of being simpler and clearer, so I plan to switch to that in the next overhaul.

@ariard
Copy link

ariard commented Aug 21, 2022

See TAPLEAF_UPDATE_VERIFY entry available here : ariard@c8d46e5

For formatting issues or linking, I think that can be solved a posteriori. Note, the description is a first shot and any statement in the should be taken as lightweighted. I think TLUV is still one of the most "whiteboardy" covenant idea. If you think the entry is mature, feel free to take the commit or if you have more insights to add, let me know.

Among the list of covenants in the referenced sketch, I think there is missing the old PUSHTXDATA idea. AFAICT, the more recent OP_TX / OP_TXHASH proposals are roughly equivalent and enable the same level of fine-grained transaction introspection, a really useful feature for a number of applications. Anyway, I think one of them deserves an entry.

@instagibbs
Copy link
Contributor

concept ACK

Reminder that pretty much any of the most basic CTV use cases can be done(less efficiently!) via APO. Probably would want to analyze how much less efficient, especially in the case of something like congestion trees of course. For other cases like DLC it doesn't matter quite as much, since cooperative resolutions bypass the bloat entirely.

@JeremyRubin
Copy link

@instagibbs claim about it not mattering for e.g. DLCs is false, one of the benefits of CTV for that purpose is that it can make it like 300x faster to construct, which you can backfill in with cooperative closes.

So in that case it's the opposite sorta; less space efficient with CTV than with signatures, but much faster time wise, and then backfillable with cooperative resolution (or lazy pre-signing backfill AOT of cooperation).

If you used APO -- unless there is some cool properties of signatures using G as a key or something -- it'd probably neutralize the time efficiency such that the technique might not be as worth it, altho still possibly an improvement.

@instagibbs
Copy link
Contributor

instagibbs commented Aug 30, 2022

unless there is some cool properties of signatures using G as a key or something

Whoops, you're right, and yes there is. My memory of the concept was wrong anyways. Thank you for fact-checking me:

public key P = G.
When using nonce R = G, signature creation has negligible computational cost (s
= 1 + H(R, P, m))

https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-January/019812.html

edit: If this reasoning is specious somehow, let's continue on email thread for tracking purposes so we don't derail this PR too bad

@ariard
Copy link

ariard commented Aug 30, 2022

@instagibbs claim about it not mattering for e.g. DLCs is false, one of the benefits of CTV for that purpose is that it can make it like 300x faster to construct, which you can backfill in with cooperative closes.

I think here we have a time-vs-space trade-offs, in the sense that if you embed a tree of CTV for any element of your stateful contracts (e.g DLCs) states set, you have a logarithmic witness size. This size would have to be paid by L2 node operators (whatever on-chain, payment-channel level or routed-over-LN) in case of non-cooperative closures. This risk of overhead cost downside might be far above node operators operational risk tolerance.

I think it would be interesting to have quantitative measures of hash-chain-based vs script-in-the-sig based design for DLCs for different sizes of m the number of contract states and n the number of counterparties committing to the state, where script-in-the-sig would be based on a multi-party signature scheme like MuSig2 we're likely to use in the Bitcoin ecosystem. The performance downside might be reasonable enough for 99% of the DLC payout curves. At the same time, it is expected latency to be taken into accounts by LN routing algorithms in the future, and routing hops-level performance optimizations to be chased out one after the other.

@harding
Copy link
Contributor Author

harding commented Nov 14, 2022

Closing this. I haven't had time to work on it (and I don't see that time becoming available again in the near future).

@harding harding closed this Nov 14, 2022
@jamesob
Copy link
Contributor

jamesob commented Nov 14, 2022

Bummer, this is a great idea and worth doing. Hopefully it can be part of @ariard's upcoming efforts; I'll be happy to pitch in.

@ariard
Copy link

ariard commented Nov 15, 2022

For sure, I'll do my best to keep track of the covenant-related content. A lot of exciting stuff to go through!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants