• Development
  • Is that ok? Toying with a decentralized twitter-like

jagstock Yeah, my initial thought was to build a token as well. But this would have meant to manage an anchor and - if I understood correctly - to set a maximal amount of tokens being issued. Both would need to be managed on the long term, while when using xlm, I can die tomorrow and the app still lives. Plus, people need to buy tokens with xlm, anyway.

    oelmekki Anchors are needed if you are issuing credit with underlying physical asset. In this case, anchor is not needed. Just have an issuing account, transfer all the tokens into distribution account and then permanently lock the issuing account. So the tokens are fixed.
    User can setup trust with issuing account and you can directly transfer the tokens to users for free. But that does not prevent anyone from trading with XLM (can someone confirm ?)
    But your point of maintaining the token is valid. Since we are targeting non speculative token, we need to ensure the tokens are distributed evenly.

    bkolobara I think Stellar community needs to change the memo policy. I am very much tempted to use memo for non intended purposes. (it might be wrong but programmatically correct !)

    oelmekki

    I'd call it abuse, but that's me.

    It's definitely not what the network was intended for, and seems pretty wasteful in terms of resources used per message.

    Ok, thanks everyone, it seems quite clear that such kind of app would be controversial, at the very least.

    The fact that it's not what the network is intended to do is of lesser importance, to me. Jed himself said that he doesn't know what people will build with Stellar and that he expected to be surprised. That's usually what happen when you create a protocol.

    The fact that it's intended for money transfer is probably the reason why it could work : if developers don't need to host their database on a server, that's because people are willing to run Stellar nodes, because there's money in it for them due to their financial activities. I wouldn't call it wasteful because you just have those nodes which would be running anyway, and you don't have to spin up new servers just for holding data. Yet, from my initial PoC, it would be slow, due to the very limited nature of memos, and I certainly don't want either to discover later that it would cripple the network.

    I won't go further and will continue to watch for systems that would allow truly decentralized databases with no important costs for users (so this excludes ethereum). Any recommendation is appreciated.

    Well that's true that Stellar Foundation itself calls for innovative uses of their platform.

    The point being, as far as I know, nodes doesn't receive incentive as in most other crypto nets; and going this way might consume quite a load of ressources on the network.

    I think the idea is good, and nothing will prevent it to exist because, well, that's possible.

    Looks like problematic, though.
    Would be good having the Stellar devs sharing their ideas about it.

    This is a very interesting discussion. I agree that it seems wasteful making the supermajority of the validators on the network agree on a transaction that sends 28 characters instead of sending "real money" across the globe for someone that needs it.

    However, won't the many useless ICOs and joke assets that will be created and traded around be doing the same thing? The anti-spam tool the network has is the fee, and if the idea in this thread could be implemented and used to "abuse" the network, then it means that the fee is too low.

    17 days later

    I've thought about this idea too. I think it is a cool idea and experiment.

    Something to consider is that each "Chat room" will have to maintain a balance of 0.5XLM. And my understanding is that if whoever owns the keys to the chat room "merges" the account into another, the history will not be as easily retrieved.

    I was worried about the minimum account balance changing with the number of transactions, but looking closer at https://www.stellar.org/developers/guides/concepts/fees.html#minimum-account-balance it seems as though the minimum only changes with trustlines, offers, signers, and data entries. I don't think transactions qualify under that list, but I could be wrong.

    Oh, thanks Steve, indeed IPFS is an interesting direction to explore. It's not especially that I want to build a decentralized twitter, it's just that I'm interested in the concept of decentralized database, and publishing short public messages sounds like an easy use case for a first PoC. Ultimately, I don't want to think anymore : "yeah, that side project idea is cool, but I won't rent (pay for) a server for that". Maybe a decentralized database could be enough to build pure client side apps (I want to explore that idea, at least).

    Anyway, thanks for the pointer!

    24 days later

    I was thinking about this for quite some time in late 2017. Being aware of all the cons, I badly wanted to forget about it. But in the end I could not walk away from the idea.

    On the one hand, it seems like plain abuse of the functionality. On the other hand, it is such a cool and different way to use the technology, and who knows where it may lead.

    For example, you could have a central authority (that you set up and control) providing confidential info to your other (future) automated systems (and you don't even need to reveal the location of your authority to your clients, and vice versa).

    Or you could have automated authentication for logging into websites. For example, you provide the site with your public address, the site server sends you an authentication token (encrypted) in the memo, you provide it back, proving you are really you. Forget about storing passwords.

    I think the list of possibilities is endless. As is the list of potential for abuse :-/

    Anyway, I made a proof of concept, which works on the Testnet and can be found here: https://hmatejx.github.io/Interstellar-Whisper/

      Just one clarification, my proof of concept is about encrypted point-to-point messaging, so not like Twitter at all.

      It does look like an abuse of the network to me and that's why I think you should do it anyway if you care about Stellar.
      First of all, it may never pick up, so there will be no problem.
      If it does picks up and creates massive amount of transactions on the network and some services will be slowed down because of that - great! That's exactly what we need, the sooner we start facing real world problems - the better! We can't always assume that network consists of good actors only. Maybe fees will have to be adjusted effectively pushing you out of business (but then you can always set up your own private network) or some other solutions found.

      hmatejx I really love the idea of using stellar for authentication. Here's an other implementation idea: 1/ you register with your stellar public address rather than email address, 2/ on login page, you're provided with a stellar address for website (permanent, you can save it) and a randomly generated temporary hash, 3/ you issue a transaction of any amount to that address with that hash as memo, the server sees it and match the hash to your session/websocket, you're authenticated.

      This could even be automated with a browser extension, holding the private key for an account on which you only keep a very small balance for logging purpose, and you're automatically logged in each time you visit your favorite websites.

      On the other hand, it's the ultimate surveillance system as you just have to know websites public addresses to see all websites someone regularly logs to ?

        oelmekki hmatejx I really love the idea of using stellar for authentication. Here's an other implementation idea: 1/ you register with your stellar public address rather than email address, 2/ on login page, you're provided with a stellar address for website (permanent, you can save it) and a randomly generated temporary hash, 3/ you issue a transaction of any amount to that address with that hash as memo, the server sees it and match the hash to your session/websocket, you're authenticated.

        Alternatively, you could maybe just sign a message, and send it back to the server directly?

          dzham Indeed, this would even make the implementation simpler, given you can do it synchronously rather than watching transactions for website address.

          I also love how this kind of auth combined with low fees from stellar would make it possible to have new kinds of pricing plans, like for example paying per session rather than subscribing per month. For example, someone who want to read articles from paywalled press could pay 50c for a 2 hours access, the payment would be included in the authentication, and fees would be small enough to make it viable. The press company would get money from all those users who want to read one or two or their articles but are not willing to pay full monthly access for that.