pull down to refresh
You mention expiration exactly one in the above write-up, and you fail to make a case for it being important. Mempool expiration is just a local, per-node, thing they kicks out transactions after a few weeks (two IIRC). How exactly is that relevant to an HTLC, which typically expires in a day or so max? Secondly, I don't see any way that rebroadcasting could be abused. The attacker triggering the cycling attack has to broadcast fee paying transactions, just like any other replacement. It's no different than using up bandwidth in any other way.
I know the write-up itself is not super explicit on expiration. There is a section "Another Attack Vector: Transaction Expiration Time" in the paper.
When you write a disclosure report on an unfixed vuln, the goal is not to come with a complete handbock for script kiddies on how to exploit it. The goal is to point out what is broken.
Let's re-explain a replacement cycling attack on a Lightning channel, with Alice and Bob.
Alice broadcasts her commitment tx with an outbound HTLC and a 2nd stage timeout tx.
Bob replaces out Alice's timeout with a preimage tx. Then replaces the preimage tx with another tx (let's call it the "sweep") on top of an UTXO unrelated to the chan.
If the "sweep" is on top of a soon-to-be-expired parent tx (2 weeks by default), all the contributed fees to kickout Alice's timeout tx is gone out of the mempool.
Bob does not pay anymore for each replacement of Alice’s timeout tx.
Rebroacasting can be abused in the miner-setting, as whatever the altruistic rebroadcast timing, the junk branch can still be there and a better replacement included in the adversary's block template.
Meanwhile, every time the attacker needs to perform the attack to remove the target from mempools yet again, they're spending money.
Have a look on the second trick playing on mempool expiration time (
CtxMemPool::Expire()
) that allows an attacker to dwarf the money spent to almost none. This is more severe than one thing at first sight.I’m still very doubtful on altruistic re-broadcasting to solve that kind of issues, namely due to the open nature of the altruistic bandwidth being also abused by an adversarial LN counterparty or miner. Though yes I forgot to mention altruistic re-broadcasting in the report as one line of solution that deserves more analysis in being able to fix or not RCA-like issues.
This is 100% the point the “trust me bro committee”.
Let’s add a bit more of fact-based context. From my experience I don’t think the majority of Lightning developers and engineers contributing to the protocol development are woke, by what we usually understand under those terms. There is a clear vocal minority embodying wokeness, of which I think Mr. Corallo and its utmost superior Mr. Dorsey are constitutive (not even all the folks at Spiral or Block Inc in my opinion, some are clearly not woke). I’ve met Mr. Dorsey in-person too in the past, so I’m talking with good knowledge of the facts.
Of course, I do not question one’s to hold political opinion including woke ones, especially in the US with the 1st Amendment, as long it does not interfere with the professional domain and conversations about objective technical reasons.
Now among those silent Lightning developers and engineers, given the current majority mode of funding of Bitcoin open-source large, i.e the research grants and other similar type of employments, most of those silent Lightning engineers are fearing to speak up on those issues, or at least express what they’re really thinking in public by some anxiety to be singled out when it’s time of their next open-source grant renewal (— or find their next job, potentially at Block Inc). That’s one fundamental issue with how grants are allocated today, the criteria of allocations are very nebulous or opaque (I can think only non-profit org that start to be more transparent on how they’re allocating each grant individually). So generally it helps if you have “friends” in the open-source grant committee to get your new grants for the ones making a career in bitcoin open-source development (or speaking more frankly to do the “sucker”). Let’s remind the very active role that Mr. Dorsey is playing in the funding of the Bitcoin open-source stage (somehow to his positive credit, it’s not a “black-and-white” situation).
To this phenomena of the youngest Lightning protocol devs being reticent to express on those issues by apprehension of some fireback on their professional careers, there is the other phenomena of the “Old Guard” of historic developers on the Bitcoin Core implementation, which have seen their legal fees covered by the Bitcoin Defense Legal Fund in the series of CSW cases, this initiative also being partially funded by Mr. Dorsey.
So in my view this group of people, which are technically skilled, with some years of veteranship to express themselves with more depth and breadth on open-source culture are also deliberately staying silent on those issues (apart of one or two from them), to not seing themselves excluded from being legally represented in the still finishing series of CSW cases (here more likely a “self-chilling” effect than a threat that has been effectively pronounced).
Back to the topic of wokeness, the problem with this philosophy where its advocates are ready to commit bunch of tactics (phone calls in private, self-appointed morally righteous committees, private admonestations to the “code of conduct” penitents, usage of a double-standard to appreciate “moral” infringment, etc) it doesn’t fly very well under the spotlight and publicity. There are reasons all the woke measures have generally lose in front of US courts, being in 1st instances or circuits of appeal. Blue or red juges they’re fundamentally used to the notion of “due process”. In the meanwhile, a vocal minority of developer(s) and stakeholder(s) is sustaining a deleterious culture in bitcoin open-source stage…
That’s the frank state of things under my view — And why I think it’s indeed very interesting to have a US court of justice have a say on what “decentralization” effectively means in an open-source project by litigating Mr. Corallo.
Let’s give more context.
If you take the series of CSW cases in the UK, what effectively did stop him of claiming he’s Satoshi and that Bitcoin Core developers as a group owed him fiduciary duties and other dubious claims, was indeed another counter-lawsuit (the COPA one), dragging him in front of courts.
Be certain, I’ve said multiple times in public in the past that CSW is clearly a douchebag as you said so, and now I can a say a proven fraud in claiming he’s Satoshi.
More anecdotally, in the feud among Matt Corallo and myself, he was the first to make more or less veiled threats to drag people non-complying to the rust-lightning code of conduct in front of court of justice, here in 2022: https://github.com/lightningdevkit/lightningdevkit.org/pull/184#issuecomment-1368126430
So why there would be a “double standard” among bitcoin devs, some for which it’s okay to announce the intent to open pursuits in front of court of justice, and some for which it’s not ? I’ll let you come with a justification, because I cannot see one.
Now, on the “courts are for real crimes”, let’s obviously keep a sense of proportion. This is _not _ a claim there has been something penally serious that has been committed such as murders, rapts, human trafficking or mass terrorism. We’re only talking about an inter-personal conflict among 2 professionals developers in a quite young industry with very few social norms. Courts of justice also usually intervene in far more minor legal cases in societies, such as when 2 neighbors disagree on where is exactly the physical limit between their 2 private properties, if their respective title deeds are unclear.
Beyond, I can certainly see among the bitcoiners, especially ones with a anarchistic philosophical lean, an in-grained suspicion about the court of justice as a legitimate human institution in itself, or as pure emanation of the Nation-State. Of course, court of justice are not perfect and there are only a very pragmatic way to appease human conflicts. For your wider personal culture, historically courts of justice have not always been a monopoly of the Nation-State, in the past churches and merchant guildes have been determinant in the formation of certain areas of laws (— I do not wish to be pedantic here, on the other hand the history of judicial institutions is a domain rarely studied).
I’ll shrug on your pun on “Be a man, not a kid, only kids go to cry in a court”, my virility is sufficiently fine to not have reticence in the need to not go to court of justice to prove I’m a “real” man. More sincerely, I don’t know you though might I observe that pointing out that courts are reserved for “kids" is more symptomatic of the lack of comprehension of the daily role played by court of justice in solving conflicts in a civilized way in modern democratic societies.
On your qualification that those issues are only “stupid shit”, I think this your right to use such terminology, like it’s my right to go to court if I think this “stupid shit” is sufficiently serious to deserve a judgement. Zooming out, I’ve technically contributing for years in the bitcoin open-source field, I have worked for or with many open-source organizations in this industry, I’ve seen some being setup and built under my eyes, so I’m more in the position of an “insider” to gauge that something is culturally broken and act in consequence.
So to conclude, I’m not convinced by your position, neither by what I understand as the expression of solving conflicts among professional and civilized adults in the bitcoin world.
I’m not the one who started to advocate the establishment of code of conduct or moderation rules among bitcoin open-source projects, even if I’m still estimating civility and courtesy in online conversations.
One problem is if you start to think that other human beings should act morally in some way, this doesn’t work if your personal actions as a self-appointed enforcement officer of said moral norms are not consistent with your words.
That’s socially known as hypocrisy, to not even couch the drama in more precise legal terms.
There always have been disputes and conflicts among Bitcoiners (cf. the block size war).
In my humble opinion, while I have not been active into it, the dismay of the so-called “block size war”, have been the uttermost self-conviction of actors on both side to think they were representing the camp of “Good” and the other camp the “Evil”, or that one camp thought they detained the monopole of truth.
The advantage of going to courts of justice, it’s a century-old well-established process, which has internalized in its unfolds that social life isn’t “black-or-white”.
Sadly, it’s a phenomena that we’re seeing far too often with online internet forums, as the tactic of loudly claiming to represent the camp of “Good” is very cheap rhetoric to try to gain the conviction of the online forums audience.
By its nature, modern online forums are not communication mediums favoring deep reflections and careful consideration, there people usually prefer to resume a complex situation with simple GIFs and other memes.
This is a good question.
I should have precised inter-personal conflicts among devs, not technical consensus ones. On the technical philosophy, I think the people I’m singling out in my post are in agreement most of the time with my ideas, and vice-versa.
The debate or present conflict is on the conduct of the janitorial maintenance of the public communication channels at large, where Bitcoin domain experts are having usual conversations on technical consensus, while those channels being abused by some to damage one’s professional reputation.
Those channels are shared among all and usually administratively transferred among generations of devs on technical merits criteria. This is consistent with the claim that the Bitcoin development is the "private property” of no one. Otherwise that would mean all the discourse about “decentralization” of Bitcoin is baseless.
The problem of Faketoshi was not going to courts. In democratic societies where the rule of law is reigning this is the norm. The problem with Faketoshi a.k.a CWS was him producing a massive amounts of forged evidences, lying repeatedly in front of judge and engaging in fantasist stories about the past.
Beyond, there was a prominent bitcoin dev, far more veteran than I am, that have been to courts in the past years to defend his own professional reputation against allegations of a recognized applied cryptographer. I do not exactly remember the outcome in this case, though courts records are usually public, and one can go to read them.
Thanks to remind me my own words.
I do think the last time I wrote and tested bitcoin code was yesterday and the last time I reviewed bitcoin consensus changes were during the last weeks.
For the reasons motivating any lawsuit against another developer this will be explained in the lawsuit itself, and by default the courts of justice are public.
This is contrary to the emails I have received from the self-appointed lightning code of conduct, of which said emails are received in private.
Publicity is good as any interested bitcoin media will be able to know more.
Sadly, bitcoin developers do not have other ways of solving conflits among themselves rather than old school courts of justice.
One can do a lawsuit with one hand and keep building with the other one.
“Who watch the watchmen ?”
I don’t deny that ossification has its advantage, as somehow for the hobbyist bitcoiner less software changes give more time to read, test and understand them. Somehow, the point of my article is drawing the attention on FOSS domain experts who are under a principal-agent situation who have turn “paid professional” and then who have to justify the financial resources dedicated to pay their salaries, with some incentives misalignment with the end-users. When you start to be paid for doing FOSS software, objectively this becomes a bit less free. And then they can be obviously enticed to make the whole FOSS development pipeline a closed-door to protect their jobs from news FOSS contributors, or even just to surf on the project inertia and make their daily job less demanding.
“The price of liberty is eternal vigilance”. Thomas Jefferson, or some of the same standing.
More seriously, I don’t think BOLT12 was an attack on Lightning for someone who’ve seen the development. More yet another payment protocol in the half of dozen payment protocols we already have. Maybe a bit better, but quite complex...
100 sats \ 0 replies \ @theariard OP 5 Nov 2024 \ parent \ on: Rusty Russell is Cheap To Buy bitcoin
I bet I’m more mentally stable than you, anon :)
mempoolexpiry
can be turn off completely without custom patchset.