Author

Topic: rpietila Wall Observer - the Quality TA Thread ;) - page 131. (Read 907229 times)

hero member
Activity: 784
Merit: 1001
...
ArticMine - what do you think about the spin off method described in Peter R's post?

It is an interesting proposal that can work if there is a very clear vote and hence valuation one way or the other. Where it can get real messy and problematic is if there is close to an even split or even significant vote for the minority chain. Then the uncertainty created can cause a significant overall loss of trust. The reality is that a hard fork only works with strong consensus and my thought is that Peter R's proposal will expose that reality. Having said this it may in the end have to come down to a spin off method solution as a last resort.

It sounds like one of those drastic measures that would probably never actually have to be implemented. Having said that, one of the biggest if not the number one chief threat to bitcoin as a long term store of value is that it could get replaced by an alt. If that ever looked like it might actually happen, I would imagine it would not be difficult to reach a consensus that the above plan would be preferable to watching the value of bitcoin plummet. So it is comforting, at least, to know something like that MIGHT be implement-able.

So, my thought process tells me that perhaps the chief threat to bitcoin is not replacement by an alt, but rather, fragmentation of community consensus. (Which could be the result of threat from an alt, or could come from who knows what.) Methods of managing community consensus is a problem that seems very interesting, although I have not seen it much discussed.
legendary
Activity: 2282
Merit: 1050
Monero Core Team
...
ArticMine - what do you think about the spin off method described in Peter R's post?

It is an interesting proposal that can work if there is a very clear vote and hence valuation one way or the other. Where it can get real messy and problematic is if there is close to an even split or even significant vote for the minority chain. Then the uncertainty created can cause a significant overall loss of trust. The reality is that a hard fork only works with strong consensus and my thought is that Peter R's proposal will expose that reality. Having said this it may in the end have to come down to a spin off method solution as a last resort.

Edit: The best solution is a hard fork with strong community consensus.
hero member
Activity: 784
Merit: 1001

Suppose Monero (or a different alt) were to gain enough traction for it to appear inevitable that it would eventually topple bitcoin. How feasible would it be to fork bitcoin to adopt some or all features of Monero? iow, a merger of the first mover advantage of bitcoin with the technical advantages of Monero. I suppose this question has two parts: 1) What would be the technical feasibility of doing this? and 2) Would the community go along?
 

The chances of such a merger are zero. From a technical perspective the coins are very different, and the economic interests strongly align against this. More importantly such a merger would violate the most basic economic fundamentals of both coins. This means that such a merger would break all trust in the coins and yes could make them both worthless. Both communities would reject such a merger and for very good reasons.

What is more likely to happen here is that Bitcoin would have to fork to deal with the 1 MB Limit. Both coins would live side by side, compete and hopefully learn from each other. First mover is not everything. A very good example is the credit card industry. The first movers were Diner's Club and then American Express. Then came the later entrants including Visa and MasterCard. The first movers are still around but with vastly reduced market share.

The challenge for the Bitcoin is to deal with the 1 MB blocksize limit before the above happens and not become the American Express or even Diner's Club of crypto-currency.

Edit: Bitcoin might even fork in the middle of a boom, like it did the last time. After all it is way easier to get consensus when everyone is getting wealthier.

Suppose Monero (or a different alt) were to gain enough traction for it to appear inevitable that it would eventually topple bitcoin. How feasible would it be to fork bitcoin to adopt some or all features of Monero? iow, a merger of the first mover advantage of bitcoin with the technical advantages of Monero. I suppose this question has two parts: 1) What would be the technical feasibility of doing this? and 2) Would the community go along?

It is possible to clone any alt-coin and bootstrap it with a snapshot of the unspent outputs in the bitcoin blockchain using the spin-off method.  Using this technique, "Bitcoin the Ledger" could be preserved while "Bitcoin the Payment Network" could be replaced with new technology.  

