Bitcoin Forum
May 02, 2024, 12:11:46 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: Attached Transactions - Alternative to Replace By Fee (RBF) - Anti Censorship  (Read 2656 times)
kayrice (OP)
Member
**
Offline Offline

Activity: 104
Merit: 11


View Profile
February 21, 2016, 09:19:09 AM
Merited by ABCbits (1)
 #1

Hi everyone. With RBF recently getting some exposure I was thinking more about ways to solve the problems that RBF solves without it. In particular, I see the blockchain more as a data structure made up of immutable pieces, and I don't like that RBF violates this to some degree. I would prefer a Bitcoin where people submit things to the network and any attempt to "undo" is a separate transaction.

It's possible my understanding of RBF or Bitcoin has caused me to miss something, but from what I know right now there is no way to submit a transaction that will only be valid if another transaction has already been placed into a block. Currently two parties would have to setup multisig or agree on a private token of some kind or in general cooperate together before the transaction is made.

If there was a system in place where you could "attach" a transaction to another in this way it could solve the problems RBF originally was supposed to solve, which is allowing you to send more to "bump" a transaction. This would be done by making another transaction with a miner fee to incentivize it to be placed into a block.

Likewise this could help solve the problem of miners publishing blocks with zero transactions in them. If each transaction could be "attached" to another in this way it could become very hard to censor a transaction that "the people" do not want censored. This could stop miners from censoring specific wallets or specific transactions unless they are willing to let that censorship balloon into more lost mining fees. Currently, we don't have any kind of censorship like this, but we do have lazy miners that produce small blocks about 6 times a day (I wrote a small tool here: https://fullblocks.github.io )

Please let me know if there is any way to do this currently or any BIPs that would allow for this.
"You Asked For Change, We Gave You Coins" -- casascius
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714608706
Hero Member
*
Offline Offline

Posts: 1714608706

View Profile Personal Message (Offline)

Ignore
1714608706
Reply with quote  #2

1714608706
Report to moderator
Jet Cash
Legendary
*
Offline Offline

Activity: 2702
Merit: 2456


https://JetCash.com


View Profile WWW
February 21, 2016, 09:48:08 AM
 #2

RBF is an optional feature, and it can be extremely poweful imho. This is especially true when combined with the programmable signature structure and time locking. Trying to chain transactions would be complex, as there is already a chain in place, and you would have to ensure that the attachment didn't get confirmed before the master transaction. I suspect you would also have to record block numbers, as they may not be in the same block.

Offgrid campers allow you to enjoy life and preserve your health and wealth.
Save old Cars - my project to save old cars from scrapage schemes, and to reduce the sale of new cars.
My new Bitcoin transfer address is - bc1q9gtz8e40en6glgxwk4eujuau2fk5wxrprs6fys
kayrice (OP)
Member
**
Offline Offline

Activity: 104
Merit: 11


View Profile
February 21, 2016, 10:11:26 AM
 #3

I spoke in IRC more about this.

In particular I was wrong to drag RBF into this, because it's a mempool thing, which I knew but simply forgot when making this post. I thought the best way to bring the topic up was to mention RBF since people are familiar with that concept and "bumping" a transaction.

Another user created this SE question: http://bitcoin.stackexchange.com/questions/43003/is-there-a-way-to-create-a-transaction-that-it-can-only-be-confirmed-after-anoth

It more clearly summarizes the question as:

Quote
Is there a way to create a transaction A that cannot be confirmed until B has been included in a block, although A does not build on any UTXO B creates?

To elaborate on this I think if Bitcoin had something that could do this we could make it very difficult to censor transactions individually. If someone had a tx being censored they could go onto social media and share that tx and others could begin "attaching" to the censored tx to promote it's processing as miners wouldn't get the fee of any txs attached to the censored one.

monsterer
Legendary
*
Offline Offline

Activity: 1008
Merit: 1000


View Profile
February 21, 2016, 01:31:37 PM
 #4

If each transaction could be "attached" to another in this way it could become very hard to censor a transaction that "the people" do not want censored. This could stop miners from censoring specific wallets or specific transactions unless they are willing to let that censorship balloon into more lost mining fees. Currently, we don't have any kind of censorship like this, but we do have lazy miners that produce small blocks about 6 times a day (I wrote a small tool here: https://fullblocks.github.io )

Please let me know if there is any way to do this currently or any BIPs that would allow for this.

Full censorship isn't possible unless a miner has a majority of hashing power; up until this point, miners will include valid transactions into blocks which get 'censored' by the minority of hashing power.
kayrice (OP)
Member
**
Offline Offline

Activity: 104
Merit: 11


View Profile
February 21, 2016, 10:28:02 PM
 #5

Quote
Full censorship isn't possible unless a miner has a majority of hashing power; up until this point, miners will include valid transactions into blocks which get 'censored' by the minority of hashing power.

That's not true. Miners right now can choose to publish zero transactions in a block or they can cherry pick some transactions and not others. My goal is to ensure that nobody can ever have a tx censored that others do not want censored.
kayrice (OP)
Member
**
Offline Offline

Activity: 104
Merit: 11


View Profile
February 21, 2016, 10:33:03 PM
 #6

Well it was a good idea not sure what else to do and I'm not interested in checking these forums often. Hope something like this eventually makes it's way into Bitcoin but I don't think I have the stomach to push it though layers of BS.
monsterer
Legendary
*
Offline Offline

Activity: 1008
Merit: 1000


View Profile
February 21, 2016, 10:34:08 PM
 #7

Quote
Full censorship isn't possible unless a miner has a majority of hashing power; up until this point, miners will include valid transactions into blocks which get 'censored' by the minority of hashing power.

That's not true. Miners right now can choose to publish zero transactions in a block or they can cherry pick some transactions and not others. My goal is to ensure that nobody can ever have a tx censored that others do not want censored.

Choosing to publish zero transactions is not rational behaviour because a miner doing so loses out on collected fees to the next miner, the same is true of cherry picking individual transactions; even if one miner does this, the next guy has no reason to do so.
kayrice (OP)
Member
**
Offline Offline

Activity: 104
Merit: 11


View Profile
February 21, 2016, 10:43:13 PM
 #8

> Choosing to publish zero transactions is not rational behaviour

Currently happens multiple times per day. Check the blockchain an empty block is published every once in a while (Although they do this because they have poor internet)

> because a miner doing so loses out on collected fees to the next miner, the same is true of cherry picking individual transactions; even if one miner does this, the next guy has no reason to do so.

Except the cost is low. My $0.04 tx fee as a single user cannot compete with various interests of censorship. However, if my $0.04 was pooled together with other users who didnt want me to be censored it would balloon into a larger amount that would be very hard to convince all miners not to process.
DannyHamilton
Legendary
*
Offline Offline

Activity: 3388
Merit: 4612



View Profile
February 21, 2016, 11:48:38 PM
Merited by ABCbits (2)
 #9

If there was a system in place where you could "attach" a transaction to another in this way it could solve the problems RBF originally was supposed to solve, which is allowing you to send more to "bump" a transaction. This would be done by making another transaction with a miner fee to incentivize it to be placed into a block.

This already exists.  It's called CPFP (Child Pays For Parent).

If I've received an output from an unconfirmed transaction, I can use that output as an input in a new transaction.  I can then pay a much larger fee in the new transaction.  The new transaction cannot be confirmed unless the previous transaction is also confirmed in the same or earlier block.  As such, the new transaction can provide a larger incentive for the older transaction to be confirmed.

Then, by using CoinJoin techniques, it would be possible for many people to all get involved in the same new transaction.  As such, all the fees from multiple payments could all be combined into a single transaction that depends on the earlier transaction being confirmed.
kayrice (OP)
Member
**
Offline Offline

Activity: 104
Merit: 11


View Profile
February 22, 2016, 01:25:33 AM
 #10

> This already exists.  It's called CPFP (Child Pays For Parent).

This requires coordination before the txs are made.
ABISprotocol
Sr. Member
****
Offline Offline

Activity: 278
Merit: 251

ABISprotocol on Gist


View Profile WWW
February 22, 2016, 02:57:11 AM
 #11

> This already exists.  It's called CPFP (Child Pays For Parent).

This requires coordination before the txs are made.

The wallet can also be designed to handle it, so that the coordination is done at least in part by the wallet, based on settings which can be altered by the user.  See, for example, the project referred to in my signature for some ideas there.

ABISprotocol (Github/Gist)
http://abis.io
monsterer
Legendary
*
Offline Offline

Activity: 1008
Merit: 1000


View Profile
February 22, 2016, 09:48:23 AM
 #12

> Choosing to publish zero transactions is not rational behaviour

Currently happens multiple times per day. Check the blockchain an empty block is published every once in a while (Although they do this because they have poor internet)

> because a miner doing so loses out on collected fees to the next miner, the same is true of cherry picking individual transactions; even if one miner does this, the next guy has no reason to do so.

Except the cost is low. My $0.04 tx fee as a single user cannot compete with various interests of censorship. However, if my $0.04 was pooled together with other users who didnt want me to be censored it would balloon into a larger amount that would be very hard to convince all miners not to process.

For censorship to be a real concern, such a transaction would never make it into the blockchain - just because a minority of hashing power decides to censor your transaction doesn't mean the entire network will; like I say, overall this is not rational behaviour for miners.
kayrice (OP)
Member
**
Offline Offline

Activity: 104
Merit: 11


View Profile
February 25, 2016, 10:54:47 AM
 #13

> For censorship to be a real concern, such a transaction would never make it into the blockchain

I believe non-miners run mempools, is this correct?

> just because a minority of hashing power decides to censor your transaction doesn't mean the entire network will

Miners en-masse currently can decide to block transactions. With something like an attachment process this would become impossible as the word was spread about a tx being censored.

I'll just keep bumping this thread every week or so.
monsterer
Legendary
*
Offline Offline

Activity: 1008
Merit: 1000


View Profile
February 25, 2016, 01:03:36 PM
 #14

Miners en-masse currently can decide to block transactions. With something like an attachment process this would become impossible as the word was spread about a tx being censored.

I'll just keep bumping this thread every week or so.

They can but they don't en-mass, because if they did this means that bitcoin itself has failed, since we then have a collusion of majority hashing power.

For the sake of argument, let's say you're right and that is occurring now. What exactly does the 'word' being spread about censorship actually accomplish? Since the majority of hashing power are colluding, they can do whatever they want, and no amount of social engineering will help that.
achow101
Moderator
Legendary
*
expert
Offline Offline

Activity: 3374
Merit: 6571


Just writing some code


View Profile WWW
February 25, 2016, 01:14:01 PM
 #15

Miners en-masse currently can decide to block transactions. With something like an attachment process this would become impossible as the word was spread about a tx being censored.

I'll just keep bumping this thread every week or so.

They can but they don't en-mass, because if they did this means that bitcoin itself has failed, since we then have a collusion of majority hashing power.

For the sake of argument, let's say you're right and that is occurring now. What exactly does the 'word' being spread about censorship actually accomplish? Since the majority of hashing power are colluding, they can do whatever they want, and no amount of social engineering will help that.
The solution is an emergency hard fork to another mining algorithm which renders so all of the miners' equipment useless. This has been discussed before and it is a solution if miners were to be colluding to the detriment of bitcoin.

Op, the problem is that if people's transactions could be made dependent on another person, they are not acting to their own interests. Buy linking their transactions to the censored one, their own transactions will also not confirm and that is detrimental to their own interests.

CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1075


Ian Knowles - CIYAM Lead Developer


View Profile WWW
February 25, 2016, 01:19:08 PM
 #16

The solution is an emergency hard fork to another mining algorithm which renders so all of the miners' equipment useless. This has been discussed before and it is a solution if miners were to be colluding to the detriment of bitcoin.

I think that is not really going to be such an easy thing.

Miners need to turn BTC into fiat in order to do their business (i.e. pay for their electricity and other costs) - but exchanges need the miners to have a steady source of people wanting to exchange.

If devs wanted to "cut out the miners" then exchanges would be screwed for income in the short-term at least (as many of them are partnered with mining pools) so I can't see the exchanges actually likely to agree with such a change.

Remember it is the mining pools that actually control the consensus (as those who dislike China are finding out much to their chagrin).

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
achow101
Moderator
Legendary
*
expert
Offline Offline

Activity: 3374
Merit: 6571


Just writing some code


View Profile WWW
February 25, 2016, 01:23:47 PM
 #17

The solution is an emergency hard fork to another mining algorithm which renders so all of the miners' equipment useless. This has been discussed before and it is a solution if miners were to be colluding to the detriment of bitcoin.

I think that is not really going to be such an easy thing.

Miners need to turn BTC into fiat in order to do their business (i.e. pay for their electricity and other costs) - but exchanges need the miners to have a steady source of people wanting to exchange.

If devs wanted to "cut out the miners" then exchanges would be screwed for income in the short-term at least (as many of them are partnered with mining pools) so I can't see the exchanges actually likely to agree with such a change.

I suppose it is more of the threat of a hard fork which cuts out the miner's is what would persuade them to not abuse their power.

CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1075


Ian Knowles - CIYAM Lead Developer


View Profile WWW
February 25, 2016, 01:25:16 PM
Merited by ABCbits (2)
 #18

I suppose it is more of the threat of a hard fork which cuts out the miner's is what would persuade them to not abuse their power.

I've seen no evidence of miners "abusing their power" - if anything the miners (at least pools) have tried their hardest to not get involved with the politics and just support the future of Bitcoin (which makes sense for them economically).

It is the exchanges (and mostly just American ones) and some of the devs (ex-core) that have been the cause of all the troubles so far (and in the case of devs that seems to be mostly about ego rather than anything else).

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
achow101
Moderator
Legendary
*
expert
Offline Offline

Activity: 3374
Merit: 6571


Just writing some code


View Profile WWW
February 25, 2016, 01:30:02 PM
 #19

I suppose it is more of the threat of a hard fork which cuts out the miner's is what would persuade them to not abuse their power.

I've seen no evidence of miners "abusing their power" - if anything the miners (at least pools) have tried their hardest to not get involved with the politics and just support the future of Bitcoin (which makes sense for them economically).
Agreed, I was speaking hypothetically.

monsterer
Legendary
*
Offline Offline

Activity: 1008
Merit: 1000


View Profile
February 25, 2016, 01:33:50 PM
 #20

The solution is an emergency hard fork to another mining algorithm which renders so all of the miners' equipment useless. This has been discussed before and it is a solution if miners were to be colluding to the detriment of bitcoin.

I view that as a total failure of the currency, IMO.
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!