ACINQ hat am 27. Oktober Eclair 0.14.6 veröffentlicht. Das Update soll verhindern, dass ein bösartiger Lightning-Knoten unbestätigte Transaktionen zur Kanalfinanzierung ausnutzt. Beim sogenannten Splicing sind künftig standardmäßig bestätigte Bitcoin-Eingänge erforderlich. Zudem ändert die Software die Abwicklung und Rückholung von Geldern, wenn ein Kanal geschlossen werden muss. ACINQ empfiehlt Betreibern ein Upgrade. Ob die beschriebenen Schwachstellen bereits praktisch ausgenutzt wurden, ist nicht bekannt.
Unbestätigte Eingänge können Zahlungen gefährden
Das Lightning Network wickelt Bitcoin-Überweisungen über Zahlungskanäle ab. Dadurch muss nicht jede einzelne Zahlung in der Bitcoin-Blockchain verbucht werden. Über das sogenannte Splicing können Betreiber außerdem Liquidität zu einem bestehenden Kanal hinzufügen oder daraus abziehen. Dafür sind Transaktionen auf der Blockchain nötig.
Ein Risiko entsteht, wenn beim Splicing Eingänge verwendet werden, die eine Gegenpartei bereitstellt, die aber noch nicht vom Bitcoin-Netzwerk bestätigt wurden. Ein bösartiger Knoten könnte die betreffende Transaktion nach der Unterzeichnung des Splicing-Vorgangs doppelt ausgeben. Wird dadurch die ursprüngliche Finanzierung ungültig, kann das auch die Abwicklung des Kanals beeinträchtigen.
Wird der Kanal anschließend auf der Blockchain geschlossen, könnten ausstehende Zahlungen gefährdet sein, die durch Hash Time-Locked Contracts (HTLCs) abgesichert sind. Ihre Abwicklung hängt von der betroffenen Finanzierungstransaktion ab. ACINQ bezeichnete dies als mögliches Sicherheitsproblem, meldete jedoch keinen bestätigten Diebstahl von Geldern.
Splicing akzeptiert standardmäßig nur bestätigte Eingänge
Eclair 0.14.6 enthält eine Sicherheitseinstellung, die verlangt, dass die Finanzierungseingänge einer Gegenpartei für ein Splicing zunächst bestätigt werden. Außerdem verhindert das Update, dass Betreiber weitere Splicing-Transaktionen auf noch unbestätigte Finanzierungsänderungen aufbauen. So soll sich die Zahl der offenen, noch nicht abgewickelten Finanzierungszustände begrenzen.
Laut ACINQ ist diese Vorgabe von den bestehenden Schutzmaßnahmen für Dual-Funding getrennt. Diese gelten nun speziell für die Eröffnung von Kanälen; beim Splicing greift die neue Bestätigungsprüfung. Bei nicht vertrauenswürdigen Gegenparteien rät ACINQ Betreibern zudem davon ab, während eines Splicing-Vorgangs die optionale Funktion für gebührenfreie Commitments zu nutzen. Sie war bereits standardmäßig deaktiviert.
Bei erzwungener Schließung zählt der letzte bestätigte Zustand
Das Update ändert auch den Umgang mit Kanälen, die geschlossen werden müssen, solange ihre Finanzierungstransaktion noch unbestätigt ist. Eclair wählt nun eine Commitment-Transaktion, die das Bitcoin-Core-Backend als finanziert erkennt. Falls nötig, greift die Software auf den jüngsten bestätigten Finanzierungszustand zurück, statt eine Transaktion abzuwickeln, die aus dem lokalen Mempool verschwunden ist.
Eine weitere Korrektur betrifft Transaktionen, die Miner noch bestätigen können, obwohl Eclair sie nicht mehr als bevorzugten Abwicklungspfad betrachtet. Nach der bisherigen Logik konnten solche Transaktionen fälschlich der Gegenpartei zugeordnet werden. Dadurch blieben rückholbare Gelder und Ausgaben aus ausstehenden Zahlungen unbeansprucht. Die neue Version erkennt diese Transaktionen und versucht, die zugehörigen Ausgaben zurückzuholen.
Upgrade ohne Schließung bestehender Kanäle
ACINQ empfiehlt Betreibern älterer Eclair-Versionen, den Patch zu installieren und den Schutz durch bestätigte Eingänge aktiviert zu lassen. Dafür muss die Software angehalten, die neue Version installiert und der Knoten neu gestartet werden. Bestehende Zahlungskanäle müssen während des Upgrades nicht geschlossen werden.
Der Sicherheitsforscher Erick Cestari meldete die mit dem Update behobenen Probleme verantwortungsvoll an ACINQ. Das Unternehmen warnte, dass bösartige Knoten einige davon ausnutzen könnten. Wie viele Knoten betroffen sein könnten und ob es tatsächlich Angriffe gab, teilte ACINQ nicht mit.