When the spin-off is launched, bitcoin users will have coins in both systems.  The two coins will trade against each other on the open market.  If the community thinks the new technology is not worth the switch, they will sell these "free" spin-off coins, thereby killing the spin-off.  If the community feels the technology is a "must have," they will sell bitcoins in favour of the spin-off, thereby transfer the bulk of the wealth to the new network.

ArticMine - what do you think about the spin off method described in Peter R's post?
hero member
Activity: 784
Merit: 1001

Jeff makes an argument that the block size should be a limited resource (akin to the 21 million limit) and that this will incentivize people to build layers on top of bitcoin. Perhaps experience will teach what was not obvious in the early days, which is that running into the transaction limit causes damage to bitcoin's utility that outweighs any benefit of encouraging "layers on top of bitcoin." His argument may or may not be correct, but it doesn't sound to me (a non programmer) to be some idiotic idea that is completely without merit. So here's my question: if the arguments put forth by Jeff in the above post do not stand the test of time, will the proponents of this idea will be too stupid to see it? Because if they CAN see it (and why wouldn't they?), then the problem will most likely be solved.

Sidenote: He also does not like feedback based methods, saying they can be easily gamed. It seems to me it would be easy to design a feedback based method that is prohibitively expensive to game. Just my initial reaction.
legendary
Activity: 2282
Merit: 1050
Monero Core Team
legendary
Activity: 2282
Merit: 1050
Monero Core Team
...
Quote
block size limit is simply too small for Bitcoin to maintain reasonable growth, and it will hit a bottleneck just trying to process normal business.

If it's about 260,000 transactions per day, it is indeed too small. If it can be increased, I favor increasing. And also setting in stone the increasing schedule so that no further vote or community decision is needed ever concerning this matter.

Yes 260,000 transactions per day, 3 transactions per second, is the practical limit. The maximum theoretical limit assuming all transactions were ideally optimized is closer to 600,000 thousand per day or 7 transactions per second. Is a technical solution that meets the above quoted requirements possible? Yes there are many including getting rid of the limit altogether as Gavin has proposed. Furthermore a solution very close to above that meets the above quoted requirements is part of the implementation of the CryptoNote alt-coins including its leader XMR (Monero); however virtually all other alt-coins suffer from this very same limitation. The problem is social. There is a significant and influential point of view within the Bitcoin community that is opposed to or at best very resistant to making this change. Furthermore this debate is very old. Here is a post from 2010 that addresses this issue and is in many respects highly prophetic.

Hello all,

Recently I just posted on another thread to express my concern about this subject, but I thought it might deserve a topic of its own.

This block size rule is something really "dangerous" to the protocol. Rules like that are almost impossible to change once there are many clients implementing the protocol. Take SMTP as an example. Several improvements could be done to it, but how? It's impractical to synchronize the change.

And, well, if we ever want to scale, such limit will have to grow. I really think we should address this problem while there is only one client used by everyone, and changes in the protocol are still feasible, because in the future we may not be able to.

As far as I understand, one of the purposes of this block size limit was to avoid flooding. Another purpose as well, as mentioned here, is to keep the transaction fees not "too small" in order to create an incentive for block generation once the coin production isn't that interesting anymore. (if only a limited number of transactions can enter a block, those with the smallest fees won't be quickly processed...)

So, if we really need a block size limit, and if we also need it to scale, why not making such limit so that it adjusts itself to the transaction rate, as the difficulty of generation adjust itself to the generation rate?

Some of the smart guys in this forum could come up with an adjustment formula, taking in consideration the total size of all transactions in the latest X blocks, and calculating which should be the block size limit for the next X blocks. Just like the difficulty factor.This way we avoid this "dangerous" constant in the protocol.
One of the things the smart guys would have to decide is how rigorous will the adjustment be. Should the adjustment be done in order to always leave enough room to all transactions in the next block, or should blocks be "tight" enough to make sure that some transactions will have to wait, thus pushing up the transaction fees?

Okay, I do realize that it would allow flooders to slowly increase the limit, but, what for? As long as generators aren't accepting 0-fee transactions, a flooder would have to pay to perform his attack.

So, what do you think?

I take the point of view that the 1 MB blocksize limit in Bitcoin makes no more sense than limiting the RAM in a personal computer to 640K http://quoteinvestigator.com/2011/09/08/640k-enough/ for the very same reason: Moore's Law. As a baby boomer, I happen to remember that debate well and had to deal with its aftermath.

The time for endless arguments and debates on this issue is over, since we are fast approaching this limit. The time for action is now. This brings me to my next point since this is after all a thread in Speculation: How can Bitcoin investors profit from this and / or protect their XBT investment? There are two sides to consider here:

First (XBT bull) if one takes the 1 MB blocksize limit out of the equation the fundamentals for Bitcoin are otherwise very bullish. Furthermore the most likely scenario, although not certain is that the Bitcoin community will finally get its act together and deal with the 1MB blocksize limit. This would make moving out of XBT into fiat or precious metals a very risky move for a long time XBT investor. The second case (XBT bear) is that the Bitcoin community does not get its act together, we get close to the limit and fees start to rise as a result. It is here where a coin not encumbered by this limit will become highly desirable, and XMR (Monero) is the leading candidate. Now and this is critically important XMR must stand on its own merits with good reasons to appreciate in terms of XBT for reasons completely unrelated to the to the 1MB blocksize limit issue. It is for these reasons that after reviewing this thread https://bitcointalksearch.org/topic/rpietila-altcoin-observer-624223 and after performing my own independent due diligence on XMR that I have moved approximately 15%, by market value, of my XBT holdings into XMR. This is to both protect my XBT position and potentially profit not only from XMR making bronze or silver on its own merits, but from also the small chance of it actually making gold as a result of the turmoil associated with Bitcoin reaching the 1MB blocksize limit.


legendary
Activity: 2324
Merit: 1125
Does that mean you are going to force people who do not want to be controlled by this computer to move elsewhere? Or can they stay where they are and live by their own rules? Is this a purely voluntary system? Opt-in, opt-out when you want? Abide by the computer's decisions when you want, don't abide by them when you don't? Or will there be an enforcement mechanism? If so, how do you enforce the rules?

Hard to believe he can mean serious with that idea.

He's one of two on my igbore list. He's a Bitcoin begging, early adopter jealous idiot. Please ignore him.
newbie
Activity: 25
Merit: 66
Quote
block size limit is simply too small for Bitcoin to maintain reasonable growth, and it will hit a bottleneck just trying to process normal business.

If it's about 260,000 transactions per day, it is indeed too small. If it can be increased, I favor increasing. And also setting in stone the increasing schedule so that no further vote or community decision is needed ever concerning this matter.

Perhaps a block size limit that periodically self-adjusts based upon a function that takes as input the historical number of transactions per unit time?

http://garzikrants.blogspot.com/2013/02/bitcoin-block-size-thoughts.html
donator
Activity: 1722
Merit: 1036
Does that mean you are going to force people who do not want to be controlled by this computer to move elsewhere? Or can they stay where they are and live by their own rules? Is this a purely voluntary system? Opt-in, opt-out when you want? Abide by the computer's decisions when you want, don't abide by them when you don't? Or will there be an enforcement mechanism? If so, how do you enforce the rules?

Hard to believe he can mean serious with that idea.
hero member
Activity: 784
Merit: 1001
private property as we knowing must basically dissapear. Things will be lended. Say you need whatever device to do whatever task, like record a movie or whatever, you ask for any free cameras and you get one sent, when you are done you send it back and some other person uses it.
Who sends you the camera? Who stores it? Who fixes it when it's broken? If two people want it at the same time, who decides who gets it? What happens to the person who "borrows" it and never sends it back?

Statistics could get extracted in terms of "how many cameras are used and for how much time are they used, and how many of them get broken" and then manufacture under these %'s. These cameras are built by automated robots, which manufacture given the data input that I mentioned earlier. The wasted stuff aka unrepairable will be decomposed and the prime materials used again. In 1000 years the human imput to keep this cycle going will be peanuts.
Who extracts these statistics? Who decides how much in terms of resources gets spent on digital cameras, smartphone cameras, video cameras, other types of cameras, and / or R&D on new types of cameras?

Of course some sort of centralized (as in central or "Main", not closed source) computer having realtime date of worldwide resources. I don't see any other solution. The core of what dictates if something can be manufactured or not is judging by the dictatorship that is nature (nature is only true dictatorship, we must align to it, to whatever resources are available) and also to the well being of everyone. If what you are requesting, whatever that is, compromises the basic needs of a person a continent away, then you deal with it and not get said thing until this equilibrum of resources and global well being + your specific not basic need demand not compromising any of the former is meet.

How do you plan to convince the world population to subjugate themselves to your centralized computer?

They will naturally as they see it's just better. Of course you are free to live outside the civilized world.
Does that mean you are going to force people who do not want to be controlled by this computer to move elsewhere? Or can they stay where they are and live by their own rules? Is this a purely voluntary system? Opt-in, opt-out when you want? Abide by the computer's decisions when you want, don't abide by them when you don't? Or will there be an enforcement mechanism? If so, how do you enforce the rules?
hero member
Activity: 667
Merit: 500
All the reference client actually has to do in this respect is create and sign raw transactions through an API that provides all the relevant parameters, including tx fee itself.
that's still there

Quote
On the mining end, all the reference client has to do
there is no reference client for mining. all major pools have their own thing.

Quote
The decision on methodology of pricing transactions is properly offloaded to wallet and mining pool software developers...

