Transaction fees: bug or feature?

how is this solved currently? or if not how you suggest to solve it?

UPDATE
theoretically we could try to use some kind of member based priority.

technically as long as we use something like a blockchain, space per time in the blockchain is limited.
Everything that is limited has an value.
even if we use member based priority, still space in the blockchain would have some value, so members could trade it.
which would lead also to an fee market if we reach the current transaction limit.
so why to restrict what is possible on the protocol level?
or just wait and hope that this would be solved until we have significant transactions?

Technological solutions always have an economic impact.
economical solutions always stimulate or hinder technological solutions
money solutions always have an economic effect, which again has an technological effect
economical solutions and technological solutions have an influence what kind of money is good or even possible to use.

Further, we could see it also that way, that maybe someone want to give some voluntary donation in his transaction to support the network. why hinder him?

cgeek will answer that more precisely but it is simple to understand : once you have written a block, the calculation needed is more important for you (and you are known through your key, you cannot write without it). So the more you write with your key, the more difficult it will be to write again, so you will let the others write too.

This is an axiom, I refute :

You cannot decide what is value or not for me. Value is relative. Even more : if two men decide a same thing is a value, the price they decide for that value is relative too. Study RTM in english or french to know more about this point.

No. (idem) Your choice about what is value or not is only your choice, not other’s ones.

No (idem).

Incoherent axioms reveal incoherent questions about incoherent problems.

You can also study “La preuve de la valeur ?” you can translate into English through right English flag.

Axiom I refute too (idem).

You seem to have definitive answer about what are things and what they aren’t.

I refute this point of view.

i did not mean writing a block i meant writing / creating transactions / if someone tries to spam the network.
how writing a block is functioing in ucoin i know. how spam protection is handled currently in ucoin i dont know yet :smile:

that is what i do not understand. its my choice if something has value for me or not and if so how much.
so why to restrict my freedom how i can interact with someone if i want to exchange limited space for someucoins?

but I will read the RTM, maybe i have already read it, but i will read it again and again :smiley:

Your freedom is not restricted. You can propose to exchange what you define as “limited space” for some free money units.

Like TCP/IP allow computer to interact in a P2P way, it allows you also to develop something like a server using TCP/IP, that allows you to exchange what you want with money to connect to your server. This is just not part of TCP/IP protocol, it’s something TCP/IP allows but it’s a separated thing all the people don’t share.

A free money allows you to develop the values you want to develop, including money services or what you want. It’s a separated and relative thing all the people don’t share.

1 Like

For example, you could totally develop a service which has ucoin nodes and accepts to mine a block only if it was paid for it, and you’d ask people to pay for you to mine blocks. But this is not a protocol issue ! :slight_smile:

yea I could, as I outlined above. the only difference is if it is artificially hindered at the protocol level, then i need to do some extra work / communication to fix that problem, which would be needed if the protocol would allow it.
Just imagine TCP/IP would not allow to transmit encrypted packets.
in this case I would have to create other communications channels / reinvent the internet, or try to hide my encrypted stuff in the packets. So I had to do a lot of effort which would be needed to do if it would not be artificially limited.

so the question is here now if we want to artificially limit something and if so why?

and the second question is if we want to solve the transaction spam problem at this time, and if so how?

Well TCP/IP is agnostic of the kind of packet transmitted. uCoin is agnostic of the services built with the money.

It’s not artificially limitting, it’s just that it’s not the role of the protocol to define this. The protocol is about issuing and transfering money.

For the transaction spam problem, I guess we have to find ideas which do not involve the protocol, but the node implementations.

1 Like

lol yea, in fact it is very difficult to hinder someone to give some writing nodes some coins for prioritizing their transaction, you just have to give it to an address that is spendable by all :smile:

but of course the original bitcoin fee concept would make it lot more efficient :smile:
not allowing fees is the same as not allowing outputs that everybody could spent, why we artificially try to make it harder at protocol level then it must be?
its like designing tcp ip and saying that the number 3 must be decoded as 33,because we dont like 3 so it would still function to transmit 3, but it needs more space and is more complicated then needed.

what nodes do is an separate topic, but if the protocol makes certain thinks less efficient, then implementations of nodes are more restricted then needed.

I’d say the transactions fees are more like implementing file transfers on the TCP/IP level :wink:

There could be thousands way to have individuals be paid to mine blocks. I can think of a tip to mine system, mutual association of miners with donations, or many other things. It’s not the role of the protocol to define it. It’s not a problem if it’s more complex after all.
Internet is really complex, this web site is built on ARPTCPIPHTTPSSLVirtualizationLinuxNodeJsContainers… But each one of these blocks are just resolving one specific goal, and are agnostic of what they will be used for.

3 Likes

maybe i am misunderstood. at protocol level it is not about transactions fees yes or no, its about if spendable outputs are allowed that can be spent by the block writer. not more not less:

if these transactions would be made not valid at protocol level. it would restrict certain usages of the protocol.
as said, you can build always on the top on an not so efficient protocol, but its much more harder and less efficient (needs more space in an transaction which would increase the orignial problem of using an limited available space per time)

as said, the question is not if fees yes no, the question is if we want to make the implementation of certain use cases of the protocol by purpose more complicated and less efficient.

What do you think about Peano Axioms defining Integer Numbers !? Is it complicated, less efficient than another set of Axioms !?

“Complicated” or “efficient” suppose a definition of a space where you can measure those things, what space do you refer to !? Will other people share your choice of measures concerning those concepts ?!

Which ones will you choose !? This is your freedom. You can choose them, fork them, develop the ones you find the more efficient for any relative reason you think could be good.

So you stay totally free to choose and develop, adopt or not.

I am quite opposed to this feature being included in core…
First, why is it even discussed?

  • Is it to solve an hypothetical spam problem? If so, I am sure there are other purely technical solutions for this problem.

  • Is it to “reward” the node owners? If so, I am sure it is not needed. uCoin has some specific values attached to it that attract certain individuals only (basic income, freedom, etc…). These people are not in for the profit. Having a free money and basic income for all is incentive enough to run a node. Communities, cooperatives, families or even town halls can decide to fund extra nodes if needed. It is a public/community service. Without these nodes, there is no uCoin.

  • Is it to cover the server and power costs? It is hard to evaluate how much cost a transaction. People have different server rigs, different usage, etc… Also let me emphasize it again: I am quite sure people are not in uCoin for the profit. An perhaps more in for the values than for the money itself. It doesn’t matter to cover costs if you run a uCoin node on 20% CPU of your home server that is running anyway. Or in a server funded by a community cooperative to make uCoin and free money happen.

I really think it does not matter to most people interested in uCoin to be financially rewarded for making uCoin happen. If they wish to be rewarded nevertheless, there are alternative means: call for funds, kickstarting a giant node, get a patron, etc…
Also someone said that nodes can treat the blockchain transactions they wish, am I correct? If so, we could totally imagine a business centered around high availability node clusters that will treat only the blockchain transactions of their clients in a very quick and efficient way. It’s just one idea among others.

True not having transaction fees will be disappointing to someone who wants to make big money out of cryptocurrency and avoid taxes altogether with a multi-GPU power hungry cheap server farm. I don’t care. They can mine bitcoins/litecoins/dogecoin/whatever and earn free untracable money (as in free beer) between themselves. These people are very unlikely to be involved in a free money (as in freedom) with a basic income anyway. They won’t use uCoin if there is no profit for them to be found there. Or if there is no more profit for them than for the next guy. So let’s not give them “weapons” to do that. I can totally live with them not being part of my economic and social circles.

In my opinion, this feature should not be part of the core at all. If you give the core the ability to incorporate fees, you will make transaction fees. This is not unlike what Jacques Ellul blamed technology for. People will start wondering “well I can earn money with my node by just activating a parameter on my node because it is part of the core. Well why not… I was not in for the profit but if there can be profit LET IT SNOW B*TCH!” And bam now we have hundreds of nodes collecting fees just because they can. Not because they need or because they intrisically want, just because they can…

I think this is a really bad idea that has absolutely no reason to exist in uCoin and that can only make uCoin worse.

4 Likes

Yes you are, uCoin protocol is agnostic of how transactions are processed for their inclusion in a block.

Very nice answer @scith :heart:

The majority of this post is related to fee-based priority. Please see the end of my post for the section regarding certification-based priority!

Some Quick Review:


Fees are optional, but they help you out!

If you decide to go for fees, I have a few suggestions for their use:

  • every member of the community contributes a small portion of their resources to writing blocks. [1]
  • have a very small fee that can be increased, but not decreased, by the sender. [2]
  • every transaction (other than a minimum ([6]) UD transaction) has a fee by default. It can be disabled on a per-transaction basis. [3]
  • fees are not dependent upon the size of a transaction. [4]
  • the fees contained in the transactions of a block are awarded to the miner. [2] [4] [5]
  • if a certain portion, P, of one’s transactions included fees, then they get a reward (perhaps one of the following): [6]
    • their certifications last longer, [7]
    • their transactions are prioritized slightly, [6] [8]
    • their membership will last longer. [6]

[1] (Similar to I2P; I2P is built such that every user participates in the network.)
[2] (By small I mean: a quantity of UD small enough that it does not become a burden to those sending transactions.)
[3] (This makes it a bit harder to accidentally send a transaction without helping the community maintain their resources.)
[4] (This prevents very large inputs from incurring a large fee, as can happen with Bitcoin-based currencies.)
[5] (If we use fees of a significantly small magnitude, then the fees won’t make anyone rich; they’d just be an extra reward to the miners be they big or small!)
[6] (An arbitrary constant. Discussion may be helpful in fine-tuning it.)
[7] (This may not be a good idea if large stakeholders decide only to certify other large stakeholders or friends; it will keep them from having to make an effort to keep their sub-community connected and might prevent the churn of certifications.)
[8] (Those whose transactions are prioritized might have the priority be based upon the amount of UD being sent along with the fee being included?)


The NEW Part!

I have a completely different concept for prioritization of transactions: certification-base priority!

  • if the member (m) has more outward certifications than inward, he gains priority.
  • if the member has many unique links within (s) steps, then he gains a proportional boost.
  • if the member is sending a large portion of their UD, he gains a boost proportional to the amount of his UD he is spending.

I have put together a TeX document that (roughly) lays out the calculations for priority. It is quite lengthy because it attempts to take every variable (other than fees) into account: http://www.texpaste.com/n/1bh6lzhc

@Idyllei And what about non-member’s transactions ?

@smoul Non-members should not be able to send transactions.

An Aside

If a member amasses UD and then loses his membership, then he is effectively removing some of the currency from circulation and thus increases the value* of UD.

(By “value” I mean the value given by the community, not an assigned value; it freely fluctuates alongside the changing views of the community.)

My reply

If you need not be a member of the community to spend UD, then why have certifications? Certifications (as I understand) were added to create a fair system (1 identity per person, so that that person gets the same amount of UD allotted him as any other person).

If one need not be a member to spend UD, then he can exploit the system and gain “anonymity” instead of linking himself with his Identity and PubKey:

  1. Amass a quantity (Q) of UD in a wallet that he owns.
  2. Create a set (I) of unproven identities without certifications.
  3. Send an arbitrary amount of UD from Q to the identities in I.
  4. Send UD randomly between the identities in I to obfuscate the originator (especially by sending UD at random intervals).
  5. Spend the mixed UD held by the identities in I.

Am I mistaken?

@Idyllei that is not what is defined in the protocol: https://github.com/ucoin-io/ucoin/blob/master/doc/Protocol.md#transaction
If this was not the case, how would non human (enterprises) spend the money they received ?

1 Like

Concerning ucoin, and a free money node.

I’m also against an idea of fees for transaction. I’m also against the use of the word “mining” for naming the action of the node writing a delta of information into the database.

For me, most part of this discussion come from an outdated vision, where money is rare and rented! (bitcoins are rare, the analogy with gold is used on purpose)

Sylvain.

And I still don’t see the point of even discussing it? … Transaction fees: bug or feature?