(edit:) g_simonsson, who now has an account on Hacker News and has joined this thread, is Gustav Simonsson, another developer working on this project in charge of our smart contracts and payment logic. He was one of the core developers who worked on Ethereum, specifically focussing on blockchain security.
2. Given that todays secure overlay networks generally offer extremely bad performance in the Mbit region compared to using the underlay where 10G uplinks are becoming widespread for servers, and the extra hops increase latency, do you think secure overlays will ever be near enough to underlay speed to become widely used? Do you have experience how well ORCHID scales up? And out?
[edit: Don't mean to sound too harsh. I am very glad you're doing work in this area.]
That said, you are absolutely correct, and my colleague and long-time friend David Salamon (the person who has been the lead author of the whitepaper) wants that to be very clear. We are implementing bandwidth burning (and are even discussing some interesting extensions of this scheme involving both Turing-complete-w/-limited-execution-time programmable bandwidth burning as well as a form of global bandwidth burning), so whether you call that a "known weakness" for all of Orchid or not is slightly confusing ;P.
When we have actual software that someone could possibly use I am going to be pretty adamant that there are good disclosures in the UI with respect to the security tradeoffs, and for right now the whitepaper goes into extreme lengths to qualify what is or is not possible, in our current understanding, with and without bandwidth burning in place. (We are also looking into taking aspects of the algorithm and building it out with a proof assistant to have even greater assurances.)
2) One place where Orchid will hopefully shine (in the future tense, as this part is decidedly not yet implemented) is that we are working to allow multiple routes to/from the destination exit node using a scheme similar to MPTCP, which solves a lot of the bottleneck issues you normally find running through an overlay network.
BBC New article from 2007: http://news.bbc.co.uk/2/hi/technology/6971904.stm
Running decentral market code and tech portfolio:
Notes after reading your whitepaper, latency and complexity matter. We copied the Tor packet layout and deployed a simple NAT puncture method to avoid difficulties. Your proposed approach looks like many years of work.
In general some of the hardest problems / known weaknesses of the protocol at this stage is:
* Client bootstrap - what entry nodes to connect to? (saurik answered this in response to other questions)
* Current software connects to Ethereum nodes using an Ethereum light client, as Ethereum network traffic is not hardened it can easily be fingerprinted and blocked by GFW and others.
* Difficulty of medallion Proof-of-Work, basically it boils down to that if it's easy to join the network as a relay or exit node, then it's easy for a large attacker to join with many nodes. Making it harder for attackers to join / maintain active position in the network also makes it harder / more expensive for regular nodes.
* Payment anonymity. Currently it's as pseudo-anonymous as regular Ethereum transactions. Whitepaper has some discussion on future improvements there.
(2) The main driver here is economics - relay and exit nodes are paid by users for their bandwidth and relay of traffic. This forms an emergent, decentralized market that hopefully will find an equilibrium where there is plenty of overlay/secure bandwidth available at what the market prices it.
So far our models and simulations on this are limited, so we cannot make strong statements on how this will scale in practice. However, if we look at Bitcoin/Ethereum transaction (miner) fees, we see a live example of a working decentralized market that is very responsive and adjusts to supply/demand without any central intervention/control.
> We are working on techniques involving "traffic steganography" that will make the the traffic used by Orchid look like "normal" internet traffic (such as web requests and video calls). There are also existing simpler techniques such as "domain fronting", where you send your traffic to a large company such as Amazon--one which uses a CDN to efficiently route traffic--and cause their CDN to forward your traffic to your servers; this has been used successfully against the Great Firewall of China in the past.
> Of course, we also need to hide the list of destination servers, as otherwise these could be collected by the adversary and blocked outright. Our current solution to this involves cycling through large numbers of random IP addresses on various hosting solutions, which we believe will force anyone trying to block our traffic to end up blocking large areas of the internet--such as every server being hosted on Amazon Web Services--which would cause a serious problem for Chinese businesses and residents.
> For more information on this, see our discussion of Firewall Circumvention Features (Section 12) of our whitepaper.
> Whitepaper abstract says you use "A blockchain-based stochastic payment mechanism with transaction costs on the order of a packet". But how is such a blockchain transaction scalable to the entire internet when considering that it does a transaction for every packet? (pretend you're talking to someone who won't read the article).
I'd like to add to Mr. Simonsson's excellent answer that stochastic payments allow you to remove "dust-type" transactions from the blockchain.
Imagine I wanted to send you $0.01 100 million times, for a total of $1 million dollars. Let's also imagine that the transaction fees associated with 100 million blockchain payments are high enough that we'd like to control them. If instead of actually sending you $0.01 each time I send payment, I send you a provably fair lottery ticket with an expected value of $0.01 (for example, a lottery ticket with a 1/10,000 chance of being worth $100), this doesn't change the number of payments I need to send you, or your expected profit, but will decrease the number of transactions which need to be committed to the blockchain by the inverse win-rate (in our example, we'd reduce the number of transactions by a factor of 10,000). This allows the effective transaction costs to be arbitrarily low, down to the order of a packet (as at that point, physically sending you the lottery ticket starts to dominate the transaction costs.)
(IMO this and the 'how do you plan to make money for investors' should be in the FAQ)
I cannot (easily) find answers to pretty much every question I have, and sorry, I'm not going to read through a 50 page whitepaper before I decide if it's worth it.
What is it, onion routing? There's some talk of ethereum, so presumably you can get eth for spending traffic? Exit nodes? hidden services? (I'm not going to run an exit node for obvious reasons)
Maybe I'm just tired or stupid but I can't really find anything that isn't marketing blurbs without going through the whitepaper?
It sounds like this project is probably a little too early stage for you then?
Maybe let people play with it for a couple if years and distill it down a bit. If it still exists maybe try again.
I don't have a problem reading a whitepaper. But there's approx. 12 billion new etherum startups a day. So I just think a little tl;dr would be nice to know if it's something I care about. Because right now I don't know if I should care early stage.
I'm not forcing anyone to do anything here.
Tor's nine directory servers are not run by tor itself. One employee runs one of the nine, the rest are different people from around the world, with different affiliations who are not under the control of Tor. You must get a majority of the directory servers to block something from the network, before it will be blocked. Its not any one of the nine that can do it, they need to convince five other people, none of whom they control, to also block before it is actually accepted.
How do you plan on dealing with abuse? Sybil attacks, or bad actors on the network?
But this begs the question. How does the user get the public key and address of a node without connecting to a public directory? How does he know he's connecting to something trustworthy?
Given that context, you really just need the address of any node, not the address of a particularly "trustworthy" node, so you can get one from a friend's client or from a random website. We have discussed some alternatives, such as being able to put out a bounty on an existing peer-to-peer cryptocurrency blockchain (one which would have to not itself be fully blocked for you, of course). We also have been getting interest from some people in academia who have a number of other techniques, which again are mostly viable because of the background that "what if we can provide enough mitigations in the network itself and use what has been learned from blockchains to mean you don't need to find a trustworthy node".
As far as I've researched, I've not seen anything which would enable reliable NAT traversal which wouldn't also make the network traffic trivially identifiable.
STUN works only for certain types of NAT and requires servers which aren't behind NAT.
TURN is an external proxy, so can easily be identified by monitors of the network.
The concept of Orchid seems nice but the actual implementation seems very hand-wavy.
Yes that was also my conclusion.
How about a more specific question. If someone uses Orchid to accesse a website, can the website identify their IP address?
However, I see now that I didn't bother answering your first question, due to the complexity of the second ;P.
> Is this anonymous like tor or i2p?
The answer to this question is "yes", though we are aiming to be even better than those projects (in different ways).
This is the first I'm hearing of probabilistic payments. Are you aware of any other systems, proposed or operational, using this to pay for bandwidth? It seems like a natural fit.
The only two operational systems I'm aware of using probabilistic payments is blockchain Proof-of-Work, where mining rewards can be viewed as probabilistic (though with annoyingly high variance) and blockchain-based lotteries.
IMO probabilistic payments can replace payment channels in quite a few blockchain-based systems such as https://gridplus.io/ (basically in systems/apps where a service is provided that is (very) granular and continuous (video streaming would be another example))
Your Wikipedia page shows that you have something to do with Cydia, which is unlikely for me to remember but I guess that's it.
3. What's the open source license?
4. What's your code rights assignment document?
5. Does this differ from "Tor, but supported with a cryptocoin to buy exit bandwidth instead of hoping for donations"
6. That's a lot of investors. How long do you expect to have to supply servers and bandwidth before the network reaches self-sufficiency?
7. What are the threat models this addresses?
8. How do you vet new nodes to determine that they are not being controlled by [DC|Beijing|Pyongyang|Ottawa|Moscow|Paris|...]? In particular, if one entity controls more than 50% of the nodes, is it likely that they can trace who is requesting what?
9. Are you planning on making this affordable by civil rights activists in poorer regions of the world? How so?
4) This is still being worked on, partially because I think it is incredibly important that we make it extremely clear to anyone who does give us copyright assignment that the code they give us won't one day be forked by some future version of the entity that owns the code to build a closed-source project, and getting that right in a way that it can't ever be changed is legal time we haven't finished allocating.
5) Yes! As one high-level and in my mind very interesting example, Tor actually is a centralized service where nine directory servers are able to decide the state of the network; we are accepting nothing less than a fully-decentralized system.
6) I do not have a particularly precise answer to that question, but the answer I believe in is "not long at all", particularly given that users pay for the bandwidth they are using from other people. Under one argument, we would be self-sufficient instantaneously because any bandwidth being routed through a server we set up to help bootstrap the network would be paid for by a user.
7&8) This is a question that would lead to a very detailed answer, and so I hope I can refer you to our in-progress whitepaper. If you have any further questions, I would be happy to try to get them answered ;P.
9) It is my personal opinion that, as bandwidth is a "wasting good", that it will be extremely cheap to purchase bandwidth. I will refer you to section 7.2 of the whitepaper, "How Much Will a Packet Cost?".
All of our work is to be released under the AGPL3; and, while we have filed for a patent, we will be licensing the patent to the world in a manner similar to how Mozilla manages their patent portfolio. Brian Fox, who is in charge of making sure we have a successful and inclusive open source project, was the original developer of the bash shell, was for a while the maintainer of GNU emacs, and was the first employee of the Free Software Foundation (as Richard Stallman was a volunteer), and so is keenly aware of how important it is for technology to be available to everyone.
Also, from the FAQ:
>Can't NSA just hack into this too?
>No. Because of its fully decentralized approach, distributed architecture, and the size of the global network, Orchid cannot be easily hacked by any single government or entity.
That's not really a satisfactory answer. First, it doesn't answer the question. The question was not "can NSA easily hack into this." And I don't think the NSA is necessarily deterred by something being not easy. The bar needs to be higher than not easy, even if "not easy" is a polite understatement. Also relying on the size of the network means there is a bootstrapping problem, right? Hopefully they will get there.
This doesn't mean the system is bad... I'm just saying the FAQ answer is bad.
On the positive side, given the cred of some of the people involved (saurik!) I am optimistic this may well have a shot at working.
Here is the updated text that was written a couple nights ago by one of the people who helped design the protocol with me after being confused by the answer on the website.
> Yes. Our initial release targets China as the adversary, which is a more tractable problem. We may implment full Chaumian mixes in the future (which are immune to metadata/traffic analysis), but they are unlikely to be complete for our first public release.
One issue is that we have put a lot of effort into the whitepaper, and we really want people to review the concepts in the whitepaper and give us feedback on that, but I will say that it is highly likely (if not a foregone conclusion) that if we have source code available, code which we know isn't done yet as the whitepaper design has been leading ahead of the implementation in the code, that we are going to have people only downloading the code and giving us feedback on the code... but what we really need is feedback on the design, not the first draft implementation :(.
On the other side of this, our team includes someone from the Free Software Foundation who feels some strong moral pulls towards doing all of the development in the open immediately and yesterday. I have made sure that my code is ready to release on a moment's notice and still feel proud about what is out there (though there is one last super high-level thing in the organization of how the code for the network connects with code for services that I want to fix tonight, and issue that will be much easier to deal with fixing at the git level if I didn't think I'd be breaking anyone's clone).
As for why we want whitepaper feedback: that is because we believe in peer review of design.
What do they get out of it?
How and when do you intend to ‘exit’?
(Apologies for the skeptical tone, I think this seems like a cool idea.)
There is a fixed number of Orchid Tokens that are used for payments within the network of relayed traffic (source nodes pay relay and exit nodes).
The only way for anyone to gain financially is for these tokens to appreciate in value, which is tied to the utility of the network.
So there's no exit, rather it's a continuous token incentive for all stakeholders similar to the Ethereum network which was funded by selling the promise of future tokens.
Sounds like a security.
This sentence has two typos. It should be changed to:
> This would be a disruptive inconvenience for Chinese business people, deeply affecting commerce, as well as quality of life for the average Chinese citizen.
But TBH, stating that the lack of WebRTC or VPS web hosting would, "deeply affect the quality of life for the average Chinese citizen," seems like hyperbole. Maybe:
> This would be a disruptive inconvenience for Chinese business people, deeply affecting commerce and web access for millions of Chinese citizens.
Not really. China has several replacement solutions for AWS. Ali Cloud, Baidu Cloud, etc.
It would just mean blocking a few more websites hosted on AWS and used by Chinese people, GitHub maybe? Then again, it is easy to build a GitHub clone within China with the decentralized (irony much?) git protocol.
I don't feel this is a correct belief. China is a secular nation state, not a religious cult. They don't block parts of internet out of ideology, but for political and economical reasons. Cutting off the Internet, even if within realm of possibility for them, doesn't make economical or political sense.
If fame and victory are what your company is going after, instead of taking care of your potential users, then I am sorry that you won't have my support.
Btw, thank you for creating cydia if you were the author.
It is also worth noting that if they went that far, at least some of the other Western countries that are currently willing to tolerate their seemingly-limited control over the Internet would no longer feel comfortable standing idly by and might have to start making resolutions against them. Again: forcing that chess move from them would, in my (personal) book, be a strong win in this fight.
FWIW, you seem to be taking a very short-term definition of "taking care of your potential users" that I have sometimes seen in attempts to make excuses for Apple over the past decade of my work on Cydia (such as when I have stated that one of my "win conditions" for Cydia Impactor is for Apple to remove entirely the Free Developer profile system), and I (personally: I do not speak for anyone else on my team when I say this) do not feel the loss of your support on this particular day (though maintain hope that in a few years you will thank us as you have now me for Cydia).
To celebrate the banning of your platform would be what I call a short-term solution, because in the long run, it is merely a temporary attempt at solving the problem, that people will eventually forget when a long-term solution prevails. Chinese people, from all spectrum of political views alike, do not thank Google for exiting China, because it does not solve their problem. The act merely throws the problem into limbo state awaiting for other people to solve.
Also, I think you mixed up "support" and "gratitude". I thank you for creating Cydia as well as attempting to solve this problem with surveillance and censorship, as always. However, I disagree with your approach and therefore will not support this platform unless I can see that you have something bigger in mind beyond "celebrating being banned".
After all, what is the alternative? In the case of Google, the other option you seem to think is reasonable is for them to censor themselves... but that is a loss... that is in fact the primary loss condition.
That said, was Google leaving China the same kind of win for the Internet as what I am even talking about? No, because Google is but one company. My win condition is "China is forced to block some incredibly large percentage of the entire Western Internet", not "they block us" or "they block a few websites".
Google gave up long before I would say they won: their next step should have been to start doing exactly what we are now doing, shipping it as part of Google Chrome, and figuring out ways to distribute copies of the software in China.
There is a big difference between "celebrating being banned" and "celebrating your opponent being forced to make the difficult decision between salting their own earth to keep you from invading or accepting defeat".
This is all particularly the case given that my argument is rather consistent here that that won't happen: that China can't do that, as that is just too drastic of a move and it will cost them the support of businesses, citizens, and governments.
As for your final paragraph, every single decision made about Cydia was made within this moral framework... one which you do not support. You either should not be thanking me for what I did while working on it if you fundamentally refuse to support my methods and goals.
Honestly: it sounds like you would have preferred a world where I built a centralized Cydia and allowed Apple's censors access to the catalog... that completely misses the point of Cydia, so I don't know what you possibly wanted. With this attitude I not only don't feel the need to have you support Orchid, I would like to hand you back your false gratitude for Cydia :(.
I'm glad that it is ridiculously unlikely you "win".
"Bandwidth contributors simply install Orchid and activate their Internet connected device as a node - either as a relay or proxy - and then they set permissions like sites they want to blacklist or whitelist, and they earn tokens into their Orchid wallet for sharing their bandwidth."
So hopefully the blacklisting will eliminate the problem of nasty content that plagues anonymous networks like Tor.
Are you concerned that,
1. If node operators have the power to control content, they will be held responsible for the content by authorities? For example, consider a node operator in mainland China who allows access to criticism of President Xi.
2. Unpopular content will be censored by node operators just like it is now by more centralized powers?
1) No, because I would personally advise people in China do not whitelist sites whose purpose is to access such content. It is not even clear to me that people in China would want to run an exit node at all. There are billions of people in the world in countries other than China that can run exit nodes for that content so people in China will be able to access it without fear, and without anyone in China taking on that level of liability.
2) No, but with the great benefit that because everyone is using the same network, even if somehow (and I do not think this will be the case) there are only a small number of nodes willing to access that content (and one would expect that, in the eventual limit, this number should not be smaller than the number of Tor exit nodes that currently exist; though again: I think it will be much larger), then they will be cloaked within the content everyone else is accessing.
Essentially, it doesn't work to say "people who need access to a secure messaging service should use a secure protocol and everyone else can use Snapchat", and it also doesn't work to say "people who need to access criticism of President Xi can use Tor and everyone else can use the regular Internet". I want a billion people who are also doing things that would be considered insane on Tor--like browsing Netflix!--to be using this service, and to pull that off we need lots of exit nodes, which in turn means incentivized traffic and whitelists.
Put another way: I don't care if there are only 0.0001% of nodes that let you access criticism of President Xi if that is 0.0001% of some insanely large number and the result is "at least as many nodes as Tor", as that itself solves the #1 problem using Tor: that even accessing the Tor website already marks you as someone who is suspicious (as it is here in the United States and the surveillance programs we see).
With the tor model you get very few nodes, because most potential operators are afraid of being arrested and/or object to a lot of content. You don't get remotely as many nodes as you need to make the internet free and more safe.
With selection, you get many more nodes and, as saurik points out below, you still will have a few for material that some governments censor. So it seems to me a model with selection is the way to go.
Others might want to have empty filter list to be a complete transit/peer.
Therefore I don't think there's much room for users who want to blacklist but are not rather looking for a whitelist.
The blacklist will grow and grow, while the whitelist size will be pretty stable.
That said, I haven't used it, so the implemented blacklist approach might already support the above cases and be sufficient.
When I say whitelist, I do assume prefixes in the DHT (or whatever design they're using) can be used, as otherwise the whitelist may also grow too big to be practical. If however it will gain the concept of domains or such (which is also kinda a prefix), a whitelist will also be more practical.
Tor exit nodes are not operated by many in various places where they would/could because of concerns of the exit node addresses being enough to legally ruin operators' lives, even though technically it's a pure transit. Nobody sues the county because someone committed vehicular manslaughter on their public road. But because laws are skewed against the Internet right now, all someone needs is an exit node IP to make you regret.
If, and there's little to analyze/go by right now public, nodes and everyone is totally oblivious to what packets are transmitted; and if also the packets stored on nodes' disks are encrypted/sealed, then one could assume a filterless system to be practical.
This is all speculation, based on the little info there is. I really hope the team has come up with better designs that obliviate the concerns surrounding Tor, and ideally also not suffer from Freenet like slowness.
EDIT: Of course, once you have a filter, you will need to deal with the responsibility like Youtube does. If you do not know what's on disk or passing through, which is the ideal technically, then it would be best for the Internet and free communication. So, I'm not sure if a filter is a good idea, if that means you get subpoena'd and held liable for enabling one too many whitelist subscriptions.
You cannot pair anonymity and security with censorship. They are fundamentally incompatible. So either accept that nasty content will be out there, or acknowledge that you don't actually want perfect anonymity and security.
This is particularly noticeable given that in some countries, such as the United States where I live, simply accessing the Tor website to download Tor will end up flagging you for further monitoring. If Tor had only as many users and exit nodes as it does right now, but additionally had, for example, a billion people in China accessing Wikipedia through exit nodes that refused to go anywhere but Wikipedia, that makes a world of difference. As it stands, people are actually actively discouraged and even shamed for using Tor to access random websites or ones that use a lot of bandwidth, as that means that they are using (or even "abusing") a limited amount of donated bandwidth that somehow needs to be reserved for those who "really need it" (and thereby, will be targeted just for that).
Polychain did this with 0x project:
The effect was attenuated in this case by the success of the project, however in lower performing ICO's like Kik's Kin, where the market price is 50% of public sale price or less, big early investors dunking on public token sale participants feels pretty wrong.
In addition to this, VCs are also often playing a role in promoting public sales shortly after their own pre-sale investments, without disclosing their own discount or terms of obtaining tokens. Its kinda like telling people to buy a bunch of stock at $10 when you bought all yours last week for $5 and you're keen to dump a portion of them for $15.
It may be legal, you may think it's their right, and to be fair there is risk involved in being an early backer in a potentially failed project, however it is something to think about.
Because surveillance is a potentially serious problem, it should not be used cynically to market some new product that just adds another layer but doesn't really solve the problem.
For the average person its not China or Russia but their own state that is a bigger problem as they have power over them and can interfere with activism, journalism, dissent etc. The intensive profiling by Google, Facebook and others is another problem.
Was the Internet designed to be anonymous? Governments control access and can stomp down at will. ISPs and telcos know who you are, server and vpn providers know who you are, Facebook and Google have a lot of data on you. Only the very committed and technically adept can perhaps attempt any sort of anonymity.
Something like Musk's satellites with some basic free access may perhaps be the first of many steps to some kind of anonymity.
It would be nice to see more projects take routes that projects like tor take, where the founders do not accept millions of dollars of money before they even have a working and complete protocol.
Ethereum has some amazing potential and technology behind it but I lost interest in this the second I saw they had already raised $5M and haven't even done their ICO yet. Their FAQ section seems woefully incomplete given this amount of money.
One of the reasons why there's is a lot of Ethereum-based projects currently raising a lot of money is because token-based systems avoid relying on the traditional financial system for payments and value transfers. If your app is using traditional payments it can be shut down by your payment provider.
Blockchain-based tokens allow users to be in control of their own funds and not have their payments tracked or tied to their identity. I'd say that's a pretty big win.
Moreover ERC20-based tokens allows for engineering of incentives in a way that is far more efficient than company shares. It can accelerate network effects in a way that was simply not possible before blockchain technology.
Venture capital funds many projects in the hope that a tiny share of them will pay for all the others and a profit on top of it. So for this project to meet the expectations of its owners it would have to be extremely lucrative way beyond funding the work put into it.
Is that really the right structure to fund a foundational protocol with non-commercial goals that are potentially in conflict with very powerful interests?
Basically, the deal is that our investors bought the right to future Orchid Tokens, which is a new token used for payments within the Orchid Network. Since it's a utility token it's value should be driven by the utility of the network - the size, health and of course user count of the network.
Since there is a huge market for VPNs which overlaps with the utility of Orchid in terms of enabling access where there is censorship, if Orchid can grab a small part of this market then the utility of the network would drive the price of the token.
Whether this is the right model remains to be seen, and like any project there could be a conflict of interest if investors push for features that are not aligned with the project vision.
The difference is that, unlike traditional startups that are in control of their IP and the deployment of their software, once the Orchid Network is deployed, no one controls it but the users who run nodes. They choose what software to run for their source, relay and exit nodes, and no one can force them to upgrade to some new version. This is similar to other decentralized networks such as Bitcoin and Ethereum.
In practice the developers and teams behind decentralized networks do hold some power of software upgrades from their reputation and control of github repos, etc. But if push comes to show and for example we try to add payment fees or adds or other types of monetization, then users are very likely to simply reject such upgrades or even outright fork client software (thus effectively forking the network once such clients are deployed).
It is my hope that this is a structure that allows for both raising money from VCs and still end up with a truly decentralized network. We'd love to get feedback on this and understand what we can do to ensure that the network remains controlled by it's users and not (too much) influenced by any specific group.
Could you name the other projects that you think are better? Given the interest in this article I’m sure others would be interested as well.
As novel as the idea sounds, i doubt this is it this time but lets hope for the best.
Related, what the hell it is, actually? You say in other comment that it's a mesh network, they say it's a network, but I see a program to install. How a program is a network? What does it do?
To answer your question on what it does : cjdns is a routing protocol that intends to replace the current IP protocol. Like the standard IP protocol, it needs a way to communicate with another node to function (the default gateway). From there, you can communicate with the rest of the network. Your packets will go to the default gateway, who will then redirect it to the "closest node" recursively, until it reaches its destination.
You can setup cjdns over the current internet (essentially making cjdns an "overlay network" like tor) using UDP, or through an ethernet link.
CJDNS indeed works in a mesh : anyone can route other people's traffic, somewhat similarely to tor. The only difference is that you need to manually configure your "Entry Node" (to lift tor terms). See  for the reasoning.
About the name, the creator is Caleb James DeLisle, so I guess CJDNS stands for Caleb James DeLisle's NameServer ? Doesn't really make much sense but I don't see how bad a thing it is.
"Where did the name cjdns come from?
Cjdns was based on a codebase which was originally intended to handle name resolution (DNS) and so it was a combination of 'cjd' and 'dns'. The project changed direction early on and currently is still lacking DNS resolution but the name stuck. Make up your own acronym for it if you like."
What is it? The author has said it is meant to be a single binary: a router. The router accepts "customized" IPv6 addresses, e.g., each address contains a public key fingerprint. The packets are also custom, each containing a full route to the destination, which might be reminiscent of the bang path in UUCP. The nodejs stuff is just a prototype method of getting data from the router.
I remember watching a video of him explaining this at a cafe a number of years ago. Not sure if that was the first "public announcement". In that video he mentions a concern over censorship via DNS. And then he states that at a certain point he realized routing was easier to do than DNS.
He uses NaCl. As for the name "cjdns" and why he started out experimenting with DNS, my guess was always that the original experimentation he did with NaCl was probably related to encrypting and forwarding DNS packets (or perhaps custom "name system" packets), since encrypting DNS packets was the "PoC" for NaCl.
http://youtu.be/opKJsVTcofg#t=164 Ask the network for what you want. Not say 'who' you wanna talk to, but say 'what' you want.
The main advantage is non-hierarchical routing. Your ip address is in fact the fingerprint of your public key, which is used to encrypt all traffic.
Because of this the address allocation works a lot different and there's no need for a central authority. The lack of a central authority is usually a problem if you ever tried to merge two large internal networks you might have run into the issue that both networks have used 10.0.0.1 for something. This isn't possible in cjdns because you can just generate as many key pairs as you want, which would map to one out of 2^120 possible addresses which are very unlikely to collide. Merging two networks is just a matter of configuring one or more peers and the networks are able to see each other (this is so easy, it might happen by accident).
The main difference to other projects is that you don't need to write code to support it. If your application supports unicast ipv6, your application is able to run on top of cjdns.
Supposed I have keypair A at a friend and keypair B for me, how is cjdns going to find the fastest route between me and my friend?
Atleast, as far as I can tell from this page.
1. at some point there will be an expensive hop across the ocean, or between cities, that will likely only be built once, then shared. Won't whoever owns that hop have similar centralized control of any non-local traffic, similar to an isp?
2. how meshy should mesh networks be? On one extreme, every computer can be directly connected to every other computer in the world. On the other, every computer can be connected to just one neighbor, and requests are routed through many hops. What is the prevailing wisdom on the optimal amount of peers nodes should have on average in a mesh network?
Sorry for nagging, but I'm one of those skeptical of greedy people acting maximally greedy saving the world as a process waste.
There's certainly economic incentives for all participants, and what I find interesting is that since we're open sourcing all the code, anyone can easily deploy another network with a different token (model).
This puts pressure on us to propose fair token model/allocations else we risk disruption by forks or simply new Orchid networks.
Edit: Riffle, that's what it was called: https://en.wikipedia.org/wiki/Riffle_(anonymity_network)
How do they intend to make money?
...and will be at the eventual inquest I’m sure.
However, it is worth noting at a super-super high level that we are hoping to get a large number of nodes running the network and we have parts of our system that involve proof of work in a way similar to a cryptocurrency blockchain like Bitcoin. If a node in the Bitcoin network is operating for the purpose of compromise, it need not be banned from mining blocks: the network is designed in a way to make it so that such a node would not be able to pull off the kinds of attacks that people care about unless it owns a significant percentage of the resources being applied to securing the network. Our network has similar properties.
Maybe a whitelist of nodes themselves? (mostly in jest there)
I suppose an agency with funding who can endlessly sockpuppet could gain a substantial portion of network nodes, but if they're unable to censor more than per-random-packet, a surveillance goal seems more likely. While this may not meet conventional definition of 'censorship', I wonder of the chilling effect. I suppose any such move toward a censorship-free network should expect surveillance. c'est la vie.
Thank you for taking time to answer my question.
With the general public, you might start with some things they are unhappy about with the present internet, and for each of them explain how things would be better for them if they used Orchid.
For the more techy minded, you could do a list of similar things like tor or IPFS, and for each of them explain how Orchid is similar or different, and what are your reasons for deciding to make it that way.
Another thought: compare early on with Ethereum and IPFS. Yeah, they are really different things, but as soon as you say web decentralization, people who are not techies but read about such things will think of them, so you need to explain early on how this is different so they get pointed in the right direction.
It seems like this takes Bitcoin and Ethereum electrical power waste to a whole new level
To produce a medallion, a peer takes a public
key K , and the most recent Ethereum block hash
E , then (iteratively or in parallel) locates a
salt S such that H ( K, E, S ) ≥ N , where N
is some difficulty scaling factor.
We will argue that The Orchid Payments
(section 7.12) fulfill all but the
The pseudo-anonymity of Orchid payments
is equivalent to what can be achieved in
regular Ethereum transactions
If there is some setup cost to Alice and
Bob’s relationship ( S Alice , S Bob s.t.
S Alice > xy, S Bob > xy ), the answer is
(see the entire section 10 in whitepaper)
(see whitepaper section 11.5)
(see whitepaper section 11.9)
(see whitepaper sections 12.3 & 15.3)
(see whitepaper section 13.3)
My guess: the scheme is simply to raise an ICO and laugh their way to the bank. (as always)
I agree with your payment analysis. As you point out, we explicitly disclose that payments need modification before they will be at the level of anonymity required for Orchid. Anonymous payments for the Ethereum platform are being worked on right now by very talented teams. As we don't believe we have anything substantial to add to that conversation, we are deferring to them, and will simply audit and adopt the methods they design as soon as doing so is feasible.
> And for fun, it also messes with SSL. Allegedly only "for good", but who'll notice when this changes?
This is a fully general argument. Even if we didn't check the validity of certificates (which many phone apps don't do but should, hence our adding the feature), couldn't you still claim we might act maliciously in the future without anyone noticing?
(As you don't point out, our software will be AGPL3 licensed / open source. If one person notices and says something, everyone will notice. This is the logic behind trusting Linux, OpenSSL, Tor, etc... Are you aware of a better solution? I'm skeptical one exists.)
> Total work done just to provide for network joining grows as N^2
No, connection proofs are O(routing_table_size * per_element_proof_length). Routing table size is O(log(n)) and per-element proof length is the routing tables of the point-to-point route taken O(log(n)^2), so the proof is O(log(n)^3) -- likely much less in practice, as the successor and predecessor nodes are very likely to share every connection that the joining node needs to make.
This is good feedback, we should explicitly do that calculation in the whitepaper, added to the TODO list. Thanks!
> Blocking this is easy (as the whitepaper concedes) by DPI and blocking Ethereum. Whitepaper claims "this will be solved later" but offers not even a handwavy explanation of ohw this will happen while remaining compatible with mainline Ethereum clients...
The data which needs to be received is already defined by Ethereum's gossip protocol, so in theory adding Ethereum proxy support would be trivial. (Just proxy Ethereum traffic the same as any other traffic.)
We have not specified that, however, because we are worried about the possibility of a malicious proxy hiding some transactions from a customer. Once we feel like we have a good handle on how to analyze these kinds of attacks, and have a solution which mitigates them, we will add a solution to the whitepaper. This is somewhat outside our core product, and so has suffered a bit of neglect. It might be as simple as just receiving gossip from multiple independently chosen Relays, but I'd like to be more sure before making that the official method.
> Of course, besides handwaving on "it will totally be ok"(tm), there are no real world performance numbers.
We felt that publishing real-world performance numbers would be best left until after there was a real-world system.
> But funny most of all, these guys didn't address the simplest attack of all. Pretend to be an exit node, /dev/null the traffic, pocket the payment.
We do in a way. If a proxy behaves this way, Chrome disconnects, resulting in the attacker not being paid beyond a couple of kilobytes. This is not profitable, but still annoying. So the attacker causes a widespread nuisance, spends most of their time waiting for new customers, and suffers the loss of their CPU to proof-of-work. It's not profitable, but I expect some users will still do it for the lulz.
> My guess: the scheme is simply to raise an ICO and laugh their way to the bank. (as always)
(Note I'm not a cofounder)
I joined in spite of not being able to negotiate myself to anywhere near cofounder levels of token ownership -- I would probably have made more by accepting a different job doing mobile A/B testing software company.
I do think some of the cofounders are very much in this for the money, but I also think every single person on this team hates what's happening on the web with respect to privacy and censorship. If that changes, I'll probably end up leaving and working on this separate from them. (Well, or demanding more money?)
So basically: if I don't quit you can conclude they've either paid me to keep quiet, or I still like them. Best I've got for you.
> Ok, I wasted a few hours reading the whitepaper. It was just as idiotic as you'd expect. Here are a few notes:
Thank you very much for your feedback, sorry you felt it wasn't worth the time. Maybe next draft? :p
Looking forward to it :)
Also, what about the other half of my points? ;)
Oh, sure, sorry about that. Did you edit the post I replied to? It looks like I only missed two points:
> But it gets better. While you can use anyone as a relay, you PREPAY them before they do any work for you. This is claimed to solve the problem of nonpayment, but nobody mentions the opposite problem: I take your money and do no work for you. The money cannot be taken back - I own it now. cool.
Relays are sitting there burning their CPU while they wait for a customer to show up. This is a continual cost, which makes Relay/Proxy operation unprofitable unless they receive a steady stream of transactions. If they "take the money and run" they only pocket the initial payment, maybe as much as a couple kilobytes of bandwidth in tokens. If they "take the money and stay" they get a stream of payments from the customer. Therefore it's economically irrational for them to run -- the PoW's cost makes them boundedly trustworthy if they are economically rational.
(I sort of covered this in the /dev/null attack you proposed, as it's the same case except /dev/null has the attacker also uploading a bit of useless traffic. I should have been more explicit.)
> Oh, and if you thought this will provide INTERNET access, you are mistaken. Apparently HTTP w/ DNS only. As per whitepaper, exit nodes can filter based on domain. I am not even going to mention that running an exit node without a whitelist is idiotic (one user downloads CP, you go to jail). So everyone must have a whitelist? And just how big do you figure a typical "whitelist" of safe domains is? 100GB, 1000GB? Good thing you need to send it as a reply to Get Offers request.
Lol, yeah. Whitelists are dumb, but (as we seem to agree) not having them is dumber. I agree with your analysis. If they do become 100GB, etc we'll add queries to mitigate the size issue ("hey, do you support xyz.com?"), or any of the other relatively well studied solutions here (have I finally found a use for bloom filters? Unlikely.)
More broadly on the whitelist issue, my hope is that paying Proxies will result in actual "Orchid Proxy ISPs" springing up, which will have empty whitelists, actual legal protection as ISPs, etc. That's the beauty of real money being involved. Whitelists are there as a stop-gap while the market is being built.
Freenet builds its own domain of content where people post websites that are hosted in a distributed fashion by the platform. What we are working on with this initial implementation is a fully-decentralized tunneling service to access existing content posted on the internet (so if you were to compare it to an existing technology, you might look at Tor, or the "out-proxies" from I2P).
"The distribution of Entry Nodes is a difficult topic. If oppressive governments are able to access this list,
they will block user’s abilities to access the list."
Or simply, you know, go after whoever runs entry nodes. Or run their own entry nodes and, even if they can't compromise the network, trace the evil cypherpunks who want to use encryption.
Unfortunately, some practical and political problems cannot be solved with improved cryptography.
Also, at least for now, it is not a darknet, it is only for connecting the clearnet.
And as Orchid is a P2P market place with no middlemen or fees, it should find a market equilibrium that is more efficient than VPNs, with a lower price per data relayed.
When you roll Orchid for use, I think this should be stated prominently on the web page as a way of selling it. Something like "If you are like millions of people, you use a vpn. But vpns have some problems" and so on.
I'd consider that to be worse than the risk of a semi-trustworthy VPN provider keeping logs, depending on your threat model.
So, she might not use the first version, and if she does it might be installed or otherwise set up by you (so this hinges a lot on how much she trusts you ;P) or another friend of hers. However, we are building a simple user interface to make the experience of using it friendly and pleasant, and I guess it is worth adding that we also chose a name that we hope does not turn non-technical users away ;P.
* you install it on her computer
* it has a simple user interface
* it has a non-technical sounding name
Is that correct?
What if you reinterpret "my mother" to be "average internet user, in a country with average internet freedoms, who doesn't read HN etc"?
This kind of question always comes up for just about every service ever developed, and as the discussion continues the goalposts tend to shift and the user gets less and less sophisticated and more and more stubborn until at some point you demonstrate a user exists for which I can't prove they want it, and then victory is somehow declared. It is a sport I don't see much interest in playing.
To flip the question: we are providing a replacement for a service that already exists which is used by people worldwide and makes up a sizable market; our replacement is more secure and likely to cost less. Given that beachhead, you can now ask "who else would want to use this service if only it were cheaper and more secure?", and have a really fun brainstorming session.
(Though there are a variety of use-cases for VPNs and I doubt Orchid addresses most of that $25-30B market)
Internet users who may be less technical and may not care about surveillance or Internet freedom would still be interested when they hear "hey if you install this app you get a few $ (worth of tokens) per month just for sharing your bandwidth"
People who are concerned about surveillance or internet freedom. The latter includes people who are in a country that is censoring the internet.
People who want to earn a little money.
That's good. The more different types of people who are motivated to adopt something, the more widely it will be adopted.
I think the website could be better if it said right at the top what it actually does and what it offers over competing services.
And the design is nothing to scoff at. It’s not hip, but it’s functional and readable.
(Otherwise i fully agree, but the orchid one also looks like a badly implemented modern default theme)
The Orchid protocol uses an overlay network built upon the existing Internet, which is driven by a peer-to-peer tokenized bandwidth exchange.
The orchid protocol is an open-source overlay network that runs on top of the Internet. Its fully decentralized, because rather than traffic being routed through central authorities—your ISP or your VPN—it’s instead routed randomly through a network of bandwidth contributors who sign up to share their surplus bandwidth and activate their Internet-connected device as a “node.”
Users that want to access an uncensored Internet (bandwidth consumers) pay the bandwidth contributors in Orchid tokens through a peer-to-peer exchange. Because neither the traffic nor the payments can be monitored by central authorities, both contributors and consumers of bandwidth enjoy a fully anonymous, surveillance-free experience.
Also of note:
Who are the founders?
Stephen Bell: Steve started companies in Europe, the U.S., and China before founding Trilogy VC China, where he spent 10 years backing Chinese seed stage startups.
Brian J. Fox: Brian is an entrepreneur and open-source advocate, the first employee of the Free Software Foundation, and the author of the GNU Bash shell.
Jay Freeman: Jay is a software engineer and the developer of the Cydia software distribution platform used on millions of jailbroken iOS devices.
Gustav Simonsson: Gustav is an engineer and developer who helped launch Ethereum in 2015, working with core protocols, clients, and security auditing.
Dr. Steven Waterhouse: Steven is an experienced investor and entrepreneur, having co-founded RPX Corp, led cryptocurrency projects at Fortress and Pantera Capital, and the Honeycomb product at Sun Microsystems.
[Edit] I _think_ they are trying to create something like Etherium but for decentralized internet.
Financial incentive for running relays.
At this point, it's hard to say what actual distributions of wealth might look like if people start using cryptocurrencies in their daily lives, for example to route traffic over a network. But at the moment, the distributions of wealth are quite nuts. But if there is an overall "unfair" atmosphere in the crypto-economy, it's could make depending on this system of routing kinda suck in the long term, especially if peoples actual livelihoods are under the pressure of massive ad gaps. People "sell out" when they're perceiving some stress.
If we go 'all-in' on this kind of system, it might actually end up creating the same kinds of de-facto power imbalances we see today with conventional social media.
I'm not anti-cryptocurrency either. I actually own a little bit of cryptocurrency. I'm curious about its potential to dissolve existing dominance relationships non-violently. That said, I don't see it as an end. Moreso, I see it as a potential conduit of healthy, non-violent economic chaos.
I also recognize that this strange new alien could be "out of the frying pan and into the fire".
This is why the Finnish central bank's paper on Bitcoin called it a 'monopoly without a monopolist'.
I think the immutability of these kinds of protocols is certainly an improvement over the total control that economic stakeholders have in a centralized server-client architecture, with respect to power distribution.
It may just be how it will ever be.