<oembed><type>rich</type><version>1.0</version><author_name>npub1y22yec0znyzw8qndy5qn5c2wgejkj0k9zsqra7kvrd6cd6896z4qm5taj0</author_name><author_url>https://nostr.ae/npub1y22yec0znyzw8qndy5qn5c2wgejkj0k9zsqra7kvrd6cd6896z4qm5taj0</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2016-08-07&#xA;📝 Original message:I still feel like you&#39;re better off getting rid of &#34;hot wallets&#34; and use&#xA;lightning-esqe networks to route orders.  I don&#39;t think either speed or&#xA;flexibility is an issue there.&#xA;&#xA;IMO, the point of Bitcoin is to avoid the centralization that seems to be&#xA;happening on the network now.   By making &#34;hot wallets&#34; more &#34;secure&#34;, we&#xA;encourage things to keep heading downhill with massive centralized&#xA;crappy-security exchanges.&#xA;&#xA;Because, ultimately, there&#39;s no security that will prevent an inside job.&#xA;And all of these thefts have, in my opinion, been at least partly inside&#xA;jobs.&#xA;&#xA;And centralization is the actually demon that needs slaying here.&#xA;&#xA;A client-side library with P2P order routing, tether.to + bitcoin ....  and&#xA;you&#39;ve got a decentralized exchange... with orders matched to users&#xA;directly, and channel-trades executed instantly.   And &#34;market makers&#34;&#xA;running nodes to facilitate routing, etc.&#xA;&#xA;No center... nothing to shut down or sue... and no one holds your funds.&#xA;That&#39;s a real Bitcoin exchange.&#xA;&#xA;&#xA;&#xA;On Sun, Aug 7, 2016 at 1:35 AM, Matthew Roberts via bitcoin-dev &lt;&#xA;bitcoin-dev at lists.linuxfoundation.org&gt; wrote:&#xA;&#xA;&gt; I&#39;m wondering if we&#39;re fully on the same page here. What I was thinking&#xA;&gt; was that this protection mechanism would be applied to the coins in the hot&#xA;&gt; wallet (I wasn&#39;t talking about moving coins from the cold wallet to the hot&#xA;&gt; wallet -- though such a mechanism is also needed.)&#xA;&gt;&#xA;&gt; With the hot wallet you would have an output script that only allowed&#xA;&gt; coins to be sent to a new transaction whose output script was then only&#xA;&gt; redeemable after N confirmations (the output is relative time-locked) but&#xA;&gt; which can also be recovered to a fixed fail-safe address before the&#xA;&gt; time-lock is reached (exactly like TierNolan already listed only the&#xA;&gt; time-locked destination shouldn&#39;t be completely fixed.) So the private key&#xA;&gt; for this hot wallet can still sign valid transactions to withdraw coins to&#xA;&gt; any known destination and these transactions still reach the blockchain.&#xA;&gt;&#xA;&gt; The key difference from a regular transaction is that the destination only&#xA;&gt; has access to the coins -after- the relative time-lock is reached (N blocks&#xA;&gt; after first confirm) so everyone knows where withdrawals are suppose to be&#xA;&gt; going and how many coins are being withdrawn at any given time. Deposits to&#xA;&gt; the hot wallet would therefore need to be encumbered by the same protection&#xA;&gt; so that from then on this time-lock to redeem coins can be applied to every&#xA;&gt; new transaction trying to move coins (withdrawn by a user of the exchange&#xA;&gt; or sent to the cold wallet.)&#xA;&gt;&#xA;&gt; Notice we don&#39;t care about the destination in the TX script for the hot&#xA;&gt; wallet because to process user&#39;s withdrawals we can&#39;t know ahead of time&#xA;&gt; where they need to be sent (so it isn&#39;t possible to use a fixed address&#xA;&gt; here – though you might want to remove the clearing phase and set a fixed&#xA;&gt; address for coins sent from the hot wallet to the cold wallet.) The benefit&#xA;&gt; here comes from being able to see what withdrawals are being cleared,&#xA;&gt; matching those up to our expectations, and being able to &#34;cancel&#34;&#xA;&gt; withdrawals if they look suspicious, and you get the benefits for transfers&#xA;&gt; made from the hot wallet to the cold wallet and visa-versa.&#xA;&gt;&#xA;&gt;&#xA;&gt; This approach is good for a number of crucial services:&#xA;&gt;&#xA;&gt; 1. Wallets could be built that grouped coins into different &#34;accounts&#34;&#xA;&gt; with different time-frames required for clearing / unlocking coins. Your&#xA;&gt; savings or investment account would say -- take up to a week to clear --&#xA;&gt; whereas your everyday account used for smaller purchases (with less money)&#xA;&gt; would only take a few hours. This could all be linked up to services that&#xA;&gt; notified you of your money being moved + made any phone calls needed to&#xA;&gt; verify any larger transfers.&#xA;&gt;&#xA;&gt; The service could also be entrusted with the “cancellation” key which can&#xA;&gt; only be used to move money to your offline fail-safe address. This would be&#xA;&gt; quite an interesting way to mitigate fraud without the user having to be&#xA;&gt; trusted to do anything (except I suppose – not storing their recovery keys&#xA;&gt; online … but this could be partially solved with BIP 32-style “master”&#xA;&gt; public keys + hardware wallets + multi-sig, N factor auth, etc ...)&#xA;&gt;&#xA;&gt; 2. Gambling websites that process a lot of Bitcoins also have a hot wallet&#xA;&gt; which could be better protected by this.&#xA;&gt;&#xA;&gt; 3. Various other e-commerce websites also accept Bitcoins directly. (Deep&#xA;&gt; web markets come to mind -- hey, people breaking the law need good security&#xA;&gt; too.)&#xA;&gt;&#xA;&gt; 4. Provable dead man&#39;s switches on the protocol level is another idea --&#xA;&gt; no need to keep special time-locked transactions around and rely on them to&#xA;&gt; be broadcast = more reliable escrow services.&#xA;&gt;&#xA;&gt; 5. And obviously exchange hot (and cold) wallets - enemy number 1.&#xA;&gt;&#xA;&gt; I hope that makes sense. I think I initially managed to confuse a lot of&#xA;&gt; people by talking about revoking transactions / “settlement layers”, etc.&#xA;&gt; But IMO: all of this needs to take place on the blockchain with a new set&#xA;&gt; of OP_CODES and other than the fixed address issue with OP_SPENDTO, I think&#xA;&gt; the general idea would still work.&#xA;&gt;&#xA;&gt;&#xA;&gt; tl; dr, A pseudo-reversal mechanism for transactions would mean that&#xA;&gt; stolen private keys were no longer such an issue. This is desperately&#xA;&gt; needed for exchanges, wallets, and other services that are forced to manage&#xA;&gt; private keys, and whose users (I argue) already expect for this to be&#xA;&gt; possible (or at least will when they&#39;re hacked.)&#xA;&gt;&#xA;&gt;&#xA;&gt;&#xA;&gt;&#xA;&gt; On Sat, Aug 6, 2016 at 9:13 PM, Tier Nolan via bitcoin-dev &lt;&#xA;&gt; bitcoin-dev at lists.linuxfoundation.org&gt; wrote:&#xA;&gt;&#xA;&gt;&gt; On Sat, Aug 6, 2016 at 11:39 AM, s7r via bitcoin-dev &lt;&#xA;&gt;&gt; bitcoin-dev at lists.linuxfoundation.org&gt; wrote:&#xA;&gt;&gt;&#xA;&gt;&gt;&gt; * reversal of transactions is impossible&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt; I think it would be more accurate to say that the requirement is that&#xA;&gt;&gt; reversal doesn&#39;t happen unexpectedly.&#xA;&gt;&gt;&#xA;&gt;&gt; If it is clear in the script that reversal is possible, then obviously&#xA;&gt;&gt; the recipient can take that into consideration.&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt;&gt; * keep private keys private and safe. Lose them, it&#39;s like losing cash,&#xA;&gt;&gt;&gt; you can just forget about it.&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt; Key management is a thing.  Managing risk by keeping some keys offline is&#xA;&gt;&gt; an important part of that.&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt;&gt; * while we try hard to make 0-conf as safe as possible (if there&#39;s no&#xA;&gt;&gt;&gt; RBF flag on the transaction), we make it almost impossible or very very&#xA;&gt;&gt;&gt; expensive to reverse a confirmed transaction.&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt; BitGo has an &#34;instant&#34; system where they promise to only sign one&#xA;&gt;&gt; transaction for a given output.  If you trust BitGo, then this is safe from&#xA;&gt;&gt; double spending, since a double spender can&#39;t sign two transactions.&#xA;&gt;&gt;&#xA;&gt;&gt; If BitGo had actually implemented a daily withdrawal limit, then their&#xA;&gt;&gt; system ends up similar to cold storage.  Only 10% of the funds at Bitfinex&#xA;&gt;&gt; could have been withdrawn before manual intervention was required (with&#xA;&gt;&gt; offline keys).&#xA;&gt;&gt;&#xA;&gt;&gt; Who will accept&#xA;&gt;&gt;&gt; such an input and treat it as a payment if it can be reversed during the&#xA;&gt;&gt;&gt; settlement layer?&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt; Obviously, if a payment is reversible, then you treat it as a reversible&#xA;&gt;&gt; payment.  The protection here relates to moving coins from the equivalent&#xA;&gt;&gt; of cold storage to hot storage.&#xA;&gt;&gt;&#xA;&gt;&gt; It is OK if it takes longer, since security is more important than&#xA;&gt;&gt; convenience for coins in cold storage.&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt;&gt; The linked page describes that merchants will never accept payments from&#xA;&gt;&gt;&gt; &#39;vaults&#39;, and it will take 24 hours for coins to be irreversible moved&#xA;&gt;&gt;&gt; outside the &#39;vault&#39;.&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt; This relates to the reserves held by the exchange.  A portion of the&#xA;&gt;&gt; funds are in hot storage with live keys.  These funds can be stolen by&#xA;&gt;&gt; anyone who gets access to the servers.  The remaining funds are held in&#xA;&gt;&gt; cold storage and they cannot be accessed unless you have the offline keys.&#xA;&gt;&gt; These funds are supposed to be hard to reach and require manual&#xA;&gt;&gt; intervention.&#xA;&gt;&gt;&#xA;&gt;&gt; I think this is a wrong approach. hacks and big losses are sad, but all&#xA;&gt;&gt;&gt; the time users / exchanges are to blame for wrong implementations or&#xA;&gt;&gt;&gt; terrible security practices.&#xA;&gt;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt; Setting up offline keys to act as firebreaks is part of good security&#xA;&gt;&gt; practices.&#xA;&gt;&gt;&#xA;&gt;&gt; _______________________________________________&#xA;&gt;&gt; bitcoin-dev mailing list&#xA;&gt;&gt; bitcoin-dev at lists.linuxfoundation.org&#xA;&gt;&gt; https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&#xA;&gt; _______________________________________________&#xA;&gt; bitcoin-dev mailing list&#xA;&gt; bitcoin-dev at lists.linuxfoundation.org&#xA;&gt; https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#xA;&gt;&#xA;&gt;&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160807/528041a5/attachment.html&gt;</html></oembed>