Pages:
Author

Topic: [Opinions] IF you could improve/add/remove 1 thing to bitcoin what would it be? - page 2. (Read 5743 times)

hero member
Activity: 675
Merit: 502
But it would take resources to intentionally orphan the last block in order to double spend a transaction with 1 confirmation. It takes no resources to double spend a transaction with zero confirmations. So, there is some security improvement when you compare 0 confirmations and a longer block time, to 1 confirmation with a short block time.

I understand what you are saying.

But help me understand the Bitcoin protocol here. Let me know if I have some of this wrong:

The Bitcoin network is interconnected nodes that share unconfirmed transactions by broadcasting them among the nodes. A wallet application joins the network by connecting to one or more of these nodes. When BTC is sent from one wallet to another, it is sent through the network and the receiving wallet sees the transaction. A transaction must be verified by a node before it is sent to the next node. Part of this verification is a check to see if it duplicates an input from another transaction, either one in the blockchain or one in the unconfirmed pool.

Thus, it is difficult to double-spend because the transaction with a duplicate input would have to be introduced into the network before the 1st has propagated. Not only that, but the double-spend would only work if the recipient of the 2nd transaction was connected to a part of the network to which the 1st transaction hadn't been propagated.

Thus, to protect against a double-spend, the recipient only has to wait long enough for the transaction to propagate through most of the network. This is less time than the wait for the transaction to be confirmed in a block.

