<oembed><type>rich</type><version>1.0</version><author_name>npub1j3u42vq63qzs2nyddgkf4s4t7pa85x855vas54e6yauxsvpf2wcsacwg9h</author_name><author_url>https://nostr.ae/npub1j3u42vq63qzs2nyddgkf4s4t7pa85x855vas54e6yauxsvpf2wcsacwg9h</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2016-08-06&#xA;📝 Original message:Hi,&#xA;&#xA;I can clearly see some advantages for such a feature, but it&#39;s kind of&#xA;in conflict with Bitcoin&#39;s fundamental design. This design might be&#xA;problematic when it comes to hacks/thefts, but it&#39;s what gives Bitcoin&#xA;strength and make it differentiate from other currencies:&#xA;&#xA;* reversal of transactions is impossible&#xA;* keep private keys private and safe. Lose them, it&#39;s like losing cash,&#xA;you can just forget about it.&#xA;* while we try hard to make 0-conf as safe as possible (if there&#39;s no&#xA;RBF flag on the transaction), we make it almost impossible or very very&#xA;expensive to reverse a confirmed transaction.&#xA;&#xA;Also, we don&#39;t have a clear way to properly decide a good settlement&#xA;period length. It doesn&#39;t fix the problem any more than nLockTime fixes&#xA;it -- you can&#39;t know ahead of time when a withdraw needs to be made.&#xA;Fair enough, but even if the withdraw is made with a settlement layer,&#xA;will the user be able to spend it further immediately? Who will accept&#xA;such an input and treat it as a payment if it can be reversed during the&#xA;settlement layer? So, if you can&#39;t know ahead of time when a withdraw&#xA;needs to be made (nLockTime) how can you know ahead of time+settlement&#xA;period when a transaction needs to be declared irrevocable?&#xA;&#xA;The linked page describes that merchants will never accept payments from&#xA;&#39;vaults&#39;, and it will take 24 hours for coins to be irreversible moved&#xA;outside the &#39;vault&#39;. This covers the part &#34;is the user able to spend a&#xA;transaction with settlement layer&#34; but it has security properties equal&#xA;to nLockTime = 24 hours - you can&#39;t benefit and use the coins&#xA;immediately and in 24 hours price might go up or down in an undesirable&#xA;way for a certain user. It however raises a lot of other questions: what&#xA;if the attacker manages to steal both the private key and vault key (we&#xA;have strong reasons to assume this can happen: if you can&#39;t keep a&#xA;private key safe, why would you be able to keep the vault key any&#xA;safer?) and starts a race with the actual user to unlock and lock back&#xA;the vault?&#xA;&#xA;I think this is a wrong approach. hacks and big losses are sad, but all&#xA;the time users / exchanges are to blame for wrong implementations or&#xA;terrible security practices.&#xA;&#xA;Thanks!&#xA;&#xA;On 8/3/2016 9:16 PM, Matthew Roberts via bitcoin-dev wrote:&#xA;&gt; In light of the recent hack: what does everyone think of the idea of&#xA;&gt; creating a new address type that has a reversal key and settlement layer&#xA;&gt; that can be used to revoke transactions?&#xA;&gt; &#xA;&gt; You could specify so that transactions &#34;sent&#34; from these addresses must&#xA;&gt; receive N confirmations before they can&#39;t be revoked, after which the&#xA;&gt; transaction is &#34;settled&#34; and the coins become redeemable from their&#xA;&gt; destination output. A settlement phase would also mean that a&#xA;&gt; transaction&#39;s progress was publicly visible so transparent fraud&#xA;&gt; prevention and auditing would become possible by anyone.&#xA;&gt; &#xA;&gt; The reason why I bring this up is existing OP codes and TX types don&#39;t&#xA;&gt; seem suitable for a secure clearing mechanism; Nlocktimed TXs won&#39;t work&#xA;&gt; for this since you can&#39;t know ahead of time when and where a withdrawal&#xA;&gt; needs to be made, plus there&#39;s still the potential for key&#xA;&gt; mismanagement; Similar problems with OP_CHECKLOCKTIMEVERIFY apply too –&#xA;&gt; unless you keep a private key around on the server which would defeat&#xA;&gt; the purpose. The main use case here, would be specifically to improve&#xA;&gt; centralized exchange security by making it impossible for a hot wallet&#xA;&gt; to be raided all at once.&#xA;&gt; &#xA;&gt; Thoughts?&#xA;&gt; &#xA;&gt; Some existing background:&#xA;&gt; &#xA;&gt; http://hackingdistributed.com/2016/08/03/how-bitfinex-heist-could-have-been-avoided/&#xA;&gt; -- Proposed the basic idea for a time-based clearing house but using&#xA;&gt; blockchains directly, this is a much better idea than my own.&#xA;&gt; &#xA;&gt; roberts.pm/timechain &lt;http://roberts.pm/timechain&gt; -- My original paper&#xA;&gt; written in 2015 which proposed a similar idea for secure wallet design&#xA;&gt; but implemented using time-locked ECDSA keys. Obviously a blockchain&#xA;&gt; would work better for this.&#xA;&gt; &#xA;&gt; Other -- if the idea has already been brought up by other people, I&#xA;&gt; apologize.&#xA;&gt; &#xA;&#xA;-------------- next part --------------&#xA;A non-text attachment was scrubbed...&#xA;Name: signature.asc&#xA;Type: application/pgp-signature&#xA;Size: 488 bytes&#xA;Desc: OpenPGP digital signature&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160806/e7d9caab/attachment.sig&gt;</html></oembed>