<oembed><type>rich</type><version>1.0</version><author_name>npub1r3san9v5njl6798hvauyu9ntm6r9c7u8s0t65wls58gpfdcvqp5sa48d0u</author_name><author_url>https://nostr.ae/npub1r3san9v5njl6798hvauyu9ntm6r9c7u8s0t65wls58gpfdcvqp5sa48d0u</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2015-08-14&#xA;📝 Original message:With the assumed malleability-fix CHECKSIG2 version of lightning, watching&#xA;for and responding to bad behavior is fully outsourceable. You can&#xA;synchronize channel state (signed refund transactions) with a third party&#xA;that watches for replay of old transactions on the mainnet, and starts the&#xA;refund process if it observes them, paying the fees necessary to get on the&#xA;chain.&#xA;&#xA;With the CLTV/CSV-only form of the hash time-lock contracts that Rusty has&#xA;developed, this is indeed something the users&#39; wallets would have to be&#xA;online to observe happening and respond to. I presume that we are&#xA;eventually going to get a CHECKSIG2 with some kind of malleability-immune&#xA;signing scheme in the long term, and that we are not interested in&#xA;introducing new consensus behavior to cover that short stopgap.&#xA;&#xA;&gt; I&#39;m not even sure if sufficient coordination is a sufficient solution.&#xA;&#xA;A regrettable choice of words. In this case it is game theoretic&#xA;cooperation, not coordination. The users need only expect that each other&#xA;would react the same way, being willing to burn money as fees that would&#xA;otherwise be stolen. They don&#39;t actually have to communicate with each&#xA;other in order to cooperate.&#xA;&#xA;You are correct though that hubs-with-hashpower complicate this situation.&#xA;Although a hub with hashpower also creates risk in the timestop scenario&#xA;too...&#xA;&#xA;On Fri, Aug 14, 2015 at 11:53 AM, Matt Corallo &lt;lf-lists at mattcorallo.com&gt;&#xA;wrote:&#xA;&#xA;&gt;&#xA;&gt;&#xA;&gt; On 08/14/15 00:47, Mark Friedenbach via bitcoin-dev wrote:&#xA;&gt; &gt; On Thu, Aug 13, 2015 at 4:42 PM, Joseph Poon via bitcoin-dev&#xA;&gt; &gt; &lt;bitcoin-dev at lists.linuxfoundation.org&#xA;&gt; &gt; &lt;mailto:bitcoin-dev at lists.linuxfoundation.org&gt;&gt; wrote:&#xA;&gt; &gt;&#xA;&gt; &gt;     I haven&#39;t tested the details of this, but is there another bit&#xA;&gt; available&#xA;&gt; &gt;     for use in the future for the relative blockheight?&#xA;&gt; &gt;&#xA;&gt; &gt;     I strongly believe that Lightning needs mitigations for a systemic&#xA;&gt; &gt;     supervillan attack which attemps to flood the network with&#xA;&gt; transactions,&#xA;&gt; &gt;     which can hypothetically be mitigated with something like a timestop&#xA;&gt; &gt;     bit (as originally suggested by gmaxwell).&#xA;&gt; &gt;&#xA;&gt; &gt;&#xA;&gt; &gt; This proposal includes no such provision.&#xA;&gt; &gt;&#xA;&gt; &gt; Since we talked about it, I spent considerable time thinking about the&#xA;&gt; &gt; supposed risk and proposed mitigations. I&#39;m frankly not convinced that&#xA;&gt; &gt; it is a risk of high enough credibility to worry about, or if it is that&#xA;&gt; &gt; a protocol-level complication is worth doing.&#xA;&gt; &gt;&#xA;&gt; &gt; The scenario as I understand it is a hub turns evil and tries to cheat&#xA;&gt; &gt; every single one of its users out of their bonds. Normally a lightning&#xA;&gt; &gt; user is protected form such behavior because they have time to broadcast&#xA;&gt; &gt; their own transactions spending part or all of the balance as fees.&#xA;&gt;&#xA;&gt; My concern is how the hell do you automate this? Having a threat of&#xA;&gt; &#34;well, everyone could update their software to a new version which will&#xA;&gt; destroy all coins right now&#34; is kinda useless, and trying to come up&#xA;&gt; with a reasonable set of metrics as to how much and when you move from&#xA;&gt; just paying the fee to destroying coins is really hard, especially if&#xA;&gt; you assume the attacker is a miner with, say, enough hashrate (maybe&#xA;&gt; rented) to get one or three blocks in the next day (the timeout period).&#xA;&gt;&#xA;&gt; &gt; Therefore because of the threat of mutually assured destruction, the&#xA;&gt; &gt; optimal outcome is to be an honest participant.&#xA;&gt; &gt;&#xA;&gt; &gt; But, the argument goes, the hub has many channels with many different&#xA;&gt; &gt; people closing at the same time. So if the hub tries to cheat all of&#xA;&gt; &gt; them at once by DoS&#39;ing the network, it can do so and spend more in fees&#xA;&gt; &gt; than any one participant stands to lose. My issue with this is that&#xA;&gt; &gt; users don&#39;t act alone -- users can be assured that other users will&#xA;&gt; &gt; react, and all of them together have enough coins to burn to make the&#xA;&gt; &gt; attack unprofitable.&#xA;&gt;&#xA;&gt; Now users are coordinating quickly in an attack scenario?&#xA;&gt;&#xA;&gt; &gt; The hub-cheats-many-users case really is the same&#xA;&gt; &gt; as the hub-cheats-one-user case if the users act out their role in&#xA;&gt; &gt; unison, which they don&#39;t have to coordinate to do.&#xA;&gt; &gt;&#xA;&gt; &gt; Other than that, even if you are still concerned about that  scenario,&#xA;&gt; &gt; I&#39;m not sure timestop is the appropriate solution. A timestop is a&#xA;&gt; &gt; protocol-level complication that is not trivial to implement, indeed I&#39;m&#xA;&gt; &gt; not even sure there is a way to implement it at all -- how do you&#xA;&gt; &gt; differentiate in consensus code a DoS attack from regular old blocks&#xA;&gt; &gt; filling up? And if you could, why add further complication to the&#xA;&gt; &gt; consensus protocol?&#xA;&gt;&#xA;&gt; Yea, implementation is really tricky here. I do not at all think we&#xA;&gt; should be thinking about implementing this any time soon, and should&#xA;&gt; assume Lightning will have to stand reasonably on its own without it&#xA;&gt; first, and only if it gains a lot of traction will there be enough&#xA;&gt; motivation for making such a change at the Bitcoin protocol level for&#xA;&gt; Lightning.&#xA;&gt;&#xA;&gt; &gt; A simpler solution to me seems to be outsourcing the response to an&#xA;&gt; &gt; attack to a third party&#xA;&gt;&#xA;&gt; Doesnt that defeat the purpose of Lightning?&#xA;&gt;&#xA;&gt; &gt; or otherwise engineering ways for users to&#xA;&gt; &gt; respond-by-default even if their wallet is offline, or otherwise&#xA;&gt; &gt; assuring sufficient coordination in the event of a bad hub.&#xA;&gt;&#xA;&gt; I&#39;m not even sure if sufficient coordination is a sufficient solution.&#xA;&gt; If you assume a hub just shut down, and everyone is trying to flush to&#xA;&gt; the chain, with a backlog of a few days worth of transactions (with&#xA;&gt; timeouts of a day or so), and users are even paying huge fees (99% of&#xA;&gt; what they&#39;d get back), if the former-hub is a miner, it can claim that&#xA;&gt; last 1% of many of the transactions that take longer than a day to confirm.&#xA;&gt;&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150814/55d9334f/attachment-0001.html&gt;</html></oembed>