App Services Subsidizing User Payments

In this forum post, Dimitar mentioned, “The current design of the network economy is based on the assumption that we think people will pay to upload their data. We have no evidence for this.”

That got me thinking…could there be some way that app services could subsidize user payments? Either voluntarily or as built in to the network?

If it will truly be less expensive to host services on the network instead of on centralized servers (a proposition which to me seems doubtful given that files need to be broken up into chunks, encrypted, stored on several nodes, and then recombined somehow…but maybe someone can give me a counterargument), and given that many of the services will be for the express purpose of making a profit, then perhaps hosters should share some of their savings with users.

I’m new here, so forgive me if this has already been considered, if I’m not using the correct terminology, or if I am misunderstanding something.

13 Likes

This is a powerful idea and deserves a substantial amount of consideration.

The current idea is for people to run an authenticator, which is like a personal assistant to make sure your data goes to the right place, has the appropriate permissions, is only available to apps the person wants it to go to, is paid for (or not paid for)… it sounds very empowering but probably needs a good balance of automation vs intervention.

It’s tempting for app devs to ‘make it easier’ for their users by just paying for the upload themselves. But that would really go against the authenticator and own-your-data concept. So there’s a double duty for Safe Network devs to make it easy for people to own their data, and easy for app devs to work with that particular data model.

My guess is the best way to subsidize upload payments is to make sure the ‘ownership’ and the ‘payment’ are very separate from each other. If they’re too close together it’s tempting for the app dev to both own-and-pay, but if they’re cleanly separated it’ll be possible for app devs to pay without necessarily owning the data.

17 Likes

Something similar to ethereum smart contracts ‘allowance’ function.
User A has 8 and wants to pay 10
User B has 20 and sets allowance for User A to spend 2
User A uses his own DBC + some form of partial DBC that shows User A may spend once 2.
Combined value is payed.

Maybe the allowance function can also be extended to only be allowed when to certain address or service is paid. So User can only pay to X but not transfer to anything else while using Allowance of B.

Then there final payment should also be check-ed if it failed and nothing happens or is paid in full.

5 Likes

Maybe the easiest way is for there to be a procedure made for businesses to have a system that when you place an order (as an example) the user pays for the order to be written and the business sends a DBC to which reimburses the user. Very tiny amount but doesn’t require any changes to what has been proposed already. If the user is ordering stuff then you’d expect they can cover the tiny amount to send an order.

Now for larger amounts, like a book size which might be more than a cent, then maybe the publishing company can prepay the writes by sending a DBC for the amount since there’d be a contract ensuring the upload occurs.

The cases where an App is legit and wants to fund the user for their uploads, there usually is a reason and in that reason a procedure could be worked out from post to pre paying for the storing. And in that too can be who owns what data if that is an issue. For instance a contractor hands over ownership of the data generated to the paying person via an App

I would also consider that the many reasons would require different protocols for deciding the method of paying with who owns what. It may just be better that it remains as the uploader owns the data and payment is determined by the “parties” with pre or post payments. Thus no mistake can be made by the Safe protocols/code and the user is clear on it rather than the core code deciding and the user may not know.

6 Likes

I like the ideas floated for how this might be possible!

I’ve been trying to think of some real world examples to crystallize what I’m imagining. I’ve come up with a couple: (1) A SafeFacebook that wanted to subsidize user payments to upload information, say a profile picture, because it otherwise earns a profit from operating the service, (2) a SafeGithub or SafeWikipedia that wanted to subsidize user payments to upload new information for charitable reasons, (3) a doctor that may wish to subsidize patient payments to upload medical records on a SafePatientPortal to encourage the secure transmission of sensitive medical information.

4 Likes

Good place to get ideas – Gas Station Network concept:

Ethereum Gas Station Network (GSN) abstracts the process of paying for gas away from end users which minimizes UX friction for dapps. With GSN, gasless clients can interact with Ethereum smart contracts without users needing ETH for transaction fees. The GSN is a decentralized system that improves dapp usability without sacrificing security.

Example use cases for GSN:

  1. Privacy: Enabling ETH-less withdrawal of tokens sent to stealth addresses
  2. Pay for gas in supported ERC-20 tokens: Allow users to pay for gas in ERC-20 tokens that support permit function
  3. Pay for gas off-chain: Allow users to pay for gas indirectly via a L2 rollup or a credit card
  4. Onboarding: Allow dapps to subsidize the onboarding process for new users

# The problem

Without GSN, anyone who sends an Ethereum transaction needs to have ETH to pay for gas fees. This forces new users to pass KYC and purchase ETH before they can start using any dapp. This can be a major hurdle for users without prior crypto experience that are unfamiliar with the concept of needing to keep ETH in their wallet for gas.

This is also a UX pain for existing users that need to continually replenish their ETH balance to pay for gas fees even if they have enough ERC-20 tokens in their wallet to pay for the transactions they need.

2 Likes

I get that there are good reasons for wanting to do this, although I’m not sure if it is technically feasible.

My concern is that it ends up replicating the “if it is free, you are the product” business models which have created enormous abuses of privacy and manipulation.

10 Likes

When you load a file on the classic clearnet you are essentially downloading the file from some server somewhere to your computer. And if you want to send a file you are transfering that file to a server and then some other computer is then downloading that file from that server. Ad nauseum. The bigger the file the longer the download time.

On SAFE you pay the resource cost in SNT, which you gain by devoting computer resources to the network, and then you can access that file anywhere you want because you have the access key to the file. If you make the file public then anyone can access it. If the file is private and you want to share it you simply share the access permission to the file. The load time is determined by how often the file is accessed network wide. If it’s a popular file then it gets copied network wide by a lot of nodes. If it’s obscure then the nodes around you might take a bit to find other nodes that have it. But the network makes a point to preserve all data so there will always be nodes with the file somewhere.

Moreover on the clearnet files get copied over and over. You can have 50 million copies of the same lolcats photo. That doesn’t happen on SAFE as there is no need for it. You upload once and the next time someone requests that data it doesn’t get copied, they just get sent access to the file, they get sent a link essentially. The network compares if there is any difference between what is being uploaded and what is already on the network. It’s part of the deduplification function. Look it up.

So essentially if you’re a business you can lose profit on SAFE because it wouldn’t that hard to pirate your stuff. That being said if you were say a game developer you could set your distribution to private and give only your paying subscribers access then they’d get near instant downloads and updates. Same with movies and music assuming you’re coming out with new media regularly.

5 Likes

Thanks for the insight, @Blindsite2k .

Do you know where I can find more information about this? Does storage on more nodes necessarily mean faster download times? Is there a function that chooses nodes with the lowest latency?

I hadn’t thought of that. Doesn’t that happen on the client-side, though? A website host doesn’t need to store several copies of files, right?

Will do.

1 Like

Just trawl the forum archives

To the extent that the more places a particular chunk is stored then the greater the chance that it will be closer and hence faster to download.

There was recent discussion on this. Check posts by @neo, I think

1 Like

I’d start with the SAFE network Primer and work your way out from there. But iirc yes the more nodes hosting a file the faster it is to load. The network optimizes for the smallest nodes not for the big bulky ones. That’s because the network splits the files up into chunks AND because the network is naturally decentralized. So it’s better to optimize for the billions of people with little laptops and cell phones than a few giant mega servers. And yes there is a function that opts for the lowest latency or rather rewards for offering the network more resources. Latency is just bandwidth by another name, and bandwidth is a network resource. Remember you pay the network resources to get SNT to upload data? So if you’ve got a fast internet connection but not a lot of space on your computer you can pay for SNT in bandwidth as opposed to space. If you haven’t got much speed but lots of space you can devote storage space on your hard drive instead of bandwidth. But both are computer resources worth SNT. So if you’re out and about around town you could devote CPU time on your phone and only a little bit of space and bandwidth to the network because you’re probably not going to be using the full power of your smartphone’s computing resources while walking around. Or at home you could leave your computer to farm SNT while it’s idle for minimum computer usage since you probably have infinite internet at home. But all this means that lag gets handled by people that can afford to do it not by the user waiting for their file to load.

The major issue with the SAFE network is that it’s asynchronous and doesn’t handle live streaming events too well. And by live i mean things like online gaming with down to the milisecond events. If all you want is to stream a broadcast you could probably do that but the problem is coordinating multiple people in say an mmorpg or something then it gets complicated. That’s where having a third party centralized server might come in handy. But even if all you did was used SAFE to handle all the identity information and just used a centralized server for processing gaming or live events that would still be a step up for privacy.

1 Like

This is a powerful idea. I had only considered the storage side.

I think that is a problem on the current clearnet as well. I think that’s why folks have LAN parties.

1 Like

Is that still a thing?
I went to my first nearly 25 years ago - Touring Car Championship was the game of the moment then. I honestly hadnt heard of them in a looong time. But Im not a hard core gamer, especially not FPS games.

1 Like

For competitive games for sure, 1ms ping all day :100:

4 Likes

Not just FPS, RTS and good for some open world RPGs like Ark as well. Though you’d need to be practically room mates for an Ark LAN to be practical long term. But yeah anything that is processor heavy or demands low latency down to the ms will probably benefit from LANs and private servers. It was a big deal when Blizzard decided to remove the LAN option when they remade Starcraft so it was compatible with bnet 2.0. And I really havent seen any LAN options in any of their newer games. But yeah it’s not just FPS players benefiting from a LAN party. Also LANs, like private servers, provide greater control in terms of addons and customization.

I think the biggest reason people don’t have LAN parties as much is they require meeting up in meatspace.

I like meatspace :slight_smile:
there tends to be more beer and cheerfulness in meatspace…

1 Like

Latency /= Bandwidth.

Imagine a lorry carrying letters from Edinburgh to London. That’s high bandwidth but high latency because it’s going to take 8 hours to get there.

Imagine a jet fighter flying from Edinburgh airport to London Heathrow carrying a single letter. That’s low bandwidth but low latency because the letter will be there in less than an hour.

A more practical example is the requirements for gaming. A lot of the time you don’t need high bandwidth because you aren’t downloading a whole lot of data because you already have the game code and graphics textures on your computer but low latency is really good because you can literally see things happening before players who have more hops through the network to the game server.

5 Likes

Another possibility is kind of like what Google Photos does, where you (used to be able to) upload as many pictures as you like (for Google to scrape & sell to anyone with money lol) in low definition, but you have to pay for the privilege of uploading HD versions (for them to sell to govts & ad agencies etc too ofc lol).

So a (VC-style) SAFE app that wanted to kick-start adoption and attempt to “buy a monopoiy” like Uber etc could subsidize or give free uploads of docs, compressed images, possibly compressed videos etc as a free tier and cover the SafeCoin fees.

But yeah, decoupling who has the keys to the data and which account pays the SafeCoin upload credits should definitely be able to be separated so you can have prepaid credits that get used up by new users.

Especially like for a chat app that’s just storing short little messages in text form…

… Which actually raises the question for me, like, I guess every little tiny message and data has to be paid for? Even this message I’m typing right now, if it was on SAFE. But I guess it wouldn’t be annoying, because it would just automatically deduct SafeCoin from my wallet as I POST messages. Have there been any RFCs or tests showing what it might cost for a message of a given size? Like a chat message of 100 characters, for example?

I can’t imagine being charged for every camera movement of Call of Duty Online though :sweat_smile: but I guess SAFE isn’t meant for that, and that type of data doesn’t even really need to be secure, permanent and unhackable either.

3 Likes

So if I’m understanding your metaphor correctly bandwidth = “the load being carried” while latency = “the speed the load is traveling at” but if we are going to compare data to mass does’t more data, that is more weight, slow the speed of transit down, if by nothing else than by more bits needing to be catalouged?

Also either way isn’t having a big letter sack and a trasportation method to deliver them both valid resources for the network?

1 Like