Centralized Transaction Fees Payment

+1 vote
Hello Multichain,

We want to deploy a blockchain, where there are different users that issue different assets (as loyalty points). We want to promote that each user that had issued an asset support the chain with a minimum of a node mining, but we want all the final users (with only light wallets) don't pay transaction fees.

Has this sense? In that case what is the best way to do it?

Is it possible, that users that issued the assets (miners with native coin balances) pay for all the fees for their assets transactions?

There is any other way to do this?

Because if I configure no fees for transactions, I don't know how to force the asset issuers support the chain, meanwhile final users (those how send and receive the assets) don't need to pay or setup a complete node.


asked May 21, 2016 by Fernando

1 Answer

+1 vote
Mining in a private chain is not CPU intensive, because its based on distributed consensus between permissioned miners. So the token issuers should not need much persuasion beyond their basic desire to have the chain function, and in addition can't you sign some kind of contract with them?

I'm afraid I don't think there's an easy way to do things in the way you're suggesting;
answered May 21, 2016 by MultiChain
Thank you for you answer.

Yes you are right about private chains, but when we have launched this question was because we were thinking about to do our chain public. I think Multichain is also suitable for public chains, isn't?

But finally (due the reasons you explain) we have decided to do it private (or semi-public).

Our idea is to grant all: Connect, send and receive. And reserve mining and issue only to the promoters of the different loyalty coins, and consider signing a contract with them or at least a minimum rules about support of the chain.

In your experience, sounds this well for you?

Thanks a lot,
Yes, MultiChain can be used as a public chain, by setting the appropriate blockchain parameters, but then you are back to relying on proof-of-work.

At the very least it makes sense to restrict admin, mine and issue permissions to a whitelist, while allowing anybody to connect, send and receive is a common pattern.

The only thing to be aware of is that, without fees, end users could spam the system with many pointless transactions which send funds back to themselves. They would gain nothing from this, but it's still a way for them to increase load on the system. It's similar to the problem that any open public service has.

Yes, we have thinked about this kind of attack (increase load), and we are worried about it.

In this case, what can be done to avoid or control this kind of attacks?
The solution is by using a native currency and transaction fees, because if anyone can transact, you cannot prevent them creating an infinite number of addresses and so appearing to be acting as many different users. People should be able to get or buy a small quantity of the native currency easily, and every transaction should pay a small amount of that as a fee. You can then set a minimum relay fee (in the blockchain parameters) so that transactions below this threshold don't get relayed.
Yes, but we want to avoid the final users (using only light wallets) the complexity and cost of managing native currencies.

I afraid that this has no easy solution in Multichain.
It's an issue with open blockchains in general. But I don't think managing a native currency has to be such a hassle for end users. If they receive some one time, it can be enough or them to transact for 10 years, unless they are trying to spam the system.
I understand, the approach you are suggesting. Thank you very much!

It seems that we must deal with native currency, for this and to encourage assets issuers to validate transactions.