the reference client is also a wallet, therefore it is ok to have some estimation function inside. there is also no barrier in implementing your own function to do that!
my guess is, there will be different methods to estimate the fee and the data of the reference client is more like a monitoring tool (that's how I see it currently).
there is also no decision made regarding the protocol itself.

hence i regard what you write a bit like FUD, sorry for that.

To address all these points --

1. I never said it wasn't there, I just said that it shouldn't do more than just provide that functionality. The idea of going beyond the basic protocol functionality introduces a gray area between protocol and policy.

2. Mining pool software and solo miners call bitcoind (or at least a custom-compiled version of bitcoind), are you somehow insinuating that miners all use libbitcoin or have all written their own top secret independent implementations?

3. The notion of the reference client being a wallet is being phased out gradually anyway per statements made by Gavin previously.

4. Ideas that you disagree with just because you're mistaken about them do not constitute "FUD".
hero member
Activity: 763
Merit: 500
All the reference client actually has to do in this respect is create and sign raw transactions through an API that provides all the relevant parameters, including tx fee itself.
that's still there

Quote
On the mining end, all the reference client has to do
there is no reference client for mining. all major pools have their own thing.

Quote
The decision on methodology of pricing transactions is properly offloaded to wallet and mining pool software developers...

the reference client is also a wallet, therefore it is ok to have some estimation function inside. there is also no barrier in implementing your own function to do that!
my guess is, there will be different methods to estimate the fee and the data of the reference client is more like a monitoring tool (that's how I see it currently).
there is also no decision made regarding the protocol itself.

hence i regard what you write a bit like FUD, sorry for that.
sr. member
Activity: 322
Merit: 250
private property as we knowing must basically dissapear. Things will be lended. Say you need whatever device to do whatever task, like record a movie or whatever, you ask for any free cameras and you get one sent, when you are done you send it back and some other person uses it.
Who sends you the camera? Who stores it? Who fixes it when it's broken? If two people want it at the same time, who decides who gets it? What happens to the person who "borrows" it and never sends it back?

Statistics could get extracted in terms of "how many cameras are used and for how much time are they used, and how many of them get broken" and then manufacture under these %'s. These cameras are built by automated robots, which manufacture given the data input that I mentioned earlier. The wasted stuff aka unrepairable will be decomposed and the prime materials used again. In 1000 years the human imput to keep this cycle going will be peanuts.
Who extracts these statistics? Who decides how much in terms of resources gets spent on digital cameras, smartphone cameras, video cameras, other types of cameras, and / or R&D on new types of cameras?

Of course some sort of centralized (as in central or "Main", not closed source) computer having realtime date of worldwide resources. I don't see any other solution. The core of what dictates if something can be manufactured or not is judging by the dictatorship that is nature (nature is only true dictatorship, we must align to it, to whatever resources are available) and also to the well being of everyone. If what you are requesting, whatever that is, compromises the basic needs of a person a continent away, then you deal with it and not get said thing until this equilibrum of resources and global well being + your specific not basic need demand not compromising any of the former is meet.

How do you plan to convince the world population to subjugate themselves to your centralized computer?

They will naturally as they see it's just better. Of course you are free to live outside the civilized world.
hero member
Activity: 667
Merit: 500
I disagree philosophically with the direction Gavin is taking this where floating fees are integrated into the reference client.

The methodology of estimating them is never a non-controversial undertaking, and there are no structural limitations that prevent data and market information determining tx pricing from getting decided outside of the Bitcoin network. All the reference client actually has to do in this respect is create and sign raw transactions through an API that provides all the relevant parameters, including tx fee itself. On the mining end, all the reference client has to do is provide configuration parameters robust enough for pools and solo miners to decide their tx fee policy, or integrate through API to take external data about appropriate pricing in order to select transactions for candidate blocks as desired.

The decision on methodology of pricing transactions is properly offloaded to wallet and mining pool software developers, and the market will decide the correct infrastructure for tx fee price discovery. Not some guy working on an institutional stipend.
donator
Activity: 1722
Merit: 1036
also: a higher fee for bitcoin just means, that a new market opens up: one for other coins which do what the pissed-off users demand. e.g. really fast transactions of small amounts, etc.

If transacting is prohibitively expensive, then Bitcoin might lose users, and the resulting loss of adoption turn to loss of network effect, vicious circle, etc. So it is not trivial to let the fee shoot up, but we are well on the safe side with sub-$1 fees.

Like I said a week ago, in very few applications, is the total transaction cost less than $1 anyway even if the "handing money" part were free (as is the case with cash).
hero member
Activity: 763
Merit: 500
But what about when blocksize is too small that the fees become high lowering BTC's usefulness as a cheap payment system.
well, why does it need to be cheap when it is still useful? the tradeoff is this: either the system starts to fall apart by a combination of growing too fast, no incentive for miners and flaky behaviour -- or a well working and tested system, where there is a market for the fee to use it.
i lean on the side of caution, better a well tested system than killing it by a step forward which cannot really be undone.

also: a higher fee for bitcoin just means, that a new market opens up: one for other coins which do what the pissed-off users demand. e.g. really fast transactions of small amounts, etc.
donator
Activity: 1722
Merit: 1036
Many things are difficult, but that shouldn't be difficult at all: miners just include transactions that pay the most (if space is limited) or that pay minimum X bits, X being defined by the miner, (if the space is not limited). THAT'S IT!
But what about when blocksize is too small that the fees become high lowering BTC's usefulness as a cheap payment system.

I am not in favor of artificially reducing the blocksize. But if the technology (storage space, propagation speed of blocks etc. similar factors) demands it, then I believe typical transaction fees in the $1-$2 range (50 times higher than now) won't kill it, ie. the Bitcoin's unique characteristics of a secure store-of-value ledger are unaffected even if the transactions were more expensive.
hero member
Activity: 994
Merit: 507
Why is the floating transaction fee not implemented already?

(iow: why centralization?)
Somewhere else by Gavin...
Smart (dynamic, floating) fees for the reference implementation wallet was pulled today:
  https://github.com/bitcoin/bitcoin/pull/4250

... and should appear in version 0.10.

The estimation code only considers transactions that are broadcast on the network, enter the memory pool (so are available to any miner to mine), and then are included in a block. So it is immune to miners putting pay-to-self transactions with artificially high fees in their blocks.

Right now if you use the default fee rules your transactions will take 2-6 blocks to confirm:
  http://bitcoincore.org/smartfee/fee_graph.html

The priority estimation code is even more broken; the reference implementation wallet will send a 56-million-priority transaction with no fee, which is nowhere near enough priority to get confirmed quickly:
  http://bitcoincore.org/smartfee/priority_graph.html

(the smart fee code estimates priority, too).

Release notes from doc/release-notes.md in the source tree:

Transaction fee changes
=======================

This release automatically estimates how high a transaction fee (or how
high a priority) transactions require to be confirmed quickly. The default
settings will create transactions that confirm quickly; see the new
'txconfirmtarget' setting to control the tradeoff between fees and
confirmation times.

Prior releases used hard-coded fees (and priorities), and would
sometimes create transactions that took a very long time to confirm.


New Command Line Options
========================

-txconfirmtarget=n : create transactions that have enough fees (or priority)
so they are likely to confirm within n blocks (default: 1). This setting
is over-ridden by the -paytxfee option.

New RPC methods
===============

Fee/Priority estimation
-----------------------

estimatefee nblocks : Returns approximate fee-per-1,000-bytes needed for
a transaction to be confirmed within nblocks. Returns -1 if not enough
transactions have been observed to compute a good estimate.

estimatepriority nblocks : Returns approximate priority needed for
a zero-fee transaction to confirm within nblocks. Returns -1 if not
enough free transactions have been observed to compute a good
estimate.

Statistics used to estimate fees and priorities are saved in the
data directory in the 'fee_estimates.dat' file just before
program shutdown, and are read in at startup.

hero member
Activity: 994
Merit: 507
Many things are difficult, but that shouldn't be difficult at all: miners just include transactions that pay the most (if space is limited) or that pay minimum X bits, X being defined by the miner, (if the space is not limited). THAT'S IT!
But what about when blocksize is too small that the fees become high lowering BTC's usefulness as a cheap payment system.
hero member
Activity: 763
Merit: 500
Ah, please tell me what is a floating fee then?
currently, a client like bitcoin core -- and the floating fees are ONLY about clients sending out TXs, nothing related to miners -- has a fixed minimum fee. other online wallets also have a fixed minimum fee, etc. you can also send out TXs with any other fee, also zero, but it's just a guess out of your butt.

what you want is actually this: higher fee -> quicker inclusion in the next block. lower fee -> maybe wait an hour or two, but it will get included.

solution:
1.  let your client monitor the last 2500 successfully confirmed transactions (ignore what's currently in the mempool or what your client hasn't seen so far) whereas they are grouped by the number of blocks they had to wait until they are confirmed in bins of maximum size 100,
2. calculate for each of them the TX-fee per kB,
3. sort them by this value and put them into 25 bins of size 100 each (and yes, if you don't have 2500 TXs, bins are smaller),
4. select bin number "n" for your desired number of blocks "n" you want wait for inclusion -> calculate the median TX-fee of that bin number "n" and multiply it by the kB your new TX.

For example, this is what my dev client says are the fees to be included in the next "n"-th block:

Code:
$ echo `seq 1 25` | xargs -n 1 bitcoin-cli estimatefee | nl
     1 0.00045662
     2 0.00044247
     3 0.00038910
     4 0.00038610
     5 0.00026809
     6 0.00022831
     7 0.00019193
     8 0.00015885
     9 0.00014461
    10 0.00013614
    11 0.00012547
    12 0.00012315
    13 0.00012241
    14 0.00012195
    15 0.00011851
    16 0.00011778
    17 0.00011764
    18 0.00011475
    19 0.00011282
    20 0.00011040
    21 0.00010928
    22 0.00010787
    23 0.00010548
    24 0.00010405
    25 0.00006574



Jump to: