public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Flavien Charlon <flavien.charlon@coinprism.com>
To: Tom Harding <tomh@thinlink.com>
Cc: Bitcoin Dev <bitcoin-development@lists.sourceforge.net>
Subject: Re: [Bitcoin-development] deterministic transaction expiration
Date: Tue, 5 Aug 2014 18:02:38 +0100	[thread overview]
Message-ID: <CABbpET_=Xz2=mx-hwFOwQ0K=t=Rq=P6gyiDHCAYoaJzo1zJd0g@mail.gmail.com> (raw)
In-Reply-To: <53DC329E.7090206@thinlink.com>

[-- Attachment #1: Type: text/plain, Size: 2962 bytes --]

> It would make more sense to introduce a new script opcode that pushes the
current block height onto the operand stack. Then you could implement
arbitrary logic about which blocks the transaction can be valid in. This
would require that the client revalidate all transactions in its mempool
(really, only those making use of this opcode) whenever the chain tip
changes.

I have to say I like this idea, this would allow someone to prove they
can't spend funds before a given date, and vice versa, prove that the funds
can't ever be spent after a given date (and this is provably prunable,
isn't it?). Of course, there are some risks associated with that, but
nobody is forced to use it.

> flooding the network with unrelated high fee transactions
> in order to push a transaction out to where it can never be mined at
> all.

This becomes increasingly expensive as the deadline is further away, so not
very hard to mitigate.


On Sat, Aug 2, 2014 at 1:36 AM, Tom Harding <tomh@thinlink.com> wrote:

> On 7/31/2014 5:58 PM, Kaz Wesley wrote:
> > 1. start setting nLockTime to the current height by default in newly
> > created transactions (or slightly below the current height, for
> > reorg-friendliness)
>
> Reorg-frendliness is the opposite of the rationale behind #2340, which
> proposes setting nLockTime at current-height + 1 to prevent
> "fee-sniping" reorgs...
>
>
> > 2. once users have had some time to upgrade to clients that set
> > nLockTime, start discouraging transactions without nLockTime --
> > possibly with a slightly higher fee required for relay
> > 3. start rate-limiting relay of transactions without an nLockTime
> > (maybe this alone could be used to achieve [2])
> > 4. add a new IsStandard rule rejecting transactions with an nLockTime
> > more than N blocks behind the current tip (for some fixed value N, to
> > be determined)
> >
>
> One way to proceed is implement #3753 (mempool janitor) in such a way
> that transactions with nLockTime are allowed to live a bit longer in the
> mempool (say 500 blocks) than those without (72 hours).  In other words,
> as a first step, just actually start expiring things from the mempool in
> bitcoin core, and leave any relay fee adjustments or rate limiting for
> later.  The isStandard change would be a good complement to #3753, to
> avoid relaying a tx that will soon expire by the nLockTime rule anyway.
>
>
>
>
> ------------------------------------------------------------------------------
> Want fast and easy access to all the code in your enterprise? Index and
> search up to 200,000 lines of code with a free copy of Black Duck
> Code Sight - the same software that powers the world's largest code
> search on Ohloh, the Black Duck Open Hub! Try it now.
> http://p.sf.net/sfu/bds
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>

[-- Attachment #2: Type: text/html, Size: 3845 bytes --]

  reply	other threads:[~2014-08-05 17:29 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-01  0:58 [Bitcoin-development] deterministic transaction expiration Kaz Wesley
2014-08-01  1:06 ` Peter Todd
2014-08-01  1:37   ` Kaz Wesley
2014-08-01  1:38 ` Matt Whitlock
2014-08-01  2:28   ` Gregory Maxwell
2014-08-01  3:26     ` Matt Whitlock
2014-08-01  3:31       ` Gregory Maxwell
2014-08-05 18:01         ` Alex Mizrahi
2014-08-02  0:36 ` Tom Harding
2014-08-05 17:02   ` Flavien Charlon [this message]
2014-08-05 17:48 ` Jeff Garzik
2014-08-05 18:54   ` Mike Hearn
2014-08-05 19:08     ` Jeff Garzik
2014-08-05 19:10   ` Kaz Wesley
2014-08-05 19:36     ` Jeff Garzik
2014-08-06  4:01     ` Tom Harding
2014-08-06 12:55       ` Jeff Garzik
2014-08-06 13:54         ` Mike Hearn
2014-08-06 14:44           ` Tom Harding
2014-08-06 15:08             ` Jeff Garzik
2014-08-06 15:17               ` Christian Decker
2014-08-06 15:42                 ` Peter Todd
2014-08-06 16:15                   ` Jeff Garzik
2014-08-06 17:02                     ` Tom Harding
2014-08-06 17:21                       ` Mark Friedenbach
2014-08-06 17:34                         ` Peter Todd
2014-08-06 17:24                       ` Jeff Garzik
2014-08-06 16:31                   ` Mark Friedenbach
2014-08-06 17:20                     ` Peter Todd
2014-08-06 17:30                       ` Mark Friedenbach
2014-08-06 17:38                         ` Peter Todd
2014-08-08 17:38                 ` Tom Harding
2014-08-08 18:13                   ` Jeff Garzik
2014-08-08 18:42                     ` Kaz Wesley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CABbpET_=Xz2=mx-hwFOwQ0K=t=Rq=P6gyiDHCAYoaJzo1zJd0g@mail.gmail.com' \
    --to=flavien.charlon@coinprism.com \
    --cc=bitcoin-development@lists.sourceforge.net \
    --cc=tomh@thinlink.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox