Bitcoin Forum
October 24, 2017, 11:32:21 AM *
News: Latest stable version of Bitcoin Core: 0.15.0.1  [Torrent]. (New!)
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: Where the Bitcoin Core, Mining and Protocol is at right now  (Read 1002 times)
The Bitcoin Institute
Newbie
*
Offline Offline

Activity: 20


View Profile WWW
May 29, 2014, 02:39:51 AM
 #1

I'm gathering information about the current state of Bitcoin. There's been several issues over the years, and I think most are solved. But I have some questions.

  • Malleability: The Bitcoin wiki explains possible malleability, and we all know Mark Karpeles blaimed the malleability for his problems. As I understand, there was an update to Bitcoin Core to put a stop to this, but where are we at right now? How can malleability be exploited and in what way is it harder to exploit than before the recent update?
  • Double spending: How easy is a successful double spend to create nowadays? Does the Bitcoin Core still broadcast double spends that come in later? Can it still be done easily by importing the key to two clients and then just spend the bitcoins a second later?
    Clarification: I'm wondering about the broadcasts of transactions that are not mined. Is there a mechanism to include the first that the miners receive in the block to mine or do they really choose later double spending transactions with higher fees?
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1508844741
Hero Member
*
Offline Offline

Posts: 1508844741

View Profile Personal Message (Offline)

Ignore
1508844741
Reply with quote  #2

1508844741
Report to moderator
1508844741
Hero Member
*
Offline Offline

Posts: 1508844741

View Profile Personal Message (Offline)

Ignore
1508844741
Reply with quote  #2

1508844741
Report to moderator
1508844741
Hero Member
*
Offline Offline

Posts: 1508844741

View Profile Personal Message (Offline)

Ignore
1508844741
Reply with quote  #2

1508844741
Report to moderator
lilfiend
Member
**
Offline Offline

Activity: 98


View Profile
May 29, 2014, 01:38:01 PM
 #2

Double spending is still 'possible' but will be corrected unless you control 51% of the network.

[Insert E-peen here]
piotr_n
Legendary
*
Offline Offline

Activity: 1750


aka tonikt


View Profile WWW
May 29, 2014, 01:50:16 PM
 #3

Malleability: The Bitcoin wiki explains possible malleability, and we all know Mark Karpeles blaimed the malleability for his problems. As I understand, there was an update to Bitcoin Core to put a stop to this, but where are we at right now? How can malleability be exploited and in what way is it harder to exploit than before the recent update?
You cannot put a stop to this. Not without a hard fork. All they could do was to consider a certain transactions non-standard, but it does not prevent modified transactions from being mined.

Malleability is more of a term, a thing that developers should be aware of, rather than a problem.
If you know that it exists and what is concerns, it would not be much of a problem for you.
Unless you have a need to spend yet unconfirmed outputs - then the malleability can disturb you from doing it in a reliable way.


Double spending: How easy is double a successful double spend to create nowadays? Does the Bitcoin Core still broadcast double spends that come in later? Can it still be done easily by importing the key to two clients and then just spend the bitcoins a second later?
Bitcoin is a technology that was invented to prevent double spending, so I really don't know what you mean.
You just need to wait for enough number of confirmations to be proportionally ensured that a certain transaction was not a double spend.
In most cases 1 or 2 confirmations is enough, but the industrial standard ever since seems to have been 6 confirmations.


In both the cases remember that Bitcoin was never meant to be a fast payment processing network. The protocol has a potential for extinctions that would facilitate (e.g. off-chain txs), but these days it's more of a theory rather than a reality.
Anyway, 99% of bitcoin users can easily live without spending unconfirmed outputs and each of us is totally aware of the fact that if we deposit coins somewhere they usually get credited after 6 confirmations. The reaming 1% (of mostly newbies) will sooner or later adjust to these rules, having not much choice anyway.

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218


Gerald Davis


View Profile
May 29, 2014, 03:25:14 PM
 #4

Quote
Does the Bitcoin Core still broadcast double spends that come in later?

The Bitcoin Core client has never broadcast, relayed, or included double spends in a block.
jeffersonairplane
Legendary
*
Offline Offline

Activity: 1344


www.bitkong.com


View Profile
May 29, 2014, 10:18:58 PM
 #5

Double spending does not happen now. They've dedicated time into their network to ensure no double spending occurs.
The Bitcoin Institute
Newbie
*
Offline Offline

Activity: 20


View Profile WWW
May 30, 2014, 03:55:45 AM
 #6

Double spending is still 'possible' but will be corrected unless you control 51% of the network.

I meant only the broadcast of double spending transactions (not mining or distribution of new blocks). Are the bitcoin nodes filtering out which transactions to broadcast to connected nodes or does it just send anything on to everybody?
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218


Gerald Davis


View Profile
May 30, 2014, 03:58:31 AM
 #7

Double spending is still 'possible' but will be corrected unless you control 51% of the network.

I meant only the broadcast of double spending transactions (not mining or distribution of new blocks). Are the bitcoin nodes filtering out which transactions to broadcast to connected nodes or does it just send anything on to everybody?

They have always dropped double spends. 
The Bitcoin Institute
Newbie
*
Offline Offline

Activity: 20


View Profile WWW
May 30, 2014, 04:09:11 AM
 #8

Bitcoin is a technology that was invented to prevent double spending, so I really don't know what you mean.
You just need to wait for enough number of confirmations to be proportionally ensured that a certain transaction was not a double spend.
In most cases 1 or 2 confirmations is enough, but the industrial standard ever since seems to have been 6 confirmations.

What I'm trying to find out is how hard is it to broadcars a transaction to the bitcoin network, and then send the same but to another address a couple of minutes later. Will both of them be broadcasted to all the miners just as if they were unrelated? Will the first one be more likely to be included in a block first? How would a slighly bigger fee on one of the transactions change this? Would it be easy enough to refuse to pay the fee that the common clients enforce and then just spend the same coin a minute later with the standard 0.0001 fee included?
The Bitcoin Institute
Newbie
*
Offline Offline

Activity: 20


View Profile WWW
May 30, 2014, 04:17:05 AM
 #9

Double spending does not happen now. They've dedicated time into their network to ensure no double spending occurs.

So this: https://bitcointalk.org/index.php?topic=130764.0 (successful double spend against satoshidice) could not happen again?
The Bitcoin Institute
Newbie
*
Offline Offline

Activity: 20


View Profile WWW
May 30, 2014, 04:25:08 AM
 #10

Quote
Does the Bitcoin Core still broadcast double spends that come in later?

The Bitcoin Core client has never broadcast, relayed, or included double spends in a block.

I mean double spends that come in later but both still unconfirmed and not in a block. So you're saying that if I make a payment and then resend it+fee a few seconds later, none of the normal nodes would help propagate it?
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218


Gerald Davis


View Profile
May 30, 2014, 04:27:47 AM
 #11

Quote
Does the Bitcoin Core still broadcast double spends that come in later?

The Bitcoin Core client has never broadcast, relayed, or included double spends in a block.

I mean double spends that come in later but both still unconfirmed and not in a block. So you're saying that if I make a payment and then respend it+fee a few seconds later, none of the normal nodes would help propagate it?

Yes once a node learns of a tx it will drop any double spends of that tx and not relay (forward) or include it in the memory pool.  Since new blocks are created from the memory pool the double spend will not be included in future blocks made by that node either.  This isn't some new development.  The network has always worked this way (for obvious reasons).
The Bitcoin Institute
Newbie
*
Offline Offline

Activity: 20


View Profile WWW
May 30, 2014, 04:37:51 AM
 #12

Quote
Does the Bitcoin Core still broadcast double spends that come in later?

The Bitcoin Core client has never broadcast, relayed, or included double spends in a block.

I mean double spends that come in later but both still unconfirmed and not in a block. So you're saying that if I make a payment and then respend it+fee a few seconds later, none of the normal nodes would help propagate it?

Yes once a node learns of a tx it will drop any double spends of that tx and not relay (forward) or include it in the memory pool.  Since new blocks are created from the memory pool the double spend will not be included in future blocks made by that node either.  This isn't some new development.  The network has always worked this way (for obvious reasons).

What about this one:
https://blockchain.info/tx-index/57545592 that was (according to blockchain.info) made some 15 minutes before the one that got confirmed:
https://blockchain.info/tx-index/57546803

Shouldn't the second one have been stopped by the nodes in the first place?

EDIT updated double spend example
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218


Gerald Davis


View Profile
May 30, 2014, 04:47:47 AM
 #13

You asked if the bitcoin-core client will relay double spends.  Now you are asking if double spending an unconfirmed tx is possible.  That is a totally different question.  The answers are no and yes respectively.  The miner could have been dishonest accepting a fee to include a double spend in the block, or the miner could have been the attacker.  The first tx may not have been relayed through the network because it had insufficient fees or violated another rule for standard txs.
The Bitcoin Institute
Newbie
*
Offline Offline

Activity: 20


View Profile WWW
May 31, 2014, 03:31:06 AM
 #14

You asked if the bitcoin-core client will relay double spends.  Now you are asking if double spending an unconfirmed tx is possible.  That is a totally different question.  The answers are no and yes respectively.  The miner could have been dishonest accepting a fee to include a double spend in the block, or the miner could have been the attacker.  The first tx may not have been relayed through the network because it had insufficient fees or violated another rule for standard txs.

What exactly is meant by dishonest here? If the double spend has a higher fee it will have a higher priority and goes into the blockchain, but only if the miner is dishonest and chooses to ignore the first transaction?

What I really want to know here is if it's reference implementation to actually include the first transaction in the block, even though the later has higher priority.
piotr_n
Legendary
*
Offline Offline

Activity: 1750


aka tonikt


View Profile WWW
May 31, 2014, 08:00:28 AM
 #15

A general rule is that when a transaction gets to a memory pool then any further tx that would try to spend the same input(s) would be rejected (despite of its fee).
But this is only a rule enforced by your node's software and since each user/miner running a node has a control over his own software, everyone can change the rules and you can just as well assume that it will not work like this. Surely not all the time.
That is why you wait for confirmations, because burying the information about which outputs are already spent, inside the chain, is the only reliable way of assuring that same outputs will not be included in a different tx. You cannot bury an information in a memory pool, because is controlled by a user software and so it is not ought to be trusted.

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!