1

Ethereum enthusiast here, I am no economist nor a huge expert on smart contracts so I would like to see the reactions to what I am about to write.

Is there any example of a centralized application also interacting with a smart contract? Is this a good idea to begin with?

I am playing with an idea, where I have, let's say an e-commerce website, for every interaction users have with it, buying/selling stuff the application would interact with a smart contract and reward the user with ERC20 tokens. Users can then decide to use those tokens on my application to get discounts or other benefits, or keep the tokens and maybe trade them on some exchange. Maybe even share tokens with other users of my website or other websites using the same tokens.

When users use tokens to get benefits from my website, some of the tokens would be burned to keep some kind of balance in the circulating supply, while some others would be used as fees. This whole thing would have a semi constant supply, by that I mean that depending on the monthly users on my website the smart contract would adjust how many tokens are delivered for every interaction and how many are burned when used. All of these rules would be of course public as part of the smart contract.

Besides the technical issues of what the mint/burn policy should be for these tokens in order to keep the whole thing balanced, I do see some more fundamental issues with this idea, most obvious one being (seems to me) that it defeats a huge portion of what dapps are about, having a centralized server, and having that server being the only one allowed to interact with the smart contract upon user interactions, only direct user interaction would be checking their balance and maybe send the tokens to somebody else. On the other hand I can imagine all of these interactions coming from my server would be publicly visible to everyone and so it would be impossible for me to cheat.

My question is: are there any examples of this in existence or is this just a silly idea?

Thank you

3

I'm not quite sure why you would want to use a centralized server handling the tokens for the users. I'm not sure I quite understood your use case.

Just to make sure we're on the same page: typically users are in control of their tokens (through their private key) and the role of centralized server is simply to for example query balances and other data from the blockchain and to send that to frontend to display for the user. Or to do other only partially related blockchain interactions in the background.

Stuff like internal token fees are typically handled directly in the smart contract. So when user wants to send 100 tokens to another address, 97 get transferred to the other address and 3 are sent elsewhere (or maybe burned). This is a fully decentralized way to do it and I don't see any reason for a centralized server to handle this kind of stuff.

What you are describing sound more like a centralized exchange. Such exchanges handle user assets, but they do it fully outside the blockchain. So they have their databases which act as cheap ledgers, and only when user wishes to withdraw tokens to their own wallet, a real blockchain transaction is issued and tokens sent from the exchange's wallets to the user wallet. This way the exchange internal costs are kept low and everything happens fast.

2
  • Reason for centralized server is simply that the server already exists. And this is more an idea to add an ERC20 token to an existing centralized app. The reason to use a token is mainly to incentivize user interaction with my website, since they can earn tokens by doing that. About the fees being handled by the smart contract, yes that would be my idea as well, for instance, the server tells smart contract that interaction of type A happened from user U, smart contract contains the logic for splitting between burned tokens and fees that get sent to another address. – Francesco Rigoni Jun 24 at 8:05
  • So my server would not handle any asset. It would simply communicate events to the smart contract, which then uses public logic. – Francesco Rigoni Jun 24 at 8:05
2

As you mentioned this really defeats the whole purpose of building and running dApps. If you want an example of centralized you can look at xHumanity(https://xhumanity.org/) project which I worked on and built a bridge between ethereum and binance smart chain. Which essentially is a centralized server that burns and mints tokens on the respective chains and transfer it to user accounts like you mentioned. Other then that you won't find any popular block chain app using this stra

1
  • Oh ok, so somebody actually did this, I will look into that thanks. – Francesco Rigoni Jun 24 at 7:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.