Pages:
Author

Topic: svn r197: IsStandard check for transactions (Read 5339 times)

brand new
Activity: 0
Merit: 0
April 16, 2011, 05:27:43 PM
#37
That is a common misconception.  The price of bitcoin is loosely related to the cost of generating them, but that is in no way the only factor and currently, the price is far away from the cost most miners pay to generate them.

You are right it is not so simple and the arbitrage opportunity currently only exists in one direct, but it is true that the value of a bitcoin must exceed the expected EC2 cost to mint, else one would rationally mint coins instead.

Similarly here, the transaction fee for some transaction must exceed the cost of a similar reliable storage system that would store the transaction data, or else one would rationally use the bitcoin network for storage instead.   So if your goal is to prevent people from doing this, you need to make transactions expensive enough that they won't want to.
hero member
Activity: 755
Merit: 515
That is a common misconception.  The price of bitcoin is loosely related to the cost of generating them, but that is in no way the only factor and currently, the price is far away from the cost most miners pay to generate them.

You are right it is not so simple and the arbitrage opportunity currently only exists in one direct, but it is true that the value of a bitcoin must exceed the expected EC2 cost to mint, else one would rationally mint coins instead.

Similarly here, the transaction fee for some transaction must exceed the cost of a similar reliable storage system that would store the transaction data, or else one would rationally use the bitcoin network for storage instead.   So if your goal is to prevent people from doing this, you need to make transactions expensive enough that they won't want to.
Again, common misconception.  There are many more factors.  Please read https://bitcointalksearch.org/topic/a-debate-on-the-usefulness-of-donating-miners-5320 and continue this part of the discussion there.  Also, please do not resurrect such an old thread.  Many people before you have made similar points and all of them have been considered.  If you want to have an argument about it, please start a new thread or comment on a newer thread which discusses this (there are several).  Also, please comment if you have new information instead of just rehashing old arguments.
hero member
Activity: 755
Merit: 515
Bootstrapping a p2p service like this is extremely hard, so any way an existing network can be leveraged is ideal.  I want distributed storage, and if I can exploit the bitcoin network for that purpose, I will do it; distributed systems aren't based on the assumption that everyone is "nice".

As mentioned, you cannot stop this usage, only change the price.  I personally would love to have a, say, 1KB filesystem
that I know is being backed up all over the world and people have an incredible financial incentive to hold onto, and I would be willing to pay quite a bit for it.  Many others would too.

I just found out about bitcoin a couple of days ago but I will build such a  "bitcoin block store" as a proof-of-concept, using whatever I can.  It will support a very modular encoding scheme to encode the data blocks in transactions, with the encoding becoming more and more steganographic as needed to counter any attempts to stop me.
There are much better ways of achieving distributed storage than bitcoin.  There are, however, specific data that can idealy be stored in a proof-of-work system like bitcoin.  For example, DNS.  However, for the vast majority of distributed storage, please use google. 
Infact, thinking further, I think this is actually the correct/arbitrage-free way to price bitcoin transactions(by storage).
It's already clear that the correct/abitrage-free price of a bitcoin should be the expected cost of minting a new coin using say, amazon EC2 (i.e., a bitcoin value is pegged to the value of cpu time).  I am now pointing out the correct/arbitrage-free price of a bitcoin *transaction* is the expected cost of storing the same amount of data in a similar widely replicated system (i.e., the transaction price is pegged to the value of distributed storage).
That is a common misconception.  The price of bitcoin is loosely related to the cost of generating them, but that is in no way the only factor and currently, the price is far away from the cost most miners pay to generate them.
hero member
Activity: 755
Merit: 515
I'm new to bitcoin and immediately began thinking of the implications towards DNS, CA, and storage.  I was very pleased to find this page, which linked me to this thread:

http://privwiki.dreamhosters.com/wiki/Bitcoin_DNS_System_Proposal

You're missing a very important fact: bitcoin is a generalized distributed storage, whether you like it or not.  This is pointed out on the bottom of the wiki page, where even if you block whatever BitDNS currently uses, it can be worked around by simply storing the DNS info inside normal bitcoin transaction data, such as the low order bits of the #.

It seems to me the correct solution to this problem is to recognize bitcoin is a generalized distributed storage system and people will use it as such nomatter what you want, and set transaction fees accordingly.

Solution
Add back w/e was removed, and make transaction fees should be proportional to the size of the transaction.  The exact proportion should be a constant determined collectively by the network by the network's collective storage capacity, just as the exact # of bits needed to zero-hash is collectively determined by the network's collective CPU power.
Feel free to create your own network like bitcoin (which is the idea behind BitDNS) which allows for distributed storage.  Adding such features simply bog down the actual bitcoin network which is completely unnecessary. 
legendary
Activity: 1708
Merit: 1010
December 09, 2010, 04:53:49 PM
#32
Is one of the main points behind bitcoins that like cash its FREE to use and trade.

Even cash is not free to use.  Even if your personal costs are very low with cash, as they are for most people, and you don't pay those fees to the person that you are doing business with, the costs of getting yourself to a brick-&-mortor store to buy with cash is a real cost to you.  For most people, such costs are detatched from the purchase, but if you have to take public transit to get to the store or if you have to take off work to make it before closing time, you will feel the transaction costs.

Likewise, cash in person transaction costs rise when it starts snowing.
full member
Activity: 224
Merit: 141
December 09, 2010, 04:31:20 PM
#31
Keep it standard this is a currency system not something else, sure its cool when you find modifications of presidents on a 5 dollar bill, but is it worth raising the costs of sending money. Is one of the main points behind bitcoins that like cash its FREE to use and trade.

While you may not be aware of the costs involved, I can't think of a single monetary transaction that doesn't have some sort of costs of some sort or another, including pure cash transactions.  At the very least, a merchant has to account for "shrinkage" (typically shoplifting, but other forms of theft from the inventory too), counterfeit currency accidentally being accepted, embezzlement, and flat out theft of the cash register such as an armed robber.  A merchant makes up for all of that through expecting a higher profit margin when those costs start to mount, or they simply close up shop and leave.  Some inner city areas lack merchants precisely because the crime rate is so high they refuse to do business... and of course some silly "price gouging" legislation further mucks up the picture in those places too.  If you see a platoon of ex-marines patrolling a grocery store in order to keep the gang members from stealing things there including the cash register, expect to be paying $50 per orange or loaf of bread that you buy from that store.  That is a cash transaction fee.

Most people are completely unaware of fees that they pay with credit cards or other similar financial instruments, and in effect the "cash paying" customers are really paying a premium over those who pay with a credit card.

I am glad that the cost of a transaction is up front to everybody with Bitcoin, and I think that is a strong point to the currency.  If a "merchant" want to give a "rebate" to somebody for sending them some Bitcoins, that is their option and there might certainly be an incentive to do that in terms of paying for the transaction fees to process transactions in a timely fashion.  The amount paid for the fee would not be in dispute, and would be a part of the trust relationship between a merchant and their customer.

The one thing I'll say about Bitcoin is that its structure is such that transaction fees will always be cheaper than the major credit card agencies for a great many reasons I won't go into here.
donator
Activity: 826
Merit: 1060
December 09, 2010, 06:42:47 AM
#30
...Is one of the main points behind bitcoins that like cash its FREE to use and trade.

Actually, no. The home page of bitcoin.org contains these words, which are old enough that I think they were probably written by Satoshi: "Transactions are practically free..." (emphasis mine).

Transaction fees have been part of the design of Bitcoin since the beginning. Even so, regular everyday transactions are likely to remain practically free.
full member
Activity: 308
Merit: 100
December 08, 2010, 10:27:16 PM
#29
Keep it standard this is a currency system not something else, sure its cool when you find modifications of presidents on a 5 dollar bill, but is it worth raising the costs of sending money. Is one of the main points behind bitcoins that like cash its FREE to use and trade.
legendary
Activity: 1596
Merit: 1100
December 08, 2010, 07:36:26 PM
#28
The issue here is that these "GenCoins" would in effect have greater value as it is a superset of Bitcoin, because it can be used as the fiat

"greater", no, it would have a different value.
full member
Activity: 224
Merit: 141
December 08, 2010, 06:41:16 PM
#27
bitcoin's value proposition is simply in its fiat currency and decentralized nature.

GenCoins value would be in the data to which they are associated.

Two very different value propositions, reasons to hold them, and for that reason, two different market values.



The issue here is that these "GenCoins" would in effect have greater value as it is a superset of Bitcoin, because it can be used as the fiat currency and have value to the data itself as well.  Depending on very subtle differences and perhaps the effort put upon these "GenCoins", it may be possible that "GenCoins" would have greater value than Bitcoins, and certainly it is possible that in the long run such "GenCoins" might be able to attract more mining activity due to more sources of transaction fees, thus making these "GenCoins" a strong currency in terms of a strong block chain.

BTW, this is assuming that the "solution" here is to put all of this extra data as a fork of Bitcoins.  The reference earlier to the testcoins is not the same here as the testcoins have very limited utility and the total CPU mining effort on the testcoin chain is almost axiomatically never going to exceed that of the main Bitcoin chain.  As such they will remain substantially inferior to regular Bitcoins in value.  I can't say the same thing about these "GenCoins".
legendary
Activity: 1596
Merit: 1100
December 08, 2010, 03:57:54 PM
#26
Their value is directly derived from the services offered on the "generalized proof-of-work (PoW)" chain.

It's not that simple. If an alternative chain provides, say, timestamping services, then there is obviously value to the users of the service. But what is the value to the generators? They earn coins, but may not themselves have any need for a timestamping service. So the proof-of-work coins that they earn are only valuable to them if they can use them more generally, like coins.

The value arises from the need of others to acquire GenCoins, in order to perform a DNS operation / publish some other data into the block chain.


And it is obviously quite trivial to set up a site that exchanges GenCoins for bitcoins.

Again, if the alternative coins have a low value, they're not much use to the person who generated them. And if they have a high value, they might replace bitcoin as the general currency. It doesn't work very well either way.
[/quote]

bitcoin's value proposition is simply in its fiat currency and decentralized nature.

GenCoins value would be in the data to which they are associated.

Two very different value propositions, reasons to hold them, and for that reason, two different market values.

donator
Activity: 826
Merit: 1060
December 08, 2010, 03:49:48 PM
#25
Their value is directly derived from the services offered on the "generalized proof-of-work (PoW)" chain.

It's not that simple. If an alternative chain provides, say, timestamping services, then there is obviously value to the users of the service. But what is the value to the generators? They earn coins, but may not themselves have any need for a timestamping service. So the proof-of-work coins that they earn are only valuable to them if they can use them more generally, like coins.

So we come to the next part of your comment:

And it is obviously quite trivial to set up a site that exchanges GenCoins for bitcoins.

Again, if the alternative coins have a low value, they're not much use to the person who generated them. And if they have a high value, they might replace bitcoin as the general currency. It doesn't work very well either way.
legendary
Activity: 1106
Merit: 1004
December 08, 2010, 03:45:48 PM
#24
if there is going to be a fee involved for adding information into that proof of work chain, I don't see how that can be done without actually putting those block into the main Bitcoin chain, or setting up a completely parallel currency to Bitcoins.

Ah, I hadn't understand your question at first, now I see the problem.

Hum, you could try to make some sort of dependent transaction... Something that only gets accepted by the network after some other transaction takes place in the main chain...
Like, the generator adds a transaction, with a sort of message: only valid after bitcoin address A receives X bitcoins.... if the address never receives the money, a future block generator could add again the same transaction but asking less...

It would be better if there could be some sort of bargain between the sender of the transaction and the generator, but I can't see how.

legendary
Activity: 1106
Merit: 1004
December 08, 2010, 03:31:48 PM
#23
I think I've asked this question a number of times getting the run around.  Perhaps I'll be more clear with this example as proposed by Caveden:

If you create this alternate "proof of work" chain (presumably to keep this junk out of the main Bitcoin financial traffic), how can you get those who are performing this work to be paid in Bitcions, based upon some fee system agreed to by the network running that proof of work chain?

The way I thought, you wouldn't be doing any real extra work to generate for the dependent chain. Your hashing is just for the main bitcoin chain. Once you generate a block there, you use that block private key to sign something that gives you the right to create a block on the dependent chain. There's no hashing for it.

You get the bitcoin reward for the block you produced in the main chain and only that, since you didn't do much more than that anyway.
full member
Activity: 224
Merit: 141
December 08, 2010, 03:15:48 PM
#22
It becomes a parallel currency.  Hence "DomainCredits" or "GenCoins" or whatever.

Unrelated to this DNS project, you should expect many bitcoin clones to appear as time goes on, and people experiment.

We already have one parallel currency:  testcoins.


In term of using the testcoins as an example of a parallel currency, about the only application I know of for using those coins would be to send and receive testcoins from the faucet.  That is useful in its own way, but other than simply for testing various kind of extreme concepts, it really isn't useful as a currency.  I would be curious what a testcoin to BTC exchange would do and what that exchange rate might be.  Then again, there might be some value in doing just that too.
legendary
Activity: 1596
Merit: 1100
December 08, 2010, 02:29:22 PM
#21
The alternative is for the payment to be made in coins from the alternate system. Here there are two possibilities.

Either these coins won't be perceived as valuable, in which case they won't be of much use for payments. Or else, those alternate coins will gain value, and will be used for payment. In this case the risk to Bitcoin is that the alternate coins have enough added utility that they eclipse Bitcoin and become used as a general purpose digital currency.

Their value is directly derived from the services offered on the "generalized proof-of-work (PoW)" chain.

And it is obviously quite trivial to set up a site that exchanges GenCoins for bitcoins.
legendary
Activity: 1596
Merit: 1100
December 08, 2010, 02:28:08 PM
#20
I agree with jgarzik, the chain should not be used as storage.

If you want to create your own proof-of-work chain but would like to avoid double-work, you could make your parallel chain "dependent" on the bitcoin chain. Like, for creating a block in a dependent chain, you first have to create a block on the bitcoin chain and then use the private key you used to create that block to sign your new block on the dependent chain.

I think I've asked this question a number of times getting the run around.  Perhaps I'll be more clear with this example as proposed by Caveden:

If you create this alternate "proof of work" chain (presumably to keep this junk out of the main Bitcoin financial traffic), how can you get those who are performing this work to be paid in Bitcions, based upon some fee system agreed to by the network running that proof of work chain?

If simply running that network is its own reward, it doesn't matter, but if there is going to be a fee involved for adding information into that proof of work chain, I don't see how that can be done without actually putting those block into the main Bitcoin chain, or setting up a completely parallel currency to Bitcoins.

It becomes a parallel currency.  Hence "DomainCredits" or "GenCoins" or whatever.

Unrelated to this DNS project, you should expect many bitcoin clones to appear as time goes on, and people experiment.

We already have one parallel currency:  testcoins.
donator
Activity: 826
Merit: 1060
December 08, 2010, 02:24:03 PM
#19
If you create this alternate "proof of work" chain (presumably to keep this junk out of the main Bitcoin financial traffic), how can you get those who are performing this work to be paid in Bitcions, based upon some fee system agreed to by the network running that proof of work chain?

If simply running that network is its own reward, it doesn't matter, but if there is going to be a fee involved for adding information into that proof of work chain, I don't see how that can be done without actually putting those block into the main Bitcoin chain, or setting up a completely parallel currency to Bitcoins.

I've struggled really hard to think of a way to do this too. If the work done in the alternate chain is to be paid in bitcoins, that payment must be made "outside the chain" with all the attendant bookkeeping, "old-school billing", and chasing-up that this entails.

The alternative is for the payment to be made in coins from the alternate system. Here there are two possibilities.

Either these coins won't be perceived as valuable, in which case they won't be of much use for payments. Or else, those alternate coins will gain value, and will be used for payment. In this case the risk to Bitcoin is that the alternate coins have enough added utility that they eclipse Bitcoin and become used as a general purpose digital currency.

Bitcoin is not yet entrenched enough as "first mover" to be immune from being displaced by a more economically-useful digital currency.

The final possibility seems to be to dispense with payments altogether. Everyone communally pays for the system through their generation activity, and there are no transaction fees. This might actually work for some applications that depend more on generation than on transfers.
full member
Activity: 224
Merit: 141
December 08, 2010, 02:11:04 PM
#18
I agree with jgarzik, the chain should not be used as storage.

If you want to create your own proof-of-work chain but would like to avoid double-work, you could make your parallel chain "dependent" on the bitcoin chain. Like, for creating a block in a dependent chain, you first have to create a block on the bitcoin chain and then use the private key you used to create that block to sign your new block on the dependent chain.

I think I've asked this question a number of times getting the run around.  Perhaps I'll be more clear with this example as proposed by Caveden:

If you create this alternate "proof of work" chain (presumably to keep this junk out of the main Bitcoin financial traffic), how can you get those who are performing this work to be paid in Bitcions, based upon some fee system agreed to by the network running that proof of work chain?

If simply running that network is its own reward, it doesn't matter, but if there is going to be a fee involved for adding information into that proof of work chain, I don't see how that can be done without actually putting those block into the main Bitcoin chain, or setting up a completely parallel currency to Bitcoins.
full member
Activity: 224
Merit: 141
December 08, 2010, 12:54:13 PM
#17
So OP_DROP transaction might require a fee...
If the wiki page is correct, data can be embedded into a transaction without using OP_DROP. A transaction is valid if "nothing in the script triggers failure, and the top stack item is true". Therefore the embedded data can just be left on the script stack. No need to drop it.

You could also use OP_IF in some sort of "if block" that skips over irrelevant hash data important only to an "outside" consumer of the transaction data.  OP_DROP is merely one simple way to set this up as the notion of scripting allows for multiple ways to accomplish this task.  Furthermore, any sort of distinguishing between random "junk" data and some more complex algorithm to protect data is only going to obfuscate the junk as if it was real data.

Trying to come up with a schema that attempts to filter out random junk is only going to result in an arms race between those who want to put random data into Bitcoin transactions and those who are trying to get rid of that stuff.  At best all you can do is charge a transaction fee for long scripts... which is also already in the protocol and part of the standard Bitcoin client.  Otherwise what is needed is to get rid of the scripting entirely.... but you also lose a whole bunch of flexibility for transaction verification by doing that as well.  There are negative drawback to getting rid of the scripting system entirely.
Pages:
Jump to: