Had a crazy idea, or maybe not that crazy, you decide
So I’m thinking of ways to do things like paywalls for content. Imagine a company like Netflix or Disney wants to use Autonomi to store and serve video files. Right now, if you have the address, you can get to the original data, forever, and share it with anyone else. No IP provider would ever use a system like this. So my thought is, what if we had pointers that could stream the content from the actual location, without revealing where it is?
For example:
user pays to access collection of content
a unique list of the obfuscated pointers with metadata is provided to the user for searching/browsing
the user selects the pointer and streams the file just as if they had the actual address
once the subscription or other term ends, the pointers are updated by the service provider to point to nothing, blocking the user’s previous access
Maybe an ‘obfuscated pointer’ is not possible with the network, but I think the use case is valid and something we should consider.
What do you guys think? Does this sound like a valid concept to throw at MaidSafe, or maybe there is a way to do this above the network layer?
Paywalled storage-as-a-service
Offer creators encrypted storage and automatic key management eg people could sell subscriptions or pay-per-view access without running a big backend.
White-label DRM-lite for decentralized networks
An API that other dApps can call: “give “Subscriber” 24-hour decryption rights to asset X.
Could target Web3 games, music, e-books, indie film releases.
Gateway + billing layer
Run the licensing/gateway as a SaaS product and charge per-stream, per-GB, or per-key-request.
Enterprise internal distribution
Secure sharing of training videos, research data, etc., where the company wants blockchain-style permanence but still needs employee access control.
I’m not qualified to comment on the technical aspects, but I am curious as to why you feel the need to get a blessing from MaidSafe before proceeding. Can we not make improvements without them?
The discord thread had some legs too (but I can’t link it… )
tldr;, my thoughts:
95% of chunks could be immutable data
5% of chunks could be private to the user, encrypted for them and stored in a scratchpads
3a. When user starts video, the provider uploads the private data to the user’s scratchpads (as needed)
3b. Alternatively, the private data is uploaded to shared scratchpads on a rotation (e.g. daily)
The provider owns the scratchpads and can upload or wipe them any time (to restrict access)
The percentages could change, but the idea is to make the stream sufficiently unusable without the missing chunks.
It won’t stop piracy, but then that can’t be stopped already today. It’s about encouraging users to spend for a smooth experience.
We’re trying to balance being able to pay (to avoid adverts and get our movie) vs not paying (adverts and/or no movie at all). If regular folk are happy to pay to avoid the latter, they will do.
It feels a bit like levels of obfuscation. You can add more or less, but you only need enough to encourage enough folks to pay (to make the business feasible).
From discord @zettawatt
I posted this on the forum as well, but I wanted to bring this up directly with the MaidSafe crew: So I’m thinking of ways to do things like paywalls … What do you guys think? Is this something that can be done at the network level? Or do you have ideas for how this could be implemented at the application level?
And my reply
So a paywall somehow implemented will be done at some stage. That is a given. BUT never at the network level. That is because one of the basic foundations of the network is to provide access for everyone to the world’s data.
But practically some data has to be private and some has a cost to it. Private is already in the structure of the network and is the way public data works anyhow, essentially public data is a special case of private data. BUT paid to read is fundamentally foreign to the network structure and require a major shift
If you want to get people paying for specific content that they technically do not own, but either have paid for it outright or a licence to it then that is possible by encrypting the data either for each “person” or all, then the decrypt key is given upon payment.
For keeping to the fundamentals of the whole reason the network is being developed, paying to get data has to be at the APP level and not easy.
Using scratchpads also it would be possible to prevent access to new data since the encryption keys to new data is stored in the customer’s scratchpad(s). IE I buy books (similar to amazon’s book system) and the books I buy are always available but new ones are not.
While I can see ways these existing models could be implemented, I have a general comment.
Replicating the old models is going to undermine the fundamentals even further. Unfortunately, the switch to Blockchain has pushed away the very things we need in order to create the change we gathered here to support.
I keep repeating how damaging the switch was since last September.
Without the native token and DBC style payments so much is lost. The pull to replicate the past or to help big corporations feed of this work rather than replace them is powerful and it continues to seem overwhelming as expected.
We need novel models such as Pay the Developer (PtD) and Pay the Producer (PtP). We need tokens anyone can use anonymously that don’t suck the value of the project. Etc etc.
Then we can build something new and different, instead of yet another platform for the wealthy to extract the value created by others.
We don’t have those, but we can still try to build towards the fundamentals: a level playing field for individuals, and not build solutions for enemies. They will do that themselves eventually, but we have an opportunity to get a head start.
All my work has been around Secure Access For Everyone. Now we need a focus on that for developers.
Whatever happened to David sponsoring Developer Pods? And building systems to support individual developers and teams to become independent?
Instead we have IF which is just the old way: building dependency on a centre and reinforcing the capitalist mindset. That was never part of the plan until recently.
and then again to be long term successful new approaches need to be able to survive on their own and offer a long term benefit for users/devs … so either the thing should sort itself automagically or we may be wrong with thinking different would be better in this case …
I have sympathy for the comments about going against principals, but we have to accept that it will happen regardless, whether someone here pushes for it or not.
We must also consider that if there are obvious solutions to such problems, it will encourage forks to fill such gaps. Building ways to monetise content using the existing data structures seems unstoppable though and I hope that it ultimately feeds wider development for less monopolised solutions (through network investment, token appreciation, etc).
After all, Autonomi is a data network and people will choose to use that in various ways. Some will be very aligned with the original ideals, others will be much more pragmatic and business focused.
My hope is that the team/community find ways to fund development, without developers needing to find ways to fund it themselves. Without that, people need to eat, etc
@zettawatt has put himself out on a limb, going all in on Autonomi app development. Maybe he is crazy or maybe he is a visionary? Either way, if I was doing the same, I’d be looking at ways to raise revenue to fund the development.
Anyone checked out Davids github ?
“Communitas — The Local‑First Collaboration App”
infrastructure there to make new, novel, things and relevant to this obfuscated pointers discussion?
I do like the idea of Pay the Developer (PtD) and Pay the Producer (PtP) as economic models would be amazing
Oooo… this got people fired up. I love it And yes, I did write all of this by hand with organic neurons, so I think it is worth a read
I’m not really looking for their blessing, I was just curious if this could be implemented at the network layer. The problem is that because the code is open source and the client pretty much handles everything itself, anything we put at the application level will be visible and can be modified. So if not done at the network level, we either need to get creative or we need a server sitting in the middle acting as the gatekeeper, which is an unacceptable solution in my opinion.
Let me throw my current vision of this out there, because I think at the base level we’re in alignment. I believe that combining Autonomi with various other distributed open platforms, we can build, with what is available today, the first truly distributed monetizable stack for everyone: application developers, resource providers, content creators, and end users. I emphasize distributed, not decentralized. If we end up with dedicated servers somewhere in the chain doing specific functions, we failed. These are pressure points that will be regulated, taken down, or abused, they must be eliminated at all costs.
The problem I’m finding as I’m reading through and talking with other teams is that most live in a bubble. Almost all are purists in some form or another. So we have all the pieces we need, but everything is fragmented. We all want to take down leviathan, that’s why we’re here. And to that end, there are great open source distributed applications out there, but none have been successful. Why is that? In my opinion, we need to be more pragmatic. Not just here on the Autonomi forum, but as the larger privacy conscious community. The reality on the ground is that you can have the best app in the world, but without income generation, it will never be successful or self sustaining.
I see Autonomi as a closed system. Money flows in and out of the system to pay for storage, along with some inflation to pay out rewards. That’s it. If it is only going to be a data network, that’s all you need. The network will humbly go off and do that and only that, with a handful of applications trying to be distributed on the side, maybe some big players storing data behind your standard web2 walled garden. If that’s all you guys want, well, then congratulations, you’re basically there already, but we didn’t take down the tech oligopoly, they don’t even know we exist. So think bigger, how do we bring more money into this closed system?
The WWW is basically the same: money flows in from the users to pay for the servers that provide them content. The original WWW lived alongside other networks like Usenet and various BBSes. The latter 2 died because they failed to grow. The WWW won the race and dominates because of the ability to generate revenue through ads, subscriptions, and products/services. That network grew and continues to grow.
So for our cause, we want to take on this mutl-trillion dollar behemoth. We need to grow our network, create external revenue streams, so that we can pay more developers, to build more applications, to pull in more users, and continue growing. We can use the old ways of revenue generation: ads, subscriptions, products/services, while at the same time learning from their mistakes: data collection, privacy issues, walled gardens. This is just to get us started. If we survive the initial stages of growth, we win not because we’re technically superior, but because it is cheaper and easier. With no infrastructure costs, anyone can deploy apps that scale infinitely that leverage data that already exists. With no walled gardens, anyone can deliver their content everywhere all at once. Ad and service payment systems can be more transparent and fair. Data is stored forever, no more link rot.
Zoom out further, imagine what this does to society. We’ve seen transformations like this in the past: landline to cell phone to VoIP use greatly decreased the cost to talk to someone, who pays a long distance bill now? Broadcast to cable to streaming we went from 5 channels of propaganda to all content imaginable for cheaper. A distributed platform will enable us to reduce the costs to almost 0 for the average user. You’re no longer paying for a server at Amazon, you have your own box in your garage making revenue for you that pays for your network use. This is a huge deflationary transition that we are on cusp of. The big players today will not be able to compete, the money simply won’t be there for them anymore, it will be in the hands of everyone. And without control and power in the hands of the few, freedom quickly follows.
That’s where I’m going. Anyone that wants to join is welcome. Together we can make this reality.
There is a fine line between genius and insanity, time will tell
I’m not suggesting that we implement pay for data. I’m saying it should be possible to provide a pointer to public data that the owner can revoke. The mechanisms for access/revocation would be handled at the application level. But the ability to hide the true path to the underlying public data has lots of uses.
At some point, something needs to resolve the pointer to where it points to. While it is the client right now, even if you moved it to nodes, that logic would still be reproducible elsewhere.
Maybe just using a scratchpad to share the data temporarily, then wiping it at a later date could accomplish a similar effect, despite not being a pointer to the data?
Maybe it isn’t possible, and that’s ok. It seems like there could be a way. I mean, if Tor can do onion routing, why not apply similar concepts to data? How to do that, I have no idea off hand.
Writing temp data to scratchpads would work, but it would be very network intensive and inefficient to move a bunch of immutable data to mutable data just to perform a read. It seems like there should be a better way.
Hey, cool, sorry i’ve not helped much with testing and apps and stuff i will though, all this stuff is a huge learning curve and just getting used to it tbh
I think that’s, more or less, what is being discussed here. I think we all agree, that we need a way for creators to be paid. And I get it, that obfuscated pointers are not the way you see appropriate. Do you have any other idea, or can point to some alternative, that has been discussed before?
By PtP I mean as a network feature. That was something that could get us away from all the models we know and hate.
I don’t have any bright ideas that can deliver PtP at the app level. I’m not sure it makes sense to try. So we’re stuck with what we have.
I don’t have time to work on this but wished to express my hope we don’t replicate the problems the network was meant to solve, and that whatever folk here can come up with, it will stay true to the fundamentals. To deliver a level playing field while honouring and respecting users.