Demonstrating Pinning Attacks under Real-World Conditions

176 views
Skip to first unread message

Antoine Riard

unread,
Aug 27, 2024, 5:13:13 PMAug 27
to Bitcoin Development Mailing List
Hi list,

I'm following-up on Dave Harding''s proposition in another recent email thread.

> How would that work? AFAIK, there's no LN software using TRUC, very few
> relay nodes are using it (since it isn't yet enabled by default in a
> release version), and no miners are using it (again, since it hasn't
> been released). I'm willing to put money at stake to settle a
> disagreement that can't be settled with words, but I want to at least
> learn something from the process.

I think it would benefit greatly the bitcoin ecosystem to have in place few
lightning nodes running on mainnet, against which folks can freely exercise
sophisticated cross-layers attacks (e.g pinning) to demonstrate their feasibility
and severity, in a plain fashion.

Indeed, this is one thing to execute an attack on a private regtest or even
testnet, another on mainnet in real-world conditions where the results can be
evaluated and discussed by a wide audience. I already call to put in place such
attack demonstration experiences in the past (cf. in the context of the transaction
relay workshop in 2021 [0]) and it would be more akin to the research standards
at major sec confs demanding for artifacts.

So if we have more candidates, beyond Dave, who wish to put in place "free-to-pown"
lightning nodes, the basic setup could be the following for useful demo attacks results:
- a full-node (e.g core or btcd)
- a ligtning node (e.g core-lightning / ldk / lnd)
- running default mainnet setting for both softwares

What else ?

It is more interesting to run with default mainnet settings, as testnet / regtest
have usually myriads of specific behaviors and have all the real mempools congestion
cycles to deal with. As someone wishing to do attack demo, I'm fine pouring the satoshis
funds to open new channels, you only need to be above the dust threshold to exercise
interesting attacks.

A cynical observer of bitcoin and lightning protocol development (of which, of course
I'm not !), could say that given the level of technical complexity of a full-node
software and a lightning implementation and the hardness to evaluate cross-layer attacks like pinning, some lightning domain experts and maintainers are deliberately abusing the  belief of lightning end-users about the protocol robustness and as such misleading end-users about the safety of their moneys (and LSPs about the viability of their economics units) [1].

From the viewpoint of a security researcher wishing to demonstrate the feasibility
and severity of some cross-layers attacks in bitcoin, having running public nodes would
be very useful. There is also the option to do that on private infra and come back with
a trace on mainnet, though it would lose its public verifiability aspect.

My utmost pleasure to demonstrate some pinning attacks on nodes under real-world conditions.

Cheers,
Antoine
ots hash: 63f58d2557beef5eb1b04f530f91d3febd682ae078933790fcdc1ac94356cf40

[0] https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-May/018925.html
[1] And on that regard, it's often the ones who are spending their time on social medias
and numerous podcasts whining about the purity of their intention or always recalling their FOSS veterans credentials as some mark of authority who are the more suspicious to falter about some sense of accountability towards end-users...It can be good to re-read Nietzsche.

Peter Todd

unread,
Sep 3, 2024, 9:20:55 AMSep 3
to Antoine Riard, Bitcoin Development Mailing List
On Tue, Aug 27, 2024 at 02:10:15PM -0700, Antoine Riard wrote:
> My utmost pleasure to demonstrate some pinning attacks on nodes under
> real-world conditions.

Antoine Riard: until Oct 1st, you have permission to test your attacks against
my Lightning node running at:

023345274dd80a01c0e80ec4892818878...@alice.opentimestamps.org:9735

That also happens to be my Alice OpenTimestamps calendar, in production, so
please don't do anything you expect to be CPU or RAM intensive. But if you
accidentally take down the server, not the end of the world: OTS is a very
redundant protocol and one calendar going down for a few hours is unlikely to
do any harm.

It has about $400 of outgoing capacity at the moment, and $2000 inbound. It
gets hardly any donations at the moment, so if you manage to knock LND offline
that's no big deal.

That's not my money - it's donations to the OTS calendars that I have no right
to spend - so I'll ask you to pay for any expenses incurred by it during
testing, and make a $100 net donation when you're done testing to make it
worthwhile for the OTS community. If you manage to lose more than that on
justice transactions, I'll consider that a donation. :)

--
https://petertodd.org 'peter'[:-1]@petertodd.org
signature.asc

Antoine Riard

unread,
Sep 3, 2024, 4:13:46 PMSep 3
to Peter Todd, Bitcoin Development Mailing List
> That also happens to be my Alice OpenTimestamps calendar, in production, so
> please don't do anything you expect to be CPU or RAM intensive. But if you
> accidentally take down the server, not the end of the world: OTS is a very
> redundant protocol and one calendar going down for a few hours is unlikely to
> do any harm.
>
> It has about $400 of outgoing capacity at the moment, and $2000 inbound. It
> gets hardly any donations at the moment, so if you manage to knock LND offline
> that's no big deal.
>
> That's not my money - it's donations to the OTS calendars that I have no right
> to spend - so I'll ask you to pay for any expenses incurred by it during
> testing, and make a $100 net donation when you're done testing to make it
> worthwhile for the OTS community. If you manage to lose more than that on
> justice transactions, I'll consider that a donation. :)

Many thanks Peter for that.

No worries, I won't play with CPU or RAM, it's just all the transaction-relay
and mempool logic that one can interfere with. I'll make you whole of the $2400
if the LND node goes down too hard, though I'm just looking for a node running
on mainnet, for a pinning the attacker has two open to channels and re-balance
the liquidity at its advantage a bit. I'll provide the liquidity by myself.

If you have an on-chain donation address on the OTS website (?), I'll make a
$100 donation now, it's a nice tool. And for the justice transaction...well
for some scenarios you can use the latest valid commitment state to pin no risk
of being slashed by a justice transaction.

Best,
Antoine
ots hash: 19d9b61ed5238e2922205a0a0194e0830b260a691f45b4189b1d145f72c9e031
Reply all
Reply to author
Forward
0 new messages