You're close. Bitcoin nodes relay new transactions to each other, but they don't necessarily (and don't usually) mine a new block when relaying new transactions. Until a new block is mined that includes a new transaction, (usually 10 minutes on average, but this varies)  it is not certian which transaction will be included in the blockchain (confirmed) and which transaction will be ignored*. Miner software has to decide which one to include. It is up to the miner to decide how to rectify this situation, and I'm not certain how off-the-shelf miner software typically handles it. I've asked in this thread here: https://bitcointalksearch.org/topic/question-about-how-miners-treat-unconfirmed-double-spend-transactions-758658



*And even when a new block is mined that includes your transaction, there is a small chance (if other miners quickly mine two blocks in a row without your transaction) that this block may be replaced by another block that doesn't include your transaction.
member
Activity: 67
Merit: 10
I think the present bitcoin system is pretty stable and working well. I have no problem with confirmation times either.
full member
Activity: 126
Merit: 100
It would certainly be the restriction of transaction confirmation interval to one.
hero member
Activity: 588
Merit: 500
Faster confirmation times do have benefits:

Many transactions are never confirmed for one reason or another. If I am selling something, I want to make sure that I will eventually get the bitcoins. If a transaction is confirmed once, then it is extremely likely to be confirmed many times, even if the first is orphaned. So one confirmation is fine for me even if confirmation times are short, and shorter confirmation times are more convenient.

Another benefit is a better distribution of block rewards. If there are more block rewards, then the chances of getting a block reward is higher. That reduces the need for mining pools.

Yes, the largest benefit to short confirmation times is that 1 confirmation is infinitely better than 0 confirmations.  As a result, very short confirmation times are hands-down better for convenience-store-like transactions (assuming that the time isn't so short that you end up with intolerably high rates of orphans, etc.).  Really, anything beyond 15-30 seconds becomes a legitimate issue for these transaction types.
One confirmation is not better then 0/unconfirmed necessarily. If the confirmation time is too short then it would be very easy to attack the network and people would have a false sense of security when they see that a TX has n confirmations. When the block confirmation time is longer you will know that it will take more resources to double spend the TX (assuming there is a sufficient TX fee and the TX is well propagated)

I think this is nitpicking a little bit.  You're talking about a false sense of security from someone who assumes that 1 confirmation at an average of (for example) 30-second confirmation times provides the same level of security as 1 confirmation at an average of 10-minute confirmation times.  But, regardless of psychology, if you *had* to chose between 0 confirmations at n-second confirmation times or 1 confirmation at n-minus-m-second confirmation times, which would you pick?

The point is that one confirmation at any confirmation rate is preferable to 0 confirmations, and therefore *is* necessarily better.
I would disagree. My point is that 1 confirmation on a ten minute block chain is more secure then 10 confirmations are on a 1 minute block chain. The reason for this is because of the higher number of orphans that will occur on a 1 minute block chain.

In order to successfully double spend a TX that is well propagated throughout the network and contains an appropriate TX fee you generally need to find the next block after the TX is sent (you could also find enough consecutive blocks after the TX is sent but this would be more expensive). If you have a 1 minute block time then it will take less resources to find the next block (it will also take less resources to find enough consecutive blocks to overcome the chain that confirmed your TX).
legendary
Activity: 1122
Merit: 1017
ASMR El Salvador
I would: make all coins of an address that has not been used for 10 years be moved to a void address.
This would force everyone to move their coins to a new address once that time limit was about to be reached, and so we would always know how many coins are "alive".
full member
Activity: 206
Merit: 100
But it would take resources to intentionally orphan the last block in order to double spend a transaction with 1 confirmation. It takes no resources to double spend a transaction with zero confirmations. So, there is some security improvement when you compare 0 confirmations and a longer block time, to 1 confirmation with a short block time.

I understand what you are saying.

But help me understand the Bitcoin protocol here. Let me know if I have some of this wrong:

The Bitcoin network is interconnected nodes that share unconfirmed transactions by broadcasting them among the nodes. A wallet application joins the network by connecting to one or more of these nodes. When BTC is sent from one wallet to another, it is sent through the network and the receiving wallet sees the transaction. A transaction must be verified by a node before it is sent to the next node. Part of this verification is a check to see if it duplicates an input from another transaction, either one in the blockchain or one in the unconfirmed pool.

Thus, it is difficult to double-spend because the transaction with a duplicate input would have to be introduced into the network before the 1st has propagated. Not only that, but the double-spend would only work if the recipient of the 2nd transaction was connected to a part of the network to which the 1st transaction hadn't been propagated.

Thus, to protect against a double-spend, the recipient only has to wait long enough for the transaction to propagate through most of the network. This is less time than the wait for the transaction to be confirmed in a block.
legendary
Activity: 1834
Merit: 1020
Faster confirmation times do have benefits:

Many transactions are never confirmed for one reason or another. If I am selling something, I want to make sure that I will eventually get the bitcoins. If a transaction is confirmed once, then it is extremely likely to be confirmed many times, even if the first is orphaned. So one confirmation is fine for me even if confirmation times are short, and shorter confirmation times are more convenient.

Another benefit is a better distribution of block rewards. If there are more block rewards, then the chances of getting a block reward is higher. That reduces the need for mining pools.

Yes, the largest benefit to short confirmation times is that 1 confirmation is infinitely better than 0 confirmations.  As a result, very short confirmation times are hands-down better for convenience-store-like transactions (assuming that the time isn't so short that you end up with intolerably high rates of orphans, etc.).  Really, anything beyond 15-30 seconds becomes a legitimate issue for these transaction types.
One confirmation is not better then 0/unconfirmed necessarily. If the confirmation time is too short then it would be very easy to attack the network and people would have a false sense of security when they see that a TX has n confirmations. When the block confirmation time is longer you will know that it will take more resources to double spend the TX (assuming there is a sufficient TX fee and the TX is well propagated)

I think this is nitpicking a little bit.  You're talking about a false sense of security from someone who assumes that 1 confirmation at an average of (for example) 30-second confirmation times provides the same level of security as 1 confirmation at an average of 10-minute confirmation times.  But, regardless of psychology, if you *had* to chose between 0 confirmations at n-second confirmation times or 1 confirmation at n-minus-m-second confirmation times, which would you pick?

The point is that one confirmation at any confirmation rate is preferable to 0 confirmations, and therefore *is* necessarily better.
hero member
Activity: 675
Merit: 502
Once the transactions are confirmed in the blockchain, they are confirmed and no longer able to be double spent. Right?
No, this is incorrect. The block that contains the transaction could be orphaned. If block times are shorter, then it is more likely for a block to be orphaned, resulting in no difference in security.

Unintentional orphaned blocks would become more common, yes. But unintentionally orphaned blocks can't be used to double spend because you don't know when unintentionally orphaned blocks will occur, (and without resources you can't guarantee the new blocks contain your double spend transaction instead of the legitimate transaction).

But it would take resources to intentionally orphan the last block in order to double spend a transaction with 1 confirmation. It takes no resources to double spend a transaction with zero confirmations. So, there is some security improvement when you compare 0 confirmations and a longer block time, to 1 confirmation with a short block time.
hero member
Activity: 588
Merit: 500
Faster confirmation times do have benefits:

Many transactions are never confirmed for one reason or another. If I am selling something, I want to make sure that I will eventually get the bitcoins. If a transaction is confirmed once, then it is extremely likely to be confirmed many times, even if the first is orphaned. So one confirmation is fine for me even if confirmation times are short, and shorter confirmation times are more convenient.

Another benefit is a better distribution of block rewards. If there are more block rewards, then the chances of getting a block reward is higher. That reduces the need for mining pools.

Yes, the largest benefit to short confirmation times is that 1 confirmation is infinitely better than 0 confirmations.  As a result, very short confirmation times are hands-down better for convenience-store-like transactions (assuming that the time isn't so short that you end up with intolerably high rates of orphans, etc.).  Really, anything beyond 15-30 seconds becomes a legitimate issue for these transaction types.
One confirmation is not better then 0/unconfirmed necessarily. If the confirmation time is too short then it would be very easy to attack the network and people would have a false sense of security when they see that a TX has n confirmations. When the block confirmation time is longer you will know that it will take more resources to double spend the TX (assuming there is a sufficient TX fee and the TX is well propagated)
legendary
Activity: 924
Merit: 1132
The fee structure is inaccurate and needs to be fixed. 

It's not acute yet, as the primary cost of securing the network is borne by miners in exchange for block subsidies, but in the future we will need to pay miners for securing the network, and the current fee schedule is flatly wrong.  It is not charging for security in proportion to that which needs secured, and it will not pay miners to provide extra margins of security when those extra margins are needed. 

Right now we're charging fees based on transaction size.  Transaction size isn't what we're trying to secure, although under the 1MB block limit I suppose it is a resource we need to protect.  But what we're trying to secure is the value that the blockchain represents, and with tx fees not in any way based on the value to be protected we're leaving large transactions open to attack. 

Miners who don't get paid any more money to secure a block where a million-BTC transaction goes through won't make any extra effort to secure that block.  But attackers running a scam where they can temporarily rent mining power to compromise or undo that million-BTC transaction have an instant motivation directly in proportion to the value that is being secured. 

In fact when you consider the case of miners *as* potential attackers, this gets far worse.  Large transactions paying more to attackers but not defenders can switch the course of greatest profit from honest to dishonest use of the same resources. 

legendary
Activity: 1806
Merit: 1024
Untraceability of funds and cloaking of transacting parties.

I think Bitcoin is most useful when it has cash-like properties, because then money will always flow smoothly. The current Bitcoin is at risk of being morphed into a surveillance nightmare which could also destroy its fungibility when things like blacklisting would be introduced.

ya.ya.yo!
full member
Activity: 206
Merit: 100
Once the transactions are confirmed in the blockchain, they are confirmed and no longer able to be double spent. Right?
No, this is incorrect. The block that contains the transaction could be orphaned. If block times are shorter, then it is more likely for a block to be orphaned, resulting in no difference in security.
legendary
Activity: 1834
Merit: 1020
Faster confirmation times do have benefits:

Many transactions are never confirmed for one reason or another. If I am selling something, I want to make sure that I will eventually get the bitcoins. If a transaction is confirmed once, then it is extremely likely to be confirmed many times, even if the first is orphaned. So one confirmation is fine for me even if confirmation times are short, and shorter confirmation times are more convenient.

Another benefit is a better distribution of block rewards. If there are more block rewards, then the chances of getting a block reward is higher. That reduces the need for mining pools.

Yes, the largest benefit to short confirmation times is that 1 confirmation is infinitely better than 0 confirmations.  As a result, very short confirmation times are hands-down better for convenience-store-like transactions (assuming that the time isn't so short that you end up with intolerably high rates of orphans, etc.).  Really, anything beyond 15-30 seconds becomes a legitimate issue for these transaction types.
legendary
Activity: 1834
Merit: 1020
I would decrease the time for difficulty adjustments.  I don't have a specific duration in mind, but maybe something like every 1-3 days.

My reasoning for this is that I think it could have interesting effects on price stability due to reduced effects of difficulty manipulation and speculation by miners.  I think there's a likelihood that it could help stabilize the rate at which miners sell BTC to recoup investment costs.

For the record, I kind of have no idea what I'm talking about here.
I don't think that the price is affected by the difficulty of mining but rather the opposite that the difficulty is affected by the price of bitcoin. If difficulty decreases or increases then the same amount of coins will still be mined on average. However if the price changes then the amount of funds that can be gained from using resources for mining would be changed in the same direction.

Actually, the one thing I'm confident in asserting is that the relationship between price and difficulty is *NOT* a one-way function.  Price absolutely affects difficulty and vice-versa.   Anyone who tells you otherwise is completely ignoring psychological factors.

What I'm not confident about is exactly how this dynamic plays out, and specifically how miners (particularly the largest mining operations) are affected and influenced by varying difficult adjustment periods.

Also note that I'm not referring to how the actual difficulty level influences miners and the price, but rather I'm simply focusing on the time between difficulty adjustments.
legendary
Activity: 4466
Merit: 3391
Faster confirmation times do have benefits:

Many transactions are never confirmed for one reason or another. If I am selling something, I want to make sure that I will eventually get the bitcoins. If a transaction is confirmed once, then it is extremely likely to be confirmed many times, even if the first is orphaned. So one confirmation is fine for me even if confirmation times are short, and shorter confirmation times are more convenient.

Another benefit is a better distribution of block rewards. If there are more block rewards, then the chances of getting a block reward is higher. That reduces the need for mining pools.
legendary
Activity: 2072
Merit: 1049
┴puoʎǝq ʞool┴
member
Activity: 116
Merit: 10
IPSX: Distributed Network Layer
I wish blocks were 1 minute apart, not 10.

This doesn't do anything useful you know.
member
Activity: 97
Merit: 10
Compressing the blockchain would be nice, although I'm not sure how technically possible it would be.
newbie
Activity: 19
Merit: 0
How transaction hashes get calculated. I would move "scriptPubKey" in a third section (i.e. aside "outputs") to exclude it from hashed data.
Pages:
Jump to: