Hacker Newsnew | past | comments | ask | show | jobs | submit | sanity's commentslogin

Gnutella was decentralized like Freenet, but it's broadcast search approach limited scalability relative to Freenet's "small-world" approach which can scale indefinitely.

> Though reusing the name for an entirely different project with a different codebase is disingenuous to say the least.

Same project, same goals, and it's not even the first time we started with a fresh codebase - we did it in 2008.

> That won't do his reputation any good, especially in a field where reputation matters.

This drama never comes up anywhere except HN where it seems to be the obsession of a small number of vocal people who never have anything to say about the substance of the project. I don't lose any sleep over it.


> Same project, same goals

Many on here beg to differ.


And yet I still haven't seen anyone explain how the goals actually differ.

Interestingly, there seems to be very little overlap between the people giving substantive technical feedback and the people most upset about a 3-year-old naming controversy.


> What are the current limitation of this system? Slow bootstrapping, high latency, large disk usage?

I'd say not working on mobile is probably the main one right now. Peers bootstrap into the network in seconds typically, and contract updates typically arrive at subscribed peers in under 2 seconds which was the design goal. The Freenet binary is just 10MB, and disk usage is fairly minimal as even the largest contracts are < a few MB.

> Is there a solution, or ideas, for DNS equivalents? I know the I2P approach (and remember that GNUNet had some unique approach as well), which can be workable in practice with "trusted registrars" as jump hosts. Name resolution feel even more important to solve in decentralized web.

Contracts in Freenet are identified by a hash of the contract webassembly + contract parameters - so the contract's identity is tied to its function. This is effectively a generalization of Freenet's "Signed-Subspace Keys" - which were also adopted by GNUnet.

> How can anonymity be built on top of this system?

Most likely through a mixnet or onion routing built on Freenet's contracts and delegates. If you don't mind listening to videos this was discussed in depth on a recent Freenet podcast[1].

[1] https://youtu.be/sfdsljrnJiI?si=tTs2qNglrYJOImn2


> to something that does not share the same goals so "fork" is arguable here

How do the goals differ, specifically?

> but I cannot help but notice that some has likely been misappropriated

You had no visibility into the project's finances, yet you're publicly implying financial impropriety without evidence.

I've raised substantially more funding for the new Freenet in the past 5 years than was raised during the entire prior 20-year history of the project.

> were awarded specifically for "protection against surveillance and censorship" that the "new freenet" does not even aim to provide.

In what way does a decentralized network with optional anonymity not protect against surveillance and censorship?

> "The board" of the non-profit seems to have been culled just before the decision. I don't know why, I wasn't on it. Maybe @agl can shime in (he was).

You also acknowledge here that you don't know what happened. Those board members' departures were at their request because they were no longer actively involved in the project.

> All I know is that this could have been handled better.

I'm sure you're right about that. But my experience at the time was that the disagreement was fundamentally about the outcome, not the process.


You make claims. Release the books, and people can then verify what you say. If you do not release the books, it is only natural for many people to suspect something wrong.

It isn't "natural" to make baseless accusations based on zero evidence.

Of course there is. Anyone is completely justified in asking what their politicians do, how their non-profits spend their money, or what ever.

The fact that evidence is not provided, if anything, is an indication of potential wrong doing.

I also note that you did not actually respond to what I said. This is additional indication of some potential wrong doing.


> The fact that evidence is not provided, if anything, is an indication of potential wrong doing.

No, that's not how evidence works.

You're starting from the assumption of wrongdoing and then treating the lack of evidence as confirmation of your suspicion.

Meanwhile we've spent the last 5 years publicly building a working decentralized platform.


That's exactly how it works. I suspect _you_ of wrong doing in a non-profit. I ask you do release the books, and if this is not done, I take that as proof of wrong doing. If the books are hidden and cannot be published, no one has any business giving you a dime.

And you are still not addressing the question here, which only compounds the suspicions.

I win this argument, and you lose.


I think you steal money from local orphanages and stomp kittens in your free time. Release your bank account and provide bodycam footage or you will confirm your guilt.

I win this argument and you lose.


> I win this argument, and you lose.

lol


How are the goals different?

I've abstained form interfering until now... but have you honestly forgotten?

Please explain how "the new freenet" tackles censorship resistance.

https://web.archive.org/web/20001017133926/http://freenetpro... "Freenet is a peer-to-peer network designed to allow the distribution of information over the Internet in an efficient manner, without fear of censorship."

https://web.archive.org/web/20050201110519/http://freenetpro... "Freenet is free software which lets you publish and obtain information on the Internet without fear of censorship."

https://web.archive.org/web/20150206152355/https://freenetpr... "Share files, chat on forums, browse and publish, anonymously and without fear of blocking or censorship!"

today: "Hyphanet is peer-to-peer network for censorship-resistant and privacy-respecting publishing and communication."

the new freenet: ?!?


> Please explain how "the new freenet" tackles censorship resistance.

Primarily through the same core mechanism as the original Freenet design: decentralization and relaying requests through multiple peers such that no individual peer sees the entire request path.

The new design also supports pluggable anonymity systems such as mixnets and onion routing. In some respects these are stronger than Hyphanet's approach because relay selection can be chosen intentionally by the user's node rather than emerging implicitly from network topology.

The main architectural change is that anonymity is no longer treated as a single mandatory mechanism baked into every layer of the system. Different applications can make different tradeoffs depending on their requirements.


First, thank you for creating this project. When I was a young high school student in China, I tried all different kind of tools to evade internet censorship, including Freenet (although admittedly with little success, there was never enough peers to connect to and/so it was too slow to download anything meaningful).

My question is whether freenet is designed to be resistant for active adversaries with deep packet inspection capability, particularly like the Chinese firewall that is also observed to do statistical timing analysis of packets? Is there any possibility to apply obfuscation to the peer to peer connection? And is there any mechanism to aide peer discovery (DHT?)


> First, thank you for creating this project.

You're welcome :)

> My question is whether freenet is designed to be resistant for active adversaries with deep packet inspection capability, particularly like the Chinese firewall that is also observed to do statistical timing analysis of packets? Is there any possibility to apply obfuscation to the peer to peer connection?

Freenet's transport protocol is a custom encrypted protocol over UDP, but it is not currently designed to evade sophisticated deep packet inspection or timing analysis by state-level adversaries like the Great Firewall.

That said, the transport layer is modular, and we would absolutely accept contributions adding traffic obfuscation or pluggable transports, subject to the usual tradeoffs around latency, bandwidth overhead, and resource usage.

> And is there any mechanism to aid peer discovery (DHT?)

Freenet uses a distributed small-world routing topology for peer discovery and efficient message propagation. It isn't a conventional Kademlia-style DHT, but conceptually it serves a similar purpose.

The network is designed to self-organize into a small-world topology.[1]

[1] See the "Distance" graph at the bottom-right of the circle visualization - http://nova.locut.us:3133/


The original freenet design was replicating content as it was requested. You had no way of locating "all" the copies as they would get cached "along the way" elsewhere on the keyspace when you request them.

That property was useful both for improving availability AND censorship resistance: you could not attempt to "locate" where the blocks are without spreading them.

My naive understanding of the new design is that you can have contracts that are replicated... but they still cluster around the same place in the keyspace so any capable active adversary can actively deny access to content trivially. Did I misunderstand something here?


The two systems aren't that different in this regard, both replicate data along request paths.

In both systems data will tend to cluster on peers close to the data's location because otherwise requests couldn't find it.

The main difference is that in the new Freenet the content can be updated, with updates propagating through peers hosting the content.


Are there any success stories about Hyphanet's censorship resistance mattering? Beyond serving run-of-the mill copyrigh violations (and probably child porn) I never heard anything about the content on Hyphanet.

Even now when people in the US are organising against a fascist regime it's mostly WhatsApp and maybe Signal.


There actually are: among the darknets, Hyphanet is the only one that has a main use for "deviant data resistant to censorship":

Example publication: https://journals.sagepub.com/doi/abs/10.1177/135485651880663...

> What are the content patterns on Freenet? Four patterns were identified. Freenet is (1) an archive of deviant data resistant to censorship (2) a space dominated by content associated with masculinity, (3) a nonmarket space where commercial exchange is non-existent, and (4) an empty space with many requests not returning information, and many flogs abandoned. We asked a third question: How does the analysis of Freenet inform current understandings of hacker culture? Freenet, we suggest, can be understood as a type of digital “wilderness”. It is a singular darknet space, supporting a distinct set of hacker practices

Practically: people in Hyphanet blog about stuff they dare not blog about in the clearnet -- anything from radical politics (from all kinds, left, right, libertarian, …) over personal opinion pages to wilder stuff like magick (yes, in that spelling).

Not to forget the Russian Poet who’s posting daily poems with the goal (as he wrote) that those poems still survive after police knocked at his door.

(besides talk about hyphanet and privacy tech)

So yes: I don’t understand the downvotes either, because it’s a legitimate question with a pretty clear answer: yes.


Thank you for the downvotes.

You're moving the debate here. The question was "How are the goals different?" from the project leader (who ought to know better), not whether moving them makes sense.


Well I guess you think the important part of the goals is to make censorship technically difficult, without regard to if the software actually facilitates political speech at all.

Others could argue that software nobody uses for its stated purpose has failed; but you are right that is technically a different discussion than the one you started.


> The question was "How are the goals different?"

A question you haven't answered.


"Anonymity: While the previous version was designed with a focus on anonymity, the current version does not offer built-in anonymity but allows for a choice of anonymizing systems to be layered on top."

https://freenet.org/about/faq/


How is offering the user more choice with respect to anonymity changing the goals of the project?

the _point_ of freenet was that you could anonymously share/store information. For better or worse, that was the point of it. It also drove the UX and tradeoffs for the network.

It was slower than Kazaa/bittorrent, but it was far harder to work out who was shareing what. (if memory serves it also chunked files up so they weren;t on the same machine, but that could be me misremembering)


> the _point_ of freenet was that you could anonymously share/store information.

As you can with the new Freenet, you just get a menu of options instead of being forced to use a one-size-fits-all approach to anonymity.


yes, it chunks files, and aggregates multiple chunks per packet, and pads packets it sends around, so size analysis by the ISP cannot trace the path.

I kind of see "focus" in the FAQ and "goals" in this thread as interchangeable.

It would surprise me if this would not be a common interpretation of these texts alone among the readers here.

As for the general reputation of the OG Freenet in this lineage, to the extent I'm aware, anonymity was pretty much the defining characteristic. More or less everything else in the user experience suffered to some extent compared to other chat and file sharing services because of this "focus".


If we're doing archaeology, my original 1999 paper was called "A Distributed Decentralized Information Storage and Retrieval System".

Fine. Page 6, which is Chapter 2, under the heading Aims, there is a numbered list. What is the second item in this list?

If you have a point to make you should make it.

I'll quote it then:

   2. It should provide anonymity to b oth providers and consumers of informa-
      tion

And? The new Freenet provides a menu of options for anonymity which is strictly better than imposing the same (imperfect) anonymity solution on everyone.

Thank Adam, nice you see you!

> What's it look like over the wire?

Encrypted UDP, but likely identifiable based on timing etc - we're not trying to hide it right now - the focus is more on decentralization.

> In particular, does it do fully decentralized hole punching?

Depends on what you mean by "fully". When peers first start up they need to connect to a "gateway", a freenet peer that can receive unexpected inbound UDP. But gateways are only required to introduce peers to the network, after the initial introduction they form new connections through the network.

Right now we run these introductory gateways but will decentralize it over time.


The medium tends to amplify drama far beyond the reality of it, hope you are well :)

Appreciate the feedback.

> It feels like the state merging approach just pushes the hard problems onto the user, without giving them the tools to solve those problems properly.

We've created many of these tools, and have used them to implement practical applications like group chat, a CMS, and a social network, and we and others will build many more tools over time. Designing applications for Freenet can require some creative problem solving, but each problem only needs to be solved once.

> What prevents me from connecting and saying that "everybody's state is wrong, that poll in 2024 which didn't reach quorum actually did, because I voted in it, here's my vote." How can the state merger know that the existing state has been valid for two years, and that the vote shouldn't be retroactively applied?

You could solve this similarly to Bitcoin by having a mechanism that "locks" poll results at a particular point in time to prevent subsequent additions, analogous to how mining repeatedly locks in the blockchain.

> On a related note, how does your design prevent sybil attacks, where one participant floods the network with many large contracts and large state updates?

Peers in the network track cost/benefit of each connected peer, so if a peer starts to consume a lot more resources than it provides then its neighbors will disconnect, a kind of immune response.

I'm sure that once the network is big enough to attract large-scale attacks we'll need to adapt our approach, but I think we have a solid starting point.


Thank you, that's actually an idea I considered a while ago - embed some wasm in a GET request (which retrieves complete contract state from the network) that could pre-process the state before returning it to the requestor.

The issue was that Freenet requires that intermediate peers can cache the contract state as they're passing it back to the requestor so in the end I decided against it, but might revisit in the future.


yea, there's a lot of scenarios it doesn't make sense in imo. and even with processing-gas-limits it's still kinda weird and harder to prevent abuse on (e.g. you can't predict costs because you don't know what requests it might send next - graphql's declarative approach helps it here).

but for e.g. mobile apps with a trusted backend? probably great. you could even just send hashes of the WASM blobs because they will often be identical (and the full blob if that fails), and some serialized data to serve as args that vary (e.g. page-size limit of the third internal request), and you'd have an absurdly flexible system with fairly small requests. I'm just not sure how small, or if it'd end up computationally worth it compared to graphql / sparql / etc.


Thank you!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: