NIP Draft: Data Vending Machine

https://github.com/nostr-protocol/nips/blob/67e950a2009e81df1b8c91b0a2ade0596e83f168/vending-machine.md

This is a WIP proposal for the "Data Vending Machine" NIP.

Reply to this note

Please Login to reply.

Discussion

Esto está fantastic… dónde firmo?

Que bueno saberlo! 🙌

je ne parle pas français

😂😂😂😂

I’ll rephrase in portunhol

Obrigada merci

Welp, Apple is definitely not going to like this one 😂

Apple can go fuck themselves

Remnant innovation.

We won’t stop.

Latency of such pipeline will include 2x latency of relay for each job. Imagine a scenario of frequently small jobs (e.g. translation is needed many times during reading some text). I think job consumer and job worker should find each other once on nostr and send data directly one to another. Also it makes sense to pay once for a package of jobs, because payment also involves some latency and constant costs.

Websockets are incredibly fast

A one to one model is already possible; This solves a different problem

Well, if the user, relay and the worker are in different geographical areas, latency will be noticeable. It will worsen user experience

Won’t be noticeable. But service providers can geolocate where most profitable. AI latency is going to be orders of magnitude more significant than two extra hops that are measured in dozens of milliseconds at most

Again, websockets are brutally fast

And what about latency of lightning payment? It adds few seconds

You already received the data before you pay

So it’s asynchronous

I see. Makes sense!

🙌🙌

Did you see this nostr:npub1h8nk2346qezka5cpm8jjh3yl5j88pf4ly2ptu7s6uu55wcfqy0wq36rpev? Might be right up your alley

YES 👏🏻

I don't know how anyone interested in data and AI couldn't see this NIP and think holy shit, this is the model I've been waiting for. Money in, data out.

I immediately want to get home and finish my damn computer so I can get this running. I’ve already gotten my stable diffusion accessible remotely now.

This is going to be crazy

( in layman term)Is it Data monetizing?

Help me see what I’m missing…

Wouldn’t it be a massive negative freeroll for a service provider to participate in this? They are expected to complete work that is usually prepaid prior to being paid with no guarantee that their result will even be “accepted” let alone compensated. And the result is available publicly for anyone else to use for free in perpetuity?

nostr:npub1l2vyh47mk2p0qlsku7hg0vn29faehy9hy34ygaclpn66ukqp3afqutajft this is where my brain went immediately first too...

yes

service providers will assess/price risk or go bankrupt

Service providers would choose whom to serve, and at what price.

Companies have been managing risk for centuries, it's not new, and reputation analysis is trivial with a public history of npub's behavior (a service like nostr:npub1xdtducdnjerex88gkg2qk2atsdlqsyxqaag4h05jmcpyspqt30wscmntxy 's Trust rank would be very valuable)

and the "data compute is publicly available" is an incredibly GOOD thing! why process the same data a dozen times? Once a podcast has been transcribed I can check for existing transcriptions instead of having to transcribe it each time.

This is a feature, not a bug

It’s a feature for the end users certainly.

I think most service providers will simply not participate. Perhaps ones where the cost of completing the job is 0 or extremely close to 0 will, but service providers with actual job costs can’t operate in this maybe you’ll get paid maybe you won’t environment. You need both sides of the transaction to benefit from the system for them to participate…

I understand nostr:npub18kzz4lkdtc5n729kvfunxuz287uvu9f64ywhjz43ra482t2y5sks0mx5sz point. High-cost services will only be available to a select few users who pass the stringent reputation test, which is acceptable. But why not implement both options? Why not allow users to pay upfront (a concept I'll call "zapfront" 😄) to specific service providers (based on reputation), and also signal a permission for a delivery of results via an encrypted DM?

because a prepayment system is trivial to implement and doesn't require a NIP.

look at strike; they've built an entire business around allowing you to buy a bit of bitcoin, they measure the risk of default (ACH fucking sucks) and if you are not an asshole and revert they slowly increase your limit

the world works like this, it's just natural; you don't treat your siblings with the same level of risk as you do a stranger. We are inference machines and we are evaluating/computing risk at every pivotal point.

A service provider is in a great position to measure/price risk.

But again, a prepayment system does not require a NIP, you just pay them and then consume the credit.

I actually think requiring npub balances doesn’t solve the issue as the user still needs to accept your job. If your job is only accepted 25% for example (based on competition, forgetting to pickup result, whatever) you’re price is going to be 4x higher to provide that service. The service provider is going to need to be compensated for “wasted” jobs.

If the service provider actually requires prepayment instead of a balance deducted when the job result is accepted, then doesn’t it become just a 1:1 relationship?

I talked to nostr:npub1qlkwmzmrhzpuak7c2g9akvcrh7wzkd7zc7fpefw9najwpau662nqealf5y about this and we had an idea. What if we added “bid” and “accept bid” kinds to the flow?

1. User posts a job request (without a price) and includes whether they want the result to be public or private

2. Service providers bid on the job

3. User selects one of the bids and pays the service provider

4. Service provider delivers job result privately or publicly as agreed to in the request/bid.

No wasted work, more price competition, and reputation of the service provider is easier to manage than pseudo-anonymous or fully anonymous npubs.

Cool 🤙

I built a small GPT -4 API using Nostr with a similar concept in mind.

Its working live at geppetto.lat , and you can find the repo at https://github.com/42Pupusas/geppeto

I'd love to hear your thoughts on the token system I designed, the bot posts Nostr notes (almost like a proof of purchase) in response to payment, and deletes a token every time a user sends in a prompt.

https://geppeto.lat/ is not working for me; other than create a private key it doesn't respond to anything

AI 🤝 NOSTR 🤝 BITCOIN

yup

🤝

*composable AI*, glued together by nostr, funded by bitcoin

MASSIVE

I thought i am bullish on Bitcoin but man. Nostr is new internet. This combo is the decentralized everything.

Followed

Nostr feels free.

It is

Oh man. Pour les francophones.

Gardez à.l'un l'esprit que Nostr c'est largement bien plus qu'un twitter like.

Vous pouvez build au dessus même. Ici il s'agit d'une proposition de format de message pour de la monetisatiton de service de traitement de données (genre vendre du llm).

Mais vous pouvez proposer votre propre format de message.

nostr:nevent1qqsgwjhrg3sy7509n6xj87c2sz8e6q6gt6ed7r2us578vv9ujswndtqpz9mhxue69uhkummnw3ezuamfdejj7q3ql2vyh47mk2p0qlsku7hg0vn29faehy9hy34ygaclpn66ukqp3afqxpqqqqqqzreev4a

Super interesting.

I was playing with the idea of a "framework" for bots that can execute specific commands when prompted, and send back the output to the requester.

This nip takes it to another level.

Brilliant.

🙏

Is this entirely based on trust? What guarantees the relay will perform the requested operations?

Does the user pay after the relay performs the operation? If so, the relay is trusting the user to pay…

Vending machines were used as an analogy for smart contracts because they do not require trust. It is an atomic exchange, unlike this NIP.

During the live stream, when i pointed out this might need a reputation system, he suggested the vendor would have to figure that out via another system.

🤦‍♂️

Reputation scales poorly compared to the atomicity of a real smart contract. This is why we’ve been working on Sats4Files to swap data for files off-chain over Lightning like a real vending-machine.

If we aren’t reducing trust, then we’re all just LARPing here.

If you’re interested in making this like a real vending machines for services (beyond requesting files like Sats4Files), I would explore the S in ZKCSP: https://eprint.iacr.org/2017/566

They provide a way to pay for services in an atomically trust-minimized way, without either party trusting each other — but it doesn’t work over Lightning yet like Sats4Files.

Not via another system; at the margins.

Relays relay. That’s their operation and it’s fault tolerant

That has nothing to do with what I’m saying.

nostr:note16dj6pupdkvsxlyr2tclecl5sm326czjmq2wmqlmg3h8e9067mvds66vg73

This either creates work that never ends up being used ( imagine out of five, one Provider is chosen, wasting the efforts of the other four) or the Customer might end up paying for junk/fraud and have no refund mechanism.

Why just data and not real-world goods and services?

Yeah. This can be a bounty platform for digital services.

I think both should be included but, in a sense, data is novel and everyone is a potential seller.

Every person with a digital device produces data every day just by using the device (basically free). That data is valuable and all we do with it is let everyone else collect them, aggregate them, study them and give them back or sell them back to us in the form of a product. If those data were saved and accumulated by the users in a private database/relay and the users had a potential to sell them directly, then perhaps also the average person will have an incentive to care about their data and consider how it is used by others. Also, reading the analysis of your own data tells a lot about you and it’s fascinating. I don’t quite like how data are managed and used currently and how we generally perceived them, this could change it, or at least I hope it can

This is really interesting. It's similar to the pattern I ended up implementing to track payments for Satellite CDN where the client who wants to buy credit asks the server for a kind 9733 "order" event, to be tagged in the kind 9734 zap event, while my server listens for the 9735 receipt.

Tremendo!

Doesn't it make more sense for vendors to announce their offerings and users just contact them and pay the servers they trust most? Nostr is a good advertisement board, the rest can just be good old Rest API, just define that API.

Even if you want to be a Nostr maximalist, then, users can send the offer to advertisers and pay in advance.

Isn't it much easier to make a reputation system to 10 vendors vs 10000s users?

no, that's the whole point

a user says "I want a transcription of this podcast"

and gets results back

the "best" (fastest, most accurate, subjective) gets paid

As I read the thread not sure I’m getting it right that the relays are doing jobs that they are not actually performing? Instead of them other remote services are called in the “background”, and a relay is only an orchestrator and presenter?

Of course I don't have enough computing capacity at home to run a complete self-learning AI. Not even a simple ChatGPT-type LLM, and a so called “expert system” AI, which is a notorious lier (BTW: if you wanna cry or laugh, try to ask NakamotoX AI about the origins of Nostr protocol).

What if the result is false (e.g. the AI lied, as usual regarding ChatGPT) and my I present it for the client's money? Who is responsible for the false result, and where can I complain and request a refund?

* complain to the service provider

* don’t transact with service promovieres you don’t like

* relays don’t do anything special and this NIP doesn’t impose any change on them, in fact, it’s not even finished and there is already a service provider running

* you can most definitely run an LLM at home, but if you don’t want to be a service provider you don’t have to 😉

Hope that makes sense!

Thx, that's clear now. 🙂 🤙

(I think promovieres means promoter or similar 😉)

If it's not secret is it accessible the service which works already?

Anyway I don't like any AI, I don't trust them, I definitely don't want to depend on them. Never. I hope the AI winter will be quite long.

the vision on these NIPs is blowing my mind

🙌 glad to hear that! :D

Questions:

If I post a job request and two service providers start doing it simultaneously, is there a way to select the provider before all of them do the job?

Would the job request come with a full spec and expected price?