PeerMessage

I have secured /r/peermessage just in case.

There’s a Peermessage Twitter account. Yours too?

Awesome all around, guys, thanks!

The app is coming along nicely, will be posting an update with more specs and screenshots soon.

There’s a Peermessage Twitter account. Yours too?[/quote]

no

[quote=“emeth, post:23, topic:3247”]Awesome all around, guys, thanks!

The app is coming along nicely, will be posting an update with more specs and screenshots soon.[/quote]

Cool. By the way, it seems that Bitmessage gets very slow quite often times because of blockchain’s bloat?
How do you see Peermessage improves Bitmessage?

[quote=“cryptog1, post:25, topic:3247”][quote=“emeth, post:23, topic:3247”]Awesome all around, guys, thanks!

The app is coming along nicely, will be posting an update with more specs and screenshots soon.[/quote]

Cool. By the way, it seems that Bitmessage gets very slow quite often times because of blockchain’s bloat?
How do you see Peermessage improves Bitmessage?[/quote]

Peermessage doesn’t store the message in the blockchain, so not every user has to “sync” every message for messages to propogate.

I’ve seen people complain about the lag in receiving messages in Bitmessage and about losing messages. Peercoin shouldn’t suffer from those problems.

Additionally, messages cost 0.01 ppc rather than 4-5 minutes of PoW on a machine - I prefer this. I think this has interesting future implications for things like mobile devices, as well as providing another use for Peercoin as a currency.

The final thing I’d say is just that PeerMessage is just one cog in a wheel of a much larger app.

[quote=“emeth, post:26, topic:3247”]Peermessage doesn’t store the message in the blockchain, so not every user has to “sync” every message for messages to propogate.

I’ve seen people complain about the lag in receiving messages in Bitmessage and about losing messages. Peercoin shouldn’t suffer from those problems.

Additionally, messages cost 0.01 ppc rather than 4-5 minutes of PoW on a machine - I prefer this. I think this has interesting future implications for things like mobile devices, as well as providing another use for Peercoin as a currency.

The final thing I’d say is just that PeerMessage is just one cog in a wheel of a much larger app.[/quote]

Very intriguing project.
A couple of questions.

  • Where are the messages stored?
  • In what way is Peercoin blockchain used?
  • Besides PeerMessage, what other apps do you envision?

awesome work!

[quote=“crypto_coiner, post:27, topic:3247”]Very intriguing project.
A couple of questions.

  • Where are the messages stored?[/quote]
    Messages are stored in a parasitic cloud storage initially, and then eventually a sidechain/bittorrent as well.

The Peercoin blockchain stores the key pointing to the external datastore, as well as verifies the user attached to an externally stored message.

Wait and see. :slight_smile:

Interesting historical link of the day:

In that thread, Satoshi speaks about the idea of sending messages via the blockchain. Quotes:

I very much wanted to find some way to include a short message, but the problem is, the whole world would be able to see the message. As much as you may keep reminding people that the message is completely non-private, it would be an accident waiting to happen.

Unfortunately, ECDSA can only sign signatures, it can’t encrypt messages, and we need the small size of ECDSA. RSA can encrypt messages, but it’s many times bigger than ECDSA.

We can figure out the best way to do this much later. It could use a separate (maybe existing) e-mail or IM infrastructure to pass messages, and instead of RSA, maybe just put a hash of the message in the transaction to prove that the transaction is for the order described in the message. The message would have to include a salt so nobody could brute force the hash to reveal a short message.

[quote=“emeth, post:26, topic:3247”][quote=“cryptog1, post:25, topic:3247”][quote=“emeth, post:23, topic:3247”]Awesome all around, guys, thanks!

The app is coming along nicely, will be posting an update with more specs and screenshots soon.[/quote]

Cool. By the way, it seems that Bitmessage gets very slow quite often times because of blockchain’s bloat?
How do you see Peermessage improves Bitmessage?[/quote]

Peermessage doesn’t store the message in the blockchain, so not every user has to “sync” every message for messages to propogate.

I’ve seen people complain about the lag in receiving messages in Bitmessage and about losing messages. Peercoin shouldn’t suffer from those problems.

Additionally, messages cost 0.01 ppc rather than 4-5 minutes of PoW on a machine - I prefer this. I think this has interesting future implications for things like mobile devices, as well as providing another use for Peercoin as a currency.

The final thing I’d say is just that PeerMessage is just one cog in a wheel of a much larger app.[/quote]

Tks for your answers.

[quote=“emeth, post:29, topic:3247”][quote=“crypto_coiner, post:27, topic:3247”]Very intriguing project.
A couple of questions.

  • Where are the messages stored?[/quote]
    Messages are stored in a parasitic cloud storage initially, and then eventually a sidechain/bittorrent as well.

The Peercoin blockchain stores the key pointing to the external datastore, as well as verifies the user attached to an externally stored message.

Wait and see. :slight_smile:

Interesting historical link of the day:

In that thread, Satoshi speaks about the idea of sending messages via the blockchain. Quotes:

I very much wanted to find some way to include a short message, but the problem is, the whole world would be able to see the message. As much as you may keep reminding people that the message is completely non-private, it would be an accident waiting to happen.

Unfortunately, ECDSA can only sign signatures, it can’t encrypt messages, and we need the small size of ECDSA. RSA can encrypt messages, but it’s many times bigger than ECDSA.

We can figure out the best way to do this much later. It could use a separate (maybe existing) e-mail or IM infrastructure to pass messages, and instead of RSA, maybe just put a hash of the message in the transaction to prove that the transaction is for the order described in the message. The message would have to include a salt so nobody could brute force the hash to reveal a short message.
[/quote]

Looking forward

One suggestion posted at reddit by JonnyLatte:

I’d like to see a variant that doesn’t use transaction fees but instead gives a certain amount of messages in an amount of time for each account and limits accounts by the amount of coinage ever accumulated. It would still stop spam an limit the total bandwidth to a max amount but it would also be in a sense free for peercoiners with larger holders being able to gift invites by signing their key (something like a faucet could be set up where you enter a key and it signs it once you prove you are human).

Great to see any development in this area though.

[quote=“caribou, post:32, topic:3247”]One suggestion posted at reddit by JonnyLatte:

I’d like to see a variant that doesn’t use transaction fees but instead gives a certain amount of messages in an amount of time for each account and limits accounts by the amount of coinage ever accumulated. It would still stop spam an limit the total bandwidth to a max amount but it would also be in a sense free for peercoiners with larger holders being able to gift invites by signing their key (something like a faucet could be set up where you enter a key and it signs it once you prove you are human).

Great to see any development in this area though.

http://www.reddit.com/r/peercoin/comments/2t2er2/peermessage_has_advantages_over_bitmessage/cnwbgf7[/quote]

I don’t know about this. Using the Peercoin network to transmit costs resources. Large holders of PPC should be even more capable of paying the fee for a message than small holders (who would have to pay because they couldn’t sign with an address that had value of X).

Large holders are the ones running the network (having nodes up all the time) both the peercoin one as well as what I propose. Coin age is also a resource that has an opportunity cost, its just that this cost is nothing if you are already a holder and if you are not a holder it is the cost of either becoming a holder or asking an existing holder to join the network (basically free). I’m not saying this is a better way to do it but just a different way. One advantage would be that no transactions need to touch the peercoin network at all as well as the incentive to hold peercoin as opposed to making transactions continuously to pay for messages.

[quote=“emeth, post:14, topic:3247”][quote=“kschneezy, post:10, topic:3247”]Will there be a form of PoS difficulty in sending/receiving messages? Similar to how Bitmessage has a PoW difficulty users can alter

Great work! I am excited ;D[/quote]

Not at present. The fee per message (0.01 ppc), the limits imposed by cloud storage, and the ability to shadow-ban specific people from sending you messages may be sufficient to take care of the spam issue. If it’s not, we’ll explore further.

[quote=“kac-, post:11, topic:3247”]@emeth have you tried your model with http://en.wikipedia.org/wiki/Elliptic_curve_Diffie–Hellman ?
Like stealth payments- those will be stealth messages. And it removes GPG/PKI dependencies and code.

alice_private_key * bob_public_key = bob_private_key * alice_public_key = shared_secret

alice_public_key - key can be found in ScriptSig of first input of “message transaction”
bob_public_key - in Bob’s forum signature[/quote]

I did some research into that area, and looked around about what people had to say about it and similar approaches (e.g. https://bitcointalk.org/index.php?topic=685269.0). I actually think it could work - but I worry about people getting side-tracked worried and arguing about the cryptography specifics rather than using it as the base for even more complicated data apps off the blockchain.

When I release the code, I won’t immediately release binaries. I want people to be able to play with it, critique it, experiment with it, etc for a little while before “publishing” it on the market. I’d encourage you (or anyone else interested) to experiment in a fork with swapping out GPG with something like mentioned above, and seeing how the community responds to it. I have no particular preference for what is used for encryption, so long as it does its job and doesn’t cause emacs vs. vi-style wars.[/quote]
Thanks for reply.
In case you want to explore this field: sending encrypted message through Peercoin mainnet using IES (Java,peercoinj): https://gist.github.com/kac-/6b19a3088765ee9efc21
I’ve sent “Hi Bob, how are you? Let’s meet” encrypted message to Bob in this transaction.
We don’t have OP_RETURN yet but I put data in ~fake uncompressed pubkey, 64 bytes available :).
Maybe you could use this trick to make your peermessage usable before OP_RETURN, then switch?

emeth could you tell us when you started working on this project?

I’m asking because it seems a lot of people are pissed and think Peercoin’s development is dead. While certainly like you, other devs may be working in the dark on various stuff for our coin (including SK). So, I want to provide to them evidence that some people like you are still active and contributing even if this is not public.

[quote=“Thireus, post:36, topic:3247”]emeth could you tell us when you started working on this project?

I’m asking because it seems a lot of people are pissed and think Peercoin’s development is dead. While certainly like you, other devs may be working in the dark on various stuff for our coin (including SK). So, I want to provide to them evidence that some people like you are still active and contributing even if this is not public.[/quote]

Certainly! The idea has been on my mind for several years. So with regard to the data flow and app itself, I’ve had it mapped out and been iterating on it for a long while. I’ve put a couple of small prototypes together over the years, but they always had a single point of failure, so I never went to market with them.

The blockchain made my app possible, but Bitcoin was not the right environment for it. A client needs to run a full node, and that just isn’t a realistic expectation with Bitcoin anymore. With Peercoin, the incentives were right: the transaction fee being destroyed and hard-coded, a full node being used to mint, a small blockchain due to off-chain transactions being encouraged.

So I chose Peercoin. I worked on the spec and research for a couple months on how to make the app’s trust model fit Peercoin. Then I started coding, and have worked on code for about a month - which brings us to the present day.

Now the code is fully functional for this first step (PeerMessages) - it’s been tested on the Bitcoin blockchain (but would be impractical for normal users on that blockchain). While waiting for op_return to make it’s appearance in Peercoin 0.5, I’m working on cleaning up the code, improving the UI/UX, better and more robust error catching, and failover rules for the data store.

Silence does not always mean a lack of progress. Let the naysayers say nay. The Peercoin community is moving forward.

[quote=“emeth, post:37, topic:3247”]Certainly! The idea has been on my mind for several years. So with regard to the data flow and app itself, I’ve had it mapped out and been iterating on it for a long while. I’ve put a couple of small prototypes together over the years, but they always had a single point of failure, so I never went to market with them.

The blockchain made my app possible, but Bitcoin was not the right environment for it. A client needs to run a full node, and that just isn’t a realistic expectation with Bitcoin anymore. With Peercoin, the incentives were right: the transaction fee being destroyed and hard-coded, a full node being used to mint, a small blockchain due to off-chain transactions being encouraged.

So I chose Peercoin. I worked on the spec and research for a couple months on how to make the app’s trust model fit Peercoin. Then I started coding, and have worked on code for about a month - which brings us to the present day.

Now the code is fully functional for this first step (PeerMessages) - it’s been tested on the Bitcoin blockchain (but would be impractical for normal users on that blockchain). While waiting for op_return to make it’s appearance in Peercoin 0.5, I’m working on cleaning up the code, improving the UI/UX, better and more robust error catching, and failover rules for the data store.

Silence does not always mean a lack of progress. Let the naysayers say nay. The Peercoin community is moving forward.[/quote]

That’s a very interesting story emeth! I really like the fact that the blockchain came at the right time to fit your project well and solve your previous issues. I’m also happily surprised that Peercoin’s blockchain had the characteristics you were looking for. It is not the first time that I read this from other developers, which is very encouraging for Peercoin’s future.

Like others, I can’t wait to see this project come to life. I can see that you are a cautious developer and don’t do things in the rush, and I’m sure this will be worth the wait.

Very exciting idea, emeth.

Apologies if the following is seen as jumping the gun a bit by talking about adoption before the code is even released, but there’s not much else for non-developers such as myself to think about.

A barrier of adoption that PeerMessage would have compared to Bitmessage is the fact that the user needs to acquire Peercoin beforehand, instead of just downloading the app and using it straight away. While many would no doubt be happy to pay for this to avoid spam, buying Peercoin can still be time-consuming and confusing for people new to the process. So I am thinking about whether this could be minimized by limiting the knowledge of Peercoin and cryptocurrency necessary to use the app.

This could be done by separating the association between PeerMessage and Peercoin (just at the consumer level, not for those who want to learn more or develop). Instead of telling people to buy Peercoin to use the app, it could simply be called “credit”, in a similar way to how people buy credit to use phones or Skype. There could even be cooperation with Peercoin-friendly exchanges: when someone wants to buy credit for messages, they could do so through a dedicated service instead of buying on the normal exchange. For example, buying credit for 100 messages would simply purchase 1 PPC in the background on an exchange and send it to the user’s PeerMessage address, without the user having to care about Peercoin explicitly. Psychologically at least, this would eliminate an extra step in getting started with PeerMessage.

PeerMessage is also a fantastic generic name that doesn’t necessarily need to be tied to a specific cryptocurrency. It would appeal to a pretty general audience of those who are interested in “blockchain technology”, but suspicious of the whole speculation side of cryptocurrency. Removing the direct association to Peercoin may also reduce hostility and increase usage among hardcore Bitcoiners.

I think that the day that many people use Peercoin without even knowing they are using it will be the day that it has become successful as a backbone currency.

I don’t know how all this fits in with the larger plans you have, so it may be irrelevant, I’m just trying to think ahead because this sentence:

gives me nightmares of something called BlackMessage being forked and marketed heavily before PeerMessage even gets started :wink:

I think river333 raised a very good point here. I’m also sharing his point of view about making things easier to use for the end user level (who shouldn’t necessarily know about Peercoin or crypto in general).

The question is, how would this work? emeth do you already have a payment system in place? Maybe PayPal could be of a good help to buy “credit” for PeerMessage.

Although, I would not completely neglect the fact that users can buy credit using their crypto-currencies, which would include Peercoin (the conversion would be very easy in this case). :wink: But maybe this payment system should be less visible, so that users don’t get this feeling like it’s a “cryptocurrency” thing (some people are still not used to crypto and prefer staying away from it).