3 ms·
I don't understand what a blockchain is needed for. Resolving registered identities to a public key? Because I can't seem to sign up without an e-mail address,
by lawl 9y ago
I don't understand what a blockchain is needed for. Resolving registered identities to a public key? Because I can't seem to sign up without an e-mail address, which seems... weird to me.
What is the centralized storage used for? Offline messages and history sync between devices? edit: i didn't see the dAPP part, is it also used in P2P messaging?
How does your decentralized lookup avoid leaking friend requests out into the open?
On your website it also sais you use WebRTC for P2P communication. Am I correct in my assumption then that the STUN/TURN/ICE server at least knows who started talking to whom and when?
I really miss a detailed architecture/protocol overview. It doesn't have to be as detailed as for example the signal docs[0], but just something to be able to understand your architecture and the choices you made on a high level.
[0] https://signal.org/docs/specifications/doubleratchet/ https://signal.org/docs/specifications/doubleratchet/
- ac4tw 9y agoGood questions lawl. I'll try to address them in order: 1. "A blockchain, implemented using virtualchains [6], is used to bind digital property, like domain names, to public keys. Blockstack’s blockchain solves the problem of bootstrapping trust in a decentralized way i.e., a new node on the network can independently verify all data bindings." [https://blockstack.org/whitepaper.pdf https://blockstack.org/whitepaper.pdf] 2. I believe collecting an email is required in case you need to recover your 12 word pass phrase. 3. The default storage that comes with a Blockstack account is a Microsoft Azure Blob. If you implement your own GAIA hub, you can circumvent that with a number of other options, but conventionally you would refer to the other options as 'centralized' too. Consider this though: "We decentralize data storage with relationship to trusted 3rd parties - remove control from app developers, cloud storage providers, etc and give it to users." [https://forum.blockstack.org/t/gaia-decentralisation/4275/2 https://forum.blockstack.org/t/gaia-decentralisation/4275/2]. Anyway, each user's storage is used for the following things: - contact lists - conversations - offline messaging - initiating WebRTC connections It is all encrypted client side. 4. We have two forms of discovering users. The first is where the users coordinate outside of Stealthy to add eachother as contacts--at this point communication is established only between the two chat clients with no third party, consequently there is not traditional leakage that may occur in this mode. The second (which can be disabled from options) uses a centralized DB and listeners to simply exchange the notion that someone wishes to talk to you. If that centralized DB were to be hacked, that request could theoretically be leaked. The invitation to talk only occurs initially when both parties are not within eachother's contact lists. 5. We do use WebRTC for P2P communication and it can be disabled from the options or during initial configuration. The STUN/TURN/ICE server could certainly acquire some of the information that you mention. 6. We agree with your notion of an architecture / protocol overview and are currently considering precisely how we will proceed with that. Earlier this month we spoke with a representative from the EFF and their advice was to publish a paper on the subject and then commence with formal review of our work, similar to Signal. Hopefully this helps.
- lawl 9y agoThanks, you answered some questions, but I still have some question marks. I've bookmarked the website and will check back for the (white)paper.