HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
Muterra
doc-golix
Security & Privacy2015–2017
Muterra / doc-golix · Archived

doc-golix

PGP-like encryption + torrent-like addressing + blockchain-like enforcement of data expiry

2Distinct people
22Mentions
0Explicit recommenders
122GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

PGP-like encryption + torrent-like addressing + blockchain-like enforcement of data expiry

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by month22 dated mentions

Observed mentions: 2015-07-31 00:48:48 UTC to 2017-01-12 18:30:26 UTC.

0123452015-07-01 00:00:00 UTC to 2015-08-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsJul 20152015-08-01 00:00:00 UTC to 2015-09-01 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 comments2015-09-01 00:00:00 UTC to 2015-10-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-10-01 00:00:00 UTC to 2015-11-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2015-11-01 00:00:00 UTC to 2015-12-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2015-12-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-01-01 00:00:00 UTC to 2016-02-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2016-02-01 00:00:00 UTC to 2016-03-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-03-01 00:00:00 UTC to 2016-04-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-04-01 00:00:00 UTC to 2016-05-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsApr 20162016-05-01 00:00:00 UTC to 2016-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-06-01 00:00:00 UTC to 2016-07-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2016-07-01 00:00:00 UTC to 2016-08-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2016-08-01 00:00:00 UTC to 2016-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-09-01 00:00:00 UTC to 2016-10-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2016-10-01 00:00:00 UTC to 2016-11-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-11-01 00:00:00 UTC to 2016-12-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-12-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-01-01 00:00:00 UTC to 2017-02-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 commentsJan 2017

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Jul 20152015-07-01 00:00:00 UTC2015-08-01 00:00:00 UTC101
Aug 20152015-08-01 00:00:00 UTC2015-09-01 00:00:00 UTC413
Sep 20152015-09-01 00:00:00 UTC2015-10-01 00:00:00 UTC000
Oct 20152015-10-01 00:00:00 UTC2015-11-01 00:00:00 UTC505
Nov 20152015-11-01 00:00:00 UTC2015-12-01 00:00:00 UTC211
Dec 20152015-12-01 00:00:00 UTC2016-01-01 00:00:00 UTC000
Jan 20162016-01-01 00:00:00 UTC2016-02-01 00:00:00 UTC312
Feb 20162016-02-01 00:00:00 UTC2016-03-01 00:00:00 UTC000
Mar 20162016-03-01 00:00:00 UTC2016-04-01 00:00:00 UTC000
Apr 20162016-04-01 00:00:00 UTC2016-05-01 00:00:00 UTC000
May 20162016-05-01 00:00:00 UTC2016-06-01 00:00:00 UTC000
Jun 20162016-06-01 00:00:00 UTC2016-07-01 00:00:00 UTC101
Jul 20162016-07-01 00:00:00 UTC2016-08-01 00:00:00 UTC101
Aug 20162016-08-01 00:00:00 UTC2016-09-01 00:00:00 UTC000
Sep 20162016-09-01 00:00:00 UTC2016-10-01 00:00:00 UTC202
Oct 20162016-10-01 00:00:00 UTC2016-11-01 00:00:00 UTC000
Nov 20162016-11-01 00:00:00 UTC2016-12-01 00:00:00 UTC000
Dec 20162016-12-01 00:00:00 UTC2017-01-01 00:00:00 UTC000
Jan 20172017-01-01 00:00:00 UTC2017-02-01 00:00:00 UTC303

What Hacker News says

22 sources
With a purpose-built protocol called Golix [1]. The documentation goes into a lot more detail but it has three main aspects: 1. Encrypt things like PGP, except key encapsulation is separate from ciphertext delivery. Specific primitives used are AES-256, RSA-4096, and X25519, though deprecation of RSA is planned soon 2. Everything is content/hash addressed, which helps substantially with the above. Specific primitive: SHA-512 3. Data retention is governed like a reference-counted programming language; data gets a container, and then you make a signed "binding" to give the container an address. You can then sign binding revocations ("debindings"). When no addresses are left, the server removes the content. [1] https://github.com/Muterra/doc-golix
In Show HN: Hypergolix, “programmable Dropbox” with client-side encryption
Correct. This is yet another "hosted platform for revenue" open source project; if you deploy on your own servers, you don't pay us. Servers have no access to plaintext. They also have extremely limited metadata: only the "author" [1] of the data and its ciphertext length is known. [1] Technically not the author but the "binder", which is a specific term used in the protocol, but we're getting a little deep into the weeds. See here for more info about binders: https://github.com/Muterra/doc-golix/blob/master/whitepaper....
In Show HN: Hypergolix, “programmable Dropbox” with client-side encryption
Hi HN, basically a one-man show here. Hypergolix just entered its alpha release, and I thought it would be an excellent opportunity for feedback. The fundamental motivation of the project is for individuals to retain autonomy over information they store on untrusted third-party servers; the hope is that Hypergolix can make "IoT" development easier with client-side encryption than without it. Some links: [1] Project website: https://www.hypergolix.com/ [2] Hypergolix source (~36k LoC): https://github.com/Muterra/py_hypergolix [3] Golix docs (the crypto protocol that powers Hypergolix): https://github.com/Muterra/doc-golix [4] Golix Python implementation (~5k LoC; needs rewrite): https://github.com/Muterra/py_golix [5] Hypergolix Slack channel: https://hypergolix.signup.team/
In Show HN: Hypergolix, “programmable Dropbox” with client-side encryption
Keybase is definitely working on creating a trust bridge between physical identity and (a specific type of) digital identity. Whether they've managed to do it in a scalable, business-sustainable way remains to be seen. Let me be clear: that's not a slight against them; from a business standpoint I find no good analysis or speculation on their financial numbers and see no publicly commented monetization strategy). The reality of the world today is that if you can't make something economically self-perpetuating, it will almost certainly eventually fail -- especially if the problem you're trying to solve is one of as large a magnitude as literally any social interaction on the internet (they all involve connecting digital identities to physical ones). From a technical standpoint, the primary problem I have with Keybase is that it uses PGP. I
Read the rest
'm not [1] the only [2] person (and, since I'm effectively 100% unknown, I'm far, FAR from the most prominent, who is arguably Bruce Schneier [3]) to criticize PGP, but at the core of it, even ignoring substantial usability issues, have you ever tried to forward a PGP message? It's sort-of possible, if you re-encrypt and re-sign everything, but it's certainly not practical and definitely not scalable. Sharing and re-sharing is the cornerstone of much of the social internet, and PGP renders it effectively impossible. Keybase has a really, really cool body of work surrounding "connect this PGP key to this physical identity", but unfortunately PGP keys are only one in a small subset of cryptographic identities, which is itself an even smaller subset of digital identities in general. I get why they've done it this way; the alternative is to write your own cryptographic protocol that nobody is using, which is a much riskier thing (speaking from experience [4]). But at the end of the day, all of Keybase hinges around using PGP (or a PGP-like approach), and I'm very skeptical that's a viable solution to the social problems we have today. [1] https://blog.cryptographyengineering.com/2014/08/13/whats-ma... [2] https://moxie.org/blog/gpg-and-me/ [3] https://www.schneier.com/blog/archives/2015/11/testing_the_u... [4] https://github.com/Muterra/doc-golix
In On Phone Numbers and Identity
I think the article does a decent job of highlighting some of (what I hear as) the primary concerns surrounding IoT, namely: 1. WiFi needs to always work 2. Internet connection needs to always work 3. Power needs to always work 4. Stability of software and firmware 5. Trustworthiness of software and firmware (including data leakage, privacy, etc) Simultaneously, though it rightly points out that IoT is still very much in its infancy, I think it misses a very important observation: there will absolutely come a day when IoT is unavoidable. Not as in you can't avoid encountering it, but as in you can't avoid owning it. There will, (I think anyways) without a doubt, be a day when devices that the average Western consumer considers necessary for everyday life -- things like refrigerators, electric meters, thermostats, and so on -- are effectiv
Read the rest
ely impossible to buy "dumb". Every analysis and meta-analysis of IoT that I've seen has been incredibly bullish on it, and I think that's an indication of how much economic incentive there is for it. Given that, I'd say automobile ECIs are the proof in the pudding for the assertion that IoT will be unavoidably ubiquitous. As an experiment, try to find a new car that you can personally can actually buy, that doesn't have a computer in it. As the median Western consumer, that's not possible. So I'm pretty convinced that for IoT, non-participation will not remain an option. So then the question is, what do we do about those 5 issues? I tend to look at stuff like this from an economic perspective; clearly device producers haven't seen enough market pressure to give a shit about any of them. Right now, the only pressure device creators are demonstrating is a profound push to get something, anything, to market. It really is an internet of shit. That being said, even the bare minimum is really hard here. You're talking about a system architecture that our existing infrastructure simply isn't cut out to handle. Think about the challenges involved in deploying a reliable authentication system to a web-scale application, and now imagine doing it in a way that can't necessarily rely upon a central server. It's far easier to just "punt" on the second half of that, assume the traditional web paradigm (trusted third party server), and call it a day. And make no mistake, for a commercial device, authentication is absolutely required, even for home WiFi network: not everyone wants every person in their house to control, for example, their locks. Or, alternatively, imagine an AirBNB host being forced to give their guests unfettered access to their IoT vibrator (yes, they exist). These edge cases are everywhere, and they make authentication of some sort or another an absolute requirement. My hope is that someone (and by someone, in all honesty I'm talking about my own project [1]) can come along and say to device producers: 1. I understand how hard it is for you to make any IoT device. 2. I'm going to make it substantially cheaper for you to do that, but... 3. The privacy and security I've baked into my system is inseparable from your economic benefit as a device producer. The idea is to evolve that into: 4. You cannot be competitive in the IoT marketplace without privacy and security. At this point, with how completely and totally horrendous the industry has been in these areas so far, I think that's the only viable way we can achieve those goals without a tremendous amount of growing pains. [1] The project is called Hypergolix, and at this point it's basically "Dropbox for Python objects, geared towards IoT, with an emphasis on social, and secured via end-to-end encryption". We're in the process of getting a private alpha shippable, to be followed soon by a public alpha. It all works, and it's all open source, but there's some necessary stuff we need to iron out in the coming weeks. Our outdated landing page is https://hypergolix.com, but a better preview of the developer experience is on our very incomplete docs page: http://pyhgx.readthedocs.io/en/latest/index.html . The whole project is backed by a crypto protocol known as Golix: https://github.com/Muterra/doc-golix
In IoT’s killer app is not home security
Hello! The tl;dr is: IoT is a totally new arena for privacy and security, and existing best practices either don't work well for eg. playing with a Raspberry Pi, or require trusting companies like Facebook with access to your baby monitors. I want to play with my Pi, and I don't particularly like Facebook etc, so I started working on an alternative. Golix is an end-to-end encrypted, open protocol that enforces privacy at something approximating layer 5 (not exactly though... Golix doesn't lend itself to easy comparisons with the modern web). Roughly speaking, it's PGP with key encapsulation totally separate from data encapsulation, and everything statically hash addressed and routed by public key fingerprint instead of IP address. That also makes it really powerful (including, for example, seamless LAN fallback when your internet goes out
Read the rest
). Ideals are great, but privacy is mostly only a secondary market concern. Hypergolix is built on top of Golix, with the goal of presenting a compelling economic argument for using the protocol. Put plainly; IoT development is a pain in the ass, and Hypergolix substantially decreases time to market for developing new applications. In the short term, I'm focusing on the Raspberry Pi, Beaglebone, etc. I'm happy to answer any questions and looking forward to the feedback. If you think the project is worthwhile, please consider contributing to our OpenCollective! Some more information: https://opencollective.com/golix (for monetary support; also backers will have access to a private pre-alpha release) https://github.com/Muterra/doc-golix (protocol documentation; includes a security whitepaper) https://github.com/Muterra/py_golix (protocol implementation) https://hypergolix.com/ (join the mailing list) https://github.com/Muterra/py_hypergolix (full Hypergolix source code)
In Show HN: Hypergolix: effortless, end-to-end encrypted IoT development
Definitely. First a disclaimer: I've held off on creating a dedicated post for this until the code is stable (as in not crashing) enough for other people to play with the demo. That will hopefully happen tomorrow, or possibly Friday. At that point I'll be posting here on HN as well as several subreddits. Until then, I'd request it not be posted on social media, so I can maximize the impact of the potential exposure. + Golix is the name of the protocol: https://github.com/Muterra/doc-golix + Hypergolix is the background service I've written to implement it, which is backed by a PaaS on AWS: https://www.hypergolix.com + This is a demo of Hypergolix: https://github.com/Muterra/py_hypergolix_demos/tree/master/e... Cheers, and thanks for the feedback!
In More awful IoT stuff
I'm sorry, but this is profoundly naive. If the name "Richard Stallman" weren't attached to it, you wouldn't have watched this video. The world doesn't have time for everyone to deploy their own server. I mean, honestly, ask yourself if you even have time to do this, or if it's just yet another project that's going to get piled on top of the Raspberry Pi and Beaglebone Black you have sitting in your projects box. Plus, everyone operating their own server is an indescribably large security catastrophe waiting to happen. IoT is a perfect example of this. Those exact same massive companies opaquely hosting your data struggle with security issues on a daily basis and even they can't always get it right. The answer to data autonomy is end-to-end encryption. Full stop. We need a protocol that gives exact, one-to-any (one-to-none, one-to-one, on
Read the rest
e-to-many) control over sharing. That can be enforced cryptographically. It would be nice if that same protocol also had a consensus algorithm for data deletion, so we could avoid this whole "right to be forgotten" vs "free speech" debate. There is at least one example of such a protocol. I know, because I'm the one developing it [1], and I've been incredibly frustrated at how difficult it's been to build awareness, because my name isn't, for example, Richard Stallman. [1a] https://github.com/Muterra/doc-muse [1b] https://www.youtube.com/watch?v=W3wFU4VIhww [1c] https://www.indiegogo.com/projects/ethyr-modern-encrypted-em...
In Richard Stallman on Data Autonomy [video]
I think taking this sentiment to its conclusion is a bit more of a drastic change than that. It would mean the end of the web, not a return to its beginnings. You wouldn't be dealing with marked-up text, you'd be dealing with binary files (text markup, of course, being a subset thereof). The internet (and whatever emerged on top of it to replace the web) would then be concerned with content, sharing, and identity management only, and applications would be built on top of that.[1] The trick, as you said, is how to securely run untrusted code. That's what the web (well, I suppose more technically, browsers) are trying to solve; the problem is that the same origin policy, which is at the core of web security, just doesn't work very well. There are a lot of examples where this breaks; here are three off the top of my head: 1. Tracking using j
Read the rest
avascript to look for unique browser identifiers 2. XSS, CSRF, etc 3. Legitimate cross-site communication So clearly our existing solution to the "how do you securely execute dynamic, untrusted code" problem isn't cutting it. There's a lot of research (and production code, for the record) going into potentially better approaches though, so I think it's likely we'll see change, if we can get past the inertia behind today's hairball. [1] Incidentally this is exactly the approach we're taking with implementations of the Muse protocol (https://github.com/Muterra/doc-muse), which uses encryption to provide private content/sharing/identity management on untrusted servers.
In PyPy.js – PyPy in Your Browser
This is a really interesting article, and it's nice to see a lengthy discussion of treating sites like Reddit, Facebook, etc as a kind of digital nation-state. But one point in particular bothered me (and perhaps I'm misreading it): > It’s incumbent on anyone creating a new network of any kind not just to avoid using it yourself for criminal purposes, but to design it so that it’s not useful for criminal purposes. Isn't a network, by definition, useful for criminal purposes? Perhaps the author means not more useful for criminal purposes than for legal ones, but what exactly might that mean? And by whose laws are we describing criminality? I also think this argument is tremendously problematic, maybe even self-defeating, in the context of encryption. If we, as the author proposes, were to have a network designed from the beginning to be ca
Read the rest
pable of eventual decentralization [1], doesn't that imply heavy use of cryptography? I can't imagine a digital network where you can create privacy (and therefore agency) any other way. And yet clearly, government entities like the FBI are publicly railing against encryption as a useful tool for terrorists and criminals. Plenty of people, myself included, find this policy debate to be frighteningly under-informed, but if your goal is to avoid government attention to maximize the chances for success, it's not our opinion that matters, it's the FBI's. So I think think this kind of friction is unavoidable, implying the smart money is on people who can cleverly minimize its impact. [1] On a related note, I'm working on exactly this problem, at a protocol level. If you're curious, check out our documentation repo https://github.com/Muterra/doc-muse
In Design of a digital republic
Agreed 100% that this is someone looking for a problem to fit their solution. All you need for decentralized identity is a (collection of) public key(s) that can be referenced and cryptographic enforcement of authenticity+integrity. Although I might be a bit biased, because I'm working on a project that does this.[1] Such an identity system is simple enough that you can layer any naming mechanism on top of it without appreciable extra cost compared to a unified approach, at the advantage of not restricting yourself to a specific naming architecture. By all accounts, a blockchain is a tremendously inappropriate amount of bloat for the purpose of identity authentication. I wouldn't say that naming requires consensus though. Naming requires a degree of trust in the entity declaring the name. Consensus is only one way to arrive at that trust.
Read the rest
And different organizations will have different requirements for trust: for example your bank is going to have very different requirements to "name" your account than, say, Facebook. Informally I've called this the difference between identity authentication vs identity verification, but I know that's not ideal terminology -- does anyone have a better suggestion? [1] https://github.com/Muterra/doc-muse
In Why Decentralized Identity Matters
As a disclaimer, I'm working on a competing(ish) protocol called Muse.[1] Unfortunately the documentation for the federated social projects I'm aware of is always severely lacking (believe me, my own included). It makes some key points very difficult to understand. With that caveat aside, this is what I think I understand about the general system architecture of Diaspora, Hubzilla, and Tent: * Everyone runs their own server. Data on the server is plaintext at rest, but encrypted in transit. * The protocol (only text-based?) governs communications between servers. It describes the kind of things you would expect social websites to need to do: make comments, have profiles, etc. Examples of protocol outputs: Tent[2], Hubzilla[3], Diaspora[4] * Internally, the servers deal with privacy, sharing, etc. Your personal server and their code togeth
Read the rest
er determine what data is acquired, stored, shared, etc. If this mischaracterizes any of the above protocols, I would be really grateful for corrections. It's to everyone's benefit to understand the high-level technical details of these projects. However, the system architecture described above is not, in my mind, a tenable approach to distributable social applications. Simply put, this kind of "private server as my digital avatar" + "protocol so avatars can talk" paradigm completely misses the appropriate choice of abstractions and division of concerns for social applications. First and foremost, this is still yet another example of "privacy by promise". It just so happens that the promise is given to you by the servers of whomever you're sharing with. But then, as data is decrypted at rest, you must also trust their coding ability, their deployment ability, their... this gets very messy, very quickly. The security footprint for implementing these protocols is immense. Secondly, this approach focuses on one specific use case: websites. The vast majority of publicly-networked applications will, at some point, have a need to perform identity, sharing, or content management. However, they may not necessarily have anything to do with text: for example, a distributed sensor network might communicate only using binary messages, but that doesn't make it any less social. Since bytes are the more basic unit, any general-purpose social protocol should therefore support them natively. A much more robust approach is to address the "social protocol" at a much lower level: to provide only the bare minimum that any social application will need, giving transport-layer bytestreams cryptographically-enforced privacy with many-to-many capability. Only then can you escape requiring everyone to operate their own web service, which is, I firmly believe, an unrealistic goal. [1] https://github.com/Muterra/doc-muse [2] https://raw.githubusercontent.com/tent/tent.io/master/source... [3] https://github.com/bartekrutkowski/hubzilla/blob/master/exam... [4] https://wiki.diasporafoundation.org/Federation_protocol_over...
In Hubzilla: Build a community of connected websites

Showing the 15 most recent of 22 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.