Re: [bitcoin-dev] BIP number request for wallet policies

2024-01-25 Thread Michael Folkson via bitcoin-dev
Just to inform this list, this pull request has since been assigned a BIP 
number (BIP 388) [0].

Thanks
Michael


[0]: https://github.com/bitcoin/bips/pull/1389

--
Michael Folkson
Email: michaelfolkson at protonmail.com
GPG: A2CF5D71603C92010659818D2A75D601B23FEE0F


Learn about Bitcoin: https://www.youtube.com/@portofbitcoin


On Saturday, 16 December 2023 at 14:10, Antoine Poinsot via bitcoin-dev 
 wrote:

> Wallet policies, a standard for implementing support for output descriptors 
> in hardware signing devices was introduced by Salvatore Ingala a year and a 
> half ago [0].
> 
> A pull request to the BIP repository was opened more than a year ago [1]. 
> It's been waiting for a BIP number to be assigned since then.
> 
> There is now 3 majors hardware signing devices using this standard in 
> production (Ledger, BitBox02, Jade). There has been multiple pings on the PR 
> in the past year to get assigned a BIP number.
> 
> It would be nice to hear from the BIP editors about their expectations from 
> the author, so we can move forward with this document specifying what's 
> already become an industry standard.
> 
> Antoine Poinsot
> 
> [0] 
> https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-May/020492.html
> [1] https://github.com/bitcoin/bips/pull/1389
> ___
> bitcoin-dev mailing list
> bitcoin-dev@lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] CheckTemplateVerify Does Not Scale Due to UTXO's Required For Fee Payment

2024-01-25 Thread Michael Folkson via bitcoin-dev
Hi Peter

Interesting post. By implicitly committing in advance to the fee paid by the 
spending transaction CTV is certainly nailing its colors to the CPFP mast 
rather than operating in a RBF world. And in a future high fee environment 
(ignoring whatever is driving those high fees, monetary or non-monetary use 
cases) as you state paying for an additional CPFP transaction is suboptimal 
rather than just replacing an existing unconfirmed transaction. 

I did a cursory search to look for an in depth technical comparison of CPFP and 
RBF and I found this from Antoine (Poinsot) on Bitcoin StackExchange [0]. In 
that he states his view that:

"If most nodes didn't enforce mandatory BIP125 signalling, RBF would be 
superior in all aspects to CPFP from the perspective of the emitter of 
transaction. CPFP is much less efficient, and not always possible: you need the 
transaction to have a change output and (at least at the time of writing [0]) 
the parent to pass policy checks on its own, for instance if it's below the 
minimum feerate of most mempools on the network you won't be able to CPFP it at 
the moment."

I assume that a CTV based LN-Symmetry also has this drawback when compared to 
an APO based LN-Symmetry? In theory at least an APO based LN-Symmetry could 
change the fees in every channel update based on what the current market fee 
rate was at the time of the update. In today's pre LN-Symmetry world you are 
always going to have justice transactions for revoked states that were 
constructed when the market fee rate was very different from the present day's 
market fee rate.

Thanks
Michael


[0]: 
https://bitcoin.stackexchange.com/questions/117703/comparison-between-cpfp-and-bip125-for-fee-bumping

--
Michael Folkson
Email: michaelfolkson at protonmail.com
GPG: A2CF5D71603C92010659818D2A75D601B23FEE0F


Learn about Bitcoin: https://www.youtube.com/@portofbitcoin


On Wednesday, 24 January 2024 at 19:31, Peter Todd via bitcoin-dev 
 wrote:

> CheckTemplateVerify(1) is a proposed covenant opcode that commits to the
> transaction that can spend an output. Namely, # of inputs, # of outputs,
> outputs hash, etc. In practice, in many if not most CTV use-cases intended to
> allow multiple parties to share a single UTXO, it is difficult to impossible 
> to
> allow for sufficient CTV variants to cover all possible fee-rates. It is
> expected that CTV would be usually used with anchor outputs to pay fees; by
> creating an input of the correct size in a separate transaction and including
> it in the CTV-committed transaction; or possibly, via a transaction sponsor
> soft-fork.
> 
> This poses a scalability problem: to be genuinely self-sovereign in a protocol
> with reactive security, such as Lightning, you must be able to get 
> transactions
> mined within certain deadlines. To do that, you must pay fees. All of the
> intended exogenous fee-payment mechanisms for CTV require users to have at
> least one UTXO of suitable size to pay for those fees.
> 
> This requirement for all users to have a UTXO to pay fees negates the
> efficiency of CTV-using UTXO sharing schemes, as in an effort to share a UTXO,
> CTV requires each user to have an extra UTXO. The only realistic alternative 
> is
> to use a third party to pay for the UTXO, eg via a LN payment, but at that
> point it would be more efficient to pay an out-of-band mining fee. That of
> course is highly undesirable from a mining centralization perspective.(2)
> 
> Recommendations: CTV in its current form be abandoned as design foot-gun. 
> Other
> convenant schemes should be designed to work well with replace-by-fee, to 
> avoid
> requirements for extra UTXOs, and to maximize on-chain efficiency.
> 
> 1) 
> https://github.com/bitcoin/bips/blob/deae64bfd31f6938253c05392aa355bf6d7e7605/bip-0119.mediawiki
> 2) 
> https://petertodd.org/2023/v3-transactions-review#anchor-outputs-are-a-danger-to-mining-decentralization
> 
> --
> https://petertodd.org 'peter'[:-1]@petertodd.org
> ___
> bitcoin-dev mailing list
> bitcoin-dev@lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] BIP process friction

2024-01-23 Thread Michael Folkson via bitcoin-dev
Thanks for this Peter, really helpful. 

> It is a much more fundamental
standard than Ordinals or Taproot Assets, in the sense that transaction
replacement is expected to be used by essentially all wallets as all wallets
have to deal with fee-rate fluctuations; I do not think that Ordinals or
Taproot assets are appropriate BIP material due to their niche use-case.

Yes I'd personally lean towards this view too. Certainly when you go into 
alternative asset territory (e.g. Counterparty, Liquid (Network) assets, 
Taproot assets) it is moving away from what you can do with the Bitcoin 
asset/currency and into building a new ecosystem with a different 
asset/currency. I would agree that that should probably be out of scope for 
*Bitcoin* Improvement Proposals without having any particular opinion on the 
utility of any of those ecosystems.

> just the other day I ran into someone
that didn't know RBF Rule #6 existed, which Core added on top of BIP-125, and
had made a mistake in their safety analysis of a protocol due to that.

I suspected this might be the case but to actually have a data point to back 
that up (beyond I personally find it unnecessarily confusing and hard to 
follow) is helpful, thanks.

> Finally, I think the lesson to be learned here is that mempool policy is 
> better
served by *living* documentation that gets updated to reflect the real world.
There's no easy way for someone to get up to speed on what mempool policy is
actually implemented, and more importantly, *why* it is implemented and what
trade-offs were made to get there. It's quite possible that this "living
documentation" requirement rules out the BIP process.

I get the "living", evolving point. Policy proposals are definitely different 
to say consensus proposals where assuming they are ever activated you'd expect 
them to stay static for the rest of Bitcoin's existence barring minor cleanups, 
clarifications etc. However, one possible addition in a new BIP 3 process would 
be the introduction of versioning for a particular BIP e.g. BIP 789 version 2 
which would be more conducive to these evolving proposals such as policy 
proposals. You could then update a BIP without needing a new BIP number for 
every material update.

I'll wait to hear what Luke thinks on this. Beyond the friction concern I think 
improving the BIP process for consensus and policy proposals would be the 
biggest potential win for a BIP 3 update.

Thanks also to Kalle too for his 18 month stint as a BIP editor :)

--
Michael Folkson
Email: michaelfolkson at protonmail.com
GPG: A2CF5D71603C92010659818D2A75D601B23FEE0F


Learn about Bitcoin: https://www.youtube.com/@portofbitcoin


On Thursday, 18 January 2024 at 18:00, Peter Todd  wrote:


> On Wed, Jan 17, 2024 at 05:29:48PM +, Michael Folkson via bitcoin-dev 
> wrote:
> 
> > Hey Luke
> > 
> > I'd be happy to pick up working on BIP 3 again ([0], [1]) in light of this 
> > issue and others that are repeatedly cropping up (e.g. confusion on the 
> > recommended flow for working on proposed consensus changes, when to open a 
> > pull request to bitcoin-inquisition, when to open a pull request to Core, 
> > when to include/exclude activation params etc).
> > 
> > I don't think there is much I personally disagree with you on with regards 
> > to BIPs but one issue where I do think there is disagreement is on whether 
> > proposed default policy changes can/should be BIPed.
> > 
> > I previously drafted this on proposed default policy changes [2]:
> > 
> > "To address problems such as pinning attacks on Lightning and multiparty 
> > protocols (e.g. vaults) there are and will continue to be draft proposals 
> > on changing the default policy rules in Bitcoin Core and/or alternative 
> > implementations. As these proposals are for default policy rules and not 
> > consensus rules there is absolutely no obligation for Bitcoin Core and/or 
> > alternative implementations to change their default policy rules nor users 
> > to run any particular policy rules (default or otherwise). The authors of 
> > these draft proposals are clearly recommending what they think the default 
> > policy rules should be and what policy rules users should run but it is 
> > merely a recommendation. There are a lot of moving parts, subtleties and 
> > complexities involved in designing default policy rules so any 
> > recommendation(s) to significantly upgrade default policy rules would 
> > benefit from being subject to a spec process. This would also aid the 
> > review of any policy related pull requests in Bitcoin Co
 re and/or alternative implementations. An interesting recent case study 
washttps://github.com/bitcoin/bitcoin/pull/22665and Bitcoin Core not 
implem

Re: [bitcoin-dev] MuSig2 derivation, descriptor, and PSBT field BIPs

2024-01-23 Thread Michael Folkson via bitcoin-dev
Hi Christopher

In the absence of a response from someone who is working on MuSig2/FROST etc I 
did ask Tim Ruffing about the problems with using x-only pubkeys for MuSig2 etc 
in an (online) London Bitcoin Devs meetup [0] in 2022.

His response was:

"If you want to do more complex things, for example MuSig or more complex 
crypto then this bit is always a little pain in the ass. We can always get 
around this but whenever we do advanced stuff like tweaking keys, a lot of 
schemes involve tweaking keys, even Taproot itself involves tweaking, MuSig2 
has key aggregation and so on. You always have to implicitly remember that bit 
because it is not explicitly there. You have to implicitly remember it 
sometimes. This makes specifications annoying. I don’t think it is a problem 
for security but for engineering it is certainly annoying. In hindsight it is 
not clear if we would make that decision again. I still think it is good 
because we save a byte but you can also say the increased engineering 
complexity is not worth it. At this point I can understand both points of view."

Hope this helps.

Thanks
Michael

[0]: 
https://btctranscripts.com/london-bitcoin-devs/2022-08-11-tim-ruffing-musig2/#a-retrospective-look-at-bip340

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
GPG: A2CF5D71603C92010659818D2A75D601B23FEE0F

Learn about Bitcoin: https://www.youtube.com/@portofbitcoin

On Tuesday, 16 January 2024 at 08:18, Christopher Allen via bitcoin-dev 
 wrote:

> On Mon, Jan 15, 2024 at 4:28 PM Ava Chow via bitcoin-dev 
>  wrote:
>
>> I've also made a change to the PSBT fields BIP where the aggregate
>> pubkey is included as a plain pubkey rather than as xonly. I think this
>> change is necessary for to make discovering derived keys easier. The
>> derivation paths for derived keys contain the fingerprint of the parent
>> (i.e. the aggregate pubkey) and the fingerprint requires the evenness
>> bit to be serialized. So the aggregate pubkey in the PSBT fields need to
>> contain that evenness information in order for something looking at only
>> the PSBT to be able to determine whether a key is derived from an
>> aggregate pubkey also specified in the PSBT.
>
> The topic of some challenges in using x-only pubkeys with FROST recently came 
> up in a conversation that I didn't completely understand. It sounds like it 
> may be related to this issue with MuSig2.
>
> What are the gotcha's in x-only keys with these multisig protocols? Can you 
> explain a little more? Any other particular things do we need to be careful 
> about with x-only pubkeys? I had mistakenly assumed the technique was just a 
> useful trick, not that it might cause some problems in higher level protocols.
>
> Thanks!
>
> -- Christopher Allen___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] BIP process friction

2024-01-18 Thread Michael Folkson via bitcoin-dev
Hey Luke

I'd be happy to pick up working on BIP 3 again ([0], [1]) in light of this 
issue and others that are repeatedly cropping up (e.g. confusion on the 
recommended flow for working on proposed consensus changes, when to open a pull 
request to bitcoin-inquisition, when to open a pull request to Core, when to 
include/exclude activation params etc).

I don't think there is much I personally disagree with you on with regards to 
BIPs but one issue where I do think there is disagreement is on whether 
proposed default policy changes can/should be BIPed.

I previously drafted this on proposed default policy changes [2]:

"To address problems such as pinning attacks on Lightning and multiparty 
protocols (e.g. vaults) there are and will continue to be draft proposals on 
changing the default policy rules in Bitcoin Core and/or alternative 
implementations. As these proposals are for default policy rules and **not** 
consensus rules there is absolutely no obligation for Bitcoin Core and/or 
alternative implementations to change their default policy rules nor users to 
run any particular policy rules (default or otherwise). The authors of these 
draft proposals are clearly recommending what they think the default policy 
rules should be and what policy rules users should run but it is merely a 
recommendation. There are a lot of moving parts, subtleties and complexities 
involved in designing default policy rules so any recommendation(s) to 
significantly upgrade default policy rules would benefit from being subject to 
a spec process. This would also aid the review of any policy related pull 
requests in Bitcoin Core and/or alternative implementations. An interesting 
recent case study washttps://github.com/bitcoin/bitcoin/pull/22665and Bitcoin 
Core not implementing the exact wording of BIP 125 RBF. In this case (for 
various reasons) as a response Bitcoin Core just removed references to BIP 125 
and started documenting the replacement to BIP 125 rules in the Bitcoin Core 
repo instead. However, it is my view that recommendations for default policy 
rules should be recommendations to all implementations, reviewed by Lightning 
and multiparty protocol developers (not just Bitcoin Core) and hence they would 
benefit from being standardized and being subject to a specification process. I 
will reiterate once again though that policy rules are **not** consensus rules. 
Consensus rules are much closer to an obligation as divergences from consensus 
rules risk the user being forked off the blockchain and could ultimately end up 
in network splits. This does not apply to policy rules."

Are you open to adjusting your stance on proposed policy changes being BIPed? I 
do think it really stunts work on proposed default policy changes and people's 
ability to follow work on these proposals when the specifications for them are 
littered all over the place. I've certainly struggled to follow the latest 
state of V3 policy proposals without clear reference points for the latest 
state of these proposals e.g. [3]. In addition some proposed consensus change 
BIPs are starting to want to include sections on policy (e.g. BIP345, OP_VAULT 
[4]) where it would be much better if they could just refer to a separate 
policy BIP rather than including proposals for both policy and consensus in the 
same BIP.

Thanks for your long and continued work on the BIP process. It is thankless 
work and we don't see the alternative futures where all sorts of garbage was 
merged and given BIP numbers because the BIP editors just merged everything 
without looking at it and not caring about quality standards.

Thanks
Michael

[0]: 
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-September/019412.html
[1]: https://github.com/bitcoin/bips/wiki/BIP-Process-wishlist
[2]: 
https://github.com/bitcoin/bips/wiki/BIP-Process-wishlist#default-policy-changes-eg-v3-a-recommendation-but-not-an-obligation-for-bitcoin-implementations
[3]: 
https://bitcoin.stackexchange.com/questions/117315/what-and-where-are-the-current-status-of-the-bip-125-replacement-the-v3-policy
[4]: https://github.com/bitcoin/bips/pull/1421

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
GPG: A2CF5D71603C92010659818D2A75D601B23FEE0F

Learn about Bitcoin: https://www.youtube.com/@portofbitcoin

On Wednesday, 17 January 2024 at 16:45, Luke Dashjr via bitcoin-dev 
 wrote:

> Perhaps a BIP 3 is in order, but most of the real issue is simply a matter of 
> volunteer time.
>
> AJ's attempt to conflate that with his own personal disagreements with how 
> BIPs have always worked, is unrelated.
>
> Luke
>
> On 1/17/24 01:55, Christopher Allen via bitcoin-dev wrote:
>
>> On Tue, Jan 16, 2024 at 6:43 PM Anthony Towns via bitcoin-dev 
>>  wrote:
>>
>>> If people want to use it for bitcoin-related proposals that don't have
>>> anything to do with inquisition, that's fine; I'm intending to apply the
>>> policies I think the BIPs repo should be us

Re: [bitcoin-dev] Swift Activation - CTV

2024-01-02 Thread Michael Folkson via bitcoin-dev
In the interests of time I'll just pick two to respond to but I don't agree 
with any of your points.

> Covenants allow trustless utxos sharing and also are needed for vaulting. The 
> numerous use cases are documented, built out and on signet to my knowledge. 
> Check out[utxos.org](http://utxos.org/)for a good list

Your knowledge is incorrect. As far as I know in the getting on for 2 years 
since the first CTV activation talk/attempt literally no one has built out a 
CTV use case and demonstrated it on signet with the possible exception of James 
O'Beirne's OP_VAULT which requires other new opcodes in addition to CTV. I wish 
this wasn't the case. It is pitiful that we have these individuals (such as 
yourself) that are so convinced CTV should be activated but refuse to address 
any concerns raised by others and refuse to work on any of the speculated use 
cases, instead choosing to just beat the activation drum over and over again.

> 4. "Best tool for the job" is not the bar. "Safe for all" and "useful for 
> some" is the bar. Like any opcodes or tech Bitcoin has deployed in the past. 
> Changing the bar is not up for discussion.

If you want to avoid a chain split with an activation attempt (it is possible 
you don't care but if you do) you have to address concerns others have with a 
particular proposal. Just because Satoshi was able to make whatever changes he 
liked in the early days of Bitcoin's history and smaller groups of contributors 
then were able to activate changes without much scrutiny (Bitcoin was worth a 
fraction of what it is today and was only supporting a tiny ecosystem back 
then) doesn't mean we can do the same today. Appointing Erik as the new Satoshi 
who can make whatever changes he likes, who defines the bar with ultimate 
certainty and decides what is and what isn't up for discussion also isn't a 
viable option.

Thanks
Michael

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
GPG: A2CF5D71603C92010659818D2A75D601B23FEE0F

Learn about Bitcoin: https://www.youtube.com/@portofbitcoin

On Monday, 1 January 2024 at 17:11, Erik Aronesty  wrote:

> 1. Claiming that something that isn't activated (unusable) isn't used as a 
> non-argument
>
> 2. Talking about activation methods is orthogonal. Bip8 is fine.
>
> 3. Covenants allow trustless utxos sharing and also are needed for vaulting. 
> The numerous use cases are documented, built out and on signet to my 
> knowledge. Check out utxos.org for a good list
>
> 3. No need to discuss wild extremes that are unrelated to ctvs well 
> documented utility. Plus multi-sig allows governments to encumber (or 
> accidentally ruin) destination addresses just like covenants.
>
> 4. "Best tool for the job" is not the bar. "Safe for all" and "useful for 
> some" is the bar. Like any opcodes or tech Bitcoin has deployed in the past. 
> Changing the bar is not up for discussion.
>
> CTV has already been demonstrated "useful for some". The question that needs 
> to be answered is whether there are any specific objections to safety.
>
> On Mon, Jan 1, 2024, 11:37 AM Michael Folkson  
> wrote:
>
>> Hi Erik
>>
>>> So what exactly are the risks of CTV over multi-sig?
>>
>> It is a strange comparison. Multisig is active onchain and is being used 
>> today for all sorts of things including Lightning and setups that address 
>> risk of single key loss or malicious signing. When discussing risks of CTV 
>> there are all sorts of risks that don't apply to multisig. These include 
>> that it is never used for any of its speculated use cases (multisig is being 
>> used today), other proposals end up being used instead of it (I'm not sure 
>> there were or are competing proposals so that multisig stops being used, 
>> MuSig2 maybe?), chain split risks with activation if there isn't consensus 
>> to activate it etc. Plus usage of complex (non covenant) scripts that fully 
>> utilize Taproot trees is still low today. Going straight to covenants 
>> (imposing restrictions on where​ funds can be sent) and not bothering with 
>> imposing all the restrictions you'd like on how​ funds can be spent in the 
>> first place seems to me to be putting the cart before the horse. Covenants 
>> don't ultimately solve the key management issue, they just move it from the 
>> pre spending phase to the post spending phase. So the benefits (although 
>> non-zero) aren't as obvious as some of the covenant advocates are 
>> suggesting. And although CTV is a limited covenant (some argue too limited) 
>> covenants taken to wild extremes could create all sorts of second order 
>> effects where funds can't be spent because of complex combinations of 
>> covenants. Even the strongest CTV proponent seems to suggest that the 
>> introduction of covenants wouldn't end with CTV.
>>
>> The way to reduce implementation risk for a use case of a particular 
>> proposal is to build out that use case and see if CTV is the best tool for 
>> the job. Repeatedly try

Re: [bitcoin-dev] Swift Activation - CTV

2024-01-02 Thread Michael Folkson via bitcoin-dev
Hi Erik

> So what exactly are the risks of CTV over multi-sig?

It is a strange comparison. Multisig is active onchain and is being used today 
for all sorts of things including Lightning and setups that address risk of 
single key loss or malicious signing. When discussing risks of CTV there are 
all sorts of risks that don't apply to multisig. These include that it is never 
used for any of its speculated use cases (multisig is being used today), other 
proposals end up being used instead of it (I'm not sure there were or are 
competing proposals so that multisig stops being used, MuSig2 maybe?), chain 
split risks with activation if there isn't consensus to activate it etc. Plus 
usage of complex (non covenant) scripts that fully utilize Taproot trees is 
still low today. Going straight to covenants (imposing restrictions on where​ 
funds can be sent) and not bothering with imposing all the restrictions you'd 
like on how​ funds can be spent in the first place seems to me to be putting 
the cart before the horse. Covenants don't ultimately solve the key management 
issue, they just move it from the pre spending phase to the post spending 
phase. So the benefits (although non-zero) aren't as obvious as some of the 
covenant advocates are suggesting. And although CTV is a limited covenant (some 
argue too limited) covenants taken to wild extremes could create all sorts of 
second order effects where funds can't be spent because of complex combinations 
of covenants. Even the strongest CTV proponent seems to suggest that the 
introduction of covenants wouldn't end with CTV.

The way to reduce implementation risk for a use case of a particular proposal 
is to build out that use case and see if CTV is the best tool for the job. 
Repeatedly trying to activate CTV when there isn't consensus for it to be 
activated does not reduce that implementation risk in any way, shape or form.

Thanks
Michael

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
GPG: A2CF5D71603C92010659818D2A75D601B23FEE0F

Learn about Bitcoin: https://www.youtube.com/@portofbitcoin

On Saturday, 30 December 2023 at 08:59, Erik Aronesty via bitcoin-dev 
 wrote:

> So what exactly are the risks of CTV over multi-sig?
>
>>___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] Swift Activation - CTV

2023-12-30 Thread Michael Folkson via bitcoin-dev
Hey AJ

Thanks for this, pretty much agree with all of it. It seems like a week doesn't 
go by now without a new individual popping out the woodwork proposing an 
upcoming activation of CTV with no new PoCs and no new insights. I'm not sure 
what it is about CTV (versus say other proposals) that it keeps attracting 
these people that refuse to work on PoCs or anything that drives the research 
area forward and yet want to try to attempt activation where the success 
scenario would be a chain split.

> > But "target fixation" [0] is a thing too: maybe "CTV" (and/or "APO") were 
> > just a bad approach from the start.

It is hard to discuss APO in a vacuum when this is going on the background but 
I'm interested in you grouping APO with CTV in this statement. At the time of 
writing there clearly isn't consensus or advanced PoCs on any of the use cases 
CTV claims to enable. (One rare exception on the use case front is James 
O'Beirne's OP_VAULT [0] that requires additional opcodes to OP_CTV). But APO 
does seem to be the optimal design and have broad consensus in the Lightning 
community for enabling eltoo/LN-Symmetry. Any other use cases APO enables would 
be an additional benefit.

I don't think one can seriously think about an *upcoming* activation for APO as 
there is still more work to do to convince the community that it would be worth 
the risks of embarking on another activation process. But assuming another year 
of concerted work on APO and the CTV woodwork of chaos (hopefully) being 
exhausted do you think an APO activation would be viable in say 2025/2026? Is 
your hesitancy on APO based on any particular technical concerns or just 
fatigue from the CTV chaos?

Thanks
Michael

[0]: 
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-January/021318.html

--
Michael Folkson
Email: michaelfolkson at protonmail.com
GPG: A2CF5D71603C92010659818D2A75D601B23FEE0F

Learn about Bitcoin: https://www.youtube.com/@portofbitcoin


On Saturday, 30 December 2023 at 08:05, Anthony Towns via bitcoin-dev 
 wrote:


> Huh, this list is still active?
> 
> On Fri, Dec 22, 2023 at 10:34:52PM +, alicexbt via bitcoin-dev wrote:
> 
> > I think CTV is not ready for activation yet. Although I want it to be 
> > activated and use payment pools, we still have some work to do and AJ is 
> > correct that we need to build more apps that use CTV on signet.
> 
> 
> I've said it before, and I'll say it again, but if you want to change
> bitcoin consensus rules, IMO the sensible process is:
> 
> * work out what you think the change should be
> * demonstrate the benefits so everyone can clearly see what they are,
> and that they're worth spending time on
> * review the risks, so that whatever risks there may be are well
> understood, and minimise them
> * iterate on all three of those steps to increase the benefits and
> reduce the risks
> * once "everyone" agrees the benefits are huge and the risks are low,
> work on activating it
> 
> If you're having trouble demonstrating that the benefits really are
> worth spending time on, you probably need to go back to the first step
> and reconsider the proposal. The "covtools" and "op_cat" approaches are
> a modest way of doing that: adding additional opcodes that mesh well
> with CTV, increasing the benefits from making a change.
> 
> But "target fixation" [0] is a thing too: maybe "CTV" (and/or "APO")
> were just a bad approach from the start. Presumably "activate CTV"
> is really intended as a step towards your actual goal, whether that be
> "make it harder for totalitarians to censor payments", "replace credit
> cards", "make lots of money", "take control over bitcoind evelopment",
> or something else. Maybe there's a better step towards some/all of
> whatever those goals may be than "activate CTV". Things like "txhash"
> take that approach and go back to the first step.
> 
> To me, it seems like CTV has taken the odd approach of simultaneously
> maximising (at least perceived) risk, while minimising the potential
> benefits. As far as maximising risk goes, it's taken Greg Maxwell's
> "amusingly bad idea" post from bitcointalk in 2013 [1] and made the bad
> consequence described there (namely, "coin covenants", which left Greg
> "screaming in horror") as the centrepiece of the functionality being
> added, per its motivation section. It then minimises the potential
> benefits that accompany that risk by restricting the functionality being
> provided as far as you can without neutering it entirely. If you wanted
> a recipe for how to propose a change to bitcoin and ensure that it's
> doomed to fail while still gathering a lot of attention, I'm honestly
> not sure how you could come up with a better approach?
> 
> [0] https://en.wikipedia.org/wiki/Target_fixation
> [1] https://bitcointalk.org/index.php?topic=278122.0
> 
> > - Apart from a few PoCs that do not achieve anything big on mainnet, nobody 
> > has tried to build PoC for a use case that solves real problems
> 
> 
>

Re: [bitcoin-dev] Responsible disclosures and Bitcoin development

2023-05-23 Thread Michael Folkson via bitcoin-dev
Hi alicexbt

> It has been assigned CVE-2023-33297

Did you personally request the CVE ID? Say via here [0]? Did you confirm with 
someone listed on the vulnerability reporting process [1] for Bitcoin Core that 
it made sense to do that at this time? I'm not sure whether completely 
bypassing that list and requesting CVE IDs for the project as an individual is 
the way to go. If you have already contacted one of them and they've given you 
the go ahead to start the CVE process then fine. You weren't particularly clear 
with what has occurred.

Thanks
Michael

[0]: https://cve.mitre.org/cve/request_id.html
[1]: https://github.com/bitcoin/bitcoin/blob/master/SECURITY.md

--
Michael Folkson
Email: michaelfolkson at protonmail.com
GPG: A2CF5D71603C92010659818D2A75D601B23FEE0F


Learn about Bitcoin: https://www.youtube.com/@portofbitcoin


--- Original Message ---
On Monday, May 22nd, 2023 at 13:56, alicexbt  wrote:


> Hi Michael,
> 
> > Now that's not to say you may not have a point about better documentation 
> > and guidance on what should go through the vulnerability reporting process 
> > and what shouldn't.
> 
> 
> Yes, this can be improved.
> 
> > Or even that this particular issue could ultimately end up being classed a 
> > CVE.
> 
> 
> It has been assigned CVE-2023-33297
> 
> 
> /dev/fd0
> floppy disk guy
> 
> Sent with Proton Mail secure email.
> 
> --- Original Message ---
> On Wednesday, May 17th, 2023 at 6:14 PM, Michael Folkson 
> michaelfolk...@protonmail.com wrote:
> 
> 
> 
> > Hi alicexbt
> > 
> > "Open source" has the word "open" in it. Pushing everything into closed, 
> > private channels of communication and select groups of individuals is what 
> > I've been trying to push back upon. As I said in my initial response "it 
> > doesn't scale for all bug reports and investigations to go through this 
> > tiny funnel" though "there are clearly examples where the process is 
> > critically needed".
> > 
> > Now that's not to say you may not have a point about better documentation 
> > and guidance on what should go through the vulnerability reporting process 
> > and what shouldn't. Or even that this particular issue could ultimately end 
> > up being classed a CVE. But rather than merely complaining and putting 
> > "open source" into quote marks perhaps suggest what class of bug reports 
> > should go through the tiny funnel and what shouldn't. Unless you think 
> > everything should go through the funnel in which case you are advocating 
> > for less openness whilst simultaneously complaining it isn't "open source". 
> > Square that circle.
> > 
> > Thanks
> > Michael
> > 
> > --
> > Michael Folkson
> > Email: michaelfolkson at protonmail.com
> > GPG: A2CF5D71603C92010659818D2A75D601B23FEE0F
> > 
> > Learn about Bitcoin: https://www.youtube.com/@portofbitcoin
> > 
> > --- Original Message ---
> > On Tuesday, May 16th, 2023 at 23:39, alicexbt alice...@protonmail.com wrote:
> > 
> > > Hi Michael,
> > > 
> > > A disagreement and some thoughts already shared in an email although its 
> > > not clear to some "open source" devs:
> > > 
> > > Impact of this vulnerability:
> > > 
> > > - Denial of Service
> > > - Stale blocks affecting mining pool revenue
> > > 
> > > Why it should have been reported privately to secur...@bitcoincore.org, 
> > > even if initially found affecting only debug build?
> > > 
> > > Example: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3129
> > > 
> > > CVE is a different process and I am aware of it. It would be good for 
> > > certain developers in the core team to reflect on their own approach to 
> > > security, regardless of whether their work receives CVE recognition or 
> > > not.
> > > 
> > > /dev/fd0
> > > floppy disk guy
> > > 
> > > Sent with Proton Mail secure email.
> > > 
> > > --- Original Message ---
> > > On Friday, May 12th, 2023 at 1:14 AM, Michael Folkson 
> > > michaelfolk...@protonmail.com wrote:
> > > 
> > > > Hi alicexbt
> > > > 
> > > > The vulnerability reporting process requires communication and 
> > > > resolution via a small group of individuals 0 rather than through open 
> > > > collaboration between any contributors on the repo. There are clearly 
> > > > examples where the process is critically needed, the most obvious past 
> > > > example being the 2018 inflation bug 1. However, it doesn't scale for 
> > > > all bug reports and investigations to go through this tiny funnel. For 
> > > > an issue that isn't going to result in loss of onchain funds and 
> > > > doesn't seem to present a systemic issue (e.g. network DoS attack, 
> > > > inflation bug) I'm of the view that opening a public issue was 
> > > > appropriate in this case especially as the issue initially assumed it 
> > > > was only impacting nodes running in debug mode (not a mode a node in 
> > > > production is likely to be running in).
> > > > 
> > > > An interesting question though and I'm certainly happy to be corrected 
> > > > by

Re: [bitcoin-dev] Responsible disclosures and Bitcoin development

2023-05-17 Thread Michael Folkson via bitcoin-dev
Hi alicexbt

"Open source" has the word "open" in it. Pushing everything into closed, 
private channels of communication and select groups of individuals is what I've 
been trying to push back upon. As I said in my initial response "it doesn't 
scale for all bug reports and investigations to go through this tiny funnel" 
though "there are clearly examples where the process is critically needed".

Now that's not to say you may not have a point about better documentation and 
guidance on what should go through the vulnerability reporting process and what 
shouldn't. Or even that this particular issue could ultimately end up being 
classed a CVE. But rather than merely complaining and putting "open source" 
into quote marks perhaps suggest what class of bug reports should go through 
the tiny funnel and what shouldn't. Unless you think everything should go 
through the funnel in which case you are advocating for less openness whilst 
simultaneously complaining it isn't "open source". Square that circle.

Thanks
Michael

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
GPG: A2CF5D71603C92010659818D2A75D601B23FEE0F

Learn about Bitcoin: https://www.youtube.com/@portofbitcoin

--- Original Message ---
On Tuesday, May 16th, 2023 at 23:39, alicexbt  wrote:

> Hi Michael,
>
> A disagreement and some thoughts already shared in an email although its not 
> clear to some "open source" devs:
>
> Impact of this vulnerability:
>
> - Denial of Service
> - Stale blocks affecting mining pool revenue
> Why it should have been reported privately to secur...@bitcoincore.org, even 
> if initially found affecting only debug build?
>
> Example: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3129
>
> CVE is a different process and I am aware of it. It would be good for certain 
> developers in the core team to reflect on their own approach to security, 
> regardless of whether their work receives CVE recognition or not.
>
> /dev/fd0
> floppy disk guy
>
> Sent with [Proton Mail](https://proton.me/) secure email.
>
> --- Original Message ---
> On Friday, May 12th, 2023 at 1:14 AM, Michael Folkson 
>  wrote:
>
>> Hi alicexbt
>>
>> The vulnerability reporting process requires communication and resolution 
>> via a small group of individuals [0] rather than through open collaboration 
>> between any contributors on the repo. There are clearly examples where the 
>> process is critically needed, the most obvious past example being the 2018 
>> inflation bug [1]. However, it doesn't scale for all bug reports and 
>> investigations to go through this tiny funnel. For an issue that isn't going 
>> to result in loss of onchain funds and doesn't seem to present a systemic 
>> issue (e.g. network DoS attack, inflation bug) I'm of the view that opening 
>> a public issue was appropriate in this case especially as the issue 
>> initially assumed it was only impacting nodes running in debug mode (not a 
>> mode a node in production is likely to be running in).
>>
>> An interesting question though and I'm certainly happy to be corrected by 
>> those who have been investigating the issue. Some delicate trade-offs 
>> involved including understanding and resolving the issue faster through 
>> wider collaboration versus keeping knowledge of the issue within a smaller 
>> group.
>>
>> Thanks
>> Michael
>>
>> [0]: https://github.com/bitcoin/bitcoin/blob/master/SECURITY.md
>> [1]: https://bitcoincore.org/en/2018/09/20/notice/
>>
>> --
>> Michael Folkson
>> Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
>> GPG: A2CF5D71603C92010659818D2A75D601B23FEE0F
>>
>> Learn about Bitcoin: https://www.youtube.com/@portofbitcoin
>>
>> --- Original Message ---
>> On Tuesday, May 9th, 2023 at 03:47, alicexbt via bitcoin-dev 
>>  wrote:
>>
>>> Hi Bitcoin Developers,
>>>
>>> There is an open issue in bitcoin core repository which was created last 
>>> week: https://github.com/bitcoin/bitcoin/issues/27586
>>>
>>> I think this should have been reported privately as vulnerability instead 
>>> of creating a GitHub issue even if it worked only in debug mode. Some users 
>>> in the comments have also experienced similar issues without debug build 
>>> used for bitcoind. I have not noticed any decline in the number of 
>>> listening nodes on bitnodes.io in last 24 hours so I am assuming this is 
>>> not an issue with majority of bitcoin core nodes. However, things could 
>>> have been worse and there is nothing wrong in reporting something privately 
>>> if there is even 1% possibility of it being a vulnerability. I had recently 
>>> reported something to LND security team based on a closed issue on GitHub 
>>> which eventually was not considered a vulnerability: 
>>> https://github.com/lightningnetwork/lnd/issues/7449
>>>
>>> In the CPU usage issue, maybe the users can run bitcoind with bigger 
>>> mempool or try other things shared in the issue by everyone.
>>>
>>> This isn't the first ti

Re: [bitcoin-dev] Responsible disclosures and Bitcoin development

2023-05-11 Thread Michael Folkson via bitcoin-dev
Hi alicexbt

The vulnerability reporting process requires communication and resolution via a 
small group of individuals [0] rather than through open collaboration between 
any contributors on the repo. There are clearly examples where the process is 
critically needed, the most obvious past example being the 2018 inflation bug 
[1]. However, it doesn't scale for all bug reports and investigations to go 
through this tiny funnel. For an issue that isn't going to result in loss of 
onchain funds and doesn't seem to present a systemic issue (e.g. network DoS 
attack, inflation bug) I'm of the view that opening a public issue was 
appropriate in this case especially as the issue initially assumed it was only 
impacting nodes running in debug mode (not a mode a node in production is 
likely to be running in).

An interesting question though and I'm certainly happy to be corrected by those 
who have been investigating the issue. Some delicate trade-offs involved 
including understanding and resolving the issue faster through wider 
collaboration versus keeping knowledge of the issue within a smaller group.

Thanks
Michael

[0]: https://github.com/bitcoin/bitcoin/blob/master/SECURITY.md
[1]: https://bitcoincore.org/en/2018/09/20/notice/

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
GPG: A2CF5D71603C92010659818D2A75D601B23FEE0F

Learn about Bitcoin: https://www.youtube.com/@portofbitcoin

--- Original Message ---
On Tuesday, May 9th, 2023 at 03:47, alicexbt via bitcoin-dev 
 wrote:

> Hi Bitcoin Developers,
>
> There is an open issue in bitcoin core repository which was created last 
> week: https://github.com/bitcoin/bitcoin/issues/27586
>
> I think this should have been reported privately as vulnerability instead of 
> creating a GitHub issue even if it worked only in debug mode. Some users in 
> the comments have also experienced similar issues without debug build used 
> for bitcoind. I have not noticed any decline in the number of listening nodes 
> on bitnodes.io in last 24 hours so I am assuming this is not an issue with 
> majority of bitcoin core nodes. However, things could have been worse and 
> there is nothing wrong in reporting something privately if there is even 1% 
> possibility of it being a vulnerability. I had recently reported something to 
> LND security team based on a closed issue on GitHub which eventually was not 
> considered a vulnerability: 
> https://github.com/lightningnetwork/lnd/issues/7449
>
> In the CPU usage issue, maybe the users can run bitcoind with bigger mempool 
> or try other things shared in the issue by everyone.
>
> This isn't the first time either when vulnerability was reported publicly: 
> https://gist.github.com/chjj/4ff628f3a0d42823a90edf47340f0db9 and this was 
> even exploited on mainnet which affected some projects.
>
> This email is just a request to consider the impact of any vulnerability if 
> gets exploited could affect lot of things. Even the projects with no 
> financial activity involved follow better practices.
>
> /dev/fd0
> floppy disk guy
>
> Sent with [Proton Mail](https://proton.me/) secure email.___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] Bitcoin Core maintainers and communication on merge decisions

2023-05-11 Thread Michael Folkson via bitcoin-dev
Thanks for this Andrew.

> However I later spoke to a few others privately who were more familiar with 
> Vasil's work and they had told me that they were not comfortable with Vasil 
> being P2P maintainer.

Some individuals who will stay anonymous and who were more familiar with 
Vasil's work than you weren't happy with the standard of his work. Ok I hope 
they have communicated this to him directly and provided specific examples 
where he can improve.

> From having received plenty of reviews from ryanofsky, I can certainly say 
> that his reviews are in depth. He has pointed out subtle bugs, asks questions 
> about very low level details, and has well reasoned critiques and discussions 
> about design decisions.

And Vasil didn't provide as in depth reviews when compared to ryanofsky. Again 
I hope they have communicated this to him directly.

> Many cited your behavior as a primary reason to stop discussing things 
> publicly, with things such as dragging project meta discussions onto the 
> mailing list and twitter. These have invited abuse towards maintainers and 
> contributors, which in turn makes them takes those discussions to more 
> private settings. People feel like they're getting sealioned by you (and a 
> few others) when they post publicly, and so they have stopped doing so.

I have tried over and over again on IRC and on GitHub and I've been ignored. To 
claim discussions on the bitcoin-dev mailing list invite abuse is just 
laughable. It is public just like IRC logs and GitHub. If people don't like 
discussing in public we should give up the pretense and put on the Core README 
that all important discussions on decision making are done in private and are 
invite only.

> People feel like they're getting sealioned by you (and a few others) when 
> they post publicly, and so they have stopped doing so.

This is the "rude" and "aggressive" accusation, right. Someone asks questions 
that maintainers don't want to answer, maintainers accuse them of being "rude" 
and "aggressive" and then use that as a justification for not answering those 
questions in the first place. It is a pretty effective strategy. Don't even 
need to provide examples, just label them and then you can ignore them.

> Since you are intent on discussing and re-litigating the decision about 
> Vasil, I will agree that we (the maintainers) could have done a better job of 
> communicating. However we stand by the decision that was made in the end, and 
> we did have a chat with him about it during CoreDev.

Thanks for at least admitting this on the communication point. If Vasil has 
been spoken to and is happy with the situation then the situation is much 
better than I feared. You might think this is re-litigating but the addition, 
rejection and removal of maintainers is among the most important decisions you 
can make as a maintainer and perhaps only dwarfed by the merging of consensus 
changes that can cause chain splits. If anything should be "re-litigated" it 
should be this.

Thanks
Michael

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
GPG: A2CF5D71603C92010659818D2A75D601B23FEE0F

Learn about Bitcoin: https://www.youtube.com/@portofbitcoin

--- Original Message ---
On Wednesday, May 10th, 2023 at 22:24, Andrew Chow via bitcoin-dev 
 wrote:

> On 05/07/23 03:03 AM, Michael Folkson via bitcoin-dev wrote:
>
>> The decision process for adding a new maintainer was according to the IRC 
>> meeting that the maintainers decided privately there was a need for a 
>> maintainer “who understood our interfaces and modularization efforts well” 
>> and that ryanofsky was a “good fit for that”. I don’t know whether this was 
>> decided in a private IRC channel or was decided at the recent in person Core 
>> Dev meeting. Regardless, many have had no input into the discussion on what 
>> kind of maintainer the project needs going forward and it seems the 
>> maintainers do not want to discuss that aspect of the decision.
>
> Since the project began, the decision to seek out and then add a maintainer 
> has always been made by existing maintainers. When the maintainers feel that 
> there is a need for additional maintainers, they may have an open call for 
> volunteers, or may have a candidate already in mind and suggest that specific 
> person for maintainership. Contributors generally are not consulted in the 
> decision to seek a new maintainer as they would not know whether there are 
> things that are being overlooked or that there is maintainership load that 
> needs to be distributed. Even so, it wouldn't be appropriate to add a 
> maintainer if many contributors disagreed with it, just as with any other PR.
>
> We can take a lo

Re: [bitcoin-dev] Bitcoin Core maintainers and communication on merge decisions

2023-05-11 Thread Michael Folkson via bitcoin-dev
> Blocking Vasil was discussed on a similar GitHub PR. Whether or not one 
> agrees or disagrees, the same process is being used. Anyone can NACK and give 
> a reason for Russ as well.

With respect Steve the process for Vasil was keeping Vasil's PR open for up to 
5 months with zero NACKs and two maintainers refusing to engage on why it 
wasn't being merged or what it needed for it to be merged. Followed by a later 
justification for blocking it that they've refused to discuss whether it 
applies to Russ.

The process for Russ was the maintainers deciding privately there was a need 
for a maintainer "who understood our interfaces and modularization efforts 
well" and his PR was merged within 2 days.

If that's the same process to you I don't know what to say. We have different 
perspectives on what constitutes a decision process.

(I'm sure this is clear but just to reiterate in case it isn't none of this is 
a criticism of Russ.)

Thanks
Michael

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
GPG: A2CF5D71603C92010659818D2A75D601B23FEE0F

Learn about Bitcoin: https://www.youtube.com/@portofbitcoin

--- Original Message ---
On Wednesday, May 10th, 2023 at 17:36, Steve Lee  wrote:

> Blocking Vasil was discussed on a similar GitHub PR. Whether or not one 
> agrees or disagrees, the same process is being used. Anyone can NACK and give 
> a reason for Russ as well.
>
> On Wed, May 10, 2023 at 8:55 AM Michael Folkson 
>  wrote:
>
>> Hi Steve
>>
>>> Isn't this as simple as anyone (in particular Core project contributors) 
>>> can express their view in this 
>>> PR?https://github.com/bitcoin/bitcoin/pull/27604
>>
>> Nope. The extent to which the rationale for blocking Vasil as a maintainer 
>> applies or doesn't apply to ryanofsky (or future potential maintainers) 
>> isn't discussed. From now on the precedent is proposed maintainers can be 
>> blocked for unknown and/or potentially inconsistent reasons by the existing 
>> maintainers.
>>
>> Thanks
>> Michael
>>
>> --
>> Michael Folkson
>> Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
>> GPG: A2CF5D71603C92010659818D2A75D601B23FEE0F
>>
>> Learn about Bitcoin: https://www.youtube.com/@portofbitcoin
>>
>> --- Original Message ---
>> On Wednesday, May 10th, 2023 at 03:44, Steve Lee via bitcoin-dev 
>>  wrote:
>>
>>> Isn't this as simple as anyone (in particular Core project contributors) 
>>> can express their view in this PR? 
>>> https://github.com/bitcoin/bitcoin/pull/27604
>>>
>>> On Mon, May 8, 2023 at 5:03 AM Bryan Bishop via bitcoin-dev 
>>>  wrote:
>>>
>>>> On Sun, May 7, 2023 at 12:36 PM David A. Harding via bitcoin-dev 
>>>>  wrote:
>>>>
>>>>> On 2023-05-06 21:03, Michael Folkson via bitcoin-dev wrote:
>>>>>> Essentially my concern is going forward current maintainers will
>>>>>> decide which proposed new maintainers to add and which to block.
>>>>>
>>>>> This is how a large percentage of organizations are run. The current
>>>>> members of a board or other governance group choose who will become a
>>>>> new board member.
>>>>
>>>> Yes but it's unrelated to what Bitcoin Core is-- a volunteer project of 
>>>> independent contributors merging different pull requests or patches. The 
>>>> github controls are merely because that is how github works. There is also 
>>>> a secondary issue of people tending to confuse Bitcoin Core with the 
>>>> bitcoin protocol in general:
>>>> https://blog.lopp.net/who-controls-bitcoin-core/
>>>> https://medium.com/@bergealex4/the-tao-of-bitcoin-development-ff093c6155cd
>>>> https://bitcoinmagazine.com/culture/a-primer-on-bitcoin-governance-or-why-developers-aren-t-in-charge-of-the-protocol-1473270427
>>>>
>>>> - Bryan
>>>> https://twitter.com/kanzure
>>>> ___
>>>> bitcoin-dev mailing list
>>>> bitcoin-dev@lists.linuxfoundation.org
>>>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] Bitcoin Core maintainers and communication on merge decisions

2023-05-10 Thread Michael Folkson via bitcoin-dev
Hi Steve

> Isn't this as simple as anyone (in particular Core project contributors) can 
> express their view in this PR?https://github.com/bitcoin/bitcoin/pull/27604

Nope. The extent to which the rationale for blocking Vasil as a maintainer 
applies or doesn't apply to ryanofsky (or future potential maintainers) isn't 
discussed. From now on the precedent is proposed maintainers can be blocked for 
unknown and/or potentially inconsistent reasons by the existing maintainers.

Thanks
Michael

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
GPG: A2CF5D71603C92010659818D2A75D601B23FEE0F

Learn about Bitcoin: https://www.youtube.com/@portofbitcoin

--- Original Message ---
On Wednesday, May 10th, 2023 at 03:44, Steve Lee via bitcoin-dev 
 wrote:

> Isn't this as simple as anyone (in particular Core project contributors) can 
> express their view in this PR? https://github.com/bitcoin/bitcoin/pull/27604
>
> On Mon, May 8, 2023 at 5:03 AM Bryan Bishop via bitcoin-dev 
>  wrote:
>
>> On Sun, May 7, 2023 at 12:36 PM David A. Harding via bitcoin-dev 
>>  wrote:
>>
>>> On 2023-05-06 21:03, Michael Folkson via bitcoin-dev wrote:
>>>> Essentially my concern is going forward current maintainers will
>>>> decide which proposed new maintainers to add and which to block.
>>>
>>> This is how a large percentage of organizations are run. The current
>>> members of a board or other governance group choose who will become a
>>> new board member.
>>
>> Yes but it's unrelated to what Bitcoin Core is-- a volunteer project of 
>> independent contributors merging different pull requests or patches. The 
>> github controls are merely because that is how github works. There is also a 
>> secondary issue of people tending to confuse Bitcoin Core with the bitcoin 
>> protocol in general:
>> https://blog.lopp.net/who-controls-bitcoin-core/
>> https://medium.com/@bergealex4/the-tao-of-bitcoin-development-ff093c6155cd
>> https://bitcoinmagazine.com/culture/a-primer-on-bitcoin-governance-or-why-developers-aren-t-in-charge-of-the-protocol-1473270427
>>
>> - Bryan
>> https://twitter.com/kanzure
>> ___
>> bitcoin-dev mailing list
>> bitcoin-dev@lists.linuxfoundation.org
>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] [Mempool spam] Should we as developers reject non-standard Taproot transactions from full nodes?

2023-05-09 Thread Michael Folkson via bitcoin-dev
> im unclear as to the purposepaying an onchain transaction fee greater than 
> the amount receiving could possibly serve.

If you expect fees to continue to rise and be sustained at abnormally high 
levels for a long period of time you might seek to close your Lightning 
channel(s) and move whatever value you can from these Lightning channel(s) 
onchain even if it means paying a higher fee than the amount you are receiving.

I don't necessarily recommend doing this (it would depend on a number of 
factors, both personal and external) but there is no reason to prevent someone 
in say the consensus rules from doing this if they wish.

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
GPG: A2CF5D71603C92010659818D2A75D601B23FEE0F

Learn about Bitcoin: https://www.youtube.com/@portofbitcoin

--- Original Message ---
On Monday, May 8th, 2023 at 20:47, Erik Aronesty  wrote:

> im unclear as to the purpose paying an onchain transaction fee greater than 
> the amount receiving could possibly serve.
>
> what benefit do you get aside from losing bitcoin?
>
> are there any, non-theoretical, benefits to facilitating dust transactions?
>
> we could, of course, have it be non-consensus (no route dust) to start with
>
> On Mon, May 8, 2023 at 1:13 PM Michael Folkson 
>  wrote:
>
>>> probably easier just to reject any transaction where the fee is higher than 
>>> the sum of the outputs
>>
>> And prevent perfectly reasonable transfers of value and attempted Lightning 
>> channel closes during fee spikes? If I want​ to close my Lightning channel 
>> during a protracted fee spike where I have to pay an onchain transaction fee 
>> greater than the amount I am receiving you want to stop me doing that? You 
>> are impinging on a valid use case as well as requiring a consensus rule 
>> change.
>>
>> --
>> Michael Folkson
>> Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
>> GPG: A2CF5D71603C92010659818D2A75D601B23FEE0F
>>
>> Learn about Bitcoin: https://www.youtube.com/@portofbitcoin
>>
>> --- Original Message ---
>> On Monday, May 8th, 2023 at 13:58, Erik Aronesty via bitcoin-dev 
>>  wrote:
>>
>>> probably easier just to reject any transaction where the fee is higher than 
>>> the sum of the outputs
>>>
>>> On Mon, May 8, 2023, 7:55 AM Ali Sherief via bitcoin-dev 
>>>  wrote:
>>>
 Hi guys,

 I think everyone on this list knows what has happened to the Bitcoin 
 mempool during the past 96 hours. Due to side projects such as BRC-20 
 having such a high volume, real bitcoin transactions are being priced out 
 and that is what is causing the massive congestion that has arguable not 
 been seen since December 2017. I do not count the March 2021 congestion 
 because that was only with 1-5sat/vbyte.

 Such justifiably worthless ("worthless" is not even my word - that's how 
 its creator described them[1]) tokens threaten the smooth and normal use 
 of the Bitcoin network as a peer-to-pear digital currency, as it was 
 intended to be used as.

 If the volume does not die down over the next few weeks, should we take an 
 action? The bitcoin network is a triumvirate of developers, miners, and 
 users. Considering that miners are largely the entities at fault for 
 allowing the system to be abused like this, the harmony of Bitcoin 
 transactions is being disrupted right now. Although this community has a 
 strong history of not putting its fingers into pies unless absolutely 
 necessary - an example being during the block size wars and Segwit - 
 should similar action be taken now, in the form of i) BIPs and/or ii) 
 commits into the Bitcoin Core codebase, to curtail the loophole in BIP 342 
 (which defines the validation rules for Taproot scripts) which has allowed 
 these unintended consequences?

 An alternative would be to enforce this "censorship" at the node level and 
 introduce a run-time option to instantly prune all non-standard Taproot 
 transactions. This will be easier to implement, but won't hit the road 
 until minimum next release.

 I know that some people will have their criticisms about this, 
 absolutists/libertarians/maximum-freedom advocates, which is fine, but we 
 need to find a solution for this that fits everyone's common ground. We 
 indirectly allowed this to happen, which previously wasn't possible 
 before. So we also have a responsibility to do something to ensure that 
 this kind of congestion can never happen again using Taproot.

 -Ali

 ---

 [1]: 
 [https://www.coindesk.com/consensus-magazine/2023/05/05/pump-the-brcs-the-promise-and-peril-of-bitcoin-backed-tokens/](https://www.coindesk.com/consensus-magazine/2023/05/05/pump-the-brcs-the-promise-and-peril-of-bitcoin-backed-tokens/?outputType=amp)

 ___
 bit

Re: [bitcoin-dev] [Mempool spam] Should we as developers reject non-standard Taproot transactions from full nodes?

2023-05-08 Thread Michael Folkson via bitcoin-dev
> probably easier just to reject any transaction where the fee is higher than 
> the sum of the outputs

And prevent perfectly reasonable transfers of value and attempted Lightning 
channel closes during fee spikes? If I want​ to close my Lightning channel 
during a protracted fee spike where I have to pay an onchain transaction fee 
greater than the amount I am receiving you want to stop me doing that? You are 
impinging on a valid use case as well as requiring a consensus rule change.

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
GPG: A2CF5D71603C92010659818D2A75D601B23FEE0F

Learn about Bitcoin: https://www.youtube.com/@portofbitcoin

--- Original Message ---
On Monday, May 8th, 2023 at 13:58, Erik Aronesty via bitcoin-dev 
 wrote:

> probably easier just to reject any transaction where the fee is higher than 
> the sum of the outputs
>
> On Mon, May 8, 2023, 7:55 AM Ali Sherief via bitcoin-dev 
>  wrote:
>
>> Hi guys,
>>
>> I think everyone on this list knows what has happened to the Bitcoin mempool 
>> during the past 96 hours. Due to side projects such as BRC-20 having such a 
>> high volume, real bitcoin transactions are being priced out and that is what 
>> is causing the massive congestion that has arguable not been seen since 
>> December 2017. I do not count the March 2021 congestion because that was 
>> only with 1-5sat/vbyte.
>>
>> Such justifiably worthless ("worthless" is not even my word - that's how its 
>> creator described them[1]) tokens threaten the smooth and normal use of the 
>> Bitcoin network as a peer-to-pear digital currency, as it was intended to be 
>> used as.
>>
>> If the volume does not die down over the next few weeks, should we take an 
>> action? The bitcoin network is a triumvirate of developers, miners, and 
>> users. Considering that miners are largely the entities at fault for 
>> allowing the system to be abused like this, the harmony of Bitcoin 
>> transactions is being disrupted right now. Although this community has a 
>> strong history of not putting its fingers into pies unless absolutely 
>> necessary - an example being during the block size wars and Segwit - should 
>> similar action be taken now, in the form of i) BIPs and/or ii) commits into 
>> the Bitcoin Core codebase, to curtail the loophole in BIP 342 (which defines 
>> the validation rules for Taproot scripts) which has allowed these unintended 
>> consequences?
>>
>> An alternative would be to enforce this "censorship" at the node level and 
>> introduce a run-time option to instantly prune all non-standard Taproot 
>> transactions. This will be easier to implement, but won't hit the road until 
>> minimum next release.
>>
>> I know that some people will have their criticisms about this, 
>> absolutists/libertarians/maximum-freedom advocates, which is fine, but we 
>> need to find a solution for this that fits everyone's common ground. We 
>> indirectly allowed this to happen, which previously wasn't possible before. 
>> So we also have a responsibility to do something to ensure that this kind of 
>> congestion can never happen again using Taproot.
>>
>> -Ali
>>
>> ---
>>
>> [1]: 
>> [https://www.coindesk.com/consensus-magazine/2023/05/05/pump-the-brcs-the-promise-and-peril-of-bitcoin-backed-tokens/](https://www.coindesk.com/consensus-magazine/2023/05/05/pump-the-brcs-the-promise-and-peril-of-bitcoin-backed-tokens/?outputType=amp)
>>
>> ___
>> bitcoin-dev mailing list
>> bitcoin-dev@lists.linuxfoundation.org
>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] [Mempool spam] Should we as developers reject non-standard Taproot transactions from full nodes?

2023-05-08 Thread Michael Folkson via bitcoin-dev
Hi Ali

I'd point you to Andrew Poelstra's post from January 2023 [0] and a Bitcoin 
StackExchange answer I recently posted [1].

> Considering that miners are largely the entities at fault for allowing the 
> system to be abused like this, the harmony of Bitcoin transactions is being 
> disrupted right now.

Miners are as far as I understand including high fee rate, consensus compatible 
transactions in mined blocks as the system has been set up for them to do. As I 
say in that StackExchange answer if you don't like it:

"There are theoretically two options: a consensus change or a policy change. A 
consensus change disallowing a certain kind of transaction that is acceptable 
under current consensus rules would need a soft fork and hence would be 
extremely difficult to pull off assuming that it was a considered a good idea 
by the broader community. Embedding arbitrary data in transactions would still 
be possible after this hypothetical soft fork and so its effectiveness would be 
limited. A default policy change (or custom policy option) would attempt to 
prevent a certain kind of transaction from propagating across the network 
without needing a consensus change. However, it would still be possible to 
submit these kinds of consensus compatible transactions directly to miners 
bypassing the P2P network."

> I know that some people will have their criticisms about this, 
> absolutists/libertarians/maximum-freedom advocates, which is fine, but we 
> need to find a solution for this that fits everyone's common ground. We 
> indirectly allowed this to happen, which previously wasn't possible before. 
> So we also have a responsibility to do something to ensure that this kind of 
> congestion can never happen again using Taproot.

It isn't a philosophy or ideology consideration, it is a purely technical one. 
Congestion can happen using Taproot addresses or pre-Taproot addresses. There 
is fixed, limited block space and variable demand for that block space. You may 
not like how that block space is being used but if transactions are consensus 
compatible and paying fees at the market rate the system is working how it 
should.

> to curtail the loophole in BIP 342 (which defines the validation rules for 
> Taproot scripts) which has allowed these unintended consequences?

There were technical reasons for the design decisions in BIP 342. As Andrew 
says in his post [0]:

"If we ban "useless data" then it would be easy for would-be data storers
to instead embed their data inside "useful" data such as dummy
signatures or public keys. Doing so would incur a ~2x cost to them, but
if 2x is enough to disincentivize storage, then there's no need to have
this discussion because they will will be forced to stop due to fee
market competition anyway. (And if not, it means there is little demand
for Bitcoin blockspace, so what's the problem with paying miners to fill
it with data that validators don't even need to perform real computation
on?).

But if we were to ban "useful" data, for example, saying that a witness
can't have more than 20 signatures in it, then we are into the same
problem we had pre-Taproot: that it is effectively impossible construct
signing policies in a general and composeable way, because any software
that does so will need to account for multiple independent limits. We
deliberately replaced such limits with "you need to pay 50 weight for
each signature" to makes this sort of analysis tractable."

I personally get the desire to "do something". Fee spikes aren't fun especially 
for some Lightning use cases and many of us don't like how people are using the 
limited block space currently. But a game of whack-a-mole with blunt tools such 
as policy rules and especially consensus rules is ineffective at best and 
harmful at worst. You may not like this use case but assuming you embark on a 
game of whack-a-mole what's to stop a group of people popping up in a year 
declaring their opposition to your use case and trying to prevent your use 
case? Consensus rules are set and the rest is left to the market.

Thanks

Michael

[0]: 
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-January/021372.html
[1]: 
https://bitcoin.stackexchange.com/questions/118197/ddos-attack-via-brc-20-ordinals-on-bitcoin

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
GPG: A2CF5D71603C92010659818D2A75D601B23FEE0F

Learn about Bitcoin: https://www.youtube.com/@portofbitcoin

--- Original Message ---
On Sunday, May 7th, 2023 at 18:22, Ali Sherief via bitcoin-dev 
 wrote:

> Hi guys,
>
> I think everyone on this list knows what has happened to the Bitcoin mempool 
> during the past 96 hours. Due to side projects such as BRC-20 having such a 
> high volume, real bitcoin transactions are being priced out and that is what 
> is causing the massive congestion that has arguable not been seen since 
> December 2017. I do not count the March 2021 congestion because that was only 

Re: [bitcoin-dev] Bitcoin Core maintainers and communication on merge decisions

2023-05-08 Thread Michael Folkson via bitcoin-dev
Hi David

>> Essentially my concern is going forward current maintainers will decide 
>> which proposed new maintainers to add and which to block.

> This is how a large percentage of organizations are run.  The current members 
> of a board or other governance group choose who will become a new board 
> member.

So long term contributors who aren't maintainers don't get input into the 
decision? It is starting to seem like the maintainer role is moving from a 
janitorial one to where maintainers make decisions without discussing those 
decisions with long term contributors and in some cases even bothering to 
explain the rationale for those decisions to a broader audience that includes 
long term contributors. This unfortunately makes the decision on who becomes a 
maintainer even more important. 

Decisions have to be made but I was always under the impression that they would 
be discussed in open, public IRC meetings with at least other long term 
contributors present and then decisions would be made based on the views 
expressed in that meeting. An appointed board or governance group ("the 
maintainers") wasn't how I thought the project was run or should be run.

> Finally, I don't think this matter warranted a post to this mailing list.  
> Discussion about internal project decisions, such as who should have merge 
> access and what maintainers should communicate in PRs, belong in 
> communication channels dedicated to that project.

I have tried. As I said in previous emails in the Vasil maintainer case I asked 
fanquake, Gloria repeatedly over a period of 5 months why Vasil was being 
blocked. They refused to comment. I get called "rude" and "aggressive" for 
asking. So I'd rather post my thoughts and observations here than risk being 
accused of being "rude" and "aggressive" again for asking questions on this 
topic on IRC. Especially as I expect they'll be ignored anyway as they were in 
last week's Core Dev IRC meeting.

Until the Vasil situation I thought that we had a common sense approach of any 
long term contributor who had demonstrated they could add value to the project 
and had shown good temperament could become a maintainer. Blocking Vasil as a 
maintainer was a red flag for me that we no longer have that. And fanquake, 
Gloria not being willing to discuss why publicly for 5 months was a second red 
flag. If that is the precedent for merge decisions anything is possible in the 
future including in the worst case contentious consensus change merges with no 
justification and no rationale.

Thanks
Michael

--
Michael Folkson
Email: michaelfolkson at protonmail.com
GPG: A2CF5D71603C92010659818D2A75D601B23FEE0F


Learn about Bitcoin: https://www.youtube.com/@portofbitcoin


--- Original Message -------
On Sunday, May 7th, 2023 at 18:35, David A. Harding  wrote:


> On 2023-05-06 21:03, Michael Folkson via bitcoin-dev wrote:
> 
> > Essentially my concern is going forward current maintainers will
> > decide which proposed new maintainers to add and which to block.
> 
> 
> This is how a large percentage of organizations are run. The current
> members of a board or other governance group choose who will become a
> new board member.
> 
> One alternative to self-perpetuating governance is membership voting,
> but building and maintaining democratic institutions is hard and not a
> good fit for many types of endeavors---the building of highly technical
> software being one of those cases IMO.
> 
> I think the questions we want to ask is whether the current set of
> maintainers is capable of moving Bitcoin Core in the direction we want
> and what we can do about it if we conclude that they are ill-suited (or
> malicious). For the first question, I think that's something everyone
> needs to answer for themselves, as we may each have different visions
> for the future of the project. That said, I note that several
> initiatives championed by the current maintainers in the IRC meeting you
> mention received overwhelmingly positive support from a significant
> number of current contributors, which seems like a healthy sign to me.
> 
> For the second question, I think AJ Towns already answered that quite
> well (though he was talking about a different project):
> https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-April/021578.html
> 
> Finally, I don't think this matter warranted a post to this mailing
> list. Discussion about internal project decisions, such as who should
> have merge access and what maintainers should communicate in PRs, belong
> in communication channels dedicated to that project.
> 
> -Dave
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] Bitcoin Core maintainers and communication on merge decisions

2023-05-07 Thread Michael Folkson via bitcoin-dev
There has been a proposed new maintainer on Bitcoin Core (ryanofsky). In the 
Core dev IRC meeting [0] yesterday it received multiple ACKs.

The decision process for adding a new maintainer was according to the IRC 
meeting that the maintainers decided privately there was a need for a 
maintainer “who understood our interfaces and modularization efforts well” and 
that ryanofsky was a “good fit for that”. I don’t know whether this was decided 
in a private IRC channel or was decided at the recent in person Core Dev 
meeting. Regardless, many have had no input into the discussion on what kind of 
maintainer the project needs going forward and it seems the maintainers do not 
want to discuss that aspect of the decision.

I posted a couple of questions in advance [1] of the meeting (I was unable to 
attend) that remained unanswered during the meeting. Essentially my concern is 
going forward current maintainers will decide which proposed new maintainers to 
add and which to block. If you aren’t anointed by the current maintainers you 
won’t get added as a maintainer and a half baked rationale will be provided to 
justify that decision. Longer term this will determine the pull requests that 
will ultimately get merged and which don't get merged because maintainers merge 
pull requests.

One of the justifications for blocking Vasil Dimov as a new maintainer despite 
many initial ACKs from maintainers (including Andrew Chow) and long term 
contributors was according to Andrew [2]:

“Maintainers inherently need to look at the things that everyone else has 
already looked at, if only to give it a final once over before merging (but 
hopefully, an actual review, not just looking it over).”

I follow the Bitcoin Core repo pretty closely and I haven’t seen ryanofsky do 
this any more than Vasil does. This is not a criticism of ryanofsky, just as I 
wouldn’t use it as a criticism for Vasil. It would get pretty annoying if 
everyone who wasn’t a maintainer posted an ACK once many long term contributors 
had already ACKed to display supposed “desired maintainer traits”. Especially 
if you are essentially just ACKing that others have done the work to review the 
PR and you just want to get your ACK on it to increase your ACK count without 
doing a fraction of what previous reviewers have done.

“I also want to mention that the people who have become maintainers in the past 
have had this kind of maintainer attitude towards review prior to becoming a 
maintainer”

Assuming ryanofsky hasn’t had this maintainer attitude in the past (again not a 
criticism from me at least) does this mean this was a reason to block Vasil but 
not a reason to block ryanofsky? That seems inconsistent to me. When you’re 
anointed you don’t need to meet requirements but when you’re blocked these 
requirements will be used to block your addition as a new maintainer?

For what it is worth from a personal perspective I don’t see any reason for 
blocking ryanofsky as a maintainer especially if there is broad agreement 
amongst maintainers and long term contributors that we need a new maintainer 
who understands interfaces and modularization on the project. For that framing 
ryanofsky perfectly meets those requirements. But once again the (public) 
discussion element on the addition of maintainers is essentially a façade, a 
framing for what the new maintainer needs to be has been decided in advance (in 
private) and an anointed individual who just so happens to align with that 
convenient framing will get added as a new maintainer.

On a more positive note there does seem to be more energy and momentum for 
collaboration and open communication on the project since I discussed 
communication in a previous post [3]. Hopefully this will continue. It doesn’t 
address my concerns on maintainers and ultimately merge decisions but it 
definitely seems to me to be a step in a positive direction for the project.

[0]: https://gnusha.org/bitcoin-core-dev/2023-05-04.log

[1]: https://gnusha.org/bitcoin-core-dev/2023-05-01.log

[2]: https://github.com/bitcoin/bitcoin/pull/25871#issuecomment-1382334059

[3]:https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-April/021565.html

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
GPG: A2CF5D71603C92010659818D2A75D601B23FEE0F

Learn about Bitcoin: https://www.youtube.com/@portofbitcoin

--- Original Message ---
On Tuesday, April 18th, 2023 at 13:40, Michael Folkson 
 wrote:

> Communication has been a challenge on Bitcoin Core for what I can tell the 
> entire history of the project. Maintainers merge a pull request and provide 
> no commentary on why they’ve merged it. Maintainers leave a pull request with 
> many ACKs and few (if any) NACKs for months and provide no commentary on why 
> they haven't merged it. I can only speculate on why and it probably depends 
> on the individual maintainer. Sometimes it will be poor communication skills, 
> sometimes it will be

Re: [bitcoin-dev] Vaults in the MATT framework

2023-05-01 Thread Michael Folkson via bitcoin-dev
Hi Salvatore

Can you clarify for me which bucket this proposal sits? We have APO, CTV, 
OP_VAULT etc that are proposals to add additional functionality to SegWit 
version 1, Tapleaf version 0 scripts. We have Simplicity that would need a new 
Tapleaf version (e.g. Tapleaf version 1). And then there are CISA like 
proposals that would need a new SegWit version (e.g. SegWit version 2). It 
looks to me like your proposal is in the first bucket (same as APO, CTV etc) as 
it is just introducing new opcode functionality to existing script with no 
deeper introspection needed but previous and current discussion of fraud 
proofs, MATT frameworks etc made me initially think it was going to require 
more than that.

Thanks
Michael

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
GPG: A2CF5D71603C92010659818D2A75D601B23FEE0F

Learn about Bitcoin: https://www.youtube.com/@portofbitcoin

--- Original Message ---
On Monday, April 24th, 2023 at 20:37, Salvatore Ingala via bitcoin-dev 
 wrote:

> Hello list,
>
> TL;DR: the core opcodes of MATT can build vaults with a very similar design
> to OP_VAULT. Code example here:
>
> https://github.com/bitcoin-inquisition/bitcoin/compare/24.0...bigspider:bitcoin-inquisition:matt-vault
>
> In my previous emails about the MATT proposal for smart contracts in
> bitcoin [1], I mostly focused on proving its generality; that is, it
> allows arbitrary smart contracts thanks to fraud proofs.
>
> While I still find this "completeness" result compelling, I spent more time
> thinking about the framework itself; the construction is not very interesting
> if it turns simple things into complicated ones. Luckily, this is not the 
> case.
> In particular, in this email we will not merkleize anything (other than 
> taptrees).
>
> This post describes some progress into formalizing the semantics of the core
> opcodes, and demonstrates how they could be used to create vaults that seem
> comparable to the ones built with OP_VAULT [2], despite using general purpose
> opcodes.
>
> An implementation and some minimal tests matching the content of this
> e-mail can be found in the link above, using the bitcoin-inquisition as the
> base branch.
>
> Note that the linked code is not well tested and is only intended for
> exploratory and demonstrative purposes; therefore, bugs are likely at this
> stage.
>
> ##
> # PART 1: MATT's core
> ##
>
> In this section, I will discuss plausible semantics for the core opcodes for 
> MATT.
>
> The two core opcodes are defined below as OP_CHECKINPUTCONTRACTVERIFY and
> OP_CHECKOUTPUTCONTRACTVERIFY.
>
> (the initial posts named them OP_CHECK{INPUT,OUTPUT}COVENANTVERIFY)
>
> They enhance Script with the following capabilities:
> - decide the taptree of the output
> - embed some (dynamically computed) data in the output
> - access the embedded data in the current UTXO (if any)
>
> The opcodes below are incomplete, as they only control the output's Script and
> not the amounts; more on that below.
>
> Other than that, the semantics should be quite close to the "right" one for
> the MATT framework.
>
> ### The opcodes
>
> case OP_CHECKINPUTCONTRACTVERIFY:
> {
> // OP_CHECKINPUTCONTRACTVERIFY is only available in Tapscript
> if (sigversion == SigVersion::BASE || sigversion == SigVersion::WITNESS_V0) 
> return set_error(serror, SCRIPT_ERR_BAD_OPCODE);
> // (x d -- )
> if (stack.size() < 2)
> return set_error(serror, SCRIPT_ERR_INVALID_STACK_OPERATION);
> valtype& x = stacktop(-2);
> valtype& d = stacktop(-1);
> if (x.size() != 32 || d.size() != 32)
> return set_error(serror, SCRIPT_ERR_INVALID_STACK_OPERATION);
> const XOnlyPubKey nakedXOnlyKey{Span{x.data(), x.data() 
> + 32}};
> const uint256 data(d);
> if (!execdata.m_internal_key.has_value())
> return set_error(serror, SCRIPT_ERR_UNKNOWN_ERROR); // TODO
> // Verify that tweak(lift_x(x), d) equals the internal pubkey
> if (!execdata.m_internal_key.value().CheckDoubleTweak(nakedXOnlyKey, &data, 
> nullptr))
> return set_error(serror, SCRIPT_ERR_WRONGCONTRACTDATA);
> popstack(stack);
> popstack(stack);
> }
> break;
> case OP_CHECKOUTPUTCONTRACTVERIFY:
> {
> // OP_CHECKOUTPUTCONTRACTVERIFY is only available in Tapscript
> if (sigversion == SigVersion::BASE || sigversion == SigVersion::WITNESS_V0) 
> return set_error(serror, SCRIPT_ERR_BAD_OPCODE);
> // (out_i x taptree d -- )
> if (stack.size() < 4)
> return set_error(serror, SCRIPT_ERR_INVALID_STACK_OPERATION);
> int out_i = CScriptNum(stacktop(-4), fRequireMinimal).getint();
> valtype& x = stacktop(-3);
> valtype& taptree = stacktop(-2);
> valtype& d = stacktop(-1);
> auto outps = checker.GetTxvOut();
> // Return error if the evaluation context is unavailable
> if (!outps)
> return set_error(serror, SCRIPT_ERR_UNKNOWN_ERROR); // TODO
> if (x.size() != 32 || taptree.size() != 32 || (d.size() != 0 && d.size() != 
> 32))
> return set_error(serror, SCRIPT_ERR_INVALID_STACK_OPERATION);
> if

Re: [bitcoin-dev] Bitcoin Core maintainers and communication on merge decisions

2023-04-20 Thread Michael Folkson via bitcoin-dev
Thanks for this Andrew.

> What commentary does there need to be?

There doesn't "need" to be explanations about anything. There doesn't "need" to 
be any review comments whatsoever from anybody. But a world where reviewers 
explain what they've done to satisfy themselves that a pull request is ready to 
merge and a world where maintainers explain their thought process behind a 
merge decision is much easier to follow and much more scalable than the current 
black box where people see pull requests being self merged by a maintainer with 
no ACKs within a day of it being opened. Most likely these decisions make sense 
(low risk, unlikely to be reviewed by anybody else, blocking other pull 
requests etc). But more and more people are funded to work on Core and 
increasingly they seem to stick to their own mini projects and not review 
anybody else's work. Of course you can't put the responsibility for this 
entirely down to maintainers but the black box isn't scalable. Maintainers 
(presumably) have private discussions and so know how best to spend their 
review time. Everyone else (especially new contributors) are playing an 
uninformed and in the dark lottery with how they spend their review time (to 
the extent that they allocate any).

> There are currently 320 open PRs and 366 open issues.
I wake up every morning to 150+ email notifications containing
everything that went on overnight, and throughout the day, I typically
get hundreds more.

Indeed. All the more reason for more and higher quality public communication. 
If you struggle and you're in those private discussions with other maintainers 
on merge decisions and ready for merge discussions how do you think everyone is 
trying to assess how to spend their time? It is even more bewildering. As far 
as I know most of the current maintainers haven't worked on other projects or 
in the private sector for a sustained period of time but the way other projects 
and businesses function is that those with the most experience and most 
responsibilities are able to manage and provide guidance to those with less 
experience and less responsibilities. I'm sure this goes on within Brink if 
you've been anointed but this is supposed to be an open source project. If 
everything is done in private conversations and everything other than the code 
is open source it is pretty much a façade. It is very hard to make meaningful 
contributions without getting anointed. Those who do get anointed very early in 
their careers seem especially bad at hoarding information, refusing to do 
anything in public and not assisting those who haven't been anointed.

> Things can simply fall through the cracks.

> With several long time maintainers stepping away, this may be a factor
in PRs taking longer to get merged as the remaining maintainers may be
less familiar with the parts of the codebase that were previously
maintained by someone else.

> Requiring maintainers to have to write explanations for every single
merge is simply going to increase the burden on them and increase the
rate of burnout and resignations.

> We've had too many maintainers step down already.

This all points to a a need for additional maintainers (assuming they are 
sufficiently competent and qualified). We had a potential maintainer (Vasil) 
come forward (long term contributor, made significant contributions over a 
number of years, a qualified reviewer, contributes to a part of the codebase 
that current maintainers aren't very familiar with, ACKed by maintainers and 
long term contributors) and it was blocked. How does that make sense? You seem 
to want it both ways. We can't ask maintainers to meet higher standards because 
there's a shortage and they're close to burning out. But there's no need to add 
a new maintainer.

I've responded to the parts I disagree with and see inconsistencies with but 
generally I thought it was a very thoughtful and informative response so thank 
you. Of the current maintainers you seem to me to be one of (if not the) most 
responsive and open to public discussion on the project. I've learnt a tonne 
from your StackExchange posts and Twitch streams that are all public/open 
source that you do in addition to your contributions and maintenance of Core. 

Thanks
Michael


--
Michael Folkson
Email: michaelfolkson at protonmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3


--- Original Message ---
On Wednesday, April 19th, 2023 at 22:33, Andrew Chow via bitcoin-dev 
 wrote:


> Responses in-line.
> Note that the opinions expressed in this email are my own and are not
> representative of what other maintainers think or believe.
> 
> On 04/18/2023 08:40 AM, Michael Folkson via bitcoin-dev wrote:
> 
> > Communication has been a challenge on Bitcoin Core for what I can
> 

Re: [bitcoin-dev] Bitcoin Core maintainers and communication on merge decisions

2023-04-20 Thread Michael Folkson via bitcoin-dev
Hi AJ

> Competition is the only answer to concerns about the bad effects from a 
> monopoly.

Well one can first make suggestions and requests to the monopoly and see if the 
monopoly is open to them. In the case of bitcoin-inquisition/default signet I 
like the idea of a group who are interested in following and testing proposed 
future consensus changes working on the same fork of Core / same signet 
blockchain. But I've asked on a number of occasions now what the thinking is in 
terms of criteria for merging a proposed default policy change or a proposed 
consensus change (progress on BIP, level of review, a work in progress / still 
in flux / essentially finalized unless a problem is identified) and you haven't 
been willing to discuss it. So it is essentially the same black box model of 
maintainership we see on Core. As far as I know you could wake up one day and 
just merge all open pull requests to the bitcoin-inquisition repo because 
you're bored. On a custom signet do whatever you want. On the default signet 
that we're trying to build an ecosystem around, get block explorers to support, 
can be connected to through the default config in Core etc merge decisions 
essentially being subject to the whims of AJ doesn't seem ideal to me.

The brunt of having to deal with the CTV activation chaos fell on me (not a 
long term contributor, unfunded) because few wanted to get involved so it would 
be nice if lessons were learned and we don't have a soft fork proposal merged 
onto default signet, a bunch of transactions generated to simulate demand and 
then this used to justify another contentious soft fork activation attempt on 
mainnet. When there are vacuums of communication from maintainers and long term 
contributors it just invites unnecessary chaos.

Thanks
Michael


--
Michael Folkson
Email: michaelfolkson at protonmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3


--- Original Message ---
On Thursday, April 20th, 2023 at 03:27, Anthony Towns  
wrote:


> On Tue, Apr 18, 2023 at 12:40:44PM +, Michael Folkson via bitcoin-dev 
> wrote:
> 
> > I do think the perception that it is “the one and only” staging
> > ground for consensus changes is dangerous
> 
> 
> If you think that about any open source project, the answer is simple:
> create your own fork and do a better job. Competition is the only answer
> to concerns about the bad effects from a monopoly. (Often the good effects
> from cooperation and collaboration -- less wasted time and duplicated
> effort -- turn out to outweigh the bad effects, however)
> 
> In any event, inquisition isn't "the one and only staging ground for
> consensus changes" -- every successful consensus change to date has
> been staged through the developers' own repo then the core PR process,
> and that option still exists.
> 
> Cheers,
> aj
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] Bitcoin Core maintainers and communication on merge decisions

2023-04-19 Thread Michael Folkson via bitcoin-dev
ave the same or work similarly. Sometimes 
> the unresponsiveness could be to avoid controversies and heated debates that 
> go off-topic.
> 
> > One farcical recent example 0 was the pull request to add Vasil Dimov as a 
> > maintainer where despite many ACKs from other maintainers and other long 
> > term contributors two maintainers (fanquake and Gloria) refused to discuss 
> > it on the pull request or on IRC. It took almost 5 months for Gloria to 
> > comment on the pull request despite many requests from me on the PR and on 
> > IRC. I even requested that they attend the weekly Core Dev IRC meeting to 
> > discuss it which they didn’t attend.
> 
> 
> - Maintainers should be free to avoid involvement in a pull request. As long 
> as a subset of maintainers have an opinion on the pull request, things should 
> be fine.
> - I agree with Gloria's comment: "I had not NACKed this either because my 
> opinion could change over time, NACKs are sometimes needlessly interpreted as 
> personal attacks, and Brink has been antagonized on Twitter each time 
> multiple grantees have similar opinions about this. So I'll add that if you 
> wish to have more decentralization in Bitcoin Core funding, you can start by 
> creating a nonprofit, gathering donations, and funding somebody who works on 
> Bitcoin Core." Last part of this comment also solves the problem shared in 
> other thread related to new bitcoin implementation. Brink needs some 
> competition and bitcoin core needs more reviewers.
> - I also agree with Andrew's comment: "frankly, I think opinions aren't being 
> shared because of potential backlash from aggressive users such as yourself 
> and bytes144"
> 
> > Maintainers and long term contributors (if they commented at all) were 
> > gently enthusiastic (Concept ACKing etc) without ACKing that it was ready 
> > to merge. A long term observer of the Core repo would have known that it 
> > wasn’t ready to merge or ready to attempt to activate (especially given it 
> > was a consensus change) but a casual observer would have only seen Concept 
> > ACKs and ACKs with 3 stray NACKs. Many of these casual observers inflated 
> > the numbers on the utxos.org site 4 signalling support for a soft fork 
> > activation attempt.
> 
> 
> - I don't see anything wrong with sharing honest opinion if someone agrees 
> with the concept. It does not make a pull request ready to get merged.
> - utxos.org is an external site maintained by Jeremy with opinions on BIP 
> 119. Everyone is free to maintain such lists and I think you had also created 
> one as GitHub gist.
> 
> > I will probably write about bitcoin-inquisition/default signet in a future 
> > email as I do think the perception that it is “the one and only” staging 
> > ground for consensus changes is dangerous 6 if the maintainer(s) on that 
> > project have the same inclinations as a subset of the Core maintainers.
> 
> 
> This perception (if exists) can be killed by creating a custom signet, 
> maintaining it differently, get more reviews, testing and share details with 
> community regularly.
> 
> /dev/fd0
> floppy disk guy
> 
> 0: https://github.com/bitcoin/bitcoin/pull/25871#issuecomment-1381654564
> 1: https://bitcoin-irc.chaincode.com/bitcoin-core-dev/2023-01-12#883748
> 
> 
> Sent with Proton Mail secure email.
> 
> --- Original Message ---
> On Tuesday, April 18th, 2023 at 6:10 PM, Michael Folkson via bitcoin-dev 
> bitcoin-dev@lists.linuxfoundation.org wrote:
> 
> 
> 
> > Communication has been a challenge on Bitcoin Core for what I can tell the 
> > entire history of the project. Maintainers merge a pull request and provide 
> > no commentary on why they’ve merged it. Maintainers leave a pull request 
> > with many ACKs and few (if any) NACKs for months and provide no commentary 
> > on why they haven't merged it. I can only speculate on why and it probably 
> > depends on the individual maintainer. Sometimes it will be poor 
> > communication skills, sometimes it will be a desire to avoid 
> > accountability, sometimes it will be fear of unreasonable and spiteful 
> > legal action if they mistakenly merge a pull request that ends up 
> > containing a bug. But search through the pull requests on Bitcoin Core and 
> > you will rarely see a rationale for a merge decision. The difference 
> > between say previous maintainers like Wladimir and some of the current 
> > maintainers is that previous maintainers were extremely responsive on IRC. 
> > If you disagreed with a merge decision or thought it had been merged 
> > prematurely they would be happ

Re: [bitcoin-dev] A new Bitcoin implementation integrated with Core Lightning

2023-04-19 Thread Michael Folkson via bitcoin-dev
Hi Kostas

> Could you please point me to a resource that describes the default policy 
> changes (that are happening for lightning)? I have seen discussions here and 
> there but it would help if they are aggregated somewhere for reviewing.

It is hard to follow because most of the discussions aren't on public channels, 
a number of the devs working on these proposed default policy changes aren't 
taking the BIP process seriously and no one is willing to discuss the criteria 
for merging default policy changes (and consensus changes for that matter) into 
bitcoin-inquisition (default signet). In addition the work (to the extent that 
it is public) is scattered all over the place. So yeah it seems like a mess to 
me from the perspective of someone is seeking to follow, review and monitor it.

This Bitcoin StackExchange post [0] is my first attempt to do what you're 
looking for and these Bitcoin Core PR review clubs [1], [2] were really good 
from Gloria. But yeah the BIP process (as I've said a thousand times and been 
ignored) is the place to hammer out specifications for complex things like 
default policy proposals and when people don't care about formalizing 
specifications it becomes very hard for people like you and me to follow.

> Separation of concerns always makes sense to manage complexity. One would 
> need to have really strong incentives to counter the complexity argument.
>> I might be missing some context here but what would the actual benefit of 
>> integrating them be? Not having to install lightning node separately and 
>> maybe a more intuitive UX?

As I say in the original email having two separate P2P networks and two 
separate P2P protocols (perhaps) doesn't make much sense if all (or most of the 
nodes) are both full nodes and Lightning nodes. A testing framework that 
integrates both base layer and Lightning tests could potentially be easier to 
track edge cases which fall in the grey area between base layer and Lightning 
but are critically important for Lightning. A Core wallet that doesn't support 
Lightning doesn't make much sense in a world where transaction fees are really 
high and you have to use Lightning unless you are transferring huge amounts. I 
agree with you that these arguments have to be strong to counter the separation 
of concerns angle and maybe it is too early to consider it. But if moving in 
the direction of more widely used consensus compatible forks of Core then 
having Lightning integrated could make it an attractive option.

> PS. Besides, the amount of effort would be significant. Wouldn't that effort 
> be better spent on, say, separating the consensus logic (i.e. a second 
> libbitcoinkernel attempt)?

libbitcoinkernel can achieve smaller (and still important) goals but I'm 
skeptical that the more ambitious goal of having lots of different 
implementations in different languages with libbitcoinkernel at its core and 
not having to worry about consensus bugs will be reached in the medium term. As 
we saw with the recent btcd/lnd bugs [3] consensus bugs can crop up in places 
you might not expect. In that case it was a wire parsing library that you 
wouldn't expect to be part of a libbitcoinkernel. So if you're still going to 
encounter consensus bugs outside of libbitcoinkernel there isn't much point (in 
my view) in using it for alternative implementations.

Thanks
Michael

[0]: 
https://bitcoin.stackexchange.com/questions/117315/what-and-where-are-the-current-status-of-the-bip-125-replacement-the-v3-policy
[1]: https://bitcoincore.reviews/25038
[2]: https://bitcoincore.reviews/25038-2
[3]: 
https://bitcoin.stackexchange.com/questions/115527/what-is-the-october-2022-bug-in-lnd-what-caused-it-and-what-would-prevent-a-sim

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

--- Original Message ---
On Wednesday, April 19th, 2023 at 10:05, Kostas Karasavvas 
 wrote:

> Hi Michael,
>
> On Wed, Apr 19, 2023 at 2:40 AM Michael Folkson via bitcoin-dev 
>  wrote:
>
>> Any thoughts on this from the Core Lightning contributors? The way I see it 
>> with upcoming proposed changes to default policy (primarily though not 
>> exclusively for Lightning) and a soft fork activation attempt of APO/APOAS 
>> (primarily though not
>
> Could you please point me to a resource that describes the default policy 
> changes (that are happening for lightning)? I have seen discussions here and 
> there but it would help if they are aggregated somewhere for reviewing.
>
>> exclusively for Lightning) that a tighter coupling between the full node and 
>> the Lightning node could eventually make sense. In a world where transaction 
>> fees were much higher you'd think almost eve

Re: [bitcoin-dev] Bitcoin Core maintainers and communication on merge decisions

2023-04-19 Thread Michael Folkson via bitcoin-dev
Hi Erik

> yes, the code itself was far less contentious than the weird stab at forking 
> the network
>
> there remains a real chance that bip 119 is the simplest and most flexible 
> and reasonably safe covenant tech for many use cases
>
> although im partial to 118 as well because lightning is a killer app and it 
> makes batch channels more efficient

This is moving off the intended subject of the email although latest thoughts 
on BIP 118 and BIP 119 are an interesting separate topic. Perhaps start a new 
thread? The latest afaik is that both have been merged in bitcoin-inquisition 
[0] (default signet) and James O'Beirne concluded that he needed BIP 119/OP_CTV 
for his latest vault design that includes a new proposed opcode OP_VAULT (BIP 
345) [1]. Designing and building vaults with the various proposed opcodes and 
sighash flags (and Simplicity when it is ready) is definitely what I hoped to 
see after the chaos of the attempted CTV activation. Hopefully more people will 
be drawn into this research and development area, I think it is a really 
interesting one [2] so I'm a bit bemused more people aren't following James and 
the Revault team and doing their own research and experimentation. I think 
darosior's (Revault) current view [3] is BIP 118/APO is sufficient for the 
vaults he wants to build. But yeah needs more informed views and you only 
really get a more informed view by trying to design and build things and 
realizing what you need or what is missing. It isn't convincing to embark on a 
soft fork activation process just because a couple of informed individuals want 
it.

Thanks
Michael

[0]: https://github.com/bitcoin-inquisition/bitcoin
[1]: https://github.com/bitcoin/bips/pull/1421
[2]: https://www.youtube.com/watch?v=S2lTfS5qMJE
[3]: 
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-April/020276.html

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

--- Original Message ---
On Wednesday, April 19th, 2023 at 01:56, Erik Aronesty  wrote:

> yes, the code itself was far less contentious than the weird stab at forking 
> the network
>
> there remains a real chance that bip 119 is the simplest and most flexible 
> and reasonably safe covenant tech for many use cases
>
> although im partial to 118 as well because lightning is a killer app and it 
> makes batch channels more efficient
>
> On Tue, Apr 18, 2023, 7:39 PM Michael Folkson via bitcoin-dev 
>  wrote:
>
>> Communication has been a challenge on Bitcoin Core for what I can tell the 
>> entire history of the project. Maintainers merge a pull request and provide 
>> no commentary on why they’ve merged it. Maintainers leave a pull request 
>> with many ACKs and few (if any) NACKs for months and provide no commentary 
>> on why they haven't merged it. I can only speculate on why and it probably 
>> depends on the individual maintainer. Sometimes it will be poor 
>> communication skills, sometimes it will be a desire to avoid accountability, 
>> sometimes it will be fear of unreasonable and spiteful legal action if they 
>> mistakenly merge a pull request that ends up containing a bug. But search 
>> through the pull requests on Bitcoin Core and you will rarely see a 
>> rationale for a merge decision. The difference between say previous 
>> maintainers like Wladimir and some of the current maintainers is that 
>> previous maintainers were extremely responsive on IRC. If you disagreed with 
>> a merge decision or thought it had been merged prematurely they would be 
>> happy to discuss it on IRC. In present times at least a subset of the 
>> current maintainers are not responsive on IRC and will refuse to discuss a 
>> merge decision. One farcical recent example [0] was the pull request to add 
>> Vasil Dimov as a maintainer where despite many ACKs from other maintainers 
>> and other long term contributors two maintainers (fanquake and Gloria) 
>> refused to discuss it on the pull request or on IRC. It took almost 5 months 
>> for Gloria to comment on the pull request despite many requests from me on 
>> the PR and on IRC. I even requested that they attend the weekly Core Dev IRC 
>> meeting to discuss it which they didn’t attend.
>>
>> A pull request to add a maintainer isn’t a normal pull request. Generally 
>> pull requests contain a lot more lines of code than a single line adding a 
>> trusted key. Not merging a pull request for a long period of time can be 
>> extremely frustrating for a pull request author especially when maintainers 
>> and long term contributors don’t comment on the pull request and the pull 
>> request is st

Re: [bitcoin-dev] A new Bitcoin implementation integrated with Core Lightning

2023-04-18 Thread Michael Folkson via bitcoin-dev
Any thoughts on this from the Core Lightning contributors? The way I see it 
with upcoming proposed changes to default policy (primarily though not 
exclusively for Lightning) and a soft fork activation attempt of APO/APOAS 
(primarily though not exclusively for Lightning) that a tighter coupling 
between the full node and the Lightning node could eventually make sense. In a 
world where transaction fees were much higher you'd think almost every full 
node would also want to be a Lightning node and so the separation of concerns 
would make less sense. Having two separate P2P networks and two separate P2P 
protocols also wouldn't make much sense in this scenario. You could obviously 
still opt out of Lightning P2P messages if you weren't interested in Lightning.

The alternative would be just to focus on Knots style consensus compatible 
forks of Core with limited additional functionality. But I think we've reached 
the point of no return on Core dominance and not having widely used "distros". 
As the ecosystem scales systems and processes should be constantly evolving and 
improving and to me if anything Core's seem to be going backwards.

Thanks
Michael

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

--- Original Message ---
On Saturday, January 14th, 2023 at 20:26, Michael Folkson 
 wrote:

> I tweeted this [0] back in November 2022.
>
> "With the btcd bugs and the analysis paralysis on a RBF policy option in Core 
> increasingly thinking @BitcoinKnots and consensus compatible forks of Core 
> are the future. Gonna chalk that one up to another thing @LukeDashjr was 
> right about all along."
>
> A new bare bones Knots style Bitcoin implementation (in C++/C) integrated 
> with Core Lightning was a long term idea I had (and presumably many others 
> have had) but the dysfunction on the Bitcoin Core project this week (if 
> anything it has been getting worse over time, not better) has made me start 
> to take the idea more seriously. It is clear to me that the current way the 
> Bitcoin Core project is being managed is not how I would like an open source 
> project to be managed. Very little discussion is public anymore and decisions 
> seem to be increasingly made behind closed doors or in private IRC channels 
> (to the extent that decisions are made at all). Core Lightning seems to have 
> the opposite problem. It is managed effectively in the open (admittedly with 
> fewer contributors) but doesn't have the eyeballs or the usage that Bitcoin 
> Core does. Regardless, selfishly I at some point would like a bare bones 
> Bitcoin and Lightning implementation integrated in one codebase. The Bitcoin 
> Core codebase has collected a lot of cruft over time and the ultra 
> conservatism that is needed when treating (potential) consensus code seems to 
> permeate into parts of the codebase that no one is using, definitely isn't 
> consensus code and should probably just be removed.
>
> The libbitcoinkernel project was (is?) an attempt to extract the consensus 
> engine out of Core but it seems like it won't achieve that as consensus is 
> just too slippery a concept and Knots style consensus compatible codebase 
> forks of Bitcoin Core seem to still the model. To what extent you can safely 
> chop off this cruft and effectively maintain this less crufty fork of Bitcoin 
> Core also isn't clear to me yet.
>
> Then there is the question of whether it makes sense to mix C and C++ code 
> that people have different views on. C++ is obviously a superset of C but 
> assuming this merging of Bitcoin Core and Core Lightning is/was the optimal 
> final destination it surely would have been better if Core Lightning was 
> written in the same language (i.e. with classes) as Bitcoin Core.
>
> I'm just floating the idea to (hopefully) hear from people who are much more 
> familiar with the entirety of the Bitcoin Core and Core Lightning codebases. 
> It would be an ambitious long term project but it would be nice to focus on 
> some ambitious project(s) (even if just conceptually) for a while given 
> (thankfully) there seems to be a lull in soft fork activation chaos.
>
> Thanks
> Michael
>
> [0]: 
> https://twitter.com/michaelfolkson/status/1589220155006910464?s=20&t=GbPm7w5BqS7rS3kiVFTNcw
>
> --
> Michael Folkson
> Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
> Keybase: michaelfolkson
> PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


[bitcoin-dev] Bitcoin Core maintainers and communication on merge decisions

2023-04-18 Thread Michael Folkson via bitcoin-dev
Communication has been a challenge on Bitcoin Core for what I can tell the 
entire history of the project. Maintainers merge a pull request and provide no 
commentary on why they’ve merged it. Maintainers leave a pull request with many 
ACKs and few (if any) NACKs for months and provide no commentary on why they 
haven't merged it. I can only speculate on why and it probably depends on the 
individual maintainer. Sometimes it will be poor communication skills, 
sometimes it will be a desire to avoid accountability, sometimes it will be 
fear of unreasonable and spiteful legal action if they mistakenly merge a pull 
request that ends up containing a bug. But search through the pull requests on 
Bitcoin Core and you will rarely see a rationale for a merge decision. The 
difference between say previous maintainers like Wladimir and some of the 
current maintainers is that previous maintainers were extremely responsive on 
IRC. If you disagreed with a merge decision or thought it had been merged 
prematurely they would be happy to discuss it on IRC. In present times at least 
a subset of the current maintainers are not responsive on IRC and will refuse 
to discuss a merge decision. One farcical recent example [0] was the pull 
request to add Vasil Dimov as a maintainer where despite many ACKs from other 
maintainers and other long term contributors two maintainers (fanquake and 
Gloria) refused to discuss it on the pull request or on IRC. It took almost 5 
months for Gloria to comment on the pull request despite many requests from me 
on the PR and on IRC. I even requested that they attend the weekly Core Dev IRC 
meeting to discuss it which they didn’t attend.

A pull request to add a maintainer isn’t a normal pull request. Generally pull 
requests contain a lot more lines of code than a single line adding a trusted 
key. Not merging a pull request for a long period of time can be extremely 
frustrating for a pull request author especially when maintainers and long term 
contributors don’t comment on the pull request and the pull request is stuck in 
“rebase hell”. Clearly it is the lesser evil when compared to merging a harmful 
or bug ridden pull request but poor non-existent communication is not the only 
way to prevent this. Indeed it creates as many problems as it solves.

Another farcical recent(ish) example was the CTV pull request [1] that 
ultimately led to a contentious soft fork activation attempt that was called 
off at the last minute. If you look at the comments on the pull request there 
were 3 individuals (including myself) who NACKed the pull request and I think 
it is fair to say that none of us would be considered long term contributors to 
Bitcoin Core. I have criticised Jeremy Rubin multiple times for continuing to 
pursue a soft fork activation attempt when it was clear it was contentious [3] 
but if you look at the pull request comments it certainly isn’t clear it was. 
Maintainers and long term contributors (if they commented at all) were gently 
enthusiastic (Concept ACKing etc) without ACKing that it was ready to merge. A 
long term observer of the Core repo would have known that it wasn’t ready to 
merge or ready to attempt to activate (especially given it was a consensus 
change) but a casual observer would have only seen Concept ACKs and ACKs with 3 
stray NACKs. Many of these casual observers inflated the numbers on the 
utxos.org site [4] signalling support for a soft fork activation attempt.

I set out originally to write about the controls and processes around merges on 
the default signet (bitcoin-inquisition [5]) but it quickly became obvious to 
me that if communication around Core merges/non-merges is this weak you can 
hardly expect it to be any better on bitcoin-inquisition/default signet where 
there is no real monetary value at stake. I will probably write about 
bitcoin-inquisition/default signet in a future email as I do think the 
perception that it is “the one and only” staging ground for consensus changes 
is dangerous [6] if the maintainer(s) on that project have the same 
inclinations as a subset of the Core maintainers.

As I stated at the beginning there is an element to this which is not 
individual(s) specific and an adverse reaction to outright malicious actors 
external to any of these projects. I do not think any of the current 
maintainers on Core or bitcoin-inquisition are outright malicious even if a 
subset of them consistently frustrate me with their lack of transparency and 
accountability. But this issue isn't going away and I'm sure we'll hear more on 
this from others in the coming months. To me it is a straight choice of taking 
transparency and accountability much more seriously or failing that investing 
more heavily (time and resources) in consensus compatible forks of Core and 
treating Core like it is a proprietary "open source" project where merge 
decisions are not explained or justified in the open.

[0]: https://github.com/bitcoin/bitco

Re: [bitcoin-dev] Unenforceable fee obligations in multiparty protocols with Taproot inputs

2023-02-08 Thread Michael Folkson via bitcoin-dev
Hi Andrew

> There is a bug in Taproot that allows the same Tapleaf to be repeated 
> multiple times in the same Taproot, potentially at different Taplevels 
> incurring different Tapfee rates.
>> The countermeasure is that you should always know the entire Taptree when 
>> interacting with someone's Tapspend.

I wouldn't say it is a "bug" unless there is a remedy for the bug that wasn't 
(and retrospectively should have been) included in the Taproot design. In 
retrospect and assuming you could redesign the Taproot consensus rules again 
today would you prevent spending from a valid P2TR address if a repeated 
Tapleaf hash was used to prove that a spending path was embedded in a Taproot 
tree? That's the only thing I can think of to attempt to remedy this "bug" and 
it would only be a partial protection as proving a spending path exists within 
a Taproot tree only requires a subset of the Tapleaf hashes.

I only point this out because there seems to be a push to find "bugs" and 
"accidental blowups" in the Taproot design currently. No problem with this if 
there are any, they should definitely be highlighted and discussed if they do 
exist. The nearest to a possible inferior design decision thus far that I'm 
aware of is x-only pubkeys in BIP340 [0].

Thanks
Michael

[0]: 
https://btctranscripts.com/london-bitcoin-devs/2022-08-11-tim-ruffing-musig2/#a-retrospective-look-at-bip340

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

--- Original Message ---
On Tuesday, February 7th, 2023 at 18:35, Russell O'Connor via bitcoin-dev 
 wrote:

> There is a bug in Taproot that allows the same Tapleaf to be repeated 
> multiple times in the same Taproot, potentially at different Taplevels 
> incurring different Tapfee rates.
>
> The countermeasure is that you should always know the entire Taptree when 
> interacting with someone's Tapspend.
>
> On Tue, Feb 7, 2023 at 1:10 PM Andrew Poelstra via bitcoin-dev 
>  wrote:
>
>> Some people highlighted some minor problems with my last email:
>>
>> On Tue, Feb 07, 2023 at 01:46:22PM +, Andrew Poelstra via bitcoin-dev 
>> wrote:
>>>
>>> 
>>>
>>> [1] https://bitcoin.sipa.be/miniscript/
>>> [2] In Taproot, if you want to prevent signatures migrating to another
>>> branch or within a branch, you can use the CODESEPARATOR opcode
>>> which was redisegned in Taproot for exactly this purpose... we
>>> really did about witness malleation in its design!
>>
>> In Taproot the tapleaf hash is always covered by the signature (though
>> not in some ANYONECANPAY proposals) so you can never migrate signatures
>> between tapbranches.
>>
>> I had thought this was the case, but then I re-confused myself by
>> reading BIP 341  which has much of the sighash specified, but not
>> all of it! The tapleaf hash is added in BIP 342.
>>
>>>
>>> If you want to prevent signatures from moving around *within* a
>>> branch,
>>>
>>
>> And this sentence I just meant to delete :)
>>
>> --
>> Andrew Poelstra
>> Director of Research, Blockstream
>> Email: apoelstra at wpsoftware.net
>> Web: https://www.wpsoftware.net/andrew
>>
>> The sun is always shining in space
>> -Justin Lewis-Webster
>>
>> ___
>> bitcoin-dev mailing list
>> bitcoin-dev@lists.linuxfoundation.org
>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] [Lightning-dev] A new Bitcoin implementation integrated with Core Lightning

2023-01-16 Thread Michael Folkson via bitcoin-dev
Hi alicexbt

Thanks for the suggestion. I'll take a look at the branch.

I'm personally pretty bullish on Lightning and Core Lightning is criminally 
underused. Plus it is more exciting (and hopefully will attract more 
contributors) to try something ambitious than just trim Core. I'll see if it is 
something the Core Lightning contributors might be interested in helping out 
on. I remember that Rusty said on a podcast that if he had another life he'd 
have liked to have worked on Core. This way he could potentially do both :)

Thanks
Michael

--
Michael Folkson
Email: michaelfolkson at protonmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3


--- Original Message ---
On Sunday, January 15th, 2023 at 12:58, alicexbt  
wrote:


> Hi Michael,
> 
> If I were to fork bitcoin core and maintain an implementation, I wouldn't 
> integrate any lightning implementation with it. Instead remove some things 
> from bitcoin core and keep it simple. There is also scope for improving 
> privacy. Example: https://github.com/bitcoinknots/bitcoin/issues/50
> 
> You might find the commits in this branch interesting if you are looking to 
> remove things from bitcoin core and maintain an implementation with no gui, 
> wallet, less RPCs etc.
> 
> https://github.com/jeremyRubin/bitcoin/commits/delete-it-all
> 
> 
> /dev/fd0
> floppy disc guy
> 
> Sent with Proton Mail secure email.
> 
> --- Original Message ---
> On Sunday, January 15th, 2023 at 1:56 AM, Michael Folkson via Lightning-dev 
> lightning-...@lists.linuxfoundation.org wrote:
> 
> 
> 
> > I tweeted this 0 back in November 2022.
> > 
> > "With the btcd bugs and the analysis paralysis on a RBF policy option in 
> > Core increasingly thinking @BitcoinKnots and consensus compatible forks of 
> > Core are the future. Gonna chalk that one up to another thing @LukeDashjr 
> > was right about all along."
> > 
> > A new bare bones Knots style Bitcoin implementation (in C++/C) integrated 
> > with Core Lightning was a long term idea I had (and presumably many others 
> > have had) but the dysfunction on the Bitcoin Core project this week (if 
> > anything it has been getting worse over time, not better) has made me start 
> > to take the idea more seriously. It is clear to me that the current way the 
> > Bitcoin Core project is being managed is not how I would like an open 
> > source project to be managed. Very little discussion is public anymore and 
> > decisions seem to be increasingly made behind closed doors or in private 
> > IRC channels (to the extent that decisions are made at all). Core Lightning 
> > seems to have the opposite problem. It is managed effectively in the open 
> > (admittedly with fewer contributors) but doesn't have the eyeballs or the 
> > usage that Bitcoin Core does. Regardless, selfishly I at some point would 
> > like a bare bones Bitcoin and Lightning implementation integrated in one 
> > codebase. The Bitcoin Core codeb
 ase has collected a lot of cruft over time and the ultra conservatism that is 
needed when treating (potential) consensus code seems to permeate into parts of 
the codebase that no one is using, definitely isn't consensus code and should 
probably just be removed.
> > 
> > The libbitcoinkernel project was (is?) an attempt to extract the consensus 
> > engine out of Core but it seems like it won't achieve that as consensus is 
> > just too slippery a concept and Knots style consensus compatible codebase 
> > forks of Bitcoin Core seem to still the model. To what extent you can 
> > safely chop off this cruft and effectively maintain this less crufty fork 
> > of Bitcoin Core also isn't clear to me yet.
> > 
> > Then there is the question of whether it makes sense to mix C and C++ code 
> > that people have different views on. C++ is obviously a superset of C but 
> > assuming this merging of Bitcoin Core and Core Lightning is/was the optimal 
> > final destination it surely would have been better if Core Lightning was 
> > written in the same language (i.e. with classes) as Bitcoin Core.
> > 
> > I'm just floating the idea to (hopefully) hear from people who are much 
> > more familiar with the entirety of the Bitcoin Core and Core Lightning 
> > codebases. It would be an ambitious long term project but it would be nice 
> > to focus on some ambitious project(s) (even if just conceptually) for a 
> > while given (thankfully) there seems to be a lull in soft fork activation 
> > chaos.
> > 
> > Thanks
> > Michael
> > 
> > --
> > Michael Folkson
> > Email: michaelfolkson at protonmail.com
> > Keybase: michaelfolkson
> > PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] [Lightning-dev] A new Bitcoin implementation integrated with Core Lightning

2023-01-14 Thread Michael Folkson via bitcoin-dev
I saw it was announced, yes. The author is brilliant, he has now managed two 
alternative implementations of Core in two different languages :)

The problem though and why I and many others think the Knots style fork of Core 
is the better option is because you avoid reimplementing consensus code in a 
different language. If you're ultra conservative about consensus code you 
either want to run Core in parallel with your alternative implementation to 
check they don't go out of consensus or you want to run the same consensus code 
as Core in a Knots like fork. Hence a Knots like fork of Core in C++ integrated 
with Core Lightning in C seems like the better option to me for serious running 
in production like use cases.

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

--- Original Message ---
On Saturday, January 14th, 2023 at 20:34, Fabian  wrote:

> Hi Michael,
>
> have you seen Mako? It might at least be a good start for what you would like 
> to achieve: https://github.com/chjj/mako
>
> Best,
> Fabian
> --- Original Message ---
> On Saturday, January 14th, 2023 at 9:26 PM, Michael Folkson via Lightning-dev 
>  wrote:
>
>> I tweeted this [0] back in November 2022.
>>
>> "With the btcd bugs and the analysis paralysis on a RBF policy option in 
>> Core increasingly thinking @BitcoinKnots and consensus compatible forks of 
>> Core are the future. Gonna chalk that one up to another thing @LukeDashjr 
>> was right about all along."
>>
>> A new bare bones Knots style Bitcoin implementation (in C++/C) integrated 
>> with Core Lightning was a long term idea I had (and presumably many others 
>> have had) but the dysfunction on the Bitcoin Core project this week (if 
>> anything it has been getting worse over time, not better) has made me start 
>> to take the idea more seriously. It is clear to me that the current way the 
>> Bitcoin Core project is being managed is not how I would like an open source 
>> project to be managed. Very little discussion is public anymore and 
>> decisions seem to be increasingly made behind closed doors or in private IRC 
>> channels (to the extent that decisions are made at all). Core Lightning 
>> seems to have the opposite problem. It is managed effectively in the open 
>> (admittedly with fewer contributors) but doesn't have the eyeballs or the 
>> usage that Bitcoin Core does. Regardless, selfishly I at some point would 
>> like a bare bones Bitcoin and Lightning implementation integrated in one 
>> codebase. The Bitcoin Core codebase has collected a lot of cruft over time 
>> and the ultra conservatism that is needed when treating (potential) 
>> consensus code seems to permeate into parts of the codebase that no one is 
>> using, definitely isn't consensus code and should probably just be removed.
>>
>> The libbitcoinkernel project was (is?) an attempt to extract the consensus 
>> engine out of Core but it seems like it won't achieve that as consensus is 
>> just too slippery a concept and Knots style consensus compatible codebase 
>> forks of Bitcoin Core seem to still the model. To what extent you can safely 
>> chop off this cruft and effectively maintain this less crufty fork of 
>> Bitcoin Core also isn't clear to me yet.
>>
>> Then there is the question of whether it makes sense to mix C and C++ code 
>> that people have different views on. C++ is obviously a superset of C but 
>> assuming this merging of Bitcoin Core and Core Lightning is/was the optimal 
>> final destination it surely would have been better if Core Lightning was 
>> written in the same language (i.e. with classes) as Bitcoin Core.
>>
>> I'm just floating the idea to (hopefully) hear from people who are much more 
>> familiar with the entirety of the Bitcoin Core and Core Lightning codebases. 
>> It would be an ambitious long term project but it would be nice to focus on 
>> some ambitious project(s) (even if just conceptually) for a while given 
>> (thankfully) there seems to be a lull in soft fork activation chaos.
>>
>> Thanks
>> Michael
>>
>> [0]: 
>> https://twitter.com/michaelfolkson/status/1589220155006910464?s=20&t=GbPm7w5BqS7rS3kiVFTNcw
>>
>> --
>> Michael Folkson
>> Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
>> Keybase: michaelfolkson
>> PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


[bitcoin-dev] A new Bitcoin implementation integrated with Core Lightning

2023-01-14 Thread Michael Folkson via bitcoin-dev
I tweeted this [0] back in November 2022.

"With the btcd bugs and the analysis paralysis on a RBF policy option in Core 
increasingly thinking @BitcoinKnots and consensus compatible forks of Core are 
the future. Gonna chalk that one up to another thing @LukeDashjr was right 
about all along."

A new bare bones Knots style Bitcoin implementation (in C++/C) integrated with 
Core Lightning was a long term idea I had (and presumably many others have had) 
but the dysfunction on the Bitcoin Core project this week (if anything it has 
been getting worse over time, not better) has made me start to take the idea 
more seriously. It is clear to me that the current way the Bitcoin Core project 
is being managed is not how I would like an open source project to be managed. 
Very little discussion is public anymore and decisions seem to be increasingly 
made behind closed doors or in private IRC channels (to the extent that 
decisions are made at all). Core Lightning seems to have the opposite problem. 
It is managed effectively in the open (admittedly with fewer contributors) but 
doesn't have the eyeballs or the usage that Bitcoin Core does. Regardless, 
selfishly I at some point would like a bare bones Bitcoin and Lightning 
implementation integrated in one codebase. The Bitcoin Core codebase has 
collected a lot of cruft over time and the ultra conservatism that is needed 
when treating (potential) consensus code seems to permeate into parts of the 
codebase that no one is using, definitely isn't consensus code and should 
probably just be removed.

The libbitcoinkernel project was (is?) an attempt to extract the consensus 
engine out of Core but it seems like it won't achieve that as consensus is just 
too slippery a concept and Knots style consensus compatible codebase forks of 
Bitcoin Core seem to still the model. To what extent you can safely chop off 
this cruft and effectively maintain this less crufty fork of Bitcoin Core also 
isn't clear to me yet.

Then there is the question of whether it makes sense to mix C and C++ code that 
people have different views on. C++ is obviously a superset of C but assuming 
this merging of Bitcoin Core and Core Lightning is/was the optimal final 
destination it surely would have been better if Core Lightning was written in 
the same language (i.e. with classes) as Bitcoin Core.

I'm just floating the idea to (hopefully) hear from people who are much more 
familiar with the entirety of the Bitcoin Core and Core Lightning codebases. It 
would be an ambitious long term project but it would be nice to focus on some 
ambitious project(s) (even if just conceptually) for a while given (thankfully) 
there seems to be a lull in soft fork activation chaos.

Thanks
Michael

[0]: 
https://twitter.com/michaelfolkson/status/1589220155006910464?s=20&t=GbPm7w5BqS7rS3kiVFTNcw

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] Roles and procedures around adding a bitcoin core maintainer

2022-12-20 Thread Michael Folkson via bitcoin-dev
Hi alicexbt

There does seem to be some confusion on this which I'm going to look into. I 
don't think ranting and raving or throwing toys out the pram on the mailing 
list is the productive way to go though. I'll chat to some people offline and 
see what the confusion is and hopefully this can be resolved without 
unnecessary drama. I'll respond in the new year. I don't know if you celebrate 
but if you do Happy Holidays.

Thanks
Michael

--
Michael Folkson
Email: michaelfolkson at protonmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3


--- Original Message ---
On Monday, December 19th, 2022 at 23:58, alicexbt via bitcoin-dev 
 wrote:


> Hi Bitcoin Developers,
> 
> List of present bitcoin core maintainers:
> 
> Username
> 
> Focus Area
> 
> MarcoFalke
> 
> General, QA
> 
> fanquake
> 
> General, Build
> 
> hebasto
> 
> General, UI/UX
> 
> achow101
> 
> General, Wallet
> 
> glozow
> 
> General, Mempool
> 
> Last 2 developers that stepped down as bitcoin core maintainer:
> 
> Username
> 
> -
> 
> sipa
> 
> laanwj
> 
> Process followed in adding last maintainer:
> 
> 1) fanquake [nominated][0] glowzow as rbf/mempool/validation maintainer.
> 
> 2) It was discussed in an IRC [meeting][1] and most of the developers agreed 
> to add her as new maintainer except mild NACK from Jeremy Rubin. Some 
> contributors did not like different opinions being shared in the meeting.
> 
> 3) A [pull request][2] was opened by glowzow to add keys. There were several 
> ACKs, 2 NACKs and 1 meta concept NACK.
> 
> My NACK: https://github.com/bitcoin/bitcoin/pull/25524#issuecomment-1172518409
> 
> NACK by jamesob: 
> https://github.com/bitcoin/bitcoin/pull/25524#issuecomment-1172570635
> 
> Meta concept NACK by luke-jr: 
> https://github.com/bitcoin/bitcoin/pull/25524#issuecomment-1175625779
> 
> Eventually everyone agreed to add glowzow as maintainer and improve the 
> process of adding maintainers. Pull request was merged by MarcoFalke.
> 
> Initiatives to improve the process and documentation:
> 
> 1) Jeremy opened a [pull request][3] and there were lot of disagreements with 
> the documentation. It was closed since a related PR with less changes could 
> be easy to agree upon.
> 
> 2) Related [pull request][4] with minimal documentation was also closed by 
> Jeremy with a comment that desire to improve docs seems to be missing based 
> on reviews.
> 
> 3) Jeremy opened an [issue][5] with title 'Call for Maintainer: P2P & 
> Networking + Privacy' which was changed later and 'Privacy' was removed. He 
> nominated jonatack and vasild was already self nominated so mentioned in the 
> pull request. Nobody appreciated this effort to nominate self or others for a 
> new maintainer. Later this was closed.
> 
> 4) I had opened an [issue][6] with title Call for Maintainer: Privacy'. This 
> even involved privacy of contributors and not just bitcoin core. It received 
> some comments that made no sense and I eventually closed the issue.
> 
> Process being followed for adding vasild as maintainer:
> 
> 1) vasild volunteered to be a new maintainer on [IRC][7]
> 
> 2) It was discussed in IRC [meeting][8], some developers ACKed it and there 
> were no issues.
> 
> 3) A [pull request][9] was opened by vasild to add keys which is still open 
> and its been 4 months. There were already some ACKs from the IRC meeting and 
> pull request also received some ACKs (16 until now). fanquake, dergoegge and 
> JeremyRubin had some disagreements. Jeremy had recently withdrawn all 
> ACK/NACK from bitcoin core repository for some reasons, fanquake has not 
> replied yet and dergoegge had some new disagreements although don't mind if 
> the pull request is merged.
> 
> 4) Earlier disagreements were related to scoping and it was changed by vasild
> 
> 4) There was even a comment that disrespected vasild's contributions in 
> bitcoin core and we had to literally share pull requests in which vasild has 
> improved bitcoin core.
> 
> 5) I tried adding the topic for a bitcoin core dev weekly meeting but did not 
> achieve anything.
> 
> Since Bitcoin Core is the reference implementation for Bitcoin and used by 
> 90% nodes, what should be the ideal process or changes you would expect in 
> roles, procedures etc.?
> 
> - 'Call for maintainers' issue should be opened if contributors or 
> maintainers need a new maintainer.
> 
> - Discussion about nominated contributors in an IRC meeting where everyone is 
> allowed to share their opinion.
> 
> - One of the nominated contributor that gets most ACKs could open pull 
> request to add keys. Everyone can ACK/NACK this PR with reasons.
> 
> - Maintainers should be unbiased in merging these pull requests.
> 
> - New maintainer should not be funded by the organization that already does 
> it for most of the maintainers.
> 
> - Long term contributors that are not living in a first world country should 
> be encouraged.
> 
> - Either we should agree every maintai

Re: [bitcoin-dev] Rethinking “Incentive Compatibility” Within the Bitcoin Protocol

2022-12-11 Thread Michael Folkson via bitcoin-dev
I think it best I leave this discussion to others then as something I've 
written has obviously offended you. I'll also leave it to others to assess 
whether I was disrespectful or attacking your character or quality of 
experience in that email. Someone working on the P2P or mempool part of the 
Bitcoin Core codebase for years is going to understand the code and the subtle 
trade-offs of mempool policy defaults better than you or I. I hate to break it 
to you. Just like you are going to understand Synonym's business and technology 
better than that P2P/mempool developer. We all have different skillsets and 
different experiences.

> When I post in github, you mention I should be banned and you ignore my 
> substantive arguments.

Pull requests on Bitcoin Core's GitHub repository are for technical review of 
the concept, approach and code contained within that pull request. Submitting 
your Concept (N)ACK and reasoning is perfectly fine as is opening a pull 
request with the same changes. But the general high level discussion (back and 
forth etc) you seem to want to have is much better suited here than on a 
Bitcoin Core pull request. It is impossible for the Bitcoin Core project to 
operate if the world's population aren't willing to follow project norms and 
want to have discussions on subjects that aren't within the scope of that pull 
request. I and others requested you go here and you initially refused and said 
you struggled to use this forum.

But yeah I'm not interested in engaging a shouting match. So with regards to 
your questions I'll leave it to others to discuss them with you.

Thanks
Michael
--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

--- Original Message ---
On Sunday, December 11th, 2022 at 16:56, John Carvalho  wrote:

> While I appreciate your reference links, and will check them out (thanks!), I 
> do not appreciate your repeated takes about my character or quality of 
> experience. I have been in Bitcoin for 10 years, I build with it, I manage a 
> Bitcoin company with 8 engineers, and, modesty aside, there aren't very many 
> non-engineers that grasp how Bitcoin works as well as I do. I put lots of 
> time into Bitcoin, and do my best to scrutinize all concepts presented to me.
>
> When I post in github, you mention I should be banned and you ignore my 
> substantive arguments. If I post on the list here, you imply I am a noob, 
> have difficulty understanding, and that I'm biased by business. This is not 
> useful other than some, probably false, notion that maybe you can position 
> yourself as superior or myself as dismissable.
>
> My post is an analysis on incentives and how we understand them when 
> designing for Bitcoin. You explained a bit about what the mempool is for, and 
> some dynamics about it, but you may notice that doing something like 
> mempoolfullrbf is actually inconsistent with a goal of mempool harmony. It is 
> a disruptive change, therefore a tradeoff. The arguments for making that 
> tradeoff use some oversimplified concepts, in my opinion.
>
> So, I am questioning the quality of current theory, and showing how it might 
> be insufficient.
>
> - Do you think it is possible that a fully replaceable mempool, and 
> obsoletion of zero-conf (merchant/consumer) use cases could result in less 
> overall mining income? If not, why not?
> - Could this, and other active management by Bitcoin Core engineers, result 
> in an overall less valuable, less useful Bitcoin, and is that bad for 
> miners/security?
> - Do you think it is inconsistent that on one hand, Bitcoiners argue that 
> miners do not control Bitcoin, yet Bitcoin Core is biasing decisions to cater 
> to mining incentives over user incentives? Should miners do what users want, 
> and might that be their actual incentive?
> - Do you think it is Core's place to influence or steer policy based on 
> speculation about what may happen in the future, even when it conflicts with 
> the present and past?
>
> *These* are the interesting questions. Do you have reasoned answers?
>
> You suggest you are comfortable outsourcing your understanding and decisions 
> to others, well I am not, and my post was meant to show some reasons why. It 
> is important that Bitcoiners question how, when, and whether Bitcoin software 
> is changed, regardless of their ability to create or audit code.
>
> Please analyze my ideas instead of me, thank you. Or, you could stay out of 
> it and outsource that to someone else as well.
>
> ~John
>
> On Sun, Dec 11, 2022 at 1:58 PM Michael Folkson 
>  wrote:
>
>> Hey John
>>
>> There was a discussion [0] started by Lisa on the mailing list last year on 
>> whether there is any point to a full node maintaining a mempool last year 
>> which you may find interesting. I also recommend Gloria's presentation [1] 
>> from Adopting Bitcoin last year on transaction relay poli

Re: [bitcoin-dev] Rethinking “Incentive Compatibility” Within the Bitcoin Protocol

2022-12-11 Thread Michael Folkson via bitcoin-dev
Hey John

There was a discussion [0] started by Lisa on the mailing list last year on 
whether there is any point to a full node maintaining a mempool last year which 
you may find interesting. I also recommend Gloria's presentation [1] from 
Adopting Bitcoin last year on transaction relay policy.

I think those are better resources than anything I could write. But I guess I'd 
summarize it like this. The job of the P2P/mempool/policy protocol devs in 
setting defaults is to ensure anyone can effectively propagate a consensus 
valid transaction across the network ultimately making its way into miners' 
mempools without harming network health (full node uptime, DoS attacks etc) and 
to give higher layers built on top of the Bitcoin network the best chance to 
succeed. If they totally screwed up that job with the defaults or they were 
unable to cater for a particular use case within default policy then there is 
always the alternative of submitting consensus valid transactions directly to 
miners bypassing the P2P network entirely. But clearly it is much better if the 
P2P network functions smoothly and every transaction isn't forced to be 
directly submitted to a miner. It is policy too of course rather than consensus 
so if the full node operator wants to change from the defaults they are free to 
do so without risking being forked off the network or risking a chain split.

> I know some of you may scoff at my bias for use cases like zero-conf, but 
> what I am trying to convey is a possible folly in active management, 
> speculation, and misapplied game theory that may permeate many Bitcoin Core 
> decisions and designs, even beyond the mempoolrbf / zero-conf debate.

This stuff is difficult to follow and understand especially for people who 
haven't been into Bitcoin for long or are trying to build Bitcoin businesses 
full time, there are lots of subtleties. I've certainly struggled at many 
points in my learning journey and I'm sure I will continue to do so in future. 
So there is no scoffing (from me at least) at individuals trying to learn and 
businesses trying to thrive and provide services to their customers. 
Unfortunately there are occasionally scenarios where trade-offs have to be 
weighed up and decisions have to be made where some people aren't happy. You 
may disagree but I'm a lot more comfortable delegating responsibility for 
policy defaults to those who have worked full time in this area for years than 
say consensus changes where I think we all have a responsibility to ensure 
suboptimal or worse harmful changes aren't made to the consensus rules. I 
thought your input on the CTV discussion earlier in the year was really 
positive for example. On this topic though I think you could do with doing some 
more reading as there is a lot​ of past discussion. I'm sure those who work in 
this area full time would be happy to answer any questions you have if you do.

Thanks
Michael

[0]: 
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-October/019572.html
[1]: 
https://btctranscripts.com/adopting-bitcoin/2021/2021-11-16-gloria-zhao-transaction-relay-policy/

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

--- Original Message ---
On Saturday, December 10th, 2022 at 14:10, John Carvalho via bitcoin-dev 
 wrote:

> As we debate mempoolfullrbf, and I familiarize myself with related PRs from 
> engineers trying to reign in all of the possible behaviors that make it 
> inconsistent, I can’t help but think about how I see people using the term 
> “incentive-compatible” and how it seems to be awfully presumptive.
>
> The idea that a single Bitcoin transaction can be “incentive-compatible” by 
> simply restricting it to having a higher fee or fee rate is theoretical, 
> likely narrow, and not totally objective. RBF is inherently a 
> fee-minimization tool, which as a concept, as I understand 
> “incentive-compatibility” to be about miners in this context, makes RBF to be 
> anti-incentives; miners are fee maximizers.
>
> Miners want the most fees per block, and per lifetime, do they not? If 
> miners, and the mempool, are prioritizing for the smallest txns with the 
> highest fees, over the longest acceptable amount of time, this may conflict 
> with extra-mempool behaviors that result in more txns per block / per 
> lifetime.
>
> If this isn’t making sense yet, let me summarize by how such a problem would 
> express: a per-transaction fee-minimized, fully replaceable mempool as 
> policy, that appears to always require the highest fee per txn, but 
> ultimately includes less txns per block and less fees per lifetime. 
> Basically, less use cases, less users, less txns — all to enforce a 
> misunderstood theory and predictive speculation of what people want out of 
> the system and what miners will do about it.
>
> Simply, we probably want designs that fill blocks, an

Re: [bitcoin-dev] Announcement: Full-RBF Miner Bounty

2022-12-05 Thread Michael Folkson via bitcoin-dev
> That said, a sufficiently incentivized actor (like Daniel Lipshitz or Muun 
> wallet developers) could work on a fork and run several nodes with such 
> functionality.

Daniel Lipshitz has been working on BSV apparently [0] so I guess anything is 
possible with him. But as others have said turning a mempool policy issue 
(users have always been free to choose whatever policy they like with zero 
chain split risk) into a consensus issue and a contentious soft fork issue at 
that would not be advised. I highly doubt any of the long term Muun 
contributors would want to support a contentious soft fork and fight a 
consensus rule war on this.

[0]: 
https://coingeek.com/gap600-ceo-daniel-lipshitz-talks-bsv-powered-stablecoins-on-coingeek-backstage-video/
--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

--- Original Message ---
On Monday, December 5th, 2022 at 16:12, Rijndael via bitcoin-dev 
 wrote:

> Good morning,
>
> That sounds like a very dangerous mode of operation. You can already hand a 
> transaction to a miner privately. I hand a transaction to a miner with some 
> reasonable fee, and then I go and broadcast a different transaction with a 
> minimal fee that spends the same inputs. The whole network (including the 
> miner I handed the tx to) could all be running with a strict first-seen 
> mempool policy, but we can still have a situation where the miner creates a 
> block with a different transaction from what you see in your mempool. If 
> anytime this happens, the nodes running your proposed rule drop the block, 
> then anyone can fork those nodes off the network whenever they want.
>
> Even outside of adversarial settings, Bitcoin doesn't (and doesn't attempt 
> to) promise consistency across mempools. Making a consensus rule that 
> enforces mempool consistency is a recipe for (unintended?) chainsplits.
>
> - rijndael
>
> On 12/5/22 7:20 AM, El_Hoy via bitcoin-dev wrote:
>
>> The only option I see against the attack Peter Todd is doing to opt-in RBF 
>> and 0Conf bitcoin usage is working on a bitcoin core implementation that 
>> stops propagation of full-rbf replaced blocks. Running multiple of such 
>> nodes on the network will add a risk to miners that enable full-rbf that 
>> would work as an incentive against that.
>>
>> Obviously that would require adding an option on bitcoin core (that is not 
>> technically but politically difficult to implement as Petter Todd already 
>> have commit access to the main repository).
>>
>> That said, a sufficiently incentivized actor (like Daniel Lipshitz or Muun 
>> wallet developers) could work on a fork and run several nodes with such 
>> functionality. As far as I understand the percolation model, with 10 to 20 
>> nodes running such a rule would create a significant risk for full-rbf 
>> miners.
>>
>> Regards.
>>
>> --- Eloy
>>
>> On Tue, Nov 15, 2022 at 11:43 AM Peter Todd via bitcoin-dev 
>>  wrote:
>>
>>> On Tue, Nov 15, 2022 at 03:36:08PM +1000, Anthony Towns via bitcoin-dev 
>>> wrote:
 On Tue, Nov 08, 2022 at 01:16:13PM -0500, Peter Todd via bitcoin-dev wrote:
 > FYI I've gotten a few hundred dollars worth of donations to this effort, 
 > and
 > have raised the reward to about 0.02 BTC, or $400 USD at current prices.

 Seems like this has been mostly claimed (0.014btc / $235, 9238sat/vb):
>>>
>>> I'm turning it back on when (if) the mempool settles down. I've got more 
>>> than
>>> enough donations to give another run at it (the majority was donated 
>>> privately
>>> FWIW). There's a risk of the mempool filling up again of course; hard to 
>>> avoid
>>> that.
>>>
>>> Right now of course it's really easy to double spend with the obvious
>>> low-fee/high-fee method as the min relay fee keeps shifting.
>>>
 https://mempool.space/tx/397dcbe4e95ec40616e3dfc4ff8ffa158d2e72020b7d11fc2be29d934d69138c

 The block it was claimed in seems to have been about an hour after the
 default mempool filled up:

 https://twitter.com/murchandamus/status/1592274621977477120

 That block actually seems to have included two
 alice.btc.calendar.opentimestamps.org txs, the other paying $7.88
 (309sat/vb):

 https://mempool.space/tx/ba9670109a6551458d5e1e23600c7bf2dc094894abdf59fe7aa020ccfead07cf
>>>
>>> The second is because I turned down the full-rbf reward to more normal fee
>>> levels. There's also another full-rbf double-spend from the Bob calendar, 
>>> along
>>> the same lines: 
>>> 7e76b351009326a574f3120164dbbe6d85e07e04a7bbdc40f0277fcb008d2cd2
>>>
>>> I double-spent the txin of the high fee tx that got mined. But I mistakenly 
>>> had
>>> RBF enabled in that double-spend, so while it propagated initially, I 
>>> believe
>>> it was replaced when something (someone?) rebroadcast the high-fee 397dcb 
>>> tx.
>>>
 Timeline (utc) to me looks like:

 - 13:12 - 

Re: [bitcoin-dev] Custom signet for testing full RBF

2022-11-22 Thread Michael Folkson via bitcoin-dev
Hi alicexbt

Thanks for setting this up. Generally it seems to me like an excellent idea to 
set up custom signets (and/or get proposals enabled on the default signet) for 
testing and experimenting with new proposals.

I have two questions.

1) In this particular case the -mempoolfullrbf configuration option is in the 
recent Bitcoin Core 24.0 release and so can be used both on mainnet and the 
default signet, testnet etc. What could be tested on this custom signet that 
can't be tested on the default signet with Bitcoin Core 24.0? Perhaps there are 
some things that are easier to test with a smaller custom signet network 
starting from scratch?

2) I know a number of people have struggled (e.g. [0], [1]) to get a custom 
signet set up. I think the CTV signet took a while to get set up too. It seems 
you followed the instructions on the Bitcoin wiki [2] for setting this one up? 
Was there anything you found difficult or was counterintuitive getting this 
custom signet set up? You are the sole block signer on this custom signet. How 
regularly are you mining blocks (e.g. strictly every 10 minutes, replicating 
the Poisson process on mainnet, adhoc etc?) Are you running this custom signet 
node on the same machine as a default signet, mainnet, testnet full node? I'm a 
little tentative to start joining custom signet networks on the same machine 
that is already running other nodes but perhaps there are no problems. 

I'm not sure yet if I have a use case in mind for this particular custom signet 
but I'm very interested in custom signet setup generally and the docs/resources 
to make this as easy as possible so thanks again for posting about this.

Thanks
Michael

[0]: 
https://bitcoin.stackexchange.com/questions/114477/could-someone-share-with-me-some-documentations-or-sites-on-how-to-set-up-a-cust
[1]: 
https://bitcoin.stackexchange.com/questions/114724/peer-discovery-on-a-custom-signet-custom-signetchallenge
[2]: [0]: https://en.bitcoin.it/wiki/Signet#Custom_Signet

--
Michael Folkson
Email: michaelfolkson at protonmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3


--- Original Message ---
On Sunday, November 20th, 2022 at 08:36, alicexbt via bitcoin-dev 
 wrote:


> Hi Bitcoin Developers,
> 
> I have setup a [custom signet][0] for testing full RBF. You can connect to 
> one or more of these nodes using `addnode`:
> 
> 13.115.34.55 (issuer, full-rbf)
> kfupbqwb2yvzzqjomfq5pkem553a6uzp2k73seqn4d46smy7azua.b32.i2p (rbf-optin)
> luvczzzppiqnc2b7poivkxlugafe3uqaj245ebjqxtceio7poaorqcyd.onion (full-rbf)
> 
> Example config:
> 
> `signet=1 
> signetchallenge=5121035daaa313aada6310340a242af17238cc1fd8849e875940bce65a60ac7e0e0ff751ae
>  proxy=127.0.0.1:9050 [signet] 
> addnode=luvczzzppiqnc2b7poivkxlugafe3uqaj245ebjqxtceio7poaorqcyd.onion 
> mempoolfullrbf=1`
> 
> Example for a simple test case:
> 
> - Run 2 nodes
> - Connect node 1 with i2p node and use default opt-in rbf
> - Connect node 2 with node 1 and onion node. This node should use 
> `mempoolfullrbf=1` in config and compile bitcoind using PR [#26454][1] branch
> - Broadcast Tx1 using node 2 and replace with Tx2 using `bumpfee` RPC
> 
> It will be fun to test with more nodes joining this custom signet. If anyone 
> interested to test, please post your bitcoin address in [full-rbf room][2]. 
> We can even setup an explorer if this experiment makes sense.
> 
> [0]: https://en.bitcoin.it/wiki/Signet#Custom_Signet
> [1]: https://github.com/bitcoin/bitcoin/pull/26454
> [2]: #full-rbf:matrix.org
> 
> Sent with Proton Mail secure email.
> 
> /dev/fd0
> ___
> bitcoin-dev mailing list
> bitcoin-dev@lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] bitcoin-inquistion: evaluating soft forks on signet

2022-10-02 Thread Michael Folkson via bitcoin-dev
Thanks for this AJ, especially the history on prior soft forks, the vast 
majority of which I was unclear on.

> The point of doing it via signet and outside of core is there doesn't
need to be any community consensus on soft forks. Unlike mainnet, signet
sBTC isn't money, and it isn't permissionless; and unlike merging it
into core, there isn't a risk of a mege having unintended side effects
impacting mainnet operation.

Agreed. I'm obviously much happier with proposed consensus changes being 
activated prematurely on a signet (default or custom) than on mainnet.

> Because signet mining is a closed set (determined by the first block
after genesis when the signetchallenge is locked in), signet soft forks
always have gatekeepers.

I'm also perfectly happy with the status quo of the default signet having block 
signers and gatekeepers for soft forks activated on the default signet. I'm 
more concerned with those gatekeepers being under pressure to merge unfinished, 
buggy soft fork proposals on the default signet which need to be reversed or 
changed disrupting all default signet users. The bar for mainnet activations is 
obviously much higher than for the default signet but the default signet does 
still need a bar.

> If you don't want to risk any disruption, then regtest or a private
signet is a better option. A global p2p network *always* has risk of
disruption at some level or another.

Right but disruption isn't boolean, it is a spectrum. It isn't disruption or 
zero disruption. The more soft fork proposals that are enabled on the default 
signet (and the more changes to those soft fork proposals pushed to the default 
signet) the higher the risk of a stalling blockchain (your signet node rejects 
a block the rest of the signet network accepts). The small number of block 
signers (currently 2) should prevent you being forked off entirely onto a 
different default signet chain with new mined blocks being added to your 
blockchain tip but your blockchain could stall.

What should happen in this scenario? Say I'm a default signet full node runner 
and I don't want to run any code outside of say the Bitcoin Core repo. I don't 
care about the proposed soft forks being tested on the default signet, I just 
care about testing my application with the existing consensus rules on mainnet. 
However, my default signet blockchain has stalled because of some consensus 
rule adjustment (an effective hard fork) made by the signet miners and the 
block signers. I have to run a patch from bitcoin-inquisition to get my node 
adding blocks again? I'm essentially being forced to run code from 
bitcoin-inquisition or wait many months for a default signet checkpoint in a 
Core release.

I looked into linux-next[0] which you mentioned as an interesting parallel in 
the Linux ecosystem on last week's Bitcoin Optech Twitter Spaces [1]. In that 
link linux-next is described as:

"The linux-next tree is the holding area for patches aimed at the next kernel 
merge window."

I guess I'd also want expectations to be tempered a little for consensus 
changes on bitcoin-inquisition versus say this description of linux-next. I 
don't know where the bar will be set for default signet soft fork activations 
by the block signers and the miners but wherever it is set it will be lower 
than mainnet. And to be considered for activation on mainnet these proposals do 
require community consensus if we want to minimize the risk of mainnet chain 
splits. There are no block signers or regularly updated checkpoints on mainnet. 
It is certainly possible that soft fork proposals that get activated on the 
default signet never get activated on mainnet and that being activated on the 
default signet offers no guarantees or even intentions/aims for the next 
Bitcoin Core (or any alternative implementation) release. I'd like to avoid the 
"my soft fork proposal has been activated on the default signet so you should 
expect it to be activated on mainnet within x months or y years" type thi
 ng.

Thanks
Michael

[0]: https://www.kernel.org/doc/man-pages/linux-next.html
[1]: 
https://twitter.com/bitcoinoptech/status/1574697495325974528?s=20&t=XWkpA459C9qxOOrBuP2fYA

--
Michael Folkson
Email: michaelfolkson at protonmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3


--- Original Message ---
On Sunday, October 2nd, 2022 at 07:12, Anthony Towns via bitcoin-dev 
 wrote:


> On Fri, Sep 16, 2022 at 05:15:45PM +1000, Anthony Towns via bitcoin-dev wrote:
> 
> > So that's the concept. For practical purposes, I haven't yet merged
> > either CTV or APO support into the bitcoin-inquisition 23.0 branch yet
> 
> 
> I've now merged CTV and updated my signet miner to enforce both CTV and
> APO (though you'd need to be either lucky or put some effort into it to
> figure out how to get a CTV/APO transaction relayed to my miner).
> 
> Updating APO to be compatible with CTV actually seems to have found a
> previously unknown bug

Re: [bitcoin-dev] bitcoin-inquistion: evaluating soft forks on signet

2022-09-28 Thread Michael Folkson via bitcoin-dev
I've given this some extra thought and discussed with others who may later 
chime in on this thread. I'm now convinced this should be done on a custom 
public signet rather than on the default signet. SegWit was added to a new 
testnet (Segnet) for testing rather than the pre-existing testnet and I think 
future soft fork proposals should follow a similar approach.

Even if there is community consensus on what soft fork proposals should be 
added to the default signet today (which may or may not be case) I find it 
highly unlikely this will always be the case. We then get into the situation 
where the block signers (currently AJ and Kalle) are the gatekeepers on what 
soft fork proposals are added. The default signet is directly supported with 
the -signet flag in Bitcoin Core. Even if we are moving the proposed soft fork 
code to an external repo (to avoid it being merged into Core prematurely) it is 
still determining what soft forks are accessible from the signet flag in 
Bitcoin Core. I don't think it is fair on the signet block signers to put them 
in that position and I don't think it is wise to put other Bitcoin Core 
contributors/maintainers in the position of having to defend why some proposed 
soft forks are accessible on the default signet while others aren't.

The default signet was a long term project to address the unreliability and 
weaknesses of testnet. Many default signet users won't be interested in testing 
soft fork proposals and it is not reasonable for them to be subject to a 
stalling or forked blockchain because changes to a soft fork proposal or a 
buggy soft fork proposal pushed to the default signet makes previous 
valid/invalid transactions invalid/valid. If they want to test proposed soft 
forks on a custom signet they are opting in to possible disruption rather than 
it being forced upon them.

By focusing on custom signets rather than the default signet it also allows for 
more experimentation. Don't like the choices of which soft fork proposals have 
been added to bitcoin-inquisition? Set up your own custom signet with a 
different set of soft fork proposals and get users for your custom signet on a 
level playing field to bitcoin-inquisition. A soft fork proposal is found to be 
strictly inferior to another soft fork proposal? Just spin down the custom 
signet with that inferior soft fork proposal on it without impacting default 
signet users.

So TL;DR still enthusiastic about this concept. Just with a strong preference 
that it is done on a custom signet rather than on the default signet.

Thanks
Michael

--
Michael Folkson
Email: michaelfolkson at protonmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3


--- Original Message ---
On Monday, September 19th, 2022 at 11:05, Anthony Towns via bitcoin-dev 
 wrote:


> On Sun, Sep 18, 2022 at 02:47:38PM -0400, Antoine Riard via bitcoin-dev wrote:
> 
> > Said succinctly, in the genesis of creative ideas, evaluation doesn't
> > happen at a single clear point but all along the idea lifetime, where this
> > evaluation is as much done by the original author than its peers and a
> > wider audience.
> 
> 
> Sure. I definitely didn't mean to imply a waterfall development model,
> or that the phases wouldn't overlap etc.
> 
> > I would still expose a concern to not downgrade in the pure empiricism in
> > matter of consensus upgrades. I.e, slowly emerging the norm of a working
> > prototype running on bitcoin-inquisition` as a determining factor of the
> > soundness of a proposal. E.g with "upgrading lightning to support eltoo", a
> > running e2e won't save us to think the thousands variants of pinnings, the
> > game-theory soundness of a eltoo as mechanism in face of congestions, the
> > evolvability of APO with more known upgrades proposals or the
> > implementation complexity of a fully fleshed-out state machine and more
> > questions.
> 
> 
> I agree here; but I think not doing prototypes also hinders thinking
> about all the thousands of details in a fork. It's easy to handwave
> details away when describing things on a whiteboard; and only realise
> they're trickier than you thought when you go to implement things.
> 
> > E,g if one implements the "weird" ideas
> > about changes in the block reward issuance schedule discussed during the
> > summer, another one might not want "noise" interferences with new
> > fee-bumping primitives as the miner incentives are modified.
> 
> 
> (I don't think "miner incentives" are really something that can be
> investigated on signet. You can assume how miners will respond to
> incentives and program the mining software to act that way; but there's
> no competitive pressure in signet mining so I don't think that really
> demonstrates anything very much. Likewise, there's much less demand for
> blockspace on signet than on mainnet, so it's probably hard to experiment
> with "fee incentives" too)
> 
> > I hope the upcoming
> > Contracting Primitives WG w

Re: [bitcoin-dev] bitcoin-inquistion: evaluating soft forks on signet

2022-09-18 Thread Michael Folkson via bitcoin-dev
Hi alicexbt

> Good to see some positivity, finally.

I had enthusiasm for this concept of enabling proposed soft fork functionality 
on signet 2 years ago [0]. Nothing has changed, still enthusiastic :) Not 
enthusiastic about the months wasted on unnecessary contentious soft fork drama 
since but can't change the past.

> 1)Nobody uses Liquid. Signet has more activity than Liquid.
  2)Testing something on Liquid will be completely different as its 
  a separate blockchain with some similarities.

Perhaps you should take your own advice with regards to positivity (or at least 
have more of an open mind) with regards Liquid and sidechains. Signet Bitcoin 
are totally free [1] and experimentation doesn't ever result in loss of real 
monetary value so you would expect more experimentation on signet versus Liquid 
long term. However, building protocols and prototypes with real monetary value 
is a step up from doing so with worthless signet coins. So I don't really see 
them as direct competitors. Some things take a lot longer to come to fruition 
than others but the original vision [2] of sidechains still makes perfect sense 
to me. Competing sets of consensus rules aren't possible on a single mainnet 
blockchain. Hence you either go the sidechain(-like) route or you go the 
altcoin route if you want to take the step up from signet/testnet and start 
using real monetary value. I much prefer the sidechain model to the altcoin 
route myself. Especially when in say vaults you do want the equiva
 lent of Bitcoin to be locked up rather than a more volatile altcoin.

Thanks
Michael

[0]: 
https://bitcoin.stackexchange.com/questions/98642/can-we-experiment-on-signet-with-multiple-proposed-soft-forks-whilst-maintaining
[1]: https://signetfaucet.com/
[2]: https://blockstream.com/sidechains.pdf

--
Michael Folkson
Email: michaelfolkson at protonmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3


--- Original Message ---
On Sunday, September 18th, 2022 at 13:27, alicexbt  
wrote:


> Hi Michael,
> 
> > I agree with Matt. The less said about the "Aw shucks Jeremy didn't know 
> > that CTV didn't have community consensus at the time" 0 and "it was the 
> > lack of process that was the problem" the better.
> 
> 
> The linked gist cannot be taken seriously and I am not sure why you keep 
> sharing it as some document to prove there was no technical consensus for BIP 
> 119. Nadav has already mentioned this in the comments. If you care about 
> community consensus, maybe feedback about the links in that gist should also 
> be respected. There was chaos, misinformation and lot of drama on twitter. 
> Some people that opposed CTV on twitter still have no clue what CTV actually 
> does and a few were super enthusiastic because of the author for BIP 119.
> 
> > I'm not convinced by the name (bitcoin-inquisition, shedpaint, shedpaint, 
> > let's park that for the moment) but I do like the idea of signet having 
> > soft fork proposals enabled on it 1 whether that be CTV, APO etc and if 
> > that requires more of the signet code to be moved out of the Core repo so 
> > be it.
> 
> 
> Good to see some positivity, finally. Because tx introspection aka covenants 
> would help everyone involved in bitcoin. This idea of experimenting with soft 
> forks on signet together with research and meetings suggested by Antoine 
> should help in better evaluation phase with less drama, politics etc. and 
> more technical discussions to reach a goal.
> 
> > I'm surprised more isn't being done on Liquid already with what possible 
> > future functionality is (and could be) enabled 2 there but maybe there is 
> > more happening than I'm aware of.
> 
> 
> 1)Nobody uses Liquid. Signet has more activity than Liquid.
> 2)Testing something on Liquid will be completely different as its a separate 
> blockchain with some similarities.
> 
> I have summarized a few other positives of testing soft forks on signet based 
> on AJ's email:
> 
> a)Better evaluation
> b)PR implementing soft fork could be reviewed and merged outside core
> c)Testing on signet with pre-existing signet infrastructure
> d)Can deploy multiple consensus changes so easier to compare alternative 
> approaches (eg CTV vs ANYPREVOUT vs OP_TXHASH vs OP_TX, etc)
> e)Pre-baked ability to abandon the soft fork
> f)No need to regularly rebase consensus changes against bitcoin core's master 
> branch
> 
> /dev/fd0
> 
> Sent with Proton Mail secure email.
> 
> --- Original Message ---
> On Saturday, September 17th, 2022 at 3:53 PM, Michael Folkson via bitcoin-dev 
> bitcoin-dev@lists.linuxfoundation.org wrote:
> 
> 
> 
> > I agree with Ma

Re: [bitcoin-dev] bitcoin-inquistion: evaluating soft forks on signet

2022-09-17 Thread Michael Folkson via bitcoin-dev
I agree with Matt. The less said about the "Aw shucks Jeremy didn't know that 
CTV didn't have community consensus at the time" [0] and "it was the lack of 
process that was the problem" the better. If people don't care about lack of 
community consensus there is no process in a permissionless, open source 
community that can stop them or direct them down a more patient, productive 
path (I tried). I think it is a shame because I think (maybe I'm wrong) at 
least in the technical community there is an understanding that long term 
Bitcoin is far from finished in exhausting its potential and we do need people 
who will work on changes that we'll need in the long term.

There are a few interesting things in here though. I'm not convinced by the 
name (bitcoin-inquisition, shedpaint, shedpaint, let's park that for the 
moment) but I do like the idea of signet having soft fork proposals enabled on 
it [1] whether that be CTV, APO etc and if that requires more of the signet 
code to be moved out of the Core repo so be it. I'm surprised more isn't being 
done on Liquid already with what possible future functionality is (and could 
be) enabled [2] there but maybe there is more happening than I'm aware of. 
Protocols or use cases built out and demonstrated on signet (and/or 
Liquid/sidechains) seem an obvious stepping stone to me for convincing the 
community that it is potentially worth taking the chain split risk for a 
particular upgrade. It is a long slog to get community consensus on an upgrade 
(Taproot certainly was a slog) but I think the vast majority of us think 
Taproot was worth that slog and Bitcoin would be poorer today without it.

The Great Consensus Cleanup is an interesting example in that I get Matt 
doesn't have time to champion it or focus on it with his LDK commitments but I 
have no idea where it would rank on his long term priority list if he wasn't 
working on LDK. Similarly I have no idea what people who understand this 
evolving system much better than I do are thinking with regards to say adding 
new opcodes, sighash flags versus say waiting on Simplicity and possibly adding 
new functionality within that potential upgrade. For people like me who are 
extremely unlikely to propose their own consensus change(s) getting some signal 
on what to spend time digging into would be useful rather than second guessing 
what people are thinking. There is a danger that you flirt with perceived 
public roadmaps when possible authority figures stick their necks out and 
effectively say "I'm not in charge but in an imaginary world where I was this 
is my current thinking of the ordering in which we could improve this system 
 long term. But this could change depending on x, y and z and possible upgrades 
are only ready when they're ready and they have community consensus." There is 
no way people don't play these exercises in their minds. I do, I just have very 
few answers :) I personally think APO is in prime position to improve Lightning 
channel state management with eltoo and if it enables some covenant schemes too 
that seems like an added bonus. On APO versus waiting for APO like 
functionality in Simplicity I have no idea. Work on APO/eltoo and Simplicity 
both seem to be progressing in parallel so the APO versus Simplicity discussion 
perhaps rests on whether people think certain covenants should only really be 
enabled once we have the security guarantees of Simplicity [3] (if at all).

Antoine's covenant R&D effort [4] seems really promising and I hope the 
shenanigans from earlier in the year don't put people off from engaging with 
that. Hopefully we can see more exploration, development and research in 
covenants (e.g. this excellent research paper "Bitcoin Covenants: Three Ways to 
Control the Future" [5]) and we can foster a community which has very high 
standards, is open to new ideas and new research but can avoid these months 
long resisting chain split fights. I think the discussion would be much more 
interesting and much more productive if people didn't have to think "If I 
express a view now it will be used to attack me personally later" or worse "If 
I express a view now it will be used to justify an upcoming chain split". 

[0]: https://gist.github.com/michaelfolkson/352a503f4f9fc5de89af528d86a1b718
[1]: 
https://bitcoin.stackexchange.com/questions/98642/can-we-experiment-on-signet-with-multiple-proposed-soft-forks-whilst-maintaining
[2]: 
https://bitcoin.stackexchange.com/questions/109764/what-opcodes-are-supported-on-liquid-but-not-yet-on-bitcoin
[3]: https://bitcoinops.org/en/topics/simplicity/
[4]: 
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-September/020912.html
[5]: https://arxiv.org/pdf/2006.16714.pdf

--
Michael Folkson
Email: michaelfolkson at protonmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3


--- Original Message ---
On Saturday, September 17th, 2022 at 09:39, Matt Corallo via bitcoin-dev 
 wrote

Re: [bitcoin-dev] Transcript: Online Socratic on MuSig2

2022-09-12 Thread Michael Folkson via bitcoin-dev
Hi Ali

> do you or anyone else in the Socratic know of any research to this that's 
> don't involve a trade-off of theft or online connectivity?

Any generation of a signature(s), whether that be single key (e.g. 
OP_CHECKSIG), multisig with multiple signatures going onchain (e.g. 
OP_CHECKMULTISIG, OP_CHECKSIGADD) or key aggregation multisig with only a 
single signature going onchain (e.g. OP_CHECKSIG), requires private key(s) and 
hence has concerns with regards to security and theft of those private keys. 
Clearly funds locked behind any kind multisig arrangement is better than no 
multisig arrangement as otherwise theft of a single private key can result in 
loss of funds.

With regards to connectivity or interactivity key aggregation multisig does 
increase the interactivity requirements so if you wanted to minimize 
interactivity requirements you'd probably stick to OP_CHECKMULTISIG, 
OP_CHECKSIGADD that only requires you to generate a signature and then pass it 
onto the next signer.

> ROAST and Liquid is perhaps the farthest I know of that addresses this 
> problem, but it's using centralized nodes right now. I was thinking, maybe 
> these federated nodes can be decentralized into a few of these "lite nodes" 
> managed by each service wanting a payment, that make a threshold signature 
> out of many subscribers paying at the same time.

I'm not sure what you mean here. In the realm of generating signatures there 
isn't really a concept of a "lite node". That makes more sense in the realm of 
verification where you may or may not be doing full verification. In the 
generating signatures realm you are either contributing to the aggregated 
signature or generating a standalone signature yourself. If you are not doing 
either of those and aren't doing some kind of coordination then you are 
entirely irrelevant to the scheme. In the case of Liquid there is a 11-of-15 
threshold signature arrangement where currently 11 signatures go onchain when 
funds are moved but if Liquid used a key aggregation scheme like FROST only a 
single signature would need to go onchain. With regards to 
centralization/decentralization you could increase the 11-of-15 to say a 
22-of-30. Or you could have a nested MuSig/FROST scheme behind one of the 11 
signers of the 11-of-15. But you can't get around the fact that you are either 
generating a signature that ultimately contributes to the moving of the funds 
or you aren't. If you aren't generating a signature then you are just verifying 
the signature(s) that go onchain like all other full nodes on the network.

Thanks
Michael

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

--- Original Message ---
On Sunday, September 11th, 2022 at 08:43, Ali Sherief  
wrote:

> Hi Michael.
>
> I read the transcript of the Socratic and I have to say that it is quite 
> detailed and touches a lot of problems including the well-known theft/offline 
> problems which also has forms elsewhere such as for passwords.
>
> My question is, do you or anyone else in the Socratic know of any research to 
> this that's don't involve a trade-off of theft or online connectivity?
>
> ROAST and Liquid is perhaps the farthest I know of that addresses this 
> problem, but it's using centralized nodes right now. I was thinking, maybe 
> these federated nodes can be decentralized into a few of these "lite nodes" 
> managed by each service wanting a payment, that make a threshold signature 
> out of many subscribers paying at the same time.
>
> - Ali___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


[bitcoin-dev] Transcript: Online Socratic on MuSig2

2022-09-08 Thread Michael Folkson via bitcoin-dev
Hi

We had an online Socratic on August 11th with Tim Ruffing (co-author of MuSig2 
draft BIP) and Elizabeth Crites (co-author of research papers on MuSig(2), 
FROST). It was previously announced here [0] but ended up being rescheduled.

The transcript is here [1], the video is here [2] and a reading list collecting 
together a number of resources on MuSig(2), FROST, ROAST etc is here [3].

We discussed a retrospective look at BIP340, handling x-only public keys in 
MuSig2 and the proposed TLUV covenant opcode, the history from initially broken 
MuSig1 through MuSig-DN to MuSig2, how MuSig2 and FROST compare for multisig 
schemes (i.e. n-of-n), why MuSig2 doesn't use proofs of possession and the 
current state of the draft MuSig2 BIP.

We covered a lot of topics and it was rather long (~2.5 hours) so check out the 
transcript or video if you are interested in any of the above topics. Many 
thanks to those who participated.

Jonas Nick recently tweeted [4] that the MuSig2 BIP [5] is approaching a stable 
version 1.0 which should be helpful to those who are interested (or already!) 
using it in the wild.

[0]: 
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-July/020772.html
[1]: 
https://btctranscripts.com/london-bitcoin-devs/2022-08-11-tim-ruffing-musig2/
[2]: https://www.youtube.com/watch?v=TpyK_ayKlj0
[3]: https://gist.github.com/michaelfolkson/5bfffa71a93426b57d518b09ebd0998c
[4}: https://twitter.com/n1ckler/status/1567168267025874944
[5]: https://github.com/jonasnick/bips/blob/musig2/bip-musig2.mediawiki

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] P2P trading replacement transactions

2022-08-06 Thread Michael Folkson via bitcoin-dev
Hi alicexbt

What do you mean by "replacement transaction"? Replacing or swapping outputs 
with a counterparty's?

I guess I'm struggling to understand exactly what you are attempting to achieve 
here with regards to privacy and if this additional protocol complexity is 
worth it. Recall a 2 (or n) party coinjoin would get you an output where it 
isn't clear to blockchain observers which output you control and a coinswap [0] 
would have you taking the coin history of your counterparty. What does this 
scheme offer with regards to privacy that those don't? This seems to have more 
complexity too though I maybe misunderstanding something.

Thanks
Michael

[0]: https://bitcoinops.org/en/topics/coinswap/

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

--- Original Message ---
On Friday, August 5th, 2022 at 15:44, alicexbt via bitcoin-dev 
 wrote:

> Hi Bitcoin Developers,
>
> Does it make sense to trade replacement transactions for privacy? I have 
> shared basic details to implement this and would love to read opinions about 
> it or ways to improve it:
>
> =
> alice
> =
>
> tx1: input a (0.01) -> output b1 (0.008)
> -> change c1 (0.001)
>
> tx2: input a (0.01) -> output e2 (0.007)
> -> output f2 (0.001)
>
> =
>
> bob
> =
>
> tx1: input d (0.011) -> output e1 (0.007)
> -> change f1 (0.003)
>
> tx2: input d (0.011) -> output b2 (0.008)
> -> output c2 (0.001)
>
> =
>
> carol
> =
>
> - creates an API to manage trades that will use 2 of 3 multisig
> - alice and bob create orders for replacement
> - either they could be matched automatically using some algorithm or bob 
> manually accepts the offer
> - 2 of 3 multisig is created with Alice, Bob and Carol keys
> - bob locks 0.01 BTC in it and shares outputs e2,f2 with alice
> - alice signs tx2 and shares tx with bob
> - alice locks 0.011 BTC in it and shares outputs b2,c2 with bob
> - bob signs tx2 and shares with alice
> - both replacement txs can be broadcasted
> - funds are released from 2 of 3 multisig with a tx having 3 outputs (one to 
> pay fee which goes to carol)
>
> positives:
>
> - privacy
>
> negatives:
>
> - extra fees
> - will take some time although everything will be managed by wallet with API 
> provided by carol
> - need to lock bitcoin with same amount as used in tx1
> - amounts could still be used to link txs in some cases- carol and other peer 
> knows the details
>
> /dev/fd0
>
> Sent with [Proton Mail](https://proton.me/) secure email.___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] RBF rules, setting policy defaults in Bitcoin Core and the role of BIPs

2022-08-04 Thread Michael Folkson via bitcoin-dev
Thanks for this Luke.

> Since BIP125 is widely implemented, it should not be changed except for 
> corrections to things which are errors deviating from the original intent.

In this example the BIP125/RBF rules implemented in Core are (and always have 
been) different to the rules as described in BIP125. As far as I know other 
implementations have also followed how it is implemented in Core rather than as 
described in BIP125. So we have the BIP125 rules, BIP125/RBF as implemented in 
Core and future intended changes to how RBF rules are implemented in Core which 
may or may not also be in a state of flux. I take the view that once those new 
RBF rules are "finalized" there should be a new BIP but others disagree.

> Also note that security should NEVER depend on assumptions of node policies. 
> Doing so would be a serious security vulnerability, regardless of what actual 
> network policies are.

You regularly state this and of course you're right. I tried to allude that it 
is far from ideal that L2 security is impacted by default policy rules to any 
extent in my post. But if it is a matter of fact that default policy rules 
impact the viability of some L2 protocol attacks today what should one do when 
setting default policy rules in the dominant implementation on the network? I 
think you lean towards not factoring that in whatsoever to decisions on default 
policy rules whereas (perhaps mistakenly) I lean towards factoring that in to 
default policy rule decisions especially when there don't seem to be many other 
factors to consider. In the case of Lightning Network I think we both want it 
to succeed and hopefully in the long term default policy rules will have no 
impact on its security whatsoever. But today that seems to not be the case.

--
Michael Folkson
Email: michaelfolkson at protonmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3


--- Original Message ---
On Thursday, August 4th, 2022 at 20:35, Luke Dashjr  wrote:


> Policy is a subjective per-node, not systemic, not enforcable or expectable,
> and generally not eligible for standardization.
>
> The reason BIP125 is an exception, is because it is more than just policy.
> It is a way for wallets and nodes to communicate. The wallet is saying "this
> is the policy I would like you to apply to potential replacements of these
> transactions". Whether the nodes abide this request or not, the purpose and
> justification of the BIP is to standardize the communication of it.
>
> Since BIP125 is widely implemented, it should not be changed except for
> corrections to things which are errors deviating from the original intent.
> If there is merely a new policy intended to be conveyed, a new BIP should be
> written that is distinguishable from BIP125 (perhaps drop the sequence number
> by 1 more). However, unless nodes are going to honour both the BIP125-request
> policy and a new policy, it might be simpler for them to just not honour
> the requested BIP125 policy exactly.
>
> Also note that security should NEVER depend on assumptions of node policies.
> Doing so would be a serious security vulnerability, regardless of what actual
> network policies are. It's fine to blame nodes/miners if they single out your
> transactions, but if it's just a matter of a general policy your transactions
> are failing to meet, that's on the sender/L2 to adapt.
>
> Luke
>
>
> On Thursday 04 August 2022 14:54:54 Michael Folkson via bitcoin-dev wrote:
>
> > A short history of RBF and BIP125
> >
> > The history of BIP125 is as far as I’m aware this. RBF rules were merged
> > into Bitcoin Core in November 2015 0. Following that merge David Harding
> > and Peter Todd drafted a BIP (BIP125 1) outlining the RBF rules that had
> > been implemented in Bitcoin Core. The rationales for the rules in the BIP
> > was a bit lacking (in my opinion) but recall this is 2015 (7 years ago!)
> > when L2 protocols were in their infancy. Certainly the research on the
> > security of L2 protocols has come a long way since and we have a much
> > better idea of some of the possible attacks on L2 protocols that to some
> > extent are impacted by policy rules.
> >
> > In addition it was discovered 2 in May 2021 that the Bitcoin Core
> > implementation of the RBF rules had never matched the RBF rules outlined in
> > BIP125. Clearly this isn’t ideal but mistakes happen and will continue to
> > happen. I certainly do not intend any criticism whatsoever to any of the
> > individuals involved. Thankfully this discrepancy doesn’t seem to have
> > resulted in any loss of funds or disruption. However, cross checking a
> > specification with an implementation presumably led to the discovery and
>

[bitcoin-dev] RBF rules, setting policy defaults in Bitcoin Core and the role of BIPs

2022-08-04 Thread Michael Folkson via bitcoin-dev
A short history of RBF and BIP125

The history of BIP125 is as far as I’m aware this. RBF rules were merged into 
Bitcoin Core in November 2015 [0]. Following that merge David Harding and Peter 
Todd drafted a BIP (BIP125 [1]) outlining the RBF rules that had been 
implemented in Bitcoin Core. The rationales for the rules in the BIP was a bit 
lacking (in my opinion) but recall this is 2015 (7 years ago!) when L2 
protocols were in their infancy. Certainly the research on the security of L2 
protocols has come a long way since and we have a much better idea of some of 
the possible attacks on L2 protocols that to some extent are impacted by policy 
rules.

In addition it was discovered [2] in May 2021 that the Bitcoin Core 
implementation of the RBF rules had never matched the RBF rules outlined in 
BIP125. Clearly this isn’t ideal but mistakes happen and will continue to 
happen. I certainly do not intend any criticism whatsoever to any of the 
individuals involved. Thankfully this discrepancy doesn’t seem to have resulted 
in any loss of funds or disruption. However, cross checking a specification 
with an implementation presumably led to the discovery and allowed for a post 
mortem on why the implementation didn’t match the specification.

There seems to be two views on what to do next given that the RBF rules need to 
be updated. One is to ditch the idea of a specification for RBF rules and just 
document them in the Core repo instead. The other is to have a new 
specification for the RBF rules in Core and attempt to correct the mistakes 
made with BIP125 by having a BIP that does correctly outline the RBF rules 
implemented in Core and includes detailed rationales for why those RBF rules 
have been implemented.

Should anyone care about where things are documented?

Perhaps not but I think if you are a stakeholder in L2 protocol security you 
should. Suppose in the long term future an attacker exploits a L2 vulnerability 
that is based on the default policy set by the dominant implementation on the 
network (Bitcoin Core). Which would you prefer the norm to be? A detailed 
static, well reviewed BIP standard that lays out the updated RBF rules and the 
rationales for those new rules that is reviewed outside the Core repo and hence 
not just by Core reviewers? Or cross checking Bitcoin Core code with 
non-standardized Core documentation typically reviewed only by Core reviewers?

For the same reason the norm for consensus changes is a specification (BIP) and 
a reference implementation (Bitcoin Core) I think the norm for material step 
change policy changes should be a specification (BIP) and a reference 
implementation (Bitcoin Core). Policy is of course less risky than consensus 
for various reasons including there being no chain split risk if the user 
changes the default policy of their node. Alternative implementations are free 
to set entirely different policy rules too. But with L2 protocol security to 
some extent relying on policy whether we like it or not I think we should 
aspire to similar standards where possible for policy too.

Specifications and implementations

The Bitcoin Core review process generally requires Concept ACKs, Approach ACKs 
and then code review, testing ACKs in that order. The reason for this is even 
if the code is perfect if it is implementing a concept or an approach that 
informed reviewers oppose then it doesn’t matter that the code is perfect. 
Documentation is generally done post merge if at all. For most PRs e.g. 
refactors this makes sense. There is no point documenting something in advance 
if it is still under review or may not get merged. For consensus PRs this 
clearly doesn’t make sense. Many of us have and continue to cross check the 
Taproot BIPs with the Taproot reference implementation in Bitcoin Core. Having 
two points of reference released simultaneously is treating consensus changes 
with the highest possible standards we can. I think we should strive towards 
the highest possible standards for step change default policy changes in Core 
too given L2 protocol security is (unfortunately, ideally this wouldn’t be the 
case) relying on them.

What are the new RBF rules replacing the BIP125 rules?

The new RBF rules as implemented in Core today are documented here [3] in the 
Core repo (thanks for the link glozow). To the extent that these are a work in 
progress or close to final (i.e. intended to be static) I don’t know. The devs 
who work on policy will have a much better idea on these questions than me. 
Will the new RBF rules continue to be iterated upon as new research on L2 
security comes to light? Will this iteration make it impossible to maintain a 
static set of rules that the broader ecosystem can get comfortable with? Or is 
a new static set of RBF rules close to being finalized and there is just an 
aversion to using BIPs and a specification?

Generally, as time passes, the ecosystem grows, layers on top of the base layer 
get built out I 

Re: [bitcoin-dev] On a new community process to specify covenants

2022-07-23 Thread Michael Folkson via bitcoin-dev
Hi Antoine

This looks great and I can certainly see progress being made in a number of 
directions on this. I thought you did a great job with the L2 onchain support 
workshops and I'm sure you'll do a great job moving this forward.

One cautionary word from someone who is probably still feeling the effects of 
burn out from the activation drama earlier in the year. No process can 
guarantee community consensus at the end of it especially if some of those who 
we consider experts in this area only tentatively participate. The personal 
attacks and ignoring of views counter to those who were pushing an activation 
attempt really should not be repeated. (Especially if this process is seeking 
to include those who we consider experts in this area and don't want their 
participation to be perceived as tacit approval of whatever is attempted next.)

As long as this is understood and agreed by participants I can only see 
positives coming out of this. But please let's not repeat the activation drama 
from earlier in the year because a process with a subset of those who we would 
consider experts in this area come to a view and then try to ram that view down 
everyone's throats by attempting activation at the end of it. Maybe this will 
result in community consensus on covenant proposal(s) going forward but also 
maybe it won't. Either outcome is fine. At the very least research will 
progress and work will be carried out that moves us in a positive direction.

Thanks
Michael

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

--- Original Message ---
On Wednesday, July 20th, 2022 at 21:42, Antoine Riard via bitcoin-dev 
 wrote:

> Hi,
>
> Discussions on covenants have been prolific and intense on this mailing list 
> and within the wider Bitcoin technical circles, I believe however without 
> succeeding to reach consensus on any new set of contracting primitives 
> satisfying the requirements of known covenant-enabled use-cases. I think 
> that's a fact to deplore as covenants would not only offer vast extensions of 
> the capabilities of Bitcoin as a system, i.e enabling new types of 
> multi-party contract protocols. But also empowering Bitcoin on its 
> fundamental value propositions of store of value (e.g by making vaults more 
> flexible) and payment system (e.g by making realistic channel 
> factories/payment pools).
>
> If we retain as a covenant definition, a spending constraint restricting the 
> transaction to which the spent UTXO can be spent, and enabling to program 
> contracts/protocols at the transaction-level instead of the script-level, the 
> list of Script primitives proposed during the last years has grown large : 
> ANYPREVOUT [0], CHECKSIGFROMSTACK [1], CHECK_TEMPLATE_VERIFY [2], 
> TAPROOT_LEAF_UPDATE_VERIFY [3], TXHASH [4], PUSHTXDATA [5], CAT [6], EVICT 
> [7], Grafroot delegation [8], SIGHASH_GROUP [9], MERKLEBRANCHVERIFY [10] and 
> more than I can't remember. Of course, all the listed primitives are at 
> different states of formalization, some already fully fleshed-out in BIPs, 
> other still ideas on whiteboard, yet they all extend the range of workable 
> multi-party contract protocols.
>
> Indeed this range has grown wild. Without aiming to be exhaustive (I'm 
> certainly missing some interesting proposals lost in the abyss of 
> bitcointalk.org), we can mention the following use-cases: multi-party 
> stateful contracts [11], congestion trees [12], payment pools [13], "eltoo" 
> layered commitments [14], programmable vaults [15], multi-events contracts 
> [16], blockchain-as-oracle bets [17], spacechains [18], trustless collateral 
> lending [19], ...
>
> Minding all those facts, I would say the task of technical evaluation of any 
> covenant proposal sounds at least two fold. There is first reasoning about 
> the enabled protocols on a range of criterias such as scalability, 
> efficiency, simplicity, extensibility, robustness, data confidentiality, etc. 
> Asking questions like what are the interactions between layers, if any ? Or 
> how robust is the protocol, not just interactivity failure between 
> participant nodes but in the face of mempools spikes or internet disruption ? 
> Or if the performance is still acceptable on shared resources like blockspace 
> or routing tables if everyone is using this protocol ? Or if the protocol 
> minimizes regulatory attack surface or centralization vectors ?
>
> Though once this step is achieved, there is still more reasoning work to 
> evaluate how good a fit is a proposed Script primitive, the 
> efficiency/simplicity/ease to use trade-offs, but also if there are no 
> functionality overlap or hard constraints on the use-cases design themselves 
> or evolvability w.rt future Script extensions or generalization of the opcode 
> operations.
>
> Moreover, if you would like your evaluation of a covenant proposal to be 

[bitcoin-dev] Online Socratic on MuSig2 and biweekly secp256k1 IRC meeting

2022-07-23 Thread Michael Folkson via bitcoin-dev
Hi

There is an online Socratic discussion [0] on MuSig2 next week (Thursday July 
28th, 17:00 UTC) that Tim Ruffing has kindly agreed to attend. There is a 
reading list [1] covering Tim's work and other people's work implementing and 
researching MuSig2 and hopefully some of those people will attend too. It will 
be similar in format to the excellent Sydney Socratic with Jesse Posner on 
FROST in March [2].

For those who prefer IRC discussions rather than video discussions a biweekly 
secp256k1 IRC meeting (next one is Monday August 1st 2022 at 15:00 UTC) has 
recently started on the Libera IRC channel #secp256k1. (To be clear this isn't 
organized by me but I thought it might be of interest to a similar group of 
people.)

Thanks
Michael

[0]: https://www.meetup.com/bitdevsldn/events/286583988/
[1]: https://gist.github.com/michaelfolkson/5bfffa71a93426b57d518b09ebd0998c
[2]: 
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-April/020352.html

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] BIP draft: Half-Aggregation of BIP-340 Signatures

2022-07-20 Thread Michael Folkson via bitcoin-dev
So this half aggregation BIP draft could potentially play the role that BIP340 
did for BIP341/342 but it is too premature to start formalizing what the 
equivalent of BIP341/342 for this draft BIP would look like. And given there 
are use cases for this half aggregation BIP that can be worked on today (e.g. 
Lightning gossip [0], Lightning gossip seems to be a very interesting research 
area at the moment with a number of possible upgrades) it makes sense to focus 
on those first.

There is a section[1] in the CISA repo which I missed originally that describes 
some of the challenges of implementing CISA/CISHA as a consensus change. A 
couple of things that stand out to me if this was attempted in the long term. 
One is that there would almost need to be two tiers of verification: 
verification for single signature key path spends where CISA, CISHA could be 
applied and verification for Taproot script paths where CISA, CISHA couldn't be 
applied. It could even be the case that a new output type is defined 
specifically for the CISA, CISHA use case where there is no access to a script 
path at all (i.e. where users don't have a need for anything other than a 
single signature spend path). With SegWit v0 (and today with SegWit v1) the 
intention is to get the entire community to move to the new output type. But 
there could be a long term future where you pick an output type depending on 
your use case. I recall that Mimblewimble only worked if scripting was ditched 
entirely
  and every spend was assumed to be a single signature spend.

Anyway...thanks for indulging me on the long term stuff :)

[0]: 
https://github.com/ElementsProject/cross-input-aggregation#sigagg-case-study-ln-channel-announcements

[1]: 
https://github.com/ElementsProject/cross-input-aggregation#integration-into-the-bitcoin-protocol

--
Michael Folkson
Email: michaelfolkson at protonmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3


--- Original Message ---
On Sunday, July 17th, 2022 at 21:45, Jonas Nick  wrote:


> To be clear, whether "half aggregation needs a new output type or not" does 
> not
> become clear in the draft BIP because it is out of scope. Half-aggregation 
> has a
> few possible applications. The draft only specifies the cryptographic scheme.
>
> The StackExchange post you link to argues that CISA requires a new output 
> type.
> The same argument applies to half aggregating signatures across transaction
> inputs (CISHA, if you will). The only difference to "full aggregation" is that
> the transaction signature is a single half-aggregate signature instead of a
> 64-byte signature. You're right that it's possible to do batch verification of
> Taproot output key spends (Schnorr signatures) and script spends (key tweaks).
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] BIP draft: Half-Aggregation of BIP-340 Signatures

2022-07-17 Thread Michael Folkson via bitcoin-dev
Thanks for this Jonas. One question that was asked on Telegram (credit: Antoine 
D) and isn't clear to me skimming the blog post and the draft BIP is whether 
half aggregation needs a new output type or not like we expect cross input 
signature aggregation (CISA) to [0]. My understanding is Schnorr signature 
batch verification (no aggregation of signatures) can be done today but half 
aggregation and CISA would need a soft fork and potentially a new output type 
in addition.

(I know this work is in its early stages and won't be proposed for a soft fork 
anytime soon. A few of us are just trying to get a basic sketch in our heads of 
what they require and whether they could be enabled in the same upgrade.)

[0]: 
https://bitcoin.stackexchange.com/questions/106240/will-cross-input-signature-aggregation-need-a-new-output-type/



--
Michael Folkson
Email: michaelfolkson at protonmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3


--- Original Message ---
On Friday, July 8th, 2022 at 16:53, Jonas Nick via bitcoin-dev 
 wrote:


> Half-aggregation has been mentioned several times on this list in various
> contexts. To have a solid basis for discussing applications of 
> half-aggregation,
> I think it's helpful to have a concrete specification of the scheme and a 
> place
> for collecting supplemental information like references to cryptographic
> security proofs. You can find the BIP draft at
>
> https://github.com/ElementsProject/cross-input-aggregation/blob/master/half-aggregation.mediawiki
>
> Similar to BIP-340, this BIP draft specifies only the cryptographic scheme and
> does not prescribe specific applications. It has not received an extensive
> security review yet. Thanks to Elliott Jin and Tim Ruffing for the review so
> far. One new feature that the specified scheme has is "incremental 
> aggregation"
> which allows aggregating additional BIP-340 signatures into an existing
> half-aggregate signature.
>
> While BIP-340 has a pseudocode specification and a reference implementation in
> python, this BIP draft has a formal specification written in hacspec [0] and
> auxiliary pseudocode. The formal specification is a mathematically precise
> description of the scheme, which paves the way for computer-aided formal 
> proofs.
> Software tools ("proof assistants") allow proving properties about the formal
> specification ("no integer overflow") and apply formal software verification
> ("implementation is behaviorally equivalent to the spec"). I don't have 
> concrete
> plans (nor the skillset) to use these techniques. Still, I think this is an
> exciting area to explore because it has the potential to increase the Bitcoin
> ecosystem's robustness significantly and has little downside. Since hacspec's
> syntax is a subset of Rust's syntax, one can use the standard rust toolchain 
> to
> compile, execute and test the specification.
>
> You can find a blog post that gives a broader context at
> https://blog.blockstream.com/half-aggregation-of-bip-340-signatures/
>
> [0] https://github.com/hacspec/hacspec
> ___
> bitcoin-dev mailing list
> bitcoin-dev@lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


[bitcoin-dev] Transcript: Carl Dong on libbitcoinkernel

2022-04-30 Thread Michael Folkson via bitcoin-dev
Hi

Another transcript that may be of interest to this list. Carl Dong recently did 
an excellent short video explaining the libbitcoinkernel project in Bitcoin 
Core. The transcript is here:

https://btctranscripts.com/chaincode-labs/2022-04-12-carl-dong-libbitcoinkernel/

As he explains in the video libbitcoinkernel is the latest attempt to extract 
the consensus engine out of Bitcoin Core. There are many motivations for doing 
this. Obviously disagreements between the consensus engines of nodes across the 
network can lead to catastrophic forks. This boundary between what is part of 
consensus and what is not has occasionally been blurred in the past and for the 
most security critical part of Bitcoin Core (and Bitcoin generally) this is 
clearly unacceptable. This is not a criticism of anyone in the past, 
unravelling Satoshi's spaghetti code and the entanglement between the consensus 
engine and the rest of the codebase has been a decade long task, requires 
extreme care and is by no means completed.

As well as leading to some consensus bugs in older versions of Bitcoin Core, 
the leaky consensus abstraction has made it difficult for alternative 
implementations to be built in other languages and with different RPCs etc 
without risking falling out of consensus with Bitcoin Core.

This is clearly an ambitious long term project but the first PR in the series 
was recently merged [1] and Carl explains his thinking on the future direction 
of this project in the video and on the linked issue.

[1]: https://github.com/bitcoin/bitcoin/issues/24303

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


[bitcoin-dev] What to do when contentious soft fork activations are attempted

2022-04-30 Thread Michael Folkson via bitcoin-dev
I’ve been in two minds on whether to completely move on to other topics or to 
formulate some thoughts on the recent attempt to activate a contentious soft 
fork. In the interests of those of us who have wasted days/weeks/months of our 
time on this (with no personal upside) and who don’t want to repeat this 
exercise again I thought I should at least raise the issue for discussion of 
what should be done differently if this is tried again in future.

This could be Jeremy with OP_CTV at a later point (assuming it is still 
contentious) or anyone who wants to pick up a single opcode that is not yet 
activated on Bitcoin and try to get miners to signal for it bypassing technical 
concerns from many developers, bypassing Bitcoin Core and bypassing users.

Maybe the whole thing worked as designed. Some users identified what was going 
on, well known Bitcoin educators such as Andreas Antonopoulos, Jimmy Song etc 
brought additional attention to the dangers, a URSF movement started to gain 
momentum and those attempting a contentious soft fork activation backed off. 
(Disappointingly Bitcoin Optech didn't cover my previous posts to this mailing 
list [1], [2], [3] highlighting the dangers many months ago or recent posts. 
Normally Optech is very high signal.)

Alternatively this was the first time a contentious soft fork activation was 
attempted, we were all woefully unprepared for it and none of us knew what we 
were doing.

I’m unsure on the above. I’d be interested to hear thoughts. What I am sure of 
is that it is totally unacceptable for one individual to bring the entire 
Bitcoin network to the brink of a chain split. There has to be a personal cost 
to that individual dissuading them from trying it again otherwise they’re 
motivated to try it again every week/month. Perhaps the personal cost that the 
community is now prepared if that individual tries it again is sufficient. I’m 
not sure. Obviously Bitcoin is a permissionless network, Bitcoin Core and other 
open source projects are easily forked and no authority (I’m certainly no 
authority) can stop things like this happening again.

I’ll follow the responses if people have thoughts (I won't be responding to the 
instigators of this contentious soft fork activation attempt) but other than 
that I’d like to move on to other things than contentious soft fork 
activations. Thanks to those who have expressed concerns publicly (too many to 
name, Bob McElrath was often wording arguments better than I could) and who 
were willing to engage with the URSF conversation. If an individual can go 
directly to miners to get soft forks activated bypassing technical concerns 
from many developers, bypassing Bitcoin Core and bypassing users Bitcoin is 
fundamentally broken. The reason I still have hope that it isn't is that during 
a period of general apathy some people were willing to stand up and actively 
resist it.

[1]: 
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-October/019535.html

[2]: 
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-January/019728.html

[3]: 
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-April/020235.html

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


[bitcoin-dev] Miniscript support in hardware wallets/signing devices

2022-04-29 Thread Michael Folkson via bitcoin-dev
Hi

Assessing what should be sent to this mailing list is difficult. We don't want 
to be bombarded with full on company promotional materials obviously but then 
at the same time only focusing on contentious consensus changes at the expense 
of everything else just gives a warped view to readers of this list of what is 
happening in the community and what 99 percent of Bitcoin devs are working on.

One example of many is Miniscript. In this excellent blog post [1] by Salvatore 
Ingala he explains the work he is doing to get Miniscript support in the Ledger 
hardware wallet (or "signing device" [2], hat tip nvk). Miniscript has been in 
the works for a number of years now and the first of multiple Miniscript 
related pull requests was recently merged into the Bitcoin Core wallet [3]. 
This wasn't included in the recent Bitcoin Core 23.0 release [4] but one would 
expect it to be included in the next major release (24.0).

Salvatore explains that to start enabling Miniscript support in Ledger only 
requires ~20 lines of code but there is additional complexity that isn't 
covered by the included code snippet. And of course the Policy to Miniscript 
compiler(s) don't (yet) support Taproot trees of scripts so we are talking 
primarily Bitcoin scripts pre-Taproot. He also includes a short video of what 
the Policy/Miniscript user experience might look like on a Ledger Nano.

For those who are interested in learning more about Miniscript stickies-v is 
hosting a Bitcoin Core PR review club on Miniscript on May 18th [5].

Disclaimer: I have personal views on hardware wallets/signing devices as anyone 
does but I do not receive funding from any particular company or product in the 
space.

[1]: https://blog.ledger.com/miniscript-is-coming/
[2]: https://signingdevice.com/
[3]: https://github.com/bitcoin/bitcoin/pull/24147
[4]: 
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-April/020321.html
[5]: https://bitcoincore.reviews/24148

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


[bitcoin-dev] Transcript: Sydney Socratic on FROST w/ Jesse Posner

2022-04-27 Thread Michael Folkson via bitcoin-dev
Hi

I thought this transcript might be of interest to the mailing list.

https://btctranscripts.com/sydney-bitcoin-meetup/2022-03-29-socratic-seminar/

Jesse Posner joined the online Sydney Socratic [1] last month to discuss his 
work on FROST. There is a video [2] too. As Jesse states [3] "With the 
introduction of Taproot, we can begin to bridge this divide between a "hot" and 
"cold" key by leveraging distributed key generation and threshold signing."

During the Socratic he discussed how with FROST you can simulate a threshold 
signature arrangement (k-of-n, khttps://github.com/bitcoin-sydney/socratic
[2]: 
https://rumble.com/vz3i3u-frost-the-future-of-schnorr-multisignatures-on-bitcoin.html
[3]: https://brink.dev/blog/2021/04/15/frost/

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] What to expect in the next few weeks

2022-04-26 Thread Michael Folkson via bitcoin-dev
Jeremy

> The reason there was not a mailing list post is because that's not a 
> committed plan, it was offered up for discussion to a public working group 
> for feedback as a potential plan.

In the interests of posterity from your personal blog on April 17th [1]:

"Within a week from today, you’ll find software builds for a CTV Bitcoin Client 
for all platforms linked here:

- Mac OSX TODO:
- Windows TODO:
- Linux TODO:

These will be built using GUIX, which are reproducible for verification."

Doesn't sound to me that this was being "offered up for discussion". A week 
from April 17th would have been Sunday April 24th (2 days ago). Readers of this 
mailing list would have had no idea of these plans.

​> You've inaccurately informed the list on something no one has communicated 
committed intent for.

I'll let readers assess from the above who is accurately informing the mailing 
list and who is using personal blog posts and messaging apps to give a 
completely different impression to one set of people versus readers of this 
mailing list.

I like to give people the benefit of the doubt and assume incompetence rather 
than malice but when it comes to potential chain splits it doesn't really 
matter which it is. It has the same effect and poses the same network risk. If 
and when you try something like this again I hope this is remembered.

The Binance hack rollback suggestion, the NACKing then coin flip suggestion on 
Taproot activation and now this. It seems like this trillion dollar industry is 
a joke to you. I know we aren't supposed to get personal on this mailing list 
but honestly if you are going to continue with these stunts I'd rather you do 
them on a different blockchain.

[1]: https://rubin.io/bitcoin/2022/04/17/next-steps-bip119/

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

--- Original Message ---
On Tuesday, April 26th, 2022 at 6:48 AM, Jeremy Rubin 
 wrote:

> The reason there was not a mailing list post is because that's not a 
> committed plan, it was offered up for discussion to a public working group 
> for feedback as a potential plan. You've inaccurately informed the list on 
> something no one has communicated committed intent for. This was an 
> alternative discussed in the telegram messaging app but did not seem to 
> strike the correct balance so was not furthered.
>
> I was hoping to be able to share something back to this list sooner rather 
> than later, but I have not been able to get, among those interested to 
> discuss in that venue, coherence on a best next step. I communicated inasmuch 
> on the bird app https://twitter.com/JeremyRubin/status/1518347793903017984 
> https://twitter.com/JeremyRubin/status/1518477022439247872, but do not have a 
> clear next step and am pouring over all the fantastic feedback I received so 
> far.
>
> Further, you're representing the state of affairs as if there's a great need 
> to scramble to generate software for this, whereas there already are scripts 
> to support a URSF that work with the source code I pointed to from my blog. 
> This approach is a decent one, even though it requires two things, because it 
> is simple. I think it's important that people keep this in mind because that 
> is not a joke, the intention was that the correct set of check and balance 
> tools were made available. I'd be eager to learn what, specifically, you 
> think the advantages are of a separate binary release rather than a binary + 
> script that can handle both cases? I'm asking sincerely because I would make 
> the modifications to the release I prepared to support that as well, if they 
> do not entail substantial technical risk. Personally, were I aligned with 
> your preferences, I'd be testing the forkd script and making sure it is easy 
> to use as the simplest and most effective way to achieve your ends.
>
> regards,
>
> Jeremy
>
> --
> [@JeremyRubin](https://twitter.com/JeremyRubin)
>
> On Mon, Apr 25, 2022 at 3:44 PM Michael Folkson via bitcoin-dev 
>  wrote:
>
>> The latest I'm hearing (this mailing list appears to be being bypassed in 
>> favor of personal blogs and messaging apps) is that Speedy Trial miner 
>> signaling for the contentious CTV soft fork is no longer going to start on 
>> May 5th (as previously communicated [1]) and may instead now start around 
>> August 1st 2022.
>>
>> Hence for now the drama seems to have been averted. I am deeply skeptical 
>> that in the next 3 months this soft fork activation attempt will obtain 
>> community consensus and will no longer be contentious (although I guess 
>> theore

Re: [bitcoin-dev] What to expect in the next few weeks

2022-04-25 Thread Michael Folkson via bitcoin-dev
The latest I'm hearing (this mailing list appears to be being bypassed in favor 
of personal blogs and messaging apps) is that Speedy Trial miner signaling for 
the contentious CTV soft fork is no longer going to start on May 5th (as 
previously communicated [1]) and may instead now start around August 1st 2022.

Hence for now the drama seems to have been averted. I am deeply skeptical that 
in the next 3 months this soft fork activation attempt will obtain community 
consensus and will no longer be contentious (although I guess theoretically it 
is possible). As a result I suspect we'll be in the exact same situation with a 
URSF effort required 2-3 months down the line.

If we are I'll try to keep the mailing list informed. It is important there is 
transparency and ample time to research and prepare before making decisions on 
what software to run. Obviously I have no control over what others choose to 
do. Please don't be rushed into running things you don't understand the 
implications of and please only signal for a soft fork if you are convinced it 
has community consensus (what should precede signaling as it did for Taproot) 
and you are ready to activate a soft fork.

[1]: https://rubin.io/bitcoin/2022/04/17/next-steps-bip119/

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

--- Original Message ---
On Saturday, April 23rd, 2022 at 11:03 AM, Michael Folkson via bitcoin-dev 
 wrote:

> As I said in my post:
>
> "If you care about Bitcoin's consensus rules I'd request you pay attention so 
> you can make an informed view on what to run and what to support."
>
> Ideally everyone would come to an informed view independently. Unfortunately 
> many people don't have the time to follow Bitcoin drama 24/7 and hence 
> struggle to separate noise from signal. In this case simple heuristics are 
> better than nothing. One heuristic is to listen to those in the past who 
> showed good judgment and didn't seek to misinform. Of course it is an 
> imperfect heuristic. Ideally the community would be given sufficient time to 
> come to an informed view independently on what software to run and not be 
> rushed into making decisions. But it appears they are not being afforded that 
> luxury.
>
>> I fear you risk losing respect in the community
>
> I appreciate your concern.
>
> --
> Michael Folkson
> Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
> Keybase: michaelfolkson
> PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3
>
> --- Original Message ---
> On Saturday, April 23rd, 2022 at 6:10 AM, Billy Tetrud 
>  wrote:
>
>>>  assuming people pay attention and listen to the individuals who were 
>>> trusted during that period
>>
>> Bitcoin is not run by a group of authorities of olde. By asking people to 
>> trust "those.. around in 2015-2017" you're asking people to blindly trust 
>> authorities. This, in my strong opinion, goes against the bitcoin ethos, and 
>> is an incredibly harmful way to push for your agenda. I'd very much 
>> recommend you reassess the way you're going about what you're trying to do. 
>> I fear you risk losing respect in the community by implying without any 
>> evidence that certain people are "taking advantage" of some situation and 
>> attempting "to confuse".
>>
>> On Fri, Apr 22, 2022 at 12:33 PM Michael Folkson via bitcoin-dev 
>>  wrote:
>>
>>> If the next few weeks go how I fear they will it could get messy. If you 
>>> care about Bitcoin's consensus rules I'd request you pay attention so you 
>>> can make an informed view on what to run and what to support. For those of 
>>> you who were around in 2015-2017 you'll know what to expect. The right 
>>> outcome endured in 2017 and I'm sure the right outcome will endure here 
>>> assuming people pay attention and listen to the individuals who were 
>>> trusted during that period. There are always a large number of motivated 
>>> parties who are incentivized to break nodes off from Bitcoin and may seek 
>>> to take advantage of a contentious soft fork activation attempt.
>>>
>>> Remember that if all the information is presented to users in a clear way 
>>> well ahead of time then they can make their own mind up. I fear that things 
>>> will be made as convoluted as possible in a way intended to confuse and 
>>> information will be withheld until the last minute. When in doubt it is 
>>> generally better to rely on the status quo and tried and 

Re: [bitcoin-dev] User Resisted Soft Fork for CTV

2022-04-24 Thread Michael Folkson via bitcoin-dev
Hi Jorge

> Can we agree now that resisting a bip8 proposal is simpler and cleaner than 
> resisting a speedy trial proposal?

Personally I'd rather stick to one challenge at a time :) Currently we are 
facing a contentious soft fork activation attempt of CTV using an alternative 
client which we expect [1] to be a Speedy Trial deployment. Once this is 
resolved we can discuss the lessons and observations that come out of this.

> Is there any PR to actively resist the proposal on bitcoin core?

Not currently. Unless this becomes really, really messy and starts to pose a 
true existential threat to Bitcoin itself I think it best that attempts to 
actively resist the proposal are done outside of Bitcoin Core in an alternative 
client(s). Contrary to what some CTV proponents say getting anything consensus 
related into Bitcoin Core is extremely difficult (especially at short notice). 
There is no BDFL or Linus Torvalds like figure, there are a large number of 
contributors (and maintainers) who all have differing personal views. Hence 
directing people to have this discussion on a particular PR in the Bitcoin Core 
repo seems to me to be counterproductive and a massive distraction to other 
work that is going on on Bitcoin Core. We've already started to see online 
attacks on Bitcoin Core by CTV proponents [2] claiming an "old guard trying to 
assert dictatorship over the Bitcoin protocol". It is nonsense of course but 
directing that nonsense to the Bitcoin Core repo is surely not the right way to 
go.

As I've said in previous emails there is a Libera (and Freenode now) IRC 
channel ##ursf that has been set up to discuss an alternative client. We'll get 
a conversation log up too. And of course we wait for confirmation on what the 
Speedy Trial deployment parameters for this attempted CTV soft fork are going 
to be.

[1]: https://blog.bitmex.com/op_ctv-summer-softfork-shenanigans/
[2]: 
https://twitter.com/ProofOfKeags/status/1517574210691887105?s=20&t=_jgRh3kkYP3kn1qLuzGXrQ

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

--- Original Message ---
On Saturday, April 23rd, 2022 at 21:40, Jorge Timón  wrote:

> I've been calling them "controversial softforks" for long.
> I hate to be right some times, but I guess I'm happy that I'm not the only 
> one who distrusts jeremy rubin anymore.
>
> Can we agree now that resisting a bip8 proposal is simpler and cleaner than 
> resisting a speedy trial proposal?
> I guess now we don't need to discuss it in hypothetical terms anymore, do we?
>
> Is there any PR to actively resist the proposal on bitcoin core?
>
> On Thu, Apr 21, 2022 at 8:16 PM Michael Folkson via bitcoin-dev 
>  wrote:
>
>> Ok so we've had to scramble a bit as I don't think anyone except perhaps 
>> Jeremy thought that there would be a Speedy Trial signaling period for a CTV 
>> soft fork planned to start on May 5th [1]. That is two weeks away.
>>
>> (I have to take what he says at face value. I can understand why one would 
>> be skeptical.)
>>
>> Understandably this has angered and surprised a few people including some of 
>> those who have voiced opposition to a CTV soft fork activation being 
>> attempted in the first place [2].
>>
>> As I've said in a previous post [3] the Bitcoin Core 23.0 release candidate 
>> (and older versions) does not include any CTV code or CTV activation code. 
>> If a miner runs Bitcoin Core 23.0 out the box it will not signal for CTV. If 
>> by some chance CTV was to activate through some other software release 
>> Bitcoin Core releases would not apply CTV rules but they also wouldn't 
>> reject blocks that apply CTV rules. Hence it is prudent to prepare for an 
>> eventuality where the miner signaling threshold might be reached but the 
>> community wants to prevent the attempted soft fork from activating. (I 
>> personally don't think a 90 percent miner signaling threshold will be 
>> reached but I wouldn't want to bet Bitcoin's future on it.)
>>
>> I've tentatively labelled this effort a User Resisted Soft Fork (URSF) but 
>> I'm open to better names. I certainly don't want to discourage those who 
>> dislike or oppose UASFs from contributing to this effort and potentially 
>> ultimately running a URSF release. If you don't want this rushed CTV soft 
>> fork to activate we are all on the same side whatever we call it.
>>
>> For now I've set up a ##ursf channel on Libera IRC to monitor developments 
>> and discuss working on an additional release that if run may ultimately 
>> reject

Re: [bitcoin-dev] What to expect in the next few weeks

2022-04-23 Thread Michael Folkson via bitcoin-dev
As I said in my post:

"If you care about Bitcoin's consensus rules I'd request you pay attention so 
you can make an informed view on what to run and what to support."

Ideally everyone would come to an informed view independently. Unfortunately 
many people don't have the time to follow Bitcoin drama 24/7 and hence struggle 
to separate noise from signal. In this case simple heuristics are better than 
nothing. One heuristic is to listen to those in the past who showed good 
judgment and didn't seek to misinform. Of course it is an imperfect heuristic. 
Ideally the community would be given sufficient time to come to an informed 
view independently on what software to run and not be rushed into making 
decisions. But it appears they are not being afforded that luxury.

> I fear you risk losing respect in the community

I appreciate your concern.

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

--- Original Message ---
On Saturday, April 23rd, 2022 at 6:10 AM, Billy Tetrud  
wrote:

>>  assuming people pay attention and listen to the individuals who were 
>> trusted during that period
>
> Bitcoin is not run by a group of authorities of olde. By asking people to 
> trust "those.. around in 2015-2017" you're asking people to blindly trust 
> authorities. This, in my strong opinion, goes against the bitcoin ethos, and 
> is an incredibly harmful way to push for your agenda. I'd very much recommend 
> you reassess the way you're going about what you're trying to do. I fear you 
> risk losing respect in the community by implying without any evidence that 
> certain people are "taking advantage" of some situation and attempting "to 
> confuse".
>
> On Fri, Apr 22, 2022 at 12:33 PM Michael Folkson via bitcoin-dev 
>  wrote:
>
>> If the next few weeks go how I fear they will it could get messy. If you 
>> care about Bitcoin's consensus rules I'd request you pay attention so you 
>> can make an informed view on what to run and what to support. For those of 
>> you who were around in 2015-2017 you'll know what to expect. The right 
>> outcome endured in 2017 and I'm sure the right outcome will endure here 
>> assuming people pay attention and listen to the individuals who were trusted 
>> during that period. There are always a large number of motivated parties who 
>> are incentivized to break nodes off from Bitcoin and may seek to take 
>> advantage of a contentious soft fork activation attempt.
>>
>> Remember that if all the information is presented to users in a clear way 
>> well ahead of time then they can make their own mind up. I fear that things 
>> will be made as convoluted as possible in a way intended to confuse and 
>> information will be withheld until the last minute. When in doubt it is 
>> generally better to rely on the status quo and tried and trusted. In this 
>> case that would be Bitcoin Core. Alternative releases such as those seeking 
>> to attempt to activate CTV or indeed those seeking to resist the activation 
>> of CTV really should only be considered if you are informed on exactly what 
>> you are running.
>>
>> If you are interested in the effort to resist the contentious soft fork 
>> activation attempt of CTV please join ##ursf on Libera IRC.
>>
>> Have a good weekend. Hopefully those behind this contentious soft fork 
>> activation attempt will see sense and we can go back to more productive 
>> things than resisting contentious soft forks.
>>
>> --
>> Michael Folkson
>> Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
>> Keybase: michaelfolkson
>> PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3
>>
>> ___
>> bitcoin-dev mailing list
>> bitcoin-dev@lists.linuxfoundation.org
>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


[bitcoin-dev] What to expect in the next few weeks

2022-04-22 Thread Michael Folkson via bitcoin-dev
If the next few weeks go how I fear they will it could get messy. If you care 
about Bitcoin's consensus rules I'd request you pay attention so you can make 
an informed view on what to run and what to support. For those of you who were 
around in 2015-2017 you'll know what to expect. The right outcome endured in 
2017 and I'm sure the right outcome will endure here assuming people pay 
attention and listen to the individuals who were trusted during that period. 
There are always a large number of motivated parties who are incentivized to 
break nodes off from Bitcoin and may seek to take advantage of a contentious 
soft fork activation attempt.

Remember that if all the information is presented to users in a clear way well 
ahead of time then they can make their own mind up. I fear that things will be 
made as convoluted as possible in a way intended to confuse and information 
will be withheld until the last minute. When in doubt it is generally better to 
rely on the status quo and tried and trusted. In this case that would be 
Bitcoin Core. Alternative releases such as those seeking to attempt to activate 
CTV or indeed those seeking to resist the activation of CTV really should only 
be considered if you are informed on exactly what you are running.

If you are interested in the effort to resist the contentious soft fork 
activation attempt of CTV please join ##ursf on Libera IRC.

Have a good weekend. Hopefully those behind this contentious soft fork 
activation attempt will see sense and we can go back to more productive things 
than resisting contentious soft forks.

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] User Resisted Soft Fork for CTV

2022-04-22 Thread Michael Folkson via bitcoin-dev
ling 
>> threshold might be reached but the community wants to prevent the attempted 
>> soft fork from activating. (I personally don't think a 90 percent miner 
>> signaling threshold will be reached but I wouldn't want to bet Bitcoin's 
>> future on it.)
>
> Making the statement that "the community doesn't want this to activate" as if 
> it's some kind of foregone conclusion is a pretty bold claim. I think you'll 
> be surprised at how broad support actually is. To contrast your second 
> citation, here's the set of people who have endorsed the proposal, along with 
> a handful of people opposed (such as yourself): https://utxos.org/signals/. 
> If you are aware of others who are opposed, it would be worth your time to 
> solicit a statement from them that can be put on the signals page. Absent 
> that, it seems appropriate to assume that the overwhelming majority of people 
> who have opined on the subject are for it.
>> But as always with Jeremy caution and conservatism seems to be thrown out 
>> the window and we have to react to that. It goes without saying that this is 
>> not how Bitcoin consensus changes should be attempted.
>
> What an unhinged take. The level of effort put into gathering consensus for 
> CTV has set the bar higher than Taproot. Taproot didn't have the level of 
> outreach effort that CTV does, and the complexity in taproot is significantly 
> larger than for CTV. You didn't seem to have a problem organizing that 
> activation process. That proposal was opened for public discussion in Jan'20, 
> merged in Oct'20, and you were organizing activation discussions as early as 
> Jan'21. The design of CTV has been *final* since Feb'20, a month after 
> Taproot was opened for public discussion. There's a ton of Proof-of-Concept 
> code that has been written to test out use cases for CTV, but for Taproot it 
> still doesn't look like we'll have MuSig for a while longer (I heard a year, 
> but someone can correct me on that if I'm wrong), and wallet support for 
> Taproot wasn't fleshed out until after activation. Characterizing Jeremy's 
> efforts as throwing caution and conservatism out the window is hypocritical 
> at best and malicious at worst.
>
> Finally, I think it is worth stating that if Bitcoin adopts a culture where a 
> willfully ignorant set of people can block changes that have no impact on 
> them, despite a large constituency wanting those changes, then Bitcoin kind 
> of deserves the slow deterioration that will result from that. I don't really 
> find that future appealing and so I think that trying to find ways to 
> activate non-invasive changes should be everyone's goal, *even if* they 
> personally may not have an immediate use case, or have a slight preference 
> for alternate solutions. The exception to this is any introduction of 
> systemic risk. Not all soft-forks are equal, and therefore the meta-consensus 
> requirements for getting them activated should vary based on how broadly 
> consequential the change is.
>
> Feel free to resist this if you want. In some sense that's what the Speedy 
> Trial procedure is for. However, I think your case would be more compelling 
> if you actually had some sort of affirmative argument for why CTV induces 
> systemic risk to non-users of the opcode. Expressing uncertainty over whether 
> it is the globally optimal solution (to a problem that cannot be globally 
> defined due to diverse interests) is not persuasive to me and many others in 
> the community.
> Keagan
>
> On Thu, Apr 21, 2022 at 12:16 PM Michael Folkson via bitcoin-dev 
>  wrote:
>
>> Ok so we've had to scramble a bit as I don't think anyone except perhaps 
>> Jeremy thought that there would be a Speedy Trial signaling period for a CTV 
>> soft fork planned to start on May 5th [1]. That is two weeks away.
>>
>> (I have to take what he says at face value. I can understand why one would 
>> be skeptical.)
>>
>> Understandably this has angered and surprised a few people including some of 
>> those who have voiced opposition to a CTV soft fork activation being 
>> attempted in the first place [2].
>>
>> As I've said in a previous post [3] the Bitcoin Core 23.0 release candidate 
>> (and older versions) does not include any CTV code or CTV activation code. 
>> If a miner runs Bitcoin Core 23.0 out the box it will not signal for CTV. If 
>> by some chance CTV was to activate through some other software release 
>> Bitcoin Core releases would not apply CTV rules but they also wouldn't 
>> reject blocks that apply CTV rules. Hence it is prud

[bitcoin-dev] User Resisted Soft Fork for CTV

2022-04-21 Thread Michael Folkson via bitcoin-dev
Ok so we've had to scramble a bit as I don't think anyone except perhaps Jeremy 
thought that there would be a Speedy Trial signaling period for a CTV soft fork 
planned to start on May 5th [1]. That is two weeks away.

(I have to take what he says at face value. I can understand why one would be 
skeptical.)

Understandably this has angered and surprised a few people including some of 
those who have voiced opposition to a CTV soft fork activation being attempted 
in the first place [2].

As I've said in a previous post [3] the Bitcoin Core 23.0 release candidate 
(and older versions) does not include any CTV code or CTV activation code. If a 
miner runs Bitcoin Core 23.0 out the box it will not signal for CTV. If by some 
chance CTV was to activate through some other software release Bitcoin Core 
releases would not apply CTV rules but they also wouldn't reject blocks that 
apply CTV rules. Hence it is prudent to prepare for an eventuality where the 
miner signaling threshold might be reached but the community wants to prevent 
the attempted soft fork from activating. (I personally don't think a 90 percent 
miner signaling threshold will be reached but I wouldn't want to bet Bitcoin's 
future on it.)

I've tentatively labelled this effort a User Resisted Soft Fork (URSF) but I'm 
open to better names. I certainly don't want to discourage those who dislike or 
oppose UASFs from contributing to this effort and potentially ultimately 
running a URSF release. If you don't want this rushed CTV soft fork to activate 
we are all on the same side whatever we call it.

For now I've set up a ##ursf channel on Libera IRC to monitor developments and 
discuss working on an additional release that if run may ultimately reject 
blocks that signal for CTV.

The intention of this would be to provide additional direction and incentive to 
miners that the community does not want this soft fork to be activated. To 
repeat running a Bitcoin Core release will not signal for a CTV soft fork out 
the box. If a miner runs a Bitcoin Core release it will not signal for CTV.

Apologies that this is rushed. But as always with Jeremy caution and 
conservatism seems to be thrown out the window and we have to react to that. It 
goes without saying that this is not how Bitcoin consensus changes should be 
attempted.

[1]: https://rubin.io/bitcoin/2022/04/17/next-steps-bip119/
[2]: https://gist.github.com/michaelfolkson/352a503f4f9fc5de89af528d86a1b718
[3]: 
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-April/020235.html

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] 7 Theses on a next step for BIP-119

2022-04-20 Thread Michael Folkson via bitcoin-dev
Ok last one. Whatever you say and whatever personal attacks you come up with 
I'm not responding after this one :)

> Where can I see the use cases you have built out in recent years? Do you have 
> a writeup in which you compare CTV to existing covenant enabling proposals? 
> Do you have a strong reason to favour a different proposal? Have you written 
> any code?

You don't seem to quite understand the asymmetry here. I (and the rest of the 
community excluding Jeremy) am not a full time CTV developer or full time CTV 
advocate. There are a number of soft fork proposals I am interested in and 
attempting to follow in addition to all the work that is going around Taproot 
etc. But if you/Jeremy want to make a change to the consensus rules the onus is 
on you to get community review and community consensus. I am not demanding the 
consensus rules be changed. I am quite happy to wait until there is community 
consensus over a particular soft fork like there was with Taproot.

I have looked into CTV a considerable number of times now. I have asked 5 of 
the 6 CTV related questions on Bitcoin StackExchange at the time of writing 
[1], 2 of which I have attempted to answer. Does this mean I understand as much 
about Jeremy about CTV? Of course not. But if you believe that soft forks 
should have community consensus it is up to you/Jeremy to address concerns from 
curious, relatively informed, skeptical people like me. I am not convinced at 
the time of writing that CTV is the best tool for the job on any of its 
intended use cases. On this I don't think even Jeremy is convinced as when 
asked to compare CTV to alternatives he often just says it is ready and other 
proposals aren't.

> In contrast, Jeremy has been doing exactly what you are proposing. He wrote 
> the BIP, implemented it, explained use cases in detail, spoke at conferences, 
> organised workshops, and built the Sapio framework for the community to 
> experiment with covenants. He even puts his money where his mouth is and 
> offers a bug bounty for any security flaw in the code.

I'm not entirely sure where you are going with this. That because Jeremy has 
worked really hard on it for a long time we should activate it without 
community consensus? I'm sorry that's not how consensus changes work or how 
they should work. Personally I very much doubt I will ever attempt to change 
the consensus rules with one of my proposals. I struggle to follow all of the 
work and the proposals others work on and at least for now believe others are 
much more qualified than me to design and code up consensus code changes. So 
again there is an asymmetry if you are going down the comparing Jeremy's goals 
with my own.

> I think by framing his contributions as "immature" you are disrespecting all 
> the work he put into BIP-119.

I think CTV is an immature proposal given what I've said already about it not 
being at all clear it is the best tool for any of its intended use cases.

> If you are not willing to do what you are suggesting for years why should 
> anybody else do it? Should the entire community stall progress on covenants 
> until somebody else works on what you think is ideal?

Others are currently working on alternative proposals to CTV (CAT, CSFS, TLUV, 
Simplicity, arguably APO depending on the use case etc). I haven't asked them 
to, they already are. As far as I know (they can correct me if wrong) those 
working on alternative proposals don't support an upcoming activation of CTV. 
You can try to make this personal all you want and write snide comments if it 
makes you feel better. But I doubt it is the right approach to getting more 
review of a soft fork proposal.

> Bike shedding is just as big of an issue as "contentious soft forks". 
> Pointless activation drama is a huge issue of bitcoin protocol development 
> because it is so draining. Some of the most respected devs do not participate 
> in activation politics anymore because it harms their health. That's nuts. If 
> you really want to be of service to the Bitcoin community you should work on 
> what you think is the right path forward and not just criticise Jeremy for 
> progressing with his excellent work.

If you have a magic wand to wave away activation drama and create an activation 
method that the entire community is happy with I'd love to see it. That magic 
wand would have got a few months of my life back in 2021 that I'll never get 
back.

As I said no more responses from me. I am going to go back to a transcript on 
FROST, one of the many exciting things people are working on that is Taproot 
related and what I believe the focus should be on at least until there is clear 
community consensus for a future soft fork.

[1]: 
https://bitcoin.stackexchange.com/questions/tagged/bip119-checktemplateverify

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

--- Origin

Re: [bitcoin-dev] 7 Theses on a next step for BIP-119

2022-04-20 Thread Michael Folkson via bitcoin-dev
 covenants at all. It's 
> not clear to me what you want because you just keep opposing CTV without 
> trying to make better suggestions. What do you want?
> Your other arguments mostly discuss soft forks in general. This is a 
> different topic though. I think it is not a good idea to mix that up. And 
> claiming that CTV implies continuous soft forks is again dishonest framing. 
> It suggests that covenants were just a random idea of Jeremy even though you 
> know that many reputable bitcoin developers have been researching this topic 
> for years. Truth is Jeremy does a great service to the community by facing 
> this draining activation drama to make trustless covenants possible.
>
> Now, in your most recent email your main concern seems to be a potential 
> chain split. This is again a weak argument against CTV because your concerns 
> apply to any upgrade. Furthermore, you are increasing this risk by opposing 
> CTV without trying to find a common way forward to activate covenants. This 
> doesn't serve bitcoin. I think it would be better for everyone if you would 
> invest your time in trying to formulate a better solution. Covenants are too 
> important to just oppose them because of inaccurate framing or because of 
> opposition to soft forks in general.
>
> Regards,
> Robin
>
> [1] https://github.com/JeremyRubin/utxos.org/issues/27
>
> --- Original Message ---
> On Wednesday, April 20th, 2022 at 3:24 PM, Michael Folkson via bitcoin-dev 
>  wrote:
>
>>> The client has a Speedy trial release similar to Taproots with parameters 
>>> proposed to be
>>
>> As I've said before I was hoping we'd avoid this exercise. Best case, it 
>> wastes the time of people who could be working on all sorts of valuable 
>> projects for the ecosystem. Worst case, we take a Russian roulette style 
>> gamble with a chain split.
>>
>> But here's a summary of the basic facts:
>>
>> The latest Bitcoin Core release candidate (23.0) does not contain any new 
>> soft fork code, either CTV code or any new activation code. Running Bitcoin 
>> Core 23.0 out the box will not signal for any new soft fork and will not 
>> enforce any new soft fork rules (CTV or otherwise). Of course it will 
>> continue to enforce Taproot rules as Taproot activated last year.
>>
>> There are a number of individuals who have stated opposition to attempting 
>> to activate a CTV soft fork in the near term:
>>
>> https://gist.github.com/michaelfolkson/352a503f4f9fc5de89af528d86a1b718
>>
>> Most of those individuals haven't logged their opposition on Jeremy's site:
>> https://utxos.org/signals/
>>
>> Hence their views haven't been included or discussed in Jeremy's latest blog 
>> post.
>>
>> Chain split risk
>>
>> I can't predict how many full nodes and miners will run Jeremy's client 
>> attempting to activate CTV. One would expect that many will continue to run 
>> versions of Bitcoin Core that will not enforce CTV rules and will not 
>> activate it. But whether Jeremy's client will be a majority, significant 
>> minority, insignificant minority of full nodes and miners would be 
>> speculation on my part. (Personally I highly doubt those running Jeremy's 
>> client will be a majority which leaves a significant minority and 
>> insignificant minority as the most likely options).
>>
>> Jeremy's client is intending to use Speedy Trial presumably with similar 
>> parameters to that used for Taproot. That would mean seeking 90 percent of 
>> miners to signal for this CTV soft fork activation attempt.
>>
>> Assuming 90 percent of miners don't signal for it in one of the Speedy Trial 
>> windows then the activation attempt will have failed and it will be back in 
>> Jeremy's court whether he tries again with a different activation attempt.
>>
>> Assuming 90 percent of miners do signal for it (unlikely in my opinion but 
>> presumably still a possibility) then the CTV soft fork could activate unless 
>> full nodes resist it. This resistance would most likely be in the form of a 
>> UASF style client which rejects blocks that apply the CTV rules and/or 
>> includes transactions that don't meet the CTV rules post activation. We 
>> would now be in chain split territory with two different assets and 
>> blockchains like we had with BTC and BCH.
>>
>> If I oppose this activation attempt and the associated chain split risk what 
>> should I do?
>>
>> Firstly, you can register your opposition to this soft fork activation 
>> attem

Re: [bitcoin-dev] 7 Theses on a next step for BIP-119

2022-04-20 Thread Michael Folkson via bitcoin-dev
> The client has a Speedy trial release similar to Taproots with parameters 
> proposed to be

As I've said before I was hoping we'd avoid this exercise. Best case, it wastes 
the time of people who could be working on all sorts of valuable projects for 
the ecosystem. Worst case, we take a Russian roulette style gamble with a chain 
split.

But here's a summary of the basic facts:

The latest Bitcoin Core release candidate (23.0) does not contain any new soft 
fork code, either CTV code or any new activation code. Running Bitcoin Core 
23.0 out the box will not signal for any new soft fork and will not enforce any 
new soft fork rules (CTV or otherwise). Of course it will continue to enforce 
Taproot rules as Taproot activated last year.

There are a number of individuals who have stated opposition to attempting to 
activate a CTV soft fork in the near term:

https://gist.github.com/michaelfolkson/352a503f4f9fc5de89af528d86a1b718

Most of those individuals haven't logged their opposition on Jeremy's site:
https://utxos.org/signals/

Hence their views haven't been included or discussed in Jeremy's latest blog 
post.

Chain split risk

I can't predict how many full nodes and miners will run Jeremy's client 
attempting to activate CTV. One would expect that many will continue to run 
versions of Bitcoin Core that will not enforce CTV rules and will not activate 
it. But whether Jeremy's client will be a majority, significant minority, 
insignificant minority of full nodes and miners would be speculation on my 
part. (Personally I highly doubt those running Jeremy's client will be a 
majority which leaves a significant minority and insignificant minority as the 
most likely options).

Jeremy's client is intending to use Speedy Trial presumably with similar 
parameters to that used for Taproot. That would mean seeking 90 percent of 
miners to signal for this CTV soft fork activation attempt.

Assuming 90 percent of miners don't signal for it in one of the Speedy Trial 
windows then the activation attempt will have failed and it will be back in 
Jeremy's court whether he tries again with a different activation attempt.

Assuming 90 percent of miners do signal for it (unlikely in my opinion but 
presumably still a possibility) then the CTV soft fork could activate unless 
full nodes resist it. This resistance would most likely be in the form of a 
UASF style client which rejects blocks that apply the CTV rules and/or includes 
transactions that don't meet the CTV rules post activation. We would now be in 
chain split territory with two different assets and blockchains like we had 
with BTC and BCH.

If I oppose this activation attempt and the associated chain split risk what 
should I do?

Firstly, you can register your opposition to this soft fork activation attempt 
on Jeremy's site: https://utxos.org/signals/

It seems Jeremy will continue this activation attempt regardless but it will be 
useful for others to see clearly that this a contentious soft fork activation 
attempt and act accordingly. So far only 3 individuals' opposition is 
registered on his site.

Secondly, if it is looking like 90 percent (or whatever percentage Jeremy uses) 
of miners are going to signal for a CTV soft fork then you can consider joining 
a UASF style effort to resist the soft fork activation attempt. I will 
certainly seek to participate and will continue to inform this list of efforts 
in this direction.

The saddest thing is that if Jeremy's soft fork activation attempt causes the 
uncertainty, confusion and disruption I fear it could it will make future soft 
forks that do have community consensus orders of magnitude harder to pull off. 
There are a number of soft fork proposals that I'm personally excited about 
(enabling covenants, eltoo, Simplicity, CISA etc) that long term we might get 
with a sensible approach to only activating soft forks that have community 
consensus. But the more uncertainty, confusion and disruption we create over 
contentious soft forks the more dangerous any soft fork of any form will 
appear. The primary focus will need to be resisting soft forks that don't have 
community consensus and ensuring Bitcoin doesn't splinter into a large number 
of different assets/blockchains with different combinations of soft forks 
active.

So if you oppose this soft fork activation attempt please voice your 
opposition, run full node software that doesn't include CTV and CTV activation 
code such as Bitcoin Core and if/when necessary and available run full node 
software that proactively rejects application of the CTV rules.

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

--- Original Message ---
On Tuesday, April 19th, 2022 at 18:31, Jeremy Rubin via bitcoin-dev 
 wrote:

> Devs,
>
> In advance of the CTV meeting today, I wanted to share what my next step is 
> in advocating for CTV

Re: [bitcoin-dev] CTV Meeting #5 Agenda (Tuesday, March 7th, 12:00 PT)

2022-03-09 Thread Michael Folkson via bitcoin-dev
Hi Jorge

> Since this has meetings like taproot, it seems it's going to end up being 
> added in bitcoin core no matter what.

Anyone can set up a IRC channel, anyone can organize a IRC meeting, anyone can 
announce meetings on the mailing list. Just because an individual is 
enthusiastic for a soft fork proposal does not imply it has community consensus 
or that it is likely to be merged into Core in the short term or long term. It 
is true that other soft fork proposal authors/contributors are not taking the 
approach Jeremy is taking and are instead working quietly in the background. I 
prefer the latter approach so soon after Taproot activation but I look forward 
to hearing about the progress made on other proposals in due course.

> Should we start the conversation on how to resist it when that happens?
We should talk more about activation mechanisms and how users should be able to 
actively resist them more.

I can only speak for myself but if activation was being pursued for a soft fork 
that didn't have community consensus I would seek to join you in an effort to 
resist that activation. Taproot (pre-activation discussion) set a strong 
precedent in terms of community outreach and patiently building community 
consensus over many years. If that precedent was thrown out I think we are in 
danger of creating the chaos that most of us would seek to avoid. You are free 
to start whatever conversation you want but personally until Jeremy or whoever 
else embarks on an activation attempt I'd rather forget about activation 
discussions for a while.

> What is ST? If it may be a reason to oppose CTV, why not talk about it more 
> explicitly so that others can understand the criticisms?

ST is short for Speedy Trial, the activation mechanism used for Taproot. I have 
implored people on many occasions now to not mix discussion of a soft fork 
proposal with discussion of an activation mechanism. Those discussions can 
happen in parallel but they are entirely independent topics of discussion. 
Mixing them is misleading at best and manipulative at worst.

> It seems that criticism isn't really that welcomed and is just explained away.
Perhaps it is just my subjective perception. Sometimes it feels we're going 
from "don't trust, verify" to "just trust jeremy rubin", i hope this is really 
just my subjective perception. Because I think it would be really bad that we 
started to blindly trust people like that, and specially jeremy.

I think we should generally avoid getting personal on this mailing list. 
However, although I agree that Jeremy has done some things in the past that 
have been over-exuberant to put it mildly, as long as he listens to community 
feedback and doesn't try to force through a contentious soft fork earlier than 
the community is comfortable with I think his work can add material value to 
the future soft fork discussion. I entirely agree that we can't get into a 
situation where any one individual can push through a soft fork without getting 
community consensus and deep technical review from as many qualified people as 
possible. That can take a long time (the demands on long term contributors' 
time are vast) and hence anyone without serious levels of patience should 
probably exclusively work on sidechains, altcoins etc (or non-consensus changes 
in Bitcoin) rather than Bitcoin consensus changes.

Thanks
Michael

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

--- Original Message ---
On Wednesday, March 9th, 2022 at 11:02 AM, Jorge Timón via bitcoin-dev 
 wrote:

> Since this has meetings like taproot, it seems it's going to end up being 
> added in bitcoin core no matter what.
>
> Should we start the conversation on how to resist it when that happens?
> We should talk more about activation mechanisms and how users should be able 
> to actively resist them more.
>
> On Tue, Mar 8, 2022, 03:32 Jeremy Rubin via bitcoin-dev 
>  wrote:
>
>> * Tuesday, March 8th.
>>
>> I think Noon PT == 8pm UTC?
>>
>> but dont trust me i cant even tell what day is what.
>> --
>> [@JeremyRubin](https://twitter.com/JeremyRubin)
>>
>> On Mon, Mar 7, 2022 at 6:50 PM Jeremy Rubin  wrote:
>>
>>> Hi all,
>>>
>>> There will be a CTV meeting tomorrow at noon PT. Agenda below:
>>>
>>> 1) Sapio Taproot Support Update / Request for Review (20 Minutes)
>>> - Experimental support for Taproot merged on master 
>>> https://github.com/sapio-lang/sapio
>>> 2) Transaction Sponsoring v.s CPFP/RBF (20 Minutes)
>>> - 
>>> https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-February/019879.html
>>> - 
>>> https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-September/018168.html
>>> 3) Jamesob's Non-Recursive Vaults Post (20 minutes)
>>> - 
>>> https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-March/020067.html
>>> 4) What the heck is everyone talking about on the mailing lis

Re: [bitcoin-dev] [Lightning-dev] Lightning and other layer 2 projects with multiple RBF policies

2022-02-14 Thread Michael Folkson via bitcoin-dev
> This is the assumption which I don't agree with and hence asked some 
> questions in my email. A new RBF policy used by default in Core will not 
> improve the security of projects that are vulnerable to multiple RBF policies 
> or rely on these policies in a way that affects their security.

Right, not immediately. If and when new policy rules are included in a Bitcoin 
Core release it would take a while before a significant majority of the network 
were running those new policy rules (barring some kind of urgency, an attacker 
exploiting a systemic security flaw etc). That's not an argument not to do it 
though if you take a longer term perspective on building the strongest possible 
foundation for Lightning or other Layer 2 projects. The security benefit would 
just be delayed until a significant majority of Bitcoin Core users upgraded to 
a version including those new policy rules.

> Bitcoin Core with different versions are used at any point and not sure if 
> this will ever change.

Sure there will always be some stray full nodes running extremely old versions 
but the general direction of travel is more and more full nodes upgrading to 
newer versions. A network where *all* full nodes are running the same policy 
rules is clearly not an option available to us without making policy rules 
effective consensus rules and forking/kicking those old versions off the 
network.

> Maybe some experiments on signet might help in knowing more issues associated 
> with multiple RBF policies.

Definitely agree. It is a really interesting research area and lots of 
opportunities for simulations and experiments on the default or custom signet 
networks. Especially if we fill blocks with auto-generated transactions and/or 
reduce block sizes and create an artificial fee market.

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

--- Original Message ---
On Monday, February 14th, 2022 at 5:18 AM, Prayank  wrote:

>> I suspect as with defaults generally most users will run whatever the 
>> defaults are as they won't care to change them (or even be capable of 
>> changing them if they are very non-technical).
>
> 30% nodes are using 0.21.1 right now whereas latest version was 22.0 and some 
> are even running lower versions. Different versions in future with defaults 
> might be running RBF v1 and RBF v2.
>
>> But users who have a stake in the security of Lightning (or other Layer 2 
>> projects) will clearly want to run whatever policy rules are beneficial to 
>> those protocols.
>
> Agree and attackers will want to run the nodes with policy that helps them 
> exploit bitcoin projects. Miners can run nodes with policy that helps them 
> get more fees.
>
>> As you know the vast majority of the full nodes on the network currently run 
>> Bitcoin Core. Whether that will change in future and whether this a good 
>> thing or not is a whole other discussion. But the reality is that with such 
>> strong dominance there is the option to set defaults that are widely used.
>
> Bitcoin Core with different versions are used at any point and not sure if 
> this will ever change.
>
> https://luke.dashjr.org/programs/bitcoin/files/charts/security.html
>
> https://www.shodan.io/search/facet.png?query=User-Agent%3A%2FSatoshi%2F+port%3A%228333%22&facet=product
>
>> I think if certain defaults can bolster the security of Lightning (and 
>> possibly other Layer 2 projects) at no cost to full node users with no 
>> interest in those protocols we should discuss what those defaults should be.
>
> This is the assumption which I don't agree with and hence asked some 
> questions in my email. A new RBF policy used by default in Core will not 
> improve the security of projects that are vulnerable to multiple RBF policies 
> or rely on these policies in a way that affects their security.
>
> Maybe some experiments on signet might help in knowing more issues associated 
> with multiple RBF policies.
>
> --
> Prayank
>
> A3B1 E430 2298 178F
>
> Feb 13, 2022, 21:16 by michaelfolk...@protonmail.com:
>
>> Hi Prayank
>>
>>> 1.Is Lightning Network and a few other layer 2 projects vulnerable to 
>>> multiple RBF policies being used?
>>
>> Clearly the security of the Lightning Network and some other Layer 2 
>> projects are at least impacted or partly dependent on policy rules in a way 
>> that the base blockchain/network isn't. As I (and others) have said on many 
>> occasions ideally this wouldn't be the case but it is best we can do with 
>> current designs. I (and others) take the view that this is not a reason to 
>> abandon those designs in the absence of an alternative that offers a 
>> strictly superior security model. Going back to a model where *all* activity 
>> is onchain (or even in less trust minimized protocols than Lightning) 
>> doesn't seem like the right approach to me.
>>
>>> 2.With recent discussion to change t

Re: [bitcoin-dev] [Lightning-dev] Lightning and other layer 2 projects with multiple RBF policies

2022-02-13 Thread Michael Folkson via bitcoin-dev
Hi Prayank

> 1.Is Lightning Network and a few other layer 2 projects vulnerable to 
> multiple RBF policies being used?

Clearly the security of the Lightning Network and some other Layer 2 projects 
are at least impacted or partly dependent on policy rules in a way that the 
base blockchain/network isn't. As I (and others) have said on many occasions 
ideally this wouldn't be the case but it is best we can do with current 
designs. I (and others) take the view that this is not a reason to abandon 
those designs in the absence of an alternative that offers a strictly superior 
security model. Going back to a model where *all* activity is onchain (or even 
in less trust minimized protocols than Lightning) doesn't seem like the right 
approach to me.

> 2.With recent discussion to change things in default RBF policy used by Core, 
> will we have multiple versions using different policies? Are users and 
> especially miners incentivized to use different versions and policies? Do 
> they have freedom to use different RBF policy?

Without making policy rules effective consensus rules users (including miners) 
are free to run different policy rules. I think it is too early to say what the 
final incentives will be to run the same or differing policies. Research into 
Lightning security is still nascent and we have no idea whether alternative 
Layer 2 projects will thrive and whether they will have the same or conflicting 
security considerations to Lightning. I suspect as with defaults generally most 
users will run whatever the defaults are as they won't care to change them (or 
even be capable of changing them if they are very non-technical). But users who 
have a stake in the security of Lightning (or other Layer 2 projects) will 
clearly want to run whatever policy rules are beneficial to those protocols.

As you know the vast majority of the full nodes on the network currently run 
Bitcoin Core. Whether that will change in future and whether this a good thing 
or not is a whole other discussion. But the reality is that with such strong 
dominance there is the option to set defaults that are widely used. I think if 
certain defaults can bolster the security of Lightning (and possibly other 
Layer 2 projects) at no cost to full node users with no interest in those 
protocols we should discuss what those defaults should be.

> 3.Are the recent improvements suggested for RBF policy only focused on 
> Lightning Network and its security which will anyway remain same or become 
> worse with multiple RBF policies?

I think by nature of the Lightning Network being the most widely adopted Layer 
2 project most of the focus has been on Lightning security. But contributors to 
other Layer 2 projects are free to flag and discuss security considerations 
that aren't Lightning specific.

> Note: Bitcoin Knots policy is fully configurable, even in the GUI - users can 
> readily choose whatever policy *they* want.

The maintainer(s) and contributors to Bitcoin Knots are free to determine what 
default policy rules they want to implement (and make it easier for users to 
change those defaults) in the absence of those policy rules being made 
effective consensus rules. I suspect there would be strong opposition to making 
some policy rules effective consensus rules but we are now venturing again into 
future speculation and none of us have a crystal ball. Certainly if you take 
the view that these policy rules should never be made effective consensus rules 
then the fact there is at least one implementation taking a contrasting 
approach to Core is a good thing.

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

--- Original Message ---
On Sunday, February 13th, 2022 at 6:09 AM, Prayank via Lightning-dev 
 wrote:

> Hello World,
>
> There was a discussion about improving fee estimation in Bitcoin Core last 
> year in which 'instagibbs' mentioned that we cannot consider mempool as an 
> orderbook in which which everyone is bidding for block space because nodes 
> can use different relay policies: 
> https://bitcoin-irc.chaincode.com/bitcoin-core-dev/2021-09-22#706294;
>
> Although I still don't consider fee rates used in last few blocks relevant 
> for fee estimation, it is possible that we have nodes with different relay 
> policies.
>
> Similarly if we have different RBF policies being used by nodes in future, 
> how would this affect the security of lightning network implementations and 
> other layer 2 projects?
>
> Based on the things shared by 'aj' in
> https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-February/019846.html
>  it is possible for an attacker to use a different RBF policy with some 
> nodes, 10% hash power and affect the security of different projects that rely 
> on default RBF policy in latest Bitcoin Core.
>
> There was even a CVE in which RBF policy not being documented 

Re: [bitcoin-dev] Improving RBF Policy

2022-02-05 Thread Michael Folkson via bitcoin-dev
Thanks for this Bastien (and Gloria for initially posting about this).

I sympathetically skimmed the eclair PR 
(https://github.com/ACINQ/eclair/pull/2113) dealing with replaceable 
transactions fee bumping.

There will continue to be a (hopefully) friendly tug of war on this probably 
for the rest of Bitcoin's existence. I am sure people like Luke, Prayank etc 
will (rightfully) continue to raise that Lightning and other second layer 
protocols shouldn't demand that policy rules be changed if there is a reason 
(e.g. DoS vector) for those rules on the base network. But if there are rules 
that have no upside, introduce unnecessary complexity for no reason and make 
Lightning implementers like Bastien's life miserable attempting to deal with 
them I really hope we can make progress on removing or simplifying them.

This is why I think it is important to understand the rationales for 
introducing the rules in the first place (and why it is safe to remove them if 
indeed it is) and being as rigorous as possible on the rationales for 
introducing additional rules. It sounds like from Gloria's initial post we are 
still at a brainstorming phase (which is fine) but knowing what we know today I 
really hope we can learn from the mistakes of the original BIP 125, namely the 
Core implementation not matching the BIP and the sparse rationales for the 
rules. As Bastien says this is not criticizing the original BIP 125 authors, 7 
years is a long time especially in Bitcoin world and they probably weren't 
thinking about Bastien sitting down to write an eclair PR in late 2021 (and 
reviewers of that PR) when they wrote the BIP in 2015.

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

--- Original Message ---
On Monday, January 31st, 2022 at 3:57 PM, Bastien TEINTURIER via bitcoin-dev 
 wrote:

> Hi Gloria,
>
> Many thanks for raising awareness on these issues and constantly pushing
> towards finding a better model. This work will highly improve the
> security of any multi-party contract trying to build on top of bitcoin
> (because most multi-party contracts will need to have timeout conditions
> and participants will need to make some transactions confirm before a
> timeout happens - otherwise they may lose funds).
>
> For starters, let me quickly explain why the current rules are hard to
> work with in the context of lightning (but I believe most L2 protocols
> will have the same issues). Feel free to skip this part if you are
> already convinced.
>
> ## Motivation
>
> The biggest pain point is BIP 125 rule 2.
> If I need to increase the fees of a time-sensitive transaction because
> the feerate has been rising since I broadcast it, I may need to also pay
> high fees just to produce a confirmed utxo that I can use. I'm actually
> paying a high fee twice instead of once (and needlessly using on-chain
> space, our scarcest asset, because we could have avoided that additional
> transaction!).
>
> It also has some annoying "non-determinism".
> Imagine that my transaction has been evicted from my mempool because its
> feerate was too low. I could think "Great, that means I don't have to
> apply BIP 125 restrictions, I can just fund this transaction as if it
> were a new one!". But actually I do, because my transaction could still
> be in miner's mempools and I have no way of knowing it...this means that
> whenever I have broadcast a transaction, I must assume that I will
> always need to abide by whatever replacement rules the network applies.
>
> Fortunately, as far as I understand it, this rule only exists because of
> a previous implementation detail of bitcoin core, so there's simply no
> good reason to keep it.
>
> The second biggest pain point is rule 3. It prevents me from efficiently
> using my capital while it's unconfirmed. Whenever I'm using a big utxo
> to fund a transaction, I will get a big change output, and it would
> really be a waste to be unable to use that change output to fund other
> transactions. In order to be capital-efficient, I will end up creating
> descendant trees for my time-sensitive transactions. But as Gloria
> explained, replacing all my children will cost me an absurdly large
> amount of fees. So what I'm actually planning to do instead is to RBF
> one of the descendants high enough to get the whole tree confirmed.
> But if those descendants' timeouts were far in the future, that's a
> waste, I paid a lot more fees for them than I should have. I'd like to
> just replace my transaction and republish the invalidated children
> independently.
>
> Rule 4 doesn't hurt as much as the two previous ones, I don't have too
> much to say about it.
>
> To be fair to the BIP 125 authors, all of these scenarios were very hard
> to forecast at the time this BIP was created. We needed years to build
> on those rules to get a better understanding of their limitations and if
> th

Re: [bitcoin-dev] TXHASH + CHECKSIGFROMSTACKVERIFY in lieu of CTV and ANYPREVOUT

2022-01-28 Thread Michael Folkson via bitcoin-dev
> Even if we were to adopt something like TXHASH, how long is it going to take 
> to develop, test, and release? My guess is "a while" - in the meantime, users 
> of Bitcoin are without a vault strategy that doesn't require either 
> presigning transactions with ephemeral keys (operationally difficult) or 
> multisig configurations that would make Rube Goldberg blush (operationally 
> difficult and precarious).

To me this seems to be jumping ahead a number of steps from where we are at the 
current time. If the ecosystem was widely using all the tools available to them 
at the current time (MuSig(2), Taproot trees to embed complex scripts, 
Miniscript etc), was testing out upcoming available tools like threshold key 
aggregation schemes (e.g. FROST) on signets and the final missing piece was a 
covenant opcode to avoid the deleted key requirement then the argument for 
urgency would be stronger. I would still share the concerns I and many others 
have repeated over rushing soft forks and treating mainnet as a testbed for new 
use cases rather than the final destination for changes that will stand the 
test of time. But I would be a lot more sympathetic to that argument.

This isn't a criticism of the ecosystem or individual vault projects like 
Revault, it is clearly still very early. darosior (Revault) is working on 
getting a first version of Miniscript finalized and in Core [0] and I'm 
assuming will be part of the effort to get Taproot support in Miniscript 
assuming that initial effort succeeds. Murch is tracking basic send and receive 
to the P2TR addresses (not complex scripts, multisig, MuSig(2), merely single 
key spends) in the ecosystem [1] and there is still a long way to go there.

There are a bunch of covenant opcodes that have been enabled on Liquid [2] that 
I haven't heard yet of anyone building vault prototypes with. It would be good 
to get others (TLUV, TXHASH) in future. There is not even a custom signet with 
CTV (as far as I know) for those who subscribe to the view that we must rush to 
get CTV activated on mainnet as soon as possible with no thought to what 
opcodes might follow.

When this discussion focuses on the pros and cons of various proposals and how 
they are being tested and used in prototypes on signets, sidechains I think it 
is really productive. But when it gets onto urgency (or worse activation 
speculation) I am just perplexed. That viewpoint seems to completely ignore 
where we are currently with Taproot use and tooling (on which most vault 
designs will presumably build) and even more perplexingly where we are with 
vault prototypes on signets, sidechains.

I am sure at some point in the future we will have various vault prototypes on 
signets, sidechains making use of Taproot, Miniscript, MuSig(2), FROST etc and 
crying out for a covenant opcode or sighash flag to go into production on 
mainnet. But we seem miles away from that at the present time.

[0]: https://github.com/bitcoin/bitcoin/pull/24147
[1]: https://en.bitcoin.it/wiki/Bech32_adoption
[2]: 
https://github.com/ElementsProject/elements/blob/master/doc/tapscript_opcodes.md

--
Michael Folkson
Email: michaelfolkson at [protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

‐‐‐ Original Message ‐‐‐
On Friday, January 28th, 2022 at 12:18 AM, James O'Beirne via bitcoin-dev 
 wrote:

>> I don't think implementing a CTV opcode that we expect to largely be 
>> obsoleted by a TXHASH at a later date is yielding good value from a soft 
>> fork process.
>
> This presumes the eventual adoption of TXHASH (or something like it). You're 
> presenting a novel idea that, as far as I know, hasn't had much time to bake 
> in public. Like Jeremy, I'm concerned by the combinatorial growth of flags 
> and the implications that has for testing. Caching for something like TXHASH 
> looks to me like a whole different ballgame relative to CTV, which has a 
> single kind of hash.
>
> Even if we were to adopt something like TXHASH, how long is it going to take 
> to develop, test, and release? My guess is "a while" - in the meantime, users 
> of Bitcoin are without a vault strategy that doesn't require either 
> presigning transactions with ephemeral keys (operationally difficult) or 
> multisig configurations that would make Rube Goldberg blush (operationally 
> difficult and precarious). The utility of vaulting seems underappreciated 
> among consensus devs and it's something I'd like to write about soon in a 
> separate post.
>
>> The strongest argument I can make in favour of CTV would be something like: 
>> "We definitely want bare CTV and if we are going to add CTV to legacy script 
>> (since we cannot use TXHASH in legacy script), then it is actually easier 
>> not to exclude it from tapscript, even if we plan to add TXHASH to tapscript 
>> as well."
>
> Another argument for CTV (which I find especially persuasive) is its 
> simplicity - it's relativel

[bitcoin-dev] Highlighting Taproot implementation gotchas

2022-01-20 Thread Michael Folkson via bitcoin-dev
Hi

I'd just like to bring some attention to this blog post from the Suredbits team 
who when implementing Taproot in bitcoin-s found a mainnet output that did not 
conform to the BIP 340 specification [0] (invalid x coordinate) and hence were 
burned.

https://suredbits.com/taproot-funds-burned-on-the-bitcoin-blockchain/

To be clear this is was an error made by an unknown developer rather than a bug 
in the Taproot BIPs or Core implementation.

I'd certainly encourage the community to share with this list mistakes they 
make or things they find confusing (i.e. stump them for long periods of time) 
when re-implementing Taproot or supporting Taproot in wallets. I suspect things 
like eliminating the key path [1] or eliminating the script path [2] will end 
up being common sources of confusion for wallets.

I'm also open to ideas on how there can be greater information sharing so 
Taproot implementers don't end up making the same mistakes or spending hours 
confused over the same things.

I've heard some feedback on a number of occasions now that the Taproot BIPs 
although thorough and exhaustive aren't geared directly towards implementers 
and adopters. We discussed this at an online Socratic last year [3] with Craig 
Raw an early Taproot adopter with Sparrow Wallet. The transcript of that links 
to a bunch of existing resources (StackExchange posts, the Optech series 
"Preparing for Taproot", Optech workshop etc) that may be useful for 
implementers.

wumpus also suggested that a new informational BIP might be a good idea as a 
first port of call for Taproot implementers who find BIP 340-342 dense and 
difficult to parse. This is certainly something we can do once it becomes 
clearer what that informational BIP should contain.

Of course the Libera IRC channels #bitcoin-dev (for general Bitcoin 
development) and #bitcoin-core-dev (for Core related development) are there for 
discussion and questions. And as many will already know Murch is tracking P2TR 
support on the Bitcoin wiki [4].

Thanks
Michael

[0]: https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki#design
[1]: 
https://bitcoin.stackexchange.com/questions/99722/taproot-eliminating-key-path
[2]: 
https://bitcoin.stackexchange.com/questions/99325/how-do-i-construct-a-p2tr-address-if-i-just-want-to-use-the-key-path
[3]: 
https://btctranscripts.com/london-bitcoin-devs/2021-07-20-socratic-seminar-taproot-rollout/
[4]: https://en.bitcoin.it/wiki/Bech32_adoption

-- Michael Folkson Email: michaelfolkson at 
[protonmail.com](http://protonmail.com/)
Keybase: michaelfolkson PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] CTV BIP review

2022-01-19 Thread Michael Folkson via bitcoin-dev
Eric, Luke

Can I request that you don't discuss activation methods for future soft forks 
on a thread for CTV BIP review? I (and a number of others [0]) do not support 
an upcoming activation attempt of standalone OP_CTV. If you want to discuss 
activation methods for soft forks generally it would be much better if you set 
up a separate thread. OP_CTV is not the only current soft fork proposal and 
there will likely be more.

The activation discussion for Taproot was deliberately kept separate from the 
review of the Taproot BIPs and implementation. It only commenced once there was 
overwhelming community consensus for the soft fork to be activated (months 
after in fact). Though you are free to discuss whatever topics you wish 
(obviously) discussing soft fork activation methods on a OP_CTV thread might 
give the mistaken impression that OP_CTV is the next soft fork to be activated 
which is mere speculation at this point. In an ideal world the promoters of 
OP_CTV would follow the strong precedent set by the authors and contributors to 
the Taproot BIPs but regrettably that seems to have gone out the window at this 
point.

Thanks
Michael

[0]: https://gist.github.com/michaelfolkson/352a503f4f9fc5de89af528d86a1b718
--
Michael Folkson
Email: michaelfolkson at protonmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

‐‐‐ Original Message ‐‐‐

On Tuesday, January 18th, 2022 at 11:00 PM, Eric Voskuil via bitcoin-dev 
 wrote:

> -Original Message-
>
> From: Luke Dashjr l...@dashjr.org
>
> Sent: Tuesday, January 18, 2022 2:10 PM
>
> To: e...@voskuil.org
>
> Cc: 'Bitcoin Protocol Discussion' bitcoin-dev@lists.linuxfoundation.org
>
> Subject: Re: [bitcoin-dev] CTV BIP review
>
> On Tuesday 18 January 2022 22:02:24 e...@voskuil.org wrote:
>
> > The only material distinction between BIP9 and BIP8 is that the latter
> >
> > may activate without signaled support of hash power enforcement.
> >
> > As unenforced soft forks are not "backward compatible" they produce a
> >
> > chain split.
>
> Enforcement of the Bitcoin consensus protocol is by users, not miners.

Given that I stated "hash power enforcement" it is quite clear that this is

in fact only produced by mining. You are misrepresenting my statement to

make an emotional appeal. Without "hash power enforcement", a soft fork is

NOT backward compatible.

"[enforcement of] consensus protocol" is of course by merchants, but that is

not the question at hand. The question is explicitly compatibility. Anyone

can activate a soft fork at any time, but without "hash power enforcement"

soft forks are NOT backward compatible.

> Softforks never produce a chain split. Miners can, and might try to do it

to cause disruption in retaliation, but the softfork itself does not.

Maybe you are trying to split hairs given the fact that blocks are produced

only by miners, so only miners can "cause" a split.

But through not intention ("disruption in retaliation") whatsoever by

mining, a soft fork will result in those activating the rule being split off

the original chain unless majority hash power enforces the rule. The fact

that doing nothing apart from deploying the rule will result in a split is

the very definition of NOT compatible.

I assume you will argue that the original chain is not "valid" and therefore

irrelevant (as if no chain split occurred). But again the point is about

compatibility. The appearance of multiple chains, which appear valid

according to either the previous or new rules, is obviously the

incompatibility.

I shouldn't have to point this out, but observed chain splits have occurred

in more the one large scale soft fork deployment. These splits have only

been resolved through hash power enforcement. In 2010 it took 51 blocks

before the current chain took the lead. In 2012 minority chains persisted

for months. The deployment of soft forks caused these splits, NOT the

actions of miners. And unless majority hash power eventually enforces it,

the soft fork branch necessarily dies.

> > It was for this reason alone that BIP8 never gained sufficient
> >
> > support.
>
> BIP 8 in fact achieved consensus for Taproot activation.

Please define "achieved consensus", because by any definition I can imagine,

this is simply untrue.

> > This is one of the most misleading statements I've seen here. It's not
> >
> > technically a lie, because it states what "should" happen. But it is
> >
> > clearly intended to lead people to believe that BIP8 was actually used
> >
> > ("again") - it was not. ST was some technical tweaks to BIP9.
>
> BIP 8 was used to activate Taproot.

No, it wasn't. I find it hard to imaging how you rationalize such grossly

misleading statements.

> > The outright deception around this one topic has led to significant
> >
> > unnecessary conflict in the community. Make your argument, but make it
> >
> > honestly.
>
> You are the one attempting to deceive here.

That is for others

Re: [bitcoin-dev] Stumbling into a contentious soft fork activation attempt

2022-01-04 Thread Michael Folkson via bitcoin-dev
You are working on a use case of OP_CTV now? Cool, you only recently announced 
you were working on Bitcoin Knots (and I think Wasabi before that) so I'm 
losing track of all the announcements. Regardless stick with it and build out 
more than a rudimentary proof of concept. That is one of the things that is 
severely lacking at this point for OP_CTV.

> TBH I am not against Miniscript and still waiting for its support in Core 
> which might take another few years. I would love to have multiple programming 
> languages so that application developers can decide what works best for them.

I would hope you weren't against Miniscript because Sapio is built on top of it 
:) But whatever have fun, I can't do this all day.

--

Michael Folkson
Email: michaelfolkson at protonmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

‐‐‐ Original Message ‐‐‐
On Tuesday, January 4th, 2022 at 3:06 PM, Prayank  wrote:

> What I have done related to OP_CTV?
>
> https://twitter.com/prayankgahlot/status/1456643891885592579
>
> What am I currently working on that is not shared publicly and will do in 
> next few weeks?
>
> Review pull request 21702 and write contracts using Sapio based on few ideas 
> that I already have.
>
> What is this assessment based on?
>
> A few months are enough for the recent bounty to find bugs if possible and 
> other things pending to be completed.
>
>> you haven't thought about alternative proposals for any particular use case 
>> (vaults for example have multiple current alternative proposals and most 
>> likely many future ones)
>
> I have read enough about alternative proposals and some of them don't even 
> compete with OP_CTV, they can all be implemented and complement each other. 
> Vaults is not the only thing that I care about and it would be better if we 
> don't assume about research done by others.
>
>> A new programming language (Sapio) sounds great but do you you need it for 
>> your use case rather than an alternative high level language like Minsc? 
>> Sapio makes use of Miniscript which hasn't been finalized yet or updated for 
>> Taproot. Surely that needs to be done first otherwise Sapio is built on top 
>> of something that isn't ready? When you make the claims such as a consensus 
>> change is ready to go the burden is on you to convince me and other skeptics 
>> why. The status quo is the default. "I think it is ready or will be ready" 
>> doesn't mean much unless you have done the work.
>
> TBH I am not against Miniscript and still waiting for its support in Core 
> which might take another few years. I would love to have multiple programming 
> languages so that application developers can decide what works best for them.
>
> I don't understand what work are you expecting me to do in this case to share 
> my opinion about a soft fork.
>
>> It is not enough for one individual to say it is ready to be activated, 
>> anyone who is expressing that view should understand why the opcode has been 
>> designed in the way it has and why it is so important that we should 
>> dedicate months of community time to getting a single opcode activated this 
>> year.
>
> I have dedicated enough time reading everything related to OP_CTV and discuss 
> things that were posted earlier here by Jeremy Rubin. Not sure how many 
> skeptics did the same or even tried to discuss anything until recent bounty 
> was announced.
>
>> You regularly NACK Core PRs yet you seem willing to wave a consensus change 
>> through with no outstanding questions and zero skepticism.
>
> I would NACK and write the reasons in this pull request as well if I find any 
> issues and PR author is not addressing them. I had lots of questions at 
> conceptual level which have been answered on different platforms and I cannot 
> document each conversation. Its a Concept ACK from me and none of the 
> contributors could find any issues with PR right now so I don't want to stop 
> people from improving Bitcoin.
>
>> As I understand there are IRC workshops next week on BIP 119 [1] that I'd 
>> encourage you to join so you can start getting into a position where you can 
>> engage with the skeptics on technical concerns. Regrettably (as I said I 
>> find this work interesting) I don't feel like I can participate because 
>> deployment and activation is being included and I think it is irresponsible 
>> to be discussing those at this point. In my view activation should not even 
>> be speculated upon until it is clear there is overwhelming community support 
>> for a soft fork being activated.
>
> I would be attending the workshops and had even requested Jeremy to use 
> Twitch because it would help more people understand things with audio, screen 
> sharing etc. I would love to see skeptics participate and discuss technical 
> things.
>
>> I don't feel like I can participate because deployment and activation is 
>> being included and I think it is irresponsible to be discussing those at 
>>

Re: [bitcoin-dev] Stumbling into a contentious soft fork activation attempt

2022-01-04 Thread Michael Folkson via bitcoin-dev
> It should be ready to go in a few months IMO

What is this assessment based on? I am assuming you haven't done a code review 
of the opcode, you haven't coded up a real world use case of OP_CTV (or even a 
primitive proof of concept), you haven't thought about alternative proposals 
for any particular use case (vaults for example have multiple current 
alternative proposals and most likely many future ones). A new programming 
language (Sapio) sounds great but do you you need it for your use case rather 
than an alternative high level language like Minsc? Sapio makes use of 
Miniscript which hasn't been finalized yet or updated for Taproot. Surely that 
needs to be done first otherwise Sapio is built on top of something that isn't 
ready? When you make the claims such as a consensus change is ready to go the 
burden is on you to convince me and other skeptics why. The status quo is the 
default. "I think it is ready or will be ready" doesn't mean much unless you 
have done the work.

You are well aware of the review process in Core for non-consensus changes. For 
consensus changes you really should be digging even deeper, the bar should be 
higher and all questions you and others have should be explored in depth. It is 
not enough for one individual to say it is ready to be activated, anyone who is 
expressing that view should understand why the opcode has been designed in the 
way it has and why it is so important that we should dedicate months of 
community time to getting a single opcode activated this year.

I have more sympathy for those who don't follow Bitcoin Core development and 
Bitcoin Core review on an ongoing basis (note as I said that the bar for 
consensus changes should be significantly higher than a non-consensus PR). The 
use cases sound cool and the work is genuinely interesting. But honestly for 
someone who has followed Bitcoin Core development, review for a while now you 
really should know better than bandy around statements like "it should be ready 
to go in a few months" when you currently haven't scratched the surface on the 
utility and safety of this opcode. You regularly NACK Core PRs yet you seem 
willing to wave a consensus change through with no outstanding questions and 
zero skepticism.

> If I had to select between a soft fork without any use cases and one with use 
> cases, I would go with the one that has some use cases with code, 
> documentation etc. You should propose a new opcode but OP_CTV is not claiming 
> to cure cancer.

Multiple proven built out use cases, sure. Multiple is better than single when 
you have done the work to ensure they are actually the right tool for those 
multiple use cases. This work hasn't been done on any of these use cases. The 
curing cancer analogy was used to elucidate the point that claims should be 
deeply explored rather than just accepted as true.

>> To contrast with his approach, the authors and contributors of another 
>> future soft fork proposal (BIP 118 [3], SIGHASH_ANYPREVOUT) aren’t promoting 
>> an imminent soft fork activation attempt and instead are building out and 
>> testing one of the speculated use cases, eltoo payment channels [4].

> Because its not ready?

As I said it is not ready because the ANYPREVOUT contributors are building out 
and testing a use case. The high bar on readiness should be applied to all 
proposals not merely the ones where the authors/contributors decide to impose a 
high bar themselves.

I don't really want to spend my year imploring people to dig deeper on this 
before indicating they support an imminent activation attempt. Some people 
don't have the understanding to dig deeper, some people don't have the time and 
some don't have either. However, if an activation of OP_CTV is attempted this 
year I am sure it will be contentious [0]. Anyone who cares about Bitcoin 
development and the ongoing technical work in a multitude of areas should be 
strongly against a contentious soft fork activation attempt wasting the time of 
developers and the entire ecosystem even if they don't have the understanding 
or time to appreciate the reasons why it is contentious.

As I understand there are IRC workshops next week on BIP 119 [1] that I'd 
encourage you to join so you can start getting into a position where you can 
engage with the skeptics on technical concerns. Regrettably (as I said I find 
this work interesting) I don't feel like I can participate because deployment 
and activation is being included and I think it is irresponsible to be 
discussing those at this point. In my view activation should not even be 
speculated upon until it is clear there is overwhelming community support for a 
soft fork being activated.

[0]: https://gist.github.com/michaelfolkson/352a503f4f9fc5de89af528d86a1b718
[1]: 
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-December/019719.html

--

Michael Folkson
Email: michaelfolkson at protonmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4

[bitcoin-dev] Stumbling into a contentious soft fork activation attempt

2022-01-03 Thread Michael Folkson via bitcoin-dev
I have already expressed my arguments on the regularity of soft forks [0]. 
Having spent months of my time on Taproot activation last year attempting to 
get at least rough community consensus on the activation method it seems crazy 
to me that some want to do that again so soon after Taproot activation and 
somehow this time it will be plain sailing. (Spoiler: it won’t. Although 
Taproot safely activated there remain outstanding views ranging on whether BIP 
8 or 9 variants of Speedy Trial should be used in future to Speedy Trial only 
being a short term stopgap that should not be repeated.) If OP_CTV is ready to 
go now and has overwhelming community support (I don’t think either is true) it 
should surely have been included in the Taproot soft fork (perhaps delayed) 
rather than going through the months of activation wrangling and community 
outreach twice.

I stated in that post:

“A contentious or disputed soft fork can be merged into a Bitcoin 
implementation at any time but doing this is opening the door to the schism, 
disruption and waste of developer hours that we saw in 2017. Personally I think 
we’ll see an attempt to activate a contentious soft fork at some point in the 
long term future (Murphy’s Law) but any attempt to do so should be strongly 
discouraged. It should be made clear to any individual(s) that attempt this of 
the knock on impacts and potential short term damage they are inflicting on the 
entire ecosystem. Longer term I have confidence in Bitcoin’s ability to survive 
whatever happens but allocating significant community resources to resist an 
unnecessary contentious soft fork (or even regular contentious soft forks) is 
not an optimal use of those resources.”

I am getting increasingly concerned that we are stumbling into this scenario 
three months after I wrote that post. One of many future soft fork proposals 
(as many will know) is BIP 119 [1] which is the enabling of a new opcode 
OP_CHECKTEMPLATEVERIFY (OP_CTV). It seems to me like the author and primary 
promoter of this proposal (Jeremy Rubin) is pushing for an imminent attempted 
activation of a soft fork containing exclusively OP_CTV [2]. To contrast with 
his approach, the authors and contributors of another future soft fork proposal 
(BIP 118 [3], SIGHASH_ANYPREVOUT) aren’t promoting an imminent soft fork 
activation attempt and instead are building out and testing one of the 
speculated use cases, eltoo payment channels [4]. Similar work has not been 
done for any of the speculated use cases of OP_CTV. Instead Jeremy is 
encouraging people to “soft signal” for soft fork activation of OP_CTV 
presumably in the hope that the building out and testing of use cases can be 
completed post activation.

This is totally irresponsible in my view. A long list of speculated use cases 
means nothing on its own. I can propose a new opcode OP_MAGIC and claim it will 
cure cancer with no potential downsides and hence we should have a soft fork 
activating it as soon as possible. I would hope there would be sufficient 
skepticism that this proposal wouldn’t see the light of day. It is true that 
Jeremy has some rudimentary proofs of concept built but as any software 
engineer will tell you the vast majority of the challenges are encountered once 
you attempt to build out that proof of concept. Once you do you may realize 
that the tool (or opcode) you are using isn’t the right one for the job. Unlike 
adjusting a feature on a social media app adjusting a consensus change once it 
has been activated is trickier to put it mildly.

There are a number of other more interesting technical discussions to be had 
later (what kind of covenants we want and are able to enable safely on Bitcoin 
etc, how CTV compares to other covenant enabling proposals, to what extent 
activating CTV would impact future proposals) but I feel the top priority is to 
bring some attention to the danger of us stumbling into an attempted 
contentious soft fork activation attempt.

Jeremy has put up this site (https://utxos.org/signals/) which is collecting 
so-called “soft signals”. I very much doubt anyone has a problem with Jeremy 
engaging with the community on his proposal and receiving feedback. However, 
the site currently states:

“The following organizations, individuals, or pools have communicated 
preference for and intent to support a BIP-119 activation attempt using 
reasonable parameters. These “soft signals” are non-binding until an actual 
concrete proposal has been formed, but are useful for measuring community 
consensus.”

There have been a number of “soft signals”, many expressing enthusiasm for the 
speculated use cases of OP_CTV. Personally I share that enthusiasm like I do 
with the prospect of curing cancer. But these soft signals seem as if they are 
going to be used to attempt to justify an imminent contentious soft fork 
attempt. The devil is in the details both with regards to wording like 
“reasonable parameters” and the utility and s

[bitcoin-dev] Taproot activates - A time/block line

2021-11-15 Thread Michael Folkson via bitcoin-dev
I thought I would collect together the highlights from Taproot activating for 
those strange Bitcoin history buffs (including myself). If you’d rather watch 
in video form 0xB10C provided an excellent livestream [0] showing blocks and 
transactions in the run up to and directly after Taproot activating.

Back in July [1] 0xB10C (with the help of F2Pool) spent from Taproot (P2TR) 
outputs months before Taproot activated. Taproot rules weren’t being enforced 
and hence these spends were treated as anyone-can-spend. Hence I won’t treat 
these as the “first” Taproot spends as they didn’t need to meet Taproot 
consensus rules.

Block 709631: The last block before Taproot rules were enforced was mined by 
AntPool. By this point there were various P2TR outputs in blocks, some 
timelocked for higher than block 709631 but others not timelocked. These 
non-timelocked P2TR outputs were in effect anyone-can-spend like the ones 
0xB10C spent from in July as Taproot rules were not yet being enforced. No P2TR 
outputs were spent immediately before activation as far as I can tell.

Block 709632: The first block where full nodes started enforcing Taproot rules 
was mined by F2Pool. It seems [2] F2Pool wasn’t enforcing Taproot rules and did 
not include any Taproot spends (some with high fee rates) in this block. More 
seriously an invalid Taproot spend included in this block could have cost them 
the block reward and caused a re-org when full nodes (and miners) enforcing 
Taproot rules rejected this block. Given they didn’t include any attempted 
Taproot spends (valid or invalid) in the block this protected them from that 
but it does lead to discussions for a later time on whether Speedy Trial 
signaling was effective if some mining pools signaled readiness months previous 
but then did not enforce the new soft fork rules on activation.

Block 709633: Mined by AntPool. Similar to F2Pool they didn’t include any 
Taproot spends in this block and one would assume that they also weren’t 
enforcing Taproot rules though this has not been confirmed.

Block 709634: Also mined by AntPool.

Block 709635: The first block which included (numerous) valid Taproot spends 
(and no invalid Taproot spends) was mined by Foundry USA.

The first Taproot spend [3] was completed by bitbug42. It was a key path spend 
and the OP_RETURN in this first Taproot spend contained the message “I like 
Schnorr sigs and I cannot lie”.

Andrew Chow had the second Taproot spend [4] but the first script path spend. 
He also spent from two Taproot vanity addresses beginning bc1ptapr00t which 
were presumably generated using his Rust Bitcoin Vanity Address Generator [5].

Pieter Wuille had the third Taproot spend [6]. He also had the bronze medal for 
SegWit spends on SegWit activation in 2017 [7], he was third then too. However, 
his vanity address game stepped up for Taproot. For SegWit he spent from one 
vanity address beginning 35Segwit. This time he spent from vanity addresses 
beginning bc1ptapr00tearly, bc1pay2tapr00t, bc1pmyusetapr00t, bc1partytaptap 
and this isn’t including all the vanity addresses that were sent to. He (with 
Greg Maxwell’s help) searched 2.4 quadrillion keys in a week [8].

BitGo had the fourth Taproot spend [9] and the first Taproot multisig spend via 
the script path. The script used OP_CHECKSIG and OP_CHECKSIGVERIFY which have 
been modified with the Taproot upgrade to check Schnorr signatures but it 
didn’t use the new opcode OP_CHECKSIGADD that has been introduced for threshold 
(and multi) signatures. It contained an OP_RETURN message with “Thx Satoshi! 
∞/21mil First Taproot multisig spend -BitGo”

jaoNoctus claimed the fifth Taproot spend and narcelio and ottosch claimed the 
sixth and seventh Taproot spends.

The first use of OP_CHECKSIGADD on mainnet was completed [10] by Alekos Filini 
using modified code [11] from the BDK (Bitcoin Dev Kit) library.

Any errors are my own and I will gladly correct. Thanks to 0xB10C, Greg 
Maxwell, Pieter Wuille, Murch, Andrew Chow, BitGo, Daniel McNally, Rearden 
Code, Alekos Filini, Chun, pinheadmz for highlighting these various events 
online. Thanks to the various block explorers (Esplora, mempool.space etc) that 
were very useful for monitoring Taproot activation. And thanks to the community 
as a whole for participating and engaging with this successful upgrade. Without 
participation and engagement these upgrades are meaningless and it is a great 
sign for Bitcoin’s future that there was so much interest and scrutiny of this 
upgrade.

[0]: https://www.youtube.com/watch?v=1jijKVB1cNA, 
https://www.twitch.tv/0xb10c/video/1204909643
[1]: https://b10c.me/blog/007-spending-p2tr-pre-activation/
[2]: https://twitter.com/satofishi/status/1459868549674065926?s=20
[3]: 33e794d097969002ee05d336686fc03c9e15a597c1b9827669460fac98799036
[4]: 3defed8717c581b4c0509329550e344bdc14ac38f71fc050096887e535c8
[5]: https://github.com/achow101/rust-vanitygen
[6]: 83c8e0289fecf93b5a284705396f5a652d9886

Re: [bitcoin-dev] On the regularity of soft forks

2021-10-16 Thread Michael Folkson via bitcoin-dev
> Interesting discussion.Correct me if I'm wrong: but putting too many features 
> together in one shot just can't make things harder to debug in production if 
> something very unexpected happens.It's a basic principle of software 
> engineering.

Soft fork features can (and should) obviously be tested thoroughly on testnet, 
signet, custom signets, sidechains etc on a standalone basis and a bundled 
basis. But whether or not it is a basic principle of general software 
engineering kind of misses the point. Security critical software clearly isn't 
engineered in the same way as a new social media app. Bugs are easily reverted 
in a new social media app. A consensus change is extremely hard to revert and 
probably requires a hard fork, a level of central coordination we generally 
attempt to avoid and a speed of deployment that we also attempt to avoid. On 
top of that we aren't just dealing with security critical software. One of the 
most important objectives is to keep all the nodes on the network in consensus. 
Introducing a consensus change before we are comfortable there is community 
consensus for it is a massive effective bug in itself. The network can split in 
multiple ways e.g. part of the network disagrees on whether to activate the 
consensus change, part of the network disagrees on how to resist that consensus 
change, part of the network disagrees on how to activate that consensus change 
etc

In addition, a social media app can experiment in production whether Feature A 
works, whether Feature B works or whether Feature A and B work best together. 
In Bitcoin if we activate consensus Feature A, later decide we want consensus 
Feature B but find out that by previously activating Feature A we can't have 
Feature B (it is now unsafe to activate it) or its design now has to be 
suboptimal because we have to ensure it can safely work in the presence of 
Feature A we have made a mistake by activating Feature A in the first place. 
Decentralized security critical consensus changes are an emerging field in 
itself and really can't be treated like any other software project. This will 
become universally understood I'm sure over time.

--

Michael Folkson
Email: michaelfolkson at protonmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3

‐‐‐ Original Message ‐‐‐
On Friday, October 15th, 2021 at 1:43 AM, Felipe Micaroni Lalli via bitcoin-dev 
 wrote:

> Interesting discussion.Correct me if I'm wrong: but putting too many features 
> together in one shot just can't make things harder to debug in production if 
> something very unexpected happens. It's a basic principle of software 
> engineering.
>
> Change. Deploy. Nothing bad happened? Change it a little more. Deployment.
>
> Or:Change, change, change. Deploy. Did something bad happen? What change 
> caused the problem?
>
> On Thu, Oct 14, 2021 at 8:53 PM Anthony Towns via bitcoin-dev 
>  wrote:
>
>> On Mon, Oct 11, 2021 at 12:12:58PM -0700, Jeremy via bitcoin-dev wrote:
>>> > ... in this post I will argue against frequent soft forks with a single or
>>> minimal
>>> > set of features and instead argue for infrequent soft forks with batches
>>> > of features.
>>> I think this type of development has been discussed in the past and has been
>>> rejected.
>>
>>> AJ: - improvements: changes might not make everyone better off, but we
>>> don't want changes to screw anyone over either -- pareto
>>> improvements in economics, "first, do no harm", etc. (if we get this
>>> right, there's no need to make compromises and bundle multiple
>>> flawed proposals so that everyone's an equal mix of happy and
>>> miserable)
>>
>> I don't think your conclusion above matches my opinion, for what it's
>> worth.
>>
>> If you've got two features, A and B, where the game theory is:
>>
>> If A happens, I'm +100, You're -50
>> If B happens, I'm -50, You're +100
>>
>> then even though A+B is +50, +50, then I do think the answer should
>> generally be "think harder and come up with better proposals" rather than
>> "implement A+B as a bundle that makes us both +50".
>>
>> _But_ if the two features are more like:
>>
>> If C happens, I'm +100, You're +/- 0
>> If D happens, I'm +/- 0, You're +100
>>
>> then I don't have a problem with bundling them together as a single
>> simultaneous activation of both C and D.
>>
>> Also, you can have situations where things are better together,
>> that is:
>>
>> If E happens, we're both at +100
>> If F happens, we're both at +50
>> If E+F both happen, we're both at +9000
>>
>> In general, I think combining proposals when the combination is better
>> than the individual proposals were is obviously good; and combining
>> related proposals into a single activation can be good if it is easier
>> to think about the ideas as a set.
>>
>> It's only when you'd be rejecting the proposal on its own merits that
>> I think combining it with others is a bad idea in principle.
>>
>> For specific examples, we bundled 

[bitcoin-dev] On the regularity of soft forks

2021-10-11 Thread Michael Folkson via bitcoin-dev
I was hoping to delay this post as long as possible because there are so many 
interesting and important things to discuss other than soft forks and consensus 
changes that seem to have taken a backseat this year due to Taproot activation. 
In addition, there seems to be a world of opportunity to leverage the upcoming 
Taproot soft fork that risks getting drowned out by speculating on the next 
soft fork.

There is clearly nothing wrong with some individuals continuously working on, 
designing and refining new possible consensus changes and whoever is interested 
is free to follow and participate in those discussions. This is Bitcoin, no one 
let alone me can decide what people should focus on. Indeed I intend to 
allocate a portion of my time to following and understanding the trade-offs of 
current and future soft fork proposals. However, in this post I will argue 
against frequent soft forks with a single or minimal set of features and 
instead argue for infrequent soft forks with batches of features.

I fully understand the desire and motivation to get consensus changes into 
Bitcoin as quickly as possible when certain use cases depend on them. However, 
the robustness, security and ability to resist harmful or suboptimal changes to 
the system is clearly the ultimate priority. The more frequently soft forks are 
attempted the harder it is for the community to ensure harmful or suboptimal 
changes don’t creep into the consensus rules. I am well aware of how much 
community mindshare Taproot activation demanded this year. This is how it 
should be. The community should be informed and vigilant when the consensus 
rules are changed. Every full node will either immediately on activation or in 
future enforce these consensus rule changes and so it is in the interests of 
every full node operator that these changes have been subject to the ultimate 
levels of community review and rigorous testing. Attempting them frequently 
either requires continuous community monitoring or an acceptance that an 
unneeded or harmful consensus change could easily creep into Bitcoin. Neither 
of these options seem acceptable to me. It is not reasonable to ask all the 
different segments of the community to dedicate full time resources to stay on 
top of proposed consensus changes. Hence treating a pull request to a Bitcoin 
implementation that requires a soft fork like any other pull request is 
shortsighted.

Merging soft fork code into a Bitcoin implementation

The code for a soft fork should not be merged into a Bitcoin implementation, 
let alone activation parameters (discussed later), until the maintainers of 
that implementation are comfortable that the entirety of that soft fork has 
sufficient community consensus. This includes what many consider the reference 
implementation and dominant implementation on the network, Bitcoin Core. A soft 
fork pull request cannot and should not be treated like any other pull request 
which can be merged with anything from 1 to 10 ACKs from long term or newer 
contributors. The act of merging a pull request that is part of a proposed soft 
fork is an acknowledgement by the maintainer(s) of that implementation that 
they consider the entirety of that proposed soft fork to have community 
consensus. That includes what is included in that soft fork as well as what 
isn’t. If there is a prevailing view that the current design could be improved, 
could feasibly be replaced by something superior in future or merely hasn’t 
been subject to sufficient community review it should not be merged.

Of course there is no ultimate authority to enforce that this happens, Bitcoin 
is an entirely voluntary system. A contentious or disputed soft fork can be 
merged into a Bitcoin implementation at any time but doing this is opening the 
door to the schism, disruption and waste of developer hours that we saw in 
2017. Personally I think we’ll see an attempt to activate a contentious soft 
fork at some point in the long term future (Murphy’s Law) but any attempt to do 
so should be strongly discouraged. It should be made clear to any individual(s) 
that attempt this of the knock on impacts and potential short term damage they 
are inflicting on the entire ecosystem. Longer term I have confidence in 
Bitcoin’s ability to survive whatever happens but allocating significant 
community resources to resist an unnecessary contentious soft fork (or even 
regular contentious soft forks) is not an optimal use of those resources.

Soft fork activation

Miner signaling is a tool for signaling readiness. It is not voting for the 
soft fork or expressing support for the soft fork. There should not be any 
attempt to facilitate miner signaling until there is sufficient community 
consensus (the mining community is a subset of the community) on the soft fork. 
Merging activation parameters or encouraging miner signaling before it is clear 
there is community consensus on the entirety of the soft fork is putting the 
c

[bitcoin-dev] Wednesday’s second BIP process meeting

2021-10-03 Thread Michael Folkson via bitcoin-dev
Wednesday’s second BIP process meeting was announced previously here [0].

A conversation log of the meeting is available here [1].

A summary of the first BIP process meeting is here [2].

The following is a summary of what was discussed.

1) The limits or possible downsides of pursuing maximal decentralization. 
Understandably there is a desire for greater decentralization as a central repo 
introduces bottlenecks and the need for maintainers or editors in the case of 
BIPs (prayank). However, zero filters creates a Ethereum style bewildering 
number of BIPs of varying quality that all need to be stored and maintained. 
The option of being able to store a BIP in any repo doesn’t appear to offer 
material upside (michaelfolkson). It still needs to get a BIP number from the 
BIP editors and if the alternative repo is deleted or the BIP champion becomes 
unresponsive there is the problem of changing the location of where the BIP is 
stored. It is much easier to monitor a single repo rather than an infinite 
number of repos that contain BIPs.

2) Past motivations for introducing alternative parallel processes to the BIPs 
(e.g. BOLTs, SLIPs). Anyone is free to set up a repo, add documentation to that 
repo or even set up a parallel process to the BIPs. However, if as a community 
we’d like to prevent unnecessary splintering it is good to understand why 
certain documents that should be BIPed aren’t being BIPed. Obviously not every 
document needs or should be BIPed. There are many docs that aren’t BIPs that 
are hugely valuable. One historical concern that was raised (ChristopherA) was 
regarding why BIP 48 didn’t happen and whether it was because it was coming 
from the wallet community and not a Bitcoin Core proposal. luke-jr said after 
the meeting that from recollection the reason it didn’t happen was merely that 
it was never written [3]. It was also discussed afterwards whether there was/is 
a rationale for Lightning BOLTs not being BIPs and whether they should be BIPs 
in future.

3) Kalle Alm’s proposal for BIP extensions [4] was discussed. Participants 
seemed to be in favor of the proposal though further clarity on when they would 
and wouldn’t be used was requested. A BIP extension for the bech32m update (BIP 
350) to bech32 (BIP 173) seems like it would have been a good use case though 
further discussion is probably needed on whether they should be used for soft 
fork activation parameters. It was suggested that using dates and/or short 
extension names would be superior to extension numbers as numbers suggest an 
ordering (ChristopherA). The extension 2 may also be perceived as somehow 
replacing extension 1.

Thanks to the participants of both BIP process meetings. Further discussion is 
welcome on the #bitcoin-dev Libera IRC channel and hopefully we will see 
progress in the coming weeks and months on a proposed BIP 3 [5] update.

[0]: 
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-September/019412.html

[1]: https://gist.github.com/michaelfolkson/84000ee3fe45c034ac12a7a54ff5fcdd

[2]: 
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-September/019469.html

[3]: https://github.com/bitcoin/bips/pull/253

[4]: 
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-September/019457.html

[5]: https://github.com/bitcoin/bips/pull/1015

--

Michael Folkson
Email: michaelfolkson at protonmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


[bitcoin-dev] Reminder: Second BIP process meeting tomorrow at 23:00 UTC

2021-09-28 Thread Michael Folkson via bitcoin-dev
As announced here [0] there is a second BIP process meeting tomorrow (Wednesday 
September 29th 23:00 UTC). For Asia Pacific this is the morning of September 
30th. It will be held on the #bitcoin-dev Libera IRC channel.

A summary from the first meeting is here [1].

[0]: 
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-September/019412.html
[1]: 
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-September/019469.html

Thanks
Michael

Michael Folkson
Email: michaelfolkson at protonmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


[bitcoin-dev] Tuesday's BIP process meeting

2021-09-17 Thread Michael Folkson via bitcoin-dev
Tuesday's BIP process meeting was announced previously here [0].

A conversation log of the meeting is available here [1].

It looks promising at this stage that we'll eventually have a bundle of changes 
to warrant a new proposed BIP (BIP 3) to replace the current BIP process that 
is described in BIP 2 [2]. Obviously there was only a very small group of 
attendees at this week's IRC meeting and so there should (and will) be ample 
time for the community (and this list) to review whatever changes are proposed 
before they are considered for merging into the BIPs repository and before they 
take effect.

The following proposed changes were discussed:

1) An end to the 3 year rejection rule. In BIP 2 a BIP enters the "Rejected" 
state after 3 years if no progress had been made. The BIP champion then needs 
to address public criticism of the BIP to be able to leave the "Rejected" 
state. It is proposed instead that after 3 years the BIP would enter an 
"Inactive" state that only requires activity from the BIP champion to leave the 
"Inactive" state.

2) Currently BIP champions need to ACK pull requests with basic 
spelling/grammar changes before they can be merged. This is time consuming not 
only for the BIP editors who have to chase the BIP champions but it can be 
irritating for the BIP champions too especially if they champion multiple BIPs. 
It is proposed that BIP editors instead can use their judgment to merge in 
changes that don't impact the meaning of the BIP cc'ing the BIP champions and 
with reversions possible if the BIP champion is unhappy with the change. A 
single pull request making changes across multiple BIPs (e.g. spelling 
corrections) will not be considered for merging however.

3) BIP comments were introduced so that subject matter experts and informed 
critics of a proposal could make it clear to BIP readers and implementers of 
possible defects with the proposal. However, they have been rarely used and the 
few comments submitted on BIPs seem to have been widely ignored. Instead it is 
proposed that link(s) to bitcoin-dev mailing list post(s) with criticism or 
outlines of defects can be included within a BIP by the BIP editors such that 
the interested reader can easily be directed to the source of that information.

4) BIP champion(s) of soft fork BIPs containing consensus changes could 
theoretically include an activation method and parameters in their BIP 
unilaterally without consulting the broader community. (To be clear this is not 
necessarily what happened with Taproot activation parameters but there was 
confusion and disagreement about the role of BIPs and BIP editors in the 
perceived "finalization" of activation parameters.) This needs further 
discussion but proposed changes include sharpening the wording around 
activation parameters to make it clear that any parameters included are merely 
those recommended by the BIP champion(s) and don't necessarily have community 
consensus. Alternative proposals would be to not include activation methods or 
parameters within the BIP at all or to give BIP editors latitude to highlight 
concerns in a bitcoin-dev mailing list post and then include a link to that 
post within the BIP.

For details of other changes discussed in the meeting please see the 
conversation log [1]. Kalle Alm has also sent an email [3] on BIP extensions to 
this list.

The next meeting is on Wednesday September 29th (23:00 UTC) on the Libera IRC 
channel #bitcoin-dev.

[0]: 
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-September/019412.html
[1]: https://gist.github.com/michaelfolkson/f2870851bb812b4ac86006ea54ca78a2
[2]: https://github.com/bitcoin/bips/blob/master/bip-0002.mediawiki
[3]: 
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-September/019457.html

Michael Folkson
Email: michaelfolk...@protonmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] BIP process meeting - Tuesday September 14th 23:00 UTC on #bitcoin-dev Libera IRC

2021-09-14 Thread Michael Folkson via bitcoin-dev
>> I can only speak for myself here but I am not particularly concerned about 
>> this perception of authority.

> This perception affects Bitcoin.

Personally I would rather have an optimal process that provides
clarity and helps us build better software than be sensitive to
inaccurate perceptions that hinder that ultimate goal.

> Bitcoin Core is an implementation (used by most of the nodes right now). BIPs 
> are proposals for Bitcoin.

Indeed, thanks for pointing this out. I take it as a given that
everyone knows this but yeah when making such a comparison it is good
to make this clear.

> Using same organization on GitHub and such comparisons can be misleading for 
> many.

I think there's an argument that BIPs could be under a different
GitHub organization but it would be pretty low on my list or
priorities. There is a clear divide between the group of Core
maintainers and the group of BIP editors and in the absence of a
reason to change that I would rather maintain the status quo.

> I don't think we need ACKs/NACKs in BIPs repository and I feel weird to be a 
> part of discussions, ACKing this pull request: 
> https://github.com/bitcoin/bips/pull/1104.

With BIP champions having more latitude in getting their BIP PR merged
than they would for example getting their Core PR merged I agree
ACK/NACKs on BIP PRs are less relevant. However, I still think some
BIP champions would like to have their changes reviewed especially by
subject matter experts. And if there are strong disagreements over the
changes made an alternative BIP is always an option. I don't see the
harm in having discussion with reviewers on BIP PRs and reviewers
registering an ACK/NACK as long as we are all clear on what the BIP
process is.

> Not sure any Bitcoin project needs a pull request merged in this repository 
> to implement a proposal.

I agree it is optional for some/many Bitcoin projects whether they are
BIPed or not. Would you be comfortable with a soft fork/consensus code
change going into Bitcoin Core without a BIP? I personally wouldn't.

We should probably leave it at that to ensure we are not spamming the
email list but hope to see you at the meeting later :)

On Tue, Sep 14, 2021 at 3:50 PM Prayank  wrote:
>
> > A mailing list post is static and a BIP will go normally go through 
> > multiple edits and revisions so you do need to take advantage of the Git 
> > version control system. It gets quite unwieldy to attempt to do that via a 
> > mailing list with every minor suggested edit getting sent to all 
> > subscribers.
>
> Mailing list post will have the link to BIP documentation. Post itself 
> doesn't need to be updated but same link can be used to share updated 
> information. Example: 
> https://gist.github.com/prayank23/95b4804777fefd015d7cc4f847675d7f (Image can 
> be changed in gist when required or add new information)
>
> Mailing list post will help in reading discussions related to proposal.
>
> >Also allowing the entire global population
> (billions of people) to be able to create a directory doesn't sound
> like a good idea to me :)
>
> There is nothing to allow/disallow. That's the whole point. People are free 
> to save links and organize things which can be called a BIP directory.
>
> > I can only speak for myself here but I am not particularly concerned about 
> > this perception of authority.
>
> This perception affects Bitcoin.
>
> > In the same way as there are limits on the ability of Core maintainers to 
> > unilaterally merge in contentious code changes there are similar limits on 
> > the ability of BIP editors. Ultimately anyone merging a PR has to consider 
> > process/consensus and concerns can (and have been in the past) be raised on 
> > this mailing list or elsewhere.
>
> Bitcoin Core is an implementation (used by most of the nodes right now). BIPs 
> are proposals for Bitcoin. Using same organization on GitHub and such 
> comparisons can be misleading for many. I don't think we need ACKs/NACKs in 
> BIPs repository and I feel weird to be a part of discussions, ACKing this 
> pull request: https://github.com/bitcoin/bips/pull/1104. Not sure any Bitcoin 
> project needs a pull request merged in this repository to implement a 
> proposal.
>
> > I'm not sure where you are suggesting a bot should be.
>
> A bot similar to DrahtBot in Bitcoin Core repository.
>
> Few other developers had suggested similar thing earlier:
>
> https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-April/018859.html
>
> https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-April/018868.html
>
> https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-April/018869.html
>
> https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-April/018871.html
>
> --
> Prayank
>
> A3B1 E430 2298 178F
>
>
>
> Sep 14, 2021, 19:37 by michaelfolk...@gmail.com:
>
> Hey Prayank
>
> Thanks for the suggestions.
>
> bitcoin-dev mailing list link can be considered a BIP and saved in a BIP 
> directory. Anyone can creat

Re: [bitcoin-dev] BIP process meeting - Tuesday September 14th 23:00 UTC on #bitcoin-dev Libera IRC

2021-09-14 Thread Michael Folkson via bitcoin-dev
Hey Prayank

Thanks for the suggestions.

> bitcoin-dev mailing list link can be considered a BIP and saved in a BIP 
> directory. Anyone can create such directories. So BIP is nothing but a 
> proposal shared on bitcoin-dev mailing list.

A mailing list post is static and a BIP will go normally go through
multiple edits and revisions so you do need to take advantage of the
Git version control system. It gets quite unwieldy to attempt to do
that via a mailing list with every minor suggested edit getting sent
to all subscribers. Also allowing the entire global population
(billions of people) to be able to create a directory doesn't sound
like a good idea to me :)

> This will avoid the 'bitcoin/bips' repository being considered as some BIP 
> authority that approves BIPs and proposals can improve Bitcoin without using 
> the repository. Repository will only be helpful in documenting BIP correctly.

I can only speak for myself here but I am not particularly concerned
about this perception of authority. We need a central repo that we can
all refer to (rather than BIPs being distributed across a large number
of repos) and that central repo needs to managed and maintained by
somebody (in this case the two BIP editors Kalle and Luke). In the
same way as there are limits on the ability of Core maintainers to
unilaterally merge in contentious code changes there are similar
limits on the ability of BIP editors. Ultimately anyone merging a PR
has to consider process/consensus and concerns can (and have been in
the past) be raised on this mailing list or elsewhere.

> 2. Bot in `bitcoin/bips` repository that notifies about pull requests based 
> on different things. This will help maintainer(s) and contributors.

I'm not sure where you are suggesting a bot should be. On IRC? There
is a BIP merges bot on Mastodon[0] that I'm aware of and obviously you
can subscribe to GitHub repo notification emails.

> 3. BIP Gallery: I tried sharing things in a different way so that newbies can 
> understand importance of BIPs in Bitcoin and relate to it: 
> https://prayank23.github.io/BIPsGallery/ however couldn't complete it with 
> all the BIPs because not many people considered it helpful. There were few 
> suggestions to improve it by adding some text for each BIP and better image 
> gallery. Maybe someone else can create a better project.

This looks cool. I think we can definitely do better in encouraging
more people to engage with the BIP process especially as the ideas
start flowing in post Taproot activation brainstorming what should be
in the "next soft fork" (trademark!). Some of the BIPs (e.g. the
Taproot BIPs 340-342) are quite technically dense so someone on IRC
suggested making greater use of informational BIPs to supplement the
standard BIPs for new implementers or even casual readers.

[0] https://x0f.org/@bipmerges

On Tue, Sep 14, 2021 at 1:17 PM Prayank  wrote:
>
> Hi Michael,
>
> Thanks for sharing the details about the meeting.
>
> Wishlist has some interesting points. I would like to suggest few things:
>
> 1.BIP process:
>
> A. Plan and document a proposal
>
> B. Open PR in https://github.com/bitcoin/bips and edit everything properly
>
> C. BIP is assigned a number and merged
>
> D. Share the proposal on bitcoin dev mailing list
>
> bitcoin-dev mailing list link can be considered a BIP and saved in a BIP 
> directory. Anyone can create such directories. So BIP is nothing but a 
> proposal shared on bitcoin-dev mailing list.
>
> Who implements the BIP? When is it implemented? How is it implemented? 
> Opinions on proposal etc. will be different for each BIP. This will avoid the 
> 'bitcoin/bips' repository being considered as some BIP authority that 
> approves BIPs and proposals can improve Bitcoin without using the repository. 
> Repository will only be helpful in documenting BIP correctly.
>
> 2. Bot in `bitcoin/bips` repository that notifies about pull requests based 
> on different things. This will help maintainer(s) and contributors.
>
> 3. BIP Gallery: I tried sharing things in a different way so that newbies can 
> understand importance of BIPs in Bitcoin and relate to it: 
> https://prayank23.github.io/BIPsGallery/ however couldn't complete it with 
> all the BIPs because not many people considered it helpful. There were few 
> suggestions to improve it by adding some text for each BIP and better image 
> gallery. Maybe someone else can create a better project.
>
>
> --
> Prayank
>
> A3B1 E430 2298 178F



-- 
Michael Folkson
Email: michaelfolk...@gmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] Reorgs on SigNet - Looking for feedback on approach and parameters

2021-09-13 Thread Michael Folkson via bitcoin-dev
> Can you explain the motivation for this? From where I sit, as far as I know, 
> I should basically be > a prime example of the target market for public 
> signet - someone developing bitcoin applications > with regular requirements 
> to test those applications with other developers without
> jumping through hoops to configure software the same across the globe and set 
> up miners.
> With blocks > being slow and irregular, I’m basically not benefited at all by 
> signet and will
> stick with testnet3/mainnet testing, which both suck.

On testnet3 you can realistically go days without blocks being found
(and conversely thousands of blocks can be found in a day), the block
discovery time variance is huge. Of course this is probabilistically
possible on mainnet too but the probability of this happening is close
to zero. Here[0] is an example of 16,000 blocks being found in a day
on testnet3.

On signet block discovery time variance mirrors mainnet.

On mainnet you are risking Bitcoin with actual monetary value. If you
don't mind doing this then you don't need testnet3, signet or anything
else. In addition proposed soft forks may be activated on signet (and
could also be on testnet3) well before they are considered for
activation on mainnet for testing and experimentation purposes.

[0] 
https://web.archive.org/web/20160910173004/https://blog.blocktrail.com/2015/04/in-the-darkest-depths-of-testnet3-16k-blocks-were-found-in-1-day/

-- 
Michael Folkson
Email: michaelfolk...@gmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] Reorgs on SigNet - Looking for feedback on approach and parameters

2021-09-10 Thread Michael Folkson via bitcoin-dev
> Huh? Why would the goal be to match mainnet? The goal, as I understand it, is 
> to allow software to
use SigNet without modification *to make testing simpler* - keep the
header format the same to let
SPV clients function without (significant) modification, etc. The
point of the whole thing is to
make testing as easy as possible, why would we do otherwise.

I guess Kalle (and AJ) can answer this question better than me but my
understanding is that the motivation for Signet was that testnet
deviated erratically from mainnet behavior (e.g. long delays before
any blocks were mined followed by a multitude of blocks mined in a
short period of time) which meant it wasn't conducive to normal
testing of applications. Why would you want a mainnet like chain? To
check if your application works on a mainnet like chain without
risking any actual value before moving to mainnet. The same purpose as
testnet but more reliably resembling mainnet behavior. You are well
within your rights to demand more than that but my preference would be
to push some of those demands to custom signets rather than the
default Signet.

Testing out proposed soft forks in advance of them being considered
for activation would already be introducing a dimension of complexity
that is going to be hard to manage [0]. I'm generally of the view that
if you are going to introduce a complexity dimension, keep the other
dimensions as vanilla as possible. Otherwise you are battling
complexity in multiple different dimensions and it becomes hard or
impossible to maintain it and meet your initial objectives.

But if this feature of extremely regular re-orgs is an in demand
feature for testers I think the question then becomes what the default
be (I would suggest re-orgs every 8 hours rather than no re-orgs at
all) and then the alternative which you can switch to, re-orgs every
block or every 6 blocks or whatever.

> I believe my suggestion was not correctly understood. I'm not suggesting 
> *users* sign blocks or
otherwise do anything manually here, only that the existing block
producers each generate a new key,
and we then only sign reorgs with *those* keys. Users will be able to
set a flag to indicate "I want
to accept sigs from either sets of keys, and see reorgs" or "I only
want sigs from the non-reorg
keys, and will consider the reorg keys-signed blocks invalid"

Ah I did misunderstand, yes this makes more sense. Thanks for the correction.

[0] 
https://bitcoin.stackexchange.com/questions/98642/can-we-experiment-on-signet-with-multiple-proposed-soft-forks-whilst-maintaining

On Fri, Sep 10, 2021 at 7:24 PM Matt Corallo  wrote:
>
>
>
> On 9/10/21 06:05, Michael Folkson wrote:
> >> I see zero reason whatsoever to not simply reorg ~every block, or as often 
> >> as is practical. If users opt in to wanting to test with reorgs, they 
> >> should be able to test with reorgs, not wait a day to test with reorgs.
> >
> > One of the goals of the default Signet was to make the default Signet
> > resemble mainnet as much as possible. (You can do whatever you want on
> > a custom signet you set up yourself including manufacturing a re-org
> > every block if you wish.) Hence I'm a bit wary of making the behavior
> > on the default Signet deviate significantly from what you might
> > experience on mainnet. Given re-orgs don't occur that often on mainnet
> > I can see the argument for making them more regular (every 8 hours
> > seems reasonable to me) on the default Signet but every block seems
> > excessive. It makes the default Signet into an environment for purely
> > testing whether your application can withstand various flavors of edge
> > case re-orgs. You may want to test whether your application can
> > withstand normal mainnet behavior (no re-orgs for long periods of
> > time) first before you concern yourself with re-orgs.
>
> Huh? Why would the goal be to match mainnet? The goal, as I understand it, is 
> to allow software to
> use SigNet without modification *to make testing simpler* - keep the header 
> format the same to let
> SPV clients function without (significant) modification, etc. The point of 
> the whole thing is to
> make testing as easy as possible, why would we do otherwise.
>
> Further, because one goal here is to enable clients to opt in or out of the 
> reorg chain at will
> (presumably by just changing one config flag in bitcoin.conf), why would we 
> worry about making it
> "similar to mainnet". If users want an experience "similar to mainnet", they 
> can simply turn off
> reorgs and they'll see a consistent chain moving forward which never reorgs, 
> similar to the
> practical experience of mainnet.
>
> Once you've opted into reorgs, you almost certainly are looking to *test* 
> reorgs - you just
> restarted Bitcoin Core with the reorg flag set, waiting around for a reorg 
> after doing that seems
> like the experience of testnet3 today, and the whole reason why we wanted 
> signet to begin with -
> things happen sporadically and in

Re: [bitcoin-dev] Reorgs on SigNet - Looking for feedback on approach and parameters

2021-09-10 Thread Michael Folkson via bitcoin-dev
> I see zero reason whatsoever to not simply reorg ~every block, or as often as 
> is practical. If users opt in to wanting to test with reorgs, they should be 
> able to test with reorgs, not wait a day to test with reorgs.

One of the goals of the default Signet was to make the default Signet
resemble mainnet as much as possible. (You can do whatever you want on
a custom signet you set up yourself including manufacturing a re-org
every block if you wish.) Hence I'm a bit wary of making the behavior
on the default Signet deviate significantly from what you might
experience on mainnet. Given re-orgs don't occur that often on mainnet
I can see the argument for making them more regular (every 8 hours
seems reasonable to me) on the default Signet but every block seems
excessive. It makes the default Signet into an environment for purely
testing whether your application can withstand various flavors of edge
case re-orgs. You may want to test whether your application can
withstand normal mainnet behavior (no re-orgs for long periods of
time) first before you concern yourself with re-orgs.

> Why bother with a version bit? This seems substantially more complicated than 
> the original proposal that surfaced many times before signet launched to just 
> have a different reorg signing key. Thus, users who wish to follow reorgs can 
> use a 1-of-2 (or higher multisig) and users who wish to not follow reorgs 
> would use a 1-of-1 (or higher multisig), simply marking the reorg blocks as 
> invalid without touching any header bits that non-full clients will ever see.

If I understand this correctly this is introducing a need for users to
sign blocks when currently with the default Signet the user does not
need to concern themselves with signing blocks. That is entirely left
to the network block signers of the default Signet (who were AJ and
Kalle last time I checked). Again I don't think this additional
complexity is needed on the default Signet when you can set up your
own custom Signet if you want to test edge case scenarios that deviate
significantly from what you are likely to experience on mainnet. A
flag set via a configuration argument (the AJ, 0xB10C proposal) with
no-reorgs (or 8 hour re-orgs) as the default seems to me like it would
introduce no additional complexity to the casual (or alpha stage)
tester experience though of course it introduces implementation
complexity.

To move the default Signet in the direction of resembling mainnet even
closer would be to randomly generate batches of transactions to fill
up blocks and create a fee market. It would be great to be able to
test features like RBF and Lightning unhappy paths (justice
transactions, perhaps even pinning attacks etc) on the default Signet
in future.

-- 
Michael Folkson
Email: michaelfolk...@gmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


[bitcoin-dev] BIP process meeting - Tuesday September 14th 23:00 UTC on #bitcoin-dev Libera IRC

2021-09-07 Thread Michael Folkson via bitcoin-dev
With a new BIP editor (Kalle Alm) in place and Taproot activation
locked in it is probably/possibly as good time as any to revisit the
BIP process and see if we can bolster it, improve it or at least
inform why certain things operate the way they do.

Hence two IRC meetings are being organized, one on Tuesday September
14th (23:00 UTC) and one on Wednesday September 29th (23:00 UTC), both
on the Libera IRC channel #bitcoin-dev.

Possible discussion topics range from the relatively mundane (should
BIP champions need to ACK basic spelling change PRs) to the possibly
contentious (what role if any do the BIPs have in informing the
community of soft fork activation parameters). At the very least it
would be good to address some common misunderstandings and subtleties
of the BIP process that many (including myself) are lacking context
on.

So if you are interested in the BIP process or certainly if you have
experienced frustrations with the BIP process in the past as a BIP
champion or BIP contributor please attend and we’ll see what progress
we can make.

There is a BIP process wishlist that some have already contributed
ideas too: https://github.com/bitcoin/bips/wiki/BIP-Process-wishlist

And of course BIP 2 outlines the current BIP process:
https://github.com/bitcoin/bips/blob/master/bip-0002.mediawiki

This is being organized in the spirit of seeking to improve a process
and a resource that we as a community all rely on so please engage in
the spirit that is intended. I will keep the mailing list informed of
anything that comes out of the meetings and the #bitcoin-dev channel
is open for discussion outside of the meetings.

-- 
Michael Folkson
Email: michaelfolk...@gmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] Is there a tool like Ethereum EVM at present for Bitcoin script?

2021-08-26 Thread Michael Folkson via bitcoin-dev
The "No Taproot" section of the Sapio docs need updating :) What are
your plans to take advantage of Taproot with Sapio? It would have been
interesting to see what a Taproot emulator would have looked like,
although no need for it now. It seems to me Taproot would have been
harder to emulate than CTV though I could be wrong.

https://learn.sapio-lang.org/ch05-02-taproot.html

Also there have been a number of people asking questions about Sapio
and CTV on the Libera equivalents of Freenode channels #sapio and
##ctv-bip-review over the past months. Do you plan to join and claim
those channels?

Date: Thu, 26 Aug 2021 03:26:23 -0700
From: Jeremy 
To: Andrew Poelstra , Bitcoin Protocol
Discussion 
Subject: Re: [bitcoin-dev] Is there a tool like Ethereum EVM at
present for Bitcoin script?
Message-ID:

Content-Type: text/plain; charset="utf-8"

This has actually never been true (Sapio assumes extensions).

If the extensions are not present, you can stub them out with a signing
federation instead, configurable as flags, and you can also write many
contracts that do not use the ctv based components at all.

The protocol for emulation is a bit clever (if I do say so myself) since it
ensures that contract compilation is completely offline and the oracles are
completely stateless.

Relevant links:

https://learn.sapio-lang.org/ch05-01-ctv-emulator.html
https://learn.sapio-lang.org/ch03-02-finish.html

Cheers,

Jeremy

-- 
Michael Folkson
Email: michaelfolk...@gmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] Online discussion on Taproot roll out - Tuesday July 20th 17:15 UTC

2021-08-03 Thread Michael Folkson via bitcoin-dev
Please find below the video and transcript from the online discussion
on Taproot roll out that was held on July 20th.

Video: https://www.youtube.com/watch?v=GAkLuZNsZzw
Transcript: 
https://btctranscripts.com/london-bitcoin-devs/2021-07-20-socratic-seminar-taproot-rollout/
Reading list: 
https://gist.github.com/michaelfolkson/0803271754f851530fe8242087859254

On Sat, Jul 17, 2021 at 2:16 PM Michael Folkson
 wrote:
>
> Hi
>
> There is an online Zoom call (also livestreamed on YouTube) on Tuesday
> July 20th at 17:15 UTC discussing Taproot roll out post activation in
> November. It will be focused at developers and so discussion will be
> technical but all are welcome to attend/watch.
>
> Murch has this wiki page monitoring planned ecosystem support of P2TR
> addresses and it would be great to hear from projects and businesses
> that have Taproot support on their medium/long term development
> roadmap or are considering it:
> https://en.bitcoin.it/wiki/Bech32_adoption
>
> Meetup link (Zoom link will be announced here):
> https://www.meetup.com/BitDevsLDN/events/279041693/
>
> Draft pre-reading link (will be finalized before Tuesday):
> https://gist.github.com/michaelfolkson/0803271754f851530fe8242087859254
>
> Thanks
> Michael
>
> --
> Michael Folkson
> Email: michaelfolk...@gmail.com
> Keybase: michaelfolkson
> PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3



-- 
Michael Folkson
Email: michaelfolk...@gmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] Last week's second IRC workshop on L2 onchain support and wrap up

2021-07-30 Thread Michael Folkson via bitcoin-dev
There was some additional discussion on L2 onchain support at the
recent online Sydney Socratic Seminar. It wasn't recorded but a
transcript is below.

Transcript: 
https://btctranscripts.com/sydney-bitcoin-meetup/2021-07-06-socratic-seminar/

The discussion focused partly on the rules [1] of BIP 125 RBF and the
rationale for these rules (which isn't clear from the BIP). Proposed
ideas such as SIGHASH_IOMAP, fee sponsorship and transaction mutation
were also discussed that weren't covered during the IRC workshops.

[1] 
https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki#implementation-details

On Tue, Jun 29, 2021 at 10:44 AM Michael Folkson
 wrote:
>
> A summary of the first workshop is here:
> https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-June/019079.html
>
> The focus for this second workshop was fee bumping and package relay.
> For more details on package relay see:
> https://github.com/ariard/L2-zoology/blob/master/workshops/package-relay-and-friends.md
>
> The conversation log for the second workshop is here:
> https://gist.github.com/ariard/32b51ecceccc5c6f647bae86d083c442
>
> Package relay background
>
> Package relay is potentially useful for L2 protocols to address the
> inherent unpredictability of future fees. CPFP (child-pays-for-parent)
> seeks to ensure say a justice transaction, in Lightning’s case, with a
> lower fee, gets confirmed in a more timely manner because miners are
> incentivized to include the child transaction in a block. To do so
> they must include the parent transaction in that block or a preceding
> block. By “packaging” the parent and the child the initiator of the
> transaction(s) can ensure the miner’s mempool doesn’t initially reject
> the parent transaction for having a too low fee.
>
> There has been prior work done in previous years on package relay,
> mainly by Suhas Daftuar.
>
> Draft BIP: https://gist.github.com/sdaftuar/8756699bfcad4d3806ba9f3396d4e66a
>
> Package relay design questions: 
> https://github.com/bitcoin/bitcoin/issues/14895
>
> Recently Gloria Zhao has been advancing package relay in Bitcoin Core:
> https://gist.github.com/glozow/7064717e727a3eb27fad4f8504513add
>
> Package relay implementation
>
> Attendees seemed in agreement that enabling 2 transaction packages
> would be sufficient (at least for now) for Lightning and DLCs. A L2
> protocol should always be able to design a two step process where the
> first transaction has an effective zero fee rate and the second
> transaction sets the fee. Restricting the size of the package to 2 may
> have the cost of slightly longer confirmation times and/or slightly
> higher fees (t-bast) but it compares well to the increased
> implementation complexity of larger package sizes. Two generation:
> multi parent, single child shouldn’t introduce material implementation
> complexity over two generation: single parent, single child (glozow).
>
> Package RBF (replace-by-fee) is possible where there are two competing
> packages with competing Lightning commitment transactions in them and
> the second package is given a higher fee to attempt to get it
> confirmed before the first package. However, supporting RBF within a
> package (ie replacing a transaction in a package with a higher fee
> transaction) increases implementation complexity and makes it harder
> to reason about (glozow).
>
> rgrant raised the possibility of using two packages {A,B} and {B,C} if
> three transaction packages e.g. {A,B,C} weren’t supported but it was
> suggested it is perhaps better to just broadcast a high fee CPFP
> transaction for the {A,B} package rather than creating two packages.
> If the first package has been evicted from the mempool the {B,C}
> package wouldn’t propagate because it would be an orphan package
> (t-bast).
>
> glozow suggested that only hints (wtxids of transactions you think
> should be package validated) could be communicated rather than
> relaying the transaction themselves but there were concerns from
> others on whether these hints would successfully propagate across the
> network. Instead fee rate hints could be sent to inform a peer’s
> decision on whether it makes sense to fetch the rest of the package
> (t-bast).
>
> darosior suggested the idea of a package based CBlockPolicyEstimator
> in Bitcoin Core if CPFP is going to be increasingly used on the
> network.
>
> Witness replacement and Taproot
>
> Tapscripts can be unlimited in size so with current Taproot rules you
> could in theory go from a 100,000 vbyte witness to an empty witness.
> L2 protocols may have a UTXO shared by two parties where Alice’s
> witness for her branch is say 1,000 vbytes and Bob’s witness is only
> say 250 vbytes. Replacing Alice’s larger witness with Bob’s smaller
> witness could reduce transaction fees. For Lightning the best case is
> a Taproot key path spend (16 vbyte witness) and the worst case is
> going to be a 150 vbyte witness. Miniscript can tell you your worst
> case transaction size and this

[bitcoin-dev] Online discussion on Taproot roll out - Tuesday July 20th 17:15 UTC

2021-07-17 Thread Michael Folkson via bitcoin-dev
Hi

There is an online Zoom call (also livestreamed on YouTube) on Tuesday
July 20th at 17:15 UTC discussing Taproot roll out post activation in
November. It will be focused at developers and so discussion will be
technical but all are welcome to attend/watch.

Murch has this wiki page monitoring planned ecosystem support of P2TR
addresses and it would be great to hear from projects and businesses
that have Taproot support on their medium/long term development
roadmap or are considering it:
https://en.bitcoin.it/wiki/Bech32_adoption

Meetup link (Zoom link will be announced here):
https://www.meetup.com/BitDevsLDN/events/279041693/

Draft pre-reading link (will be finalized before Tuesday):
https://gist.github.com/michaelfolkson/0803271754f851530fe8242087859254

Thanks
Michael

-- 
Michael Folkson
Email: michaelfolk...@gmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


[bitcoin-dev] Last week's second IRC workshop on L2 onchain support and wrap up

2021-06-29 Thread Michael Folkson via bitcoin-dev
A summary of the first workshop is here:
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-June/019079.html

The focus for this second workshop was fee bumping and package relay.
For more details on package relay see:
https://github.com/ariard/L2-zoology/blob/master/workshops/package-relay-and-friends.md

The conversation log for the second workshop is here:
https://gist.github.com/ariard/32b51ecceccc5c6f647bae86d083c442

Package relay background

Package relay is potentially useful for L2 protocols to address the
inherent unpredictability of future fees. CPFP (child-pays-for-parent)
seeks to ensure say a justice transaction, in Lightning’s case, with a
lower fee, gets confirmed in a more timely manner because miners are
incentivized to include the child transaction in a block. To do so
they must include the parent transaction in that block or a preceding
block. By “packaging” the parent and the child the initiator of the
transaction(s) can ensure the miner’s mempool doesn’t initially reject
the parent transaction for having a too low fee.

There has been prior work done in previous years on package relay,
mainly by Suhas Daftuar.

Draft BIP: https://gist.github.com/sdaftuar/8756699bfcad4d3806ba9f3396d4e66a

Package relay design questions: https://github.com/bitcoin/bitcoin/issues/14895

Recently Gloria Zhao has been advancing package relay in Bitcoin Core:
https://gist.github.com/glozow/7064717e727a3eb27fad4f8504513add

Package relay implementation

Attendees seemed in agreement that enabling 2 transaction packages
would be sufficient (at least for now) for Lightning and DLCs. A L2
protocol should always be able to design a two step process where the
first transaction has an effective zero fee rate and the second
transaction sets the fee. Restricting the size of the package to 2 may
have the cost of slightly longer confirmation times and/or slightly
higher fees (t-bast) but it compares well to the increased
implementation complexity of larger package sizes. Two generation:
multi parent, single child shouldn’t introduce material implementation
complexity over two generation: single parent, single child (glozow).

Package RBF (replace-by-fee) is possible where there are two competing
packages with competing Lightning commitment transactions in them and
the second package is given a higher fee to attempt to get it
confirmed before the first package. However, supporting RBF within a
package (ie replacing a transaction in a package with a higher fee
transaction) increases implementation complexity and makes it harder
to reason about (glozow).

rgrant raised the possibility of using two packages {A,B} and {B,C} if
three transaction packages e.g. {A,B,C} weren’t supported but it was
suggested it is perhaps better to just broadcast a high fee CPFP
transaction for the {A,B} package rather than creating two packages.
If the first package has been evicted from the mempool the {B,C}
package wouldn’t propagate because it would be an orphan package
(t-bast).

glozow suggested that only hints (wtxids of transactions you think
should be package validated) could be communicated rather than
relaying the transaction themselves but there were concerns from
others on whether these hints would successfully propagate across the
network. Instead fee rate hints could be sent to inform a peer’s
decision on whether it makes sense to fetch the rest of the package
(t-bast).

darosior suggested the idea of a package based CBlockPolicyEstimator
in Bitcoin Core if CPFP is going to be increasingly used on the
network.

Witness replacement and Taproot

Tapscripts can be unlimited in size so with current Taproot rules you
could in theory go from a 100,000 vbyte witness to an empty witness.
L2 protocols may have a UTXO shared by two parties where Alice’s
witness for her branch is say 1,000 vbytes and Bob’s witness is only
say 250 vbytes. Replacing Alice’s larger witness with Bob’s smaller
witness could reduce transaction fees. For Lightning the best case is
a Taproot key path spend (16 vbyte witness) and the worst case is
going to be a 150 vbyte witness. Miniscript can tell you your worst
case transaction size and this can be used to assess the transaction
pinning risk of a bloated witness (all harding).

A future soft fork could give meaning to the annex in Taproot
(darosior) which could be used for inflating the fee rate of a
witness. Then you could have a same-txid-different-wtxid coming after
with a lower fee rate but higher vbytes size to override package
limits (ariard). But fee rate is purely a policy concept and the annex
operates at the consensus level. In addition the annex can only
increase the weight of a transaction, it cannot decrease it (harding).

Wrap up and initial goals

With regards to the goals of the workshops that were initially
announced here:
https://lists.linuxfoundation.org/pipermail/lightning-dev/2021-April/003002.html

1) 2 transactions packages sounds enough to support currently deployed
L2 protocols

Re: [bitcoin-dev] Tuesday’s IRC workshop on L2 onchain support

2021-06-22 Thread Michael Folkson via bitcoin-dev
Sure, feel free to continue on this thread for discussion of fee
sensitive timelocks. I'll start a new thread for a summary of today's
second workshop.

On Tue, Jun 22, 2021 at 7:26 PM Billy Tetrud  wrote:
>
> >  where is the current network fee rate obtained from and how is it fed into 
> > the script?
>
> It could be obtained as something like the median transaction fee rate over a 
> window of X blocks. Its something any full node could easily keep track of. 
> And as long as hour-level or day-level granularity is acceptable, I wouldn't 
> think there'd be any need to incorporate mempool information (if that were 
> even possible without introducing new attack vectors). Let me know if this 
> isn't an appropriate thread to discuss this in.
>
> On Tue, Jun 22, 2021 at 11:21 AM Michael Folkson  
> wrote:
>>
>> Hey Billy
>>
>> No, fee sensitive timelocks weren't discussed at any length in the
>> workshop. The workshops are obviously time limited but if they spur
>> future discussion and drafted proposals (whether they need soft forks
>> or not) outside of the workshops that would be great. This idea was
>> raised in the meeting by Ruben Somsen so maybe Ruben has given them
>> some thought. Making timelocks conditional on the current fee rate
>> seems challenging to me (where is the current network fee rate
>> obtained from and how is it fed into the script?) but I haven't
>> sketched out exactly how they would work.
>>
>> A reminder that the second workshop (on package relay and fee bumping)
>> starts at 19:00 UTC today (30 minutes after I've sent this, there may
>> be a delay before it is published to the mailing list).
>>
>> Thanks
>> Michael
>>
>> On Tue, Jun 22, 2021 at 7:02 PM Billy Tetrud  wrote:
>> >
>> > Thanks for the Summary Michael!
>> >
>> > It seems like fee-sensitive timelocks weren't discussed too much in the 
>> > workshop, unless I'm missing something. I also don't see any downside to 
>> > it discussed (other than that it needs a soft-fork). It seems like that 
>> > would be a great way to substantially increase the resilience of the LN to 
>> > temporary periods of fee congestion, even potentially long-running periods 
>> > that last weeks. It might even help in non-temporary fee market increases 
>> > by giving participants extra time to use some fee-bumping technique to 
>> > close or restructure their channels to compensate for the elevated fee 
>> > market.
>> >
>> > On Thu, Jun 17, 2021 at 1:16 PM Michael Folkson via bitcoin-dev 
>> >  wrote:
>> >>
>> >> The workshop was previously announced by ariard on the bitcoin-dev
>> >> mailing list here:
>> >> https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-April/018841.html
>> >>
>> >> A reminder was posted to the bitcoin-dev mailing list here:
>> >> https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-June/019068.html
>> >>
>> >> The conversation log for the workshop is here:
>> >> https://gist.github.com/ariard/5f28dffe82ddad763b346a2344092ba4
>> >>
>> >> I’ll summarize what was discussed during the meeting but please refer
>> >> to the L2 zoology repo ariard has set up for background context and
>> >> additional notes: https://github.com/ariard/L2-zoology
>> >>
>> >> General considerations
>> >>
>> >> I think it is worth first reiterating the obvious that there will
>> >> never be perfect security guarantees on network transaction fee rates
>> >> or transaction relay. Network fee rates can in theory go up to
>> >> anything (upper limit of infinity) and will always to some degree be
>> >> inherently unpredictable. In addition transaction acceptance can never
>> >> be guaranteed even if you attempt a direct connection to a miner. At
>> >> the same time L2 protocols (e.g. Lightning and DLCs) elevate
>> >> transaction propagation and inclusion in a time sensitive mined block
>> >> to a security assumption from what used to just be a usability
>> >> assumption (BlueMatt). Within those confines these workshops are
>> >> attempting to strengthen that security assumption knowing that
>> >> guaranteeing it is out of reach.
>> >>
>> >> There are considerations that blocked transaction propagation isn’t
>> >> necessarily a problem for the victim if it is also blocked for the
>> >&

Re: [bitcoin-dev] Tuesday’s IRC workshop on L2 onchain support

2021-06-22 Thread Michael Folkson via bitcoin-dev
Hey Billy

No, fee sensitive timelocks weren't discussed at any length in the
workshop. The workshops are obviously time limited but if they spur
future discussion and drafted proposals (whether they need soft forks
or not) outside of the workshops that would be great. This idea was
raised in the meeting by Ruben Somsen so maybe Ruben has given them
some thought. Making timelocks conditional on the current fee rate
seems challenging to me (where is the current network fee rate
obtained from and how is it fed into the script?) but I haven't
sketched out exactly how they would work.

A reminder that the second workshop (on package relay and fee bumping)
starts at 19:00 UTC today (30 minutes after I've sent this, there may
be a delay before it is published to the mailing list).

Thanks
Michael

On Tue, Jun 22, 2021 at 7:02 PM Billy Tetrud  wrote:
>
> Thanks for the Summary Michael!
>
> It seems like fee-sensitive timelocks weren't discussed too much in the 
> workshop, unless I'm missing something. I also don't see any downside to it 
> discussed (other than that it needs a soft-fork). It seems like that would be 
> a great way to substantially increase the resilience of the LN to temporary 
> periods of fee congestion, even potentially long-running periods that last 
> weeks. It might even help in non-temporary fee market increases by giving 
> participants extra time to use some fee-bumping technique to close or 
> restructure their channels to compensate for the elevated fee market.
>
> On Thu, Jun 17, 2021 at 1:16 PM Michael Folkson via bitcoin-dev 
>  wrote:
>>
>> The workshop was previously announced by ariard on the bitcoin-dev
>> mailing list here:
>> https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-April/018841.html
>>
>> A reminder was posted to the bitcoin-dev mailing list here:
>> https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-June/019068.html
>>
>> The conversation log for the workshop is here:
>> https://gist.github.com/ariard/5f28dffe82ddad763b346a2344092ba4
>>
>> I’ll summarize what was discussed during the meeting but please refer
>> to the L2 zoology repo ariard has set up for background context and
>> additional notes: https://github.com/ariard/L2-zoology
>>
>> General considerations
>>
>> I think it is worth first reiterating the obvious that there will
>> never be perfect security guarantees on network transaction fee rates
>> or transaction relay. Network fee rates can in theory go up to
>> anything (upper limit of infinity) and will always to some degree be
>> inherently unpredictable. In addition transaction acceptance can never
>> be guaranteed even if you attempt a direct connection to a miner. At
>> the same time L2 protocols (e.g. Lightning and DLCs) elevate
>> transaction propagation and inclusion in a time sensitive mined block
>> to a security assumption from what used to just be a usability
>> assumption (BlueMatt). Within those confines these workshops are
>> attempting to strengthen that security assumption knowing that
>> guaranteeing it is out of reach.
>>
>> There are considerations that blocked transaction propagation isn’t
>> necessarily a problem for the victim if it is also blocked for the
>> attacker. In addition some successful attacks present an opportunity
>> for the victim to divert their funds to miner fees (e.g. scorched
>> earth) ensuring the attacker doesn’t financially benefit from the
>> attack (harding). Personally I would argue neither of these present
>> much assurance to the victim. Out of conservatism one should assume
>> that the attacker has greater resources than the victim (e.g. a direct
>> line to a miner) and knowing a victim’s lost funds went to the miner
>> instead of the attacker isn’t of much comfort to the victim (other
>> than potentially presenting a disincentive for the attack in the first
>> place). This is obviously further complicated if the miner is the
>> attacker. In addition any incentive for miners to not mine
>> transactions to wait for a potential pay-all-to-fee are troubling
>> (t-bast).
>>
>> New(ish) ideas
>>
>> RubenSomsen brought up the idea of fee sensitive timelocks, they would
>> need a soft fork. ariard briefly discussed the idea of a transaction
>> relay overlay network. harding stated his opinion that we should be
>> leaning more on miners’ profit incentive rather than attempting to
>> normalize mempool policy (e.g.
>> https://lists.linuxfoundation.org/pipermail/lightning-dev/2020-April/002664.html).
>> t-bast raised the prospect of mining pools exposing public APIs to
>> push them transa

Re: [bitcoin-dev] [Lightning-dev] Waiting SIGHASH_ANYPREVOUT and Packing Packages

2021-06-21 Thread Michael Folkson via bitcoin-dev
I don't want to divert from the topic of this thread ("Waiting
SIGHASH_ANYPREVOUT and Packing Packages"), we can set up a separate
thread if we want to discuss this further. But just a couple of
things.

> Browsing quickly through Greg's piece, a lot of the reasoning is based on 
> FOSS experience from Linux/Juniper, which to the best of my knowledge are 
> centralized software projects ?

That is Greg's point. If Linux doesn't look further than the current
version and the next version with a BDFL (Linus) a decentralized
project like Bitcoin Core is going to struggle even more with longer
term roadmaps.

I think it is important to discuss what order changes should be
attempted but I agree with David that putting specific future version
numbers on changes is speculative at best and misleading at worst. The
record of previous predictions of what will be included in particular
future versions is not strong :)

> What was making sense when you had like ~20 Bitcoin dev with 90% of the 
> technical knowledge doesn't scale when you have multiple second-layers 
> specifications

It is great that we have a larger set of contributors in the ecosystem
today than back in say pre 2017. But today that set of contributors is
spread widely across a number of different projects that didn't exist
pre 2017. Changes to Core are (generally) likely to be implemented and
reviewed by current Core contributors as Lightning implementation
developers (generally) seem to have their hands full with their own
implementations.

I think we can get the balance right by making progress on this
(important) discussion whilst also maintaining humility that we don't
know exact timelines and that getting things merged into Core relies
on a number of people who have varying levels of interest and
understanding of L2 protocols.

On Mon, Jun 21, 2021 at 9:13 AM Antoine Riard  wrote:
>
> Hi Dave,
>
> > That might work for current LN-penalty, but I'm not sure it works for
> eltoo.
>
> Well, we have not settled yet on the eltoo design but if we take the later 
> proposal in date [0], signing the update transaction with SIGHGASH_ANYPREVOUT 
> lets you attach non-interactively a single-party controlled input at 
> broadcast-time. Providing the input amount is high enough to bump the 
> transaction feerate over network mempools, it should allow the tx to 
> propagate across network mempools and that way solve the pre-signed feerate 
> problem as defined in the post ?
>
> >  If Bitcoin Core can rewrite the blind CPFP fee bump transaction
> > to refer to any prevout, that implies anyone else can do the same.
> > Miners who were aware of two or more states from an eltoo channel would
> > be incentivized to rewrite to the oldest state, giving them fee revenue
> > now and ensuring fee revenue in the future when a later state update is
> > broadcast.
>
> Yep, you can add a per-participant key to lockdown the transaction and avoid 
> any in-flight malleability ? I think this is discussed in the "A Stroll 
> through Fee-Bumping Techniques" thread.
>
> > If the attacker using pinning is able to reuse their attack at no cost,
> > they can re-pin the channel again and force the honest user to pay
> > another anyprevout bounty to miners.
>
> This is also true with package-relay where your counterparty, with a better 
> knowledge of network mempools, can always re-broadcast a CPFP-bumped 
> malicious package ? Under this assumption, I think you should always be ready 
> to bump our honest package.
>
> Further, for the clarity of the discussion, can you point to which pinning 
> scenario you're thinking of or if it's new under SIGHASH_ANYPREVOUT, describe 
> it ?
>
> > Repeat this a bunch of times and the honest user has now spent more on fees 
> > than their balance from the
> closed channel.
>
> And sadly, as this concern also exists in case of a miner-harvesting attack 
> against LN nodes, a concern that Gleb and I expressed more than a year ago in 
> a public post [1], a good L2 client should always upper bound its fee-bumping 
> reserve. I've a short though-unclear note on this notion of fee-bumping upper 
> to warn other L2 engineers  in "On Mempool Funny Games against Multi-Party 
> Funded Transactions"
>
> Please read so:
>
> "A L2 client, with only a view of its mempool at best, won't understand why
>  the transaction doesn't confirm and if it's responsible for the
>  fee-bumping, it might do multiple rounds of feerate increase through CPFP,
>  in vain. As the fee-bumping algorithm is assumed to be known if the victim
>  client is open source code, the attacker can predict when the fee-bumping
>  logic reaches its upper bound."
>
> Though thanks for the recall! I should log dynamic-balances in RL's 
> `ChannelMonitorUpdate` for our ongoing implementation of anchor, updating my 
> TODO :p
>
> > Even if my analysis above is wrong, I would encourage you or Matt or
> someone to write up this anyprevout idea in more detail and distribute
> it before you promote i

[bitcoin-dev] Tuesday’s IRC workshop on L2 onchain support

2021-06-17 Thread Michael Folkson via bitcoin-dev
The workshop was previously announced by ariard on the bitcoin-dev
mailing list here:
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-April/018841.html

A reminder was posted to the bitcoin-dev mailing list here:
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-June/019068.html

The conversation log for the workshop is here:
https://gist.github.com/ariard/5f28dffe82ddad763b346a2344092ba4

I’ll summarize what was discussed during the meeting but please refer
to the L2 zoology repo ariard has set up for background context and
additional notes: https://github.com/ariard/L2-zoology

General considerations

I think it is worth first reiterating the obvious that there will
never be perfect security guarantees on network transaction fee rates
or transaction relay. Network fee rates can in theory go up to
anything (upper limit of infinity) and will always to some degree be
inherently unpredictable. In addition transaction acceptance can never
be guaranteed even if you attempt a direct connection to a miner. At
the same time L2 protocols (e.g. Lightning and DLCs) elevate
transaction propagation and inclusion in a time sensitive mined block
to a security assumption from what used to just be a usability
assumption (BlueMatt). Within those confines these workshops are
attempting to strengthen that security assumption knowing that
guaranteeing it is out of reach.

There are considerations that blocked transaction propagation isn’t
necessarily a problem for the victim if it is also blocked for the
attacker. In addition some successful attacks present an opportunity
for the victim to divert their funds to miner fees (e.g. scorched
earth) ensuring the attacker doesn’t financially benefit from the
attack (harding). Personally I would argue neither of these present
much assurance to the victim. Out of conservatism one should assume
that the attacker has greater resources than the victim (e.g. a direct
line to a miner) and knowing a victim’s lost funds went to the miner
instead of the attacker isn’t of much comfort to the victim (other
than potentially presenting a disincentive for the attack in the first
place). This is obviously further complicated if the miner is the
attacker. In addition any incentive for miners to not mine
transactions to wait for a potential pay-all-to-fee are troubling
(t-bast).

New(ish) ideas

RubenSomsen brought up the idea of fee sensitive timelocks, they would
need a soft fork. ariard briefly discussed the idea of a transaction
relay overlay network. harding stated his opinion that we should be
leaning more on miners’ profit incentive rather than attempting to
normalize mempool policy (e.g.
https://lists.linuxfoundation.org/pipermail/lightning-dev/2020-April/002664.html).
t-bast raised the prospect of mining pools exposing public APIs to
push them transactions directly.

The impact of changes to Bitcoin Core on L2 protocols

Some changes to Core (e.g. some privacy improvements) can conflict
with the goal of minimizing transaction propagation times.
Chris_Stewart_5 raised the idea of a nightly bitcoind build to give L2
developers a way to write regression tests against the latest builds
of bitcoind. He added that L2 devs should write automated regression
test suites against bitcoind exposed RPC commands. t-bast would like a
bitcoind “evicttx” RPC to remove a transaction from the mempool on
regtest.

Full RBF

In advance of the workshop ariard posted to the mailing list a
proposal for full RBF in a future version of Bitcoin Core:
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-June/019074.html

Progress in this direction has been attempted in the past (e.g.
https://github.com/bitcoin/bitcoin/pull/10823) BlueMatt pointed out
that even with full RBF it is trivial to create mempool partitions. As
long as RBF has a fee rate increase minimum an attacker can trivially
split the mempool by broadcasting two conflicting transactions with
the same fee.

ariard plans to contact businesses (e.g. Lightning onboarding services
relying on zero confirmations) to check that this possible eventual
move to full RBF doesn’t present a problem for them. There could well
be engineering work required in advance of the possible change being
made.

Next week’s meeting

Next week’s meeting (Tuesday 22nd June, 19:00 UTC,
#l2-onchain-support, Libera) will be on fee bumping and package relay
that glozow has recently been working to advance in Bitcoin Core.

-- 
Michael Folkson
Email: michaelfolk...@gmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


[bitcoin-dev] Update on Taproot activation releases

2021-04-16 Thread Michael Folkson via bitcoin-dev
I discussed in the last Taproot activation meeting notes the plans for
an alternative release to Bitcoin Core with the Speedy Trial
activation mechanism (BIP 8, consistent use of block height) followed
by a BIP 8(1 year, LOT=true). This has now been released (version 0.1)
under the name "Bitcoin Core 0.21.0-based Taproot Client".

The build is available from https://bitcointaproot.cc/ and the GitHub
repo is here: https://github.com/BitcoinActivation/bitcoin

Luke Dashjr (Bitcoin Core contributor, Bitcoin Knots, UASF) is
contributing to this release but there are a number of other
pseudonymous individuals contributing to it too. In my attempted
neutral stance I would say that it is not as thoroughly reviewed as an
upcoming Bitcoin Core release will be but if you support a consistent
use of block height (BIP 8 Speedy Trial) followed by a BIP 8 (1 year,
LOT=true) I would encourage you to review and test it. Of course there
may well be future version releases of "Bitcoin Core 0.21.0-based
Taproot Client". If you are unable to review the code yourself but you
support this effort it may be worth waiting for a future version
before running it or ensuring you update to the latest version when it
is released.

Moving onto Bitcoin Core and other alternative Bitcoin
implementations. As expected Bitcoin Core is proceeding with Speedy
Trial (mix of MTP and block height, BIP to be decided). If Speedy
Trial fails to activate on this Core release there is no follow up
activation mechanism. That is not to say there will never be one in a
Core release later in the year but as it stands there is no follow up.
Bitcoin Core PR 21377 has been merged and the activation parameters
(Bitcoin Core PR 21686) have also been merged. As discussed in my
previous email you would expect Speedy Trial to activate (or not
activate) on both Bitcoin Core and Bitcoin Core 0.21.0-based Taproot
Client. However, there is a small possibility it activates on one but
not the other. This is due to Bitcoin Core going with a mix of MTP and
block height and Bitcoin Core 0.21.0-based Taproot Client going with
consistent block height. Assuming they both activate due to Speedy
Trial they share the same activation block height of 709632
(approximately November 12th 2021). If Speedy Trial fails to activate
Bitcoin Core 0.21.0-based Taproot Client will attempt to enforce miner
signaling in November 2022 (approximately, it is defined by block
height). To be clear that is November **2022**.

There are of course alternative Bitcoin implementations to Bitcoin
Core. Jeremy Rubin has attempted to inform the maintainers of some
alternative Bitcoin implementations of the finalized activation
parameters in Core:
https://github.com/bitcoin/bips/pull/1104#issuecomment-820011540

At the time of writing Laolu Osuntokun (roasbeef, maintainer of btcd)
has ACKed the parameters and stated "I think we'll be able to get
everything reviewed+tested (likely adding signet support along the
way) by November." Piotr Narewski (maintainer of Gocoin) has also
notified that he's seen the parameters.

In terms of future meetings on the ##taproot-activation Freenode
channel there is only one meeting currently booked. That is on Tuesday
April 20th at 19:00 UTC and the meeting host will be Jeremy Rubin. The
mailing list has yet to receive an agenda but I suspect it will be
sent at some point in advance of the meeting.

As always if there are any errors or perceived bias in my attempts to
inform please respond. Ideally I would like all users to be informed
of the facts so they can make up their mind on what to run and what
they spend time reviewing and testing. Of course tensions are running
higher than normal but that is not an excuse to spread factual
inaccuracies.

-- 
Michael Folkson
Email: michaelfolk...@gmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


[bitcoin-dev] Yesterday's Taproot activation meeting on IRC

2021-04-14 Thread Michael Folkson via bitcoin-dev
Yesterday there was a Taproot activation meeting on the
##taproot-activation Freenode channel.

The agenda was posted in advance to the mailing list by BitcoinMechanic.
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-April/018769.html

The conversation log is here:
http://gnusha.org/taproot-activation/2021-04-13.log

Discussion focused on an alternative release to Bitcoin Core with the
naming of the release not yet finalized. Some participants expressed
concern of having "Bitcoin Core" in the name e.g. "Bitcoin Core +
Taproot" as it would be confusing to users and give them the mistaken
impression that it had been signed off by Bitcoin Core maintainers.

The activation mechanism(s) for this alternative release is Speedy
Trial (BIP 8, consistent use of block height) followed by BIP 8 (1
year, LOT=true). The BIP 8 (1 year, LOT=true) is only started assuming
Taproot hasn't activated during the Speedy Trial deployment.

Draft release notes for this alternative release are here:
https://docs.google.com/document/d/1Uhn1SEDMAqQkzkPZ4B5lPTSjUFEXKPndt_oBI4eUm7A/edit?usp=sharing

The GitHub repo for this alternative release is here:
https://github.com/BitcoinActivation/bitcoin

To compare this to the most likely activation mechanism(s) in Bitcoin
Core at this point. If the Core PR #21377 is merged in its current
form then the activation mechanism in Bitcoin Core will be Speedy
Trial (BIP to be decided, mix of block height and MTP). The starttime
and timeout will use MTP and the activation point will use block
height.

The Core PR #21377 is here: https://github.com/bitcoin/bitcoin/pull/21377

In addition a BIP PR for the Core release has been opened here with
suggested finalized parameters:
https://github.com/bitcoin/bips/pull/1104

If these plans continue as is Bitcoin Core and this alternative
release won't be entirely compatible due to startheight and timeout
being defined according to MTP and block height respectively. In the
majority of cases they should both activate at the same block height
(or not activate) but there are unlikely edge cases where one
activates and one doesn't (in addition to a possible timewarp attack
on MTP).

The use of MTP in Speedy Trial for Bitcoin Core has been discussed
extensively and reviewers' opinions are summarized here:
https://github.com/bitcoin/bitcoin/pull/21377#issuecomment-818758277

>From this point on I will try to stay as neutral as I can and just
summarize the facts to keep this list informed but anyone can review
my past mailing list posts to get my personal views if you are
interested.

As a reminder anyone can host a meeting on the ##taproot-activation
channel. All they need to do is contact me to book a time slot and
ideally post an agenda to this mailing list in advance of the meeting.
That meeting host will have the ability to issue warnings and if
necessary kick participants if the meeting host feels they are
disrupting the meeting or diverting conversation from the agenda.

-- 
Michael Folkson
Email: michaelfolk...@gmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] Taproot activation meeting on IRC - Tuesday 13th April 19:00 UTC

2021-04-10 Thread Michael Folkson via bitcoin-dev
Hi Bitcoin Mechanic

I will attend but I will be looking at Core PR #21377 over the next
couple of days and I would encourage other reviewers to review that PR
too. If that PR is merged into Core I would strongly recommend any
alternative release be fully compatible with the activation parameters
in Core.

We can discuss in the meeting what we think the cut off date should be
for when Core should no longer be a consideration. Personally I think
(and hope) we will see progress on #21377 in the coming days.

For the sake of the mailing list Bitcoin Mechanic has set up a meeting
to discuss an alternative release to Core with Taproot activation
code.

Thanks
Michael

> Taproot activation meeting on IRC - Tuesday 13th April 19:00 UTC

> The focus of the meeting will be ratifying the Taproot activation plan 
> previously discussed at the March 16th meeting (aka 2021-03 Plan Y as 
> summarized here):

https://docs.google.com/spreadsheets/d/1K3pmH09yXLTHGV3wqFZGR3ei7QVwtdEwo0PjI2NHD3w/edit#gid=0

> While there was never any consensus reached on the LOT parameter, there 
> appears to be consensus on BIP8 and the remaining parameters, and more than 
> sufficient support for LOT=True to proceed safely.

> Miners will have 18 months in which to signal and accelerate activation. If 
> not, taproot will activate regardless.

> With a majority of the economy running this it will guarantee eventual 
> lock-in of taproot with the smallest chance of a chain split.

> As a reminder, the channel is also open for ongoing discussion 24/7, and 
> there is a web chat client here:

> https://webchat.freenode.net/?channel=##taproot-activation

> Best,

> Bitcoin Mechanic

> Sent with [ProtonMail](https://protonmail.com/) Secure Email.


-- 
Michael Folkson
Email: michaelfolk...@gmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] Update on "Speedy" Trial: The circus rolls on

2021-04-10 Thread Michael Folkson via bitcoin-dev
In my previous email in response to David Harding I said:
"I think you have consistently said it doesn't matter too much
although you did previously express a preference for block height."

This was based on:
"My preference would be for whatever solution is most preferred by
reviewers." March 7th
https://github.com/bitcoin/bitcoin/pull/21377#issuecomment-792220340

With a greater number of PR comments preferring block height at this
point I concluded that this equated to a preference for block height.
I'm happy to correct my previous statement having spoken to David.
This did not equate to a preference and David was entirely neutral.

For the sake of the mailing list (even though David didn't do so)
expressing preferences on a PR is absolutely fine. It is fine to say
"This is my preference" without NACKing a PR or NACKing a technical
decision. I (and many others) have done this. Maintainers can look
through the PR, read the rationales for the preferences and still
consider merging the PR. However, well reasoned NACKs (e.g. Concept,
Approach NACKs) make it difficult for maintainers to merge a PR
especially if they are from long term contributors. If you oscillate
from a preference one way to a full on NACK the other way to "Let's
coin flip it" with minimal rationale you are making maintainers' jobs
even more difficult. You are also wasting the time of reviewers who
don't know which PR to review and which PR stands a better chance of
being merged. You are also (unintentionally) increasing the risk of
bugs not being caught because the PR that eventually gets merged
hasn't received the review it could have.

I have been criticized on IRC for the tone of my emails. To be clear I
take Taproot activation seriously, I take the Core review process
seriously and I take keeping the community informed of the likely
timetable seriously. I'm not impressed by people wasting my time and
I'm doubly not impressed by people wasting other Core reviewers' time
and maintainers' time. If that informs my tone so be it. This is not
directed towards David who has worked hard to make progress with
Taproot activation, hasn't wasted anyone's time and I have a huge
amount of respect for.

In terms of the latest state of play with Core, there is an open Core
PR for Speedy Trial (#21377) that appears to be our best chance of
getting activation code merged into Core. The more testing and code
review this Core PR receives the better. If it continues to make
progress the discussion will then need to move onto a timetable.

On Fri, Apr 9, 2021 at 12:19 PM Michael Folkson
 wrote:
>
> I have no problem with coin tosses to decide for example shed colors
> (an illustrative example discussed by copumpkin, roasbeef on IRC). In
> this kind of example everyone should recognize it doesn't matter and
> Approach ACK two competing PRs. No one should be NACKing or Approach
> NACKing a PR based on shed color. If the maintainers don't care about
> the shed color either then they are free to use a coin toss to decide
> which PR to merge. In this example there shouldn't be any NACKs,
> Approach NACKs or technical opposition from regular Core reviewers.
> NACKs are not meant to be used for shed colors.
>
> However, in this example the organizer of the coin toss had previously
> NACKed one of the options (block height, though his position seems to
> change by the day) and others have NACKed MTP. I think you have
> consistently said it doesn't matter too much although you did
> previously express a preference for block height.
>
> I don't want to belabor the point but can we avoid even suggesting
> using coin tosses on consensus code decisions in future please? It
> makes a mockery of those who spent time understanding the technical
> considerations and have spent months or years working on soft fork
> activations. Even in the shed color example, leave it to the
> maintainers to decide whether a coin toss is appropriate rather than
> creating a circus around a coin toss in a public meeting where the PR
> authors weren't present and no Core maintainers were present.
>
> I understand the frustration and I understand the desire to break
> deadlocks. But if the coin toss organizer hadn't previously NACKed one
> of the options (block height) we may have avoided getting into this
> deadlock in the first place.
>
> Your recent review notes of PR #21377 look great and are proving very
> helpful to me as I look at the PR.
> https://gist.github.com/harding/e622323eaf80d620826a7cb74ab3fb40
>
> Thanks
> Michael
>
> On Thu, Apr 8, 2021 at 10:57 PM David A. Harding  wrote:
> >
> > On Thu, Apr 08, 2021 at 12:40:42PM +0100, Michael Folkson via bitcoin-dev 
> > wrote:
> > > So the latest circus

Re: [bitcoin-dev] Update on "Speedy" Trial: The circus rolls on

2021-04-09 Thread Michael Folkson via bitcoin-dev
I have no problem with coin tosses to decide for example shed colors
(an illustrative example discussed by copumpkin, roasbeef on IRC). In
this kind of example everyone should recognize it doesn't matter and
Approach ACK two competing PRs. No one should be NACKing or Approach
NACKing a PR based on shed color. If the maintainers don't care about
the shed color either then they are free to use a coin toss to decide
which PR to merge. In this example there shouldn't be any NACKs,
Approach NACKs or technical opposition from regular Core reviewers.
NACKs are not meant to be used for shed colors.

However, in this example the organizer of the coin toss had previously
NACKed one of the options (block height, though his position seems to
change by the day) and others have NACKed MTP. I think you have
consistently said it doesn't matter too much although you did
previously express a preference for block height.

I don't want to belabor the point but can we avoid even suggesting
using coin tosses on consensus code decisions in future please? It
makes a mockery of those who spent time understanding the technical
considerations and have spent months or years working on soft fork
activations. Even in the shed color example, leave it to the
maintainers to decide whether a coin toss is appropriate rather than
creating a circus around a coin toss in a public meeting where the PR
authors weren't present and no Core maintainers were present.

I understand the frustration and I understand the desire to break
deadlocks. But if the coin toss organizer hadn't previously NACKed one
of the options (block height) we may have avoided getting into this
deadlock in the first place.

Your recent review notes of PR #21377 look great and are proving very
helpful to me as I look at the PR.
https://gist.github.com/harding/e622323eaf80d620826a7cb74ab3fb40

Thanks
Michael

On Thu, Apr 8, 2021 at 10:57 PM David A. Harding  wrote:
>
> On Thu, Apr 08, 2021 at 12:40:42PM +0100, Michael Folkson via bitcoin-dev 
> wrote:
> > So the latest circus act is apparently a technical decision made by a
> > coin toss [organized by] Jeremy Rubin
>
> Actually, the coin toss was my idea[1], used a bash oneliner I wrote[2],
> and is the same method I've been using in Bitcoin-related discussions
> for over seven years[3] to help people transition from ancillary arguments
> back to working on the things they really think are important.
>
> I proposed the coin toss because I understood that both the MTP and the
> height approaches required tradeoffs that were, to a certain degree,
> unresolvable to the best of our current knowledge.  MTP is harder to
> analyze for unexpected edge cases; heights would create extra work for
> seasoned developers working on post-taproot soft forks.  MTP would
> require developers of currently-planned UASF software either do extra
> work or wait to release their software; heights don't guarantee a
> minimum amount of time for a large number of economic full nodes to
> upgrade.
>
> Different people gave different weights to the different tradeoffs.  In
> cases like this where there's no known way to eliminate the tradeoffs
> and no way to objectively rank them, I think it's better to begin
> working on something concrete than it is to try to persuade everyone to
> adopt the same subjective ranking of the tradeoffs---or, as the IETF
> published in RFC7282:
>
> "There are times where the result of [an informal open-ended
> conversation] is a pretty even split.  In practical terms, that
> means it doesn't matter where the chair starts the discussion.  And
> in fact, we've had working groups where a coin flip decided which
> proposal to start with.  That doesn't mean that the coin flip
> determined the outcome; if a fatal technical flaw was found in the
> solution that won the coin flip, it is still incumbent upon the
> group to address the issue raised or abandon that solution and find
> another.  Rough consensus on the technical points, in the end, is
> always required.  Any way to find a place to start, be it the hum or
> the coin flip, is only getting to the beginning of the discussion,
> not the end."
>
> As Jeremy wrote, in this occassion, we didn't actually need the coin
> toss.  The authors of the two PRs we were considering found a compromise
> solution that seems to be good enough for both of them and which so far
> seems to be good enough for the handful of people who agreed to the coin
> toss (plus, it seems, several others who didn't agree to the toss).
>
> In short, I think the coin toss was a good attempt.  Although we didn't
> use its results this time, I think it's something we should keep in our
> toolkit for the futur

[bitcoin-dev] Update on "Speedy" Trial: The circus rolls on

2021-04-08 Thread Michael Folkson via bitcoin-dev
I will continue to update the list on the latest developments as I see
them. That's all I can do.

So the latest circus act is apparently a technical decision made by a
coin toss. The rationale being that this discussion on using block
height vs a mix of block height and MTP was bikeshedding all along.

Here's a short abridged timeline on the views on block height vs MTP
of the organizer (Jeremy Rubin) of that coin toss:

March 8th: "I have a preference for fully height based design,
correct." https://github.com/bitcoin/bitcoin/pull/21377#issuecomment-802396191

March 24th: "There are two NACKs, one (luke-jr) against MTP, one
(jeremyrubin) against height.”
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-March/018715.html

April 6th: "The following folks in the meeting agreed to abide by the
flip jeremyrubin"
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-April/018742.html

April 7th: "So @achow101 is correct that it is not the coin flip which
made the decision."
https://github.com/bitcoin/bitcoin/pull/21393#issuecomment-815388126

Please note on March 24th the only person NACKing block height in that
meeting was Jeremy Rubin. He has gone from preferring block height, to
NACKing block height, to thinking this discussion all along was
bikeshedding and worthy of a coin flip to admitting the coin flip was
theater.

All of this makes me extremely uncomfortable and I dread to think what
individuals and businesses all over the world who have plans to
utilize and build on Taproot are making of all of this. As an
individual I would like to distance myself from this circus. I will
try to keep the mailing list informed though of further developments
re Speedy Trial in Core or progress on an alternative client.

There are two StackExchange answers here on block height vs MTP, one
by David Harding and one by myself for those that are interested in
the technical considerations.
https://bitcoin.stackexchange.com/questions/103854/should-block-height-or-mtp-or-a-mixture-of-both-be-used-in-a-soft-fork-activatio

-- 
Michael Folkson
Email: michaelfolk...@gmail.com
Keybase: michaelfolkson
PGP: 43ED C999 9F85 1D40 EAF4 9835 92D6 0159 214C FEE3
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


  1   2   >