Blog

The latest from Bluesky.

Satellite - A bluesky contest

Dec 13, 2021

by Jay Graber

Our digital identities are like satellites we launch into cyberspace. You may link one to another here and there, but how would you link all of them, systematically, in a way that proves to others they belong to you?

Our Satellite contest asked for submissions that demonstrated how to link accounts and content. $300 in BTC was awarded to the top three, and there was an additional participation prize in the form of a NFT given to others.

Here was the original prompt: Choose at least 3 of the following. Link them in a way that anyone can verify you are the author/owner of all. Explain how you did it, and what properties you were designing for.

  • A Twitter account
  • A Reddit account
  • A website... or two
  • A Matrix account
  • A Mastodon account
  • An SSB account
  • A PGP key
  • A piece of content on IPFS
  • A cryptocurrency address
  • Another decentralized social network
  • Another service/platform of your choosing

We scored submissions on a rubric of: thoroughness, robustness, originality, decentralization. The winners were:

Satellite Top Three

Rank Pseudonym Name
1. Devigny Wes Chow
2. woodpigeon Richard Newman
3. peergos Peergos

Devigny, aka Wes Chow

https://github.com/wesc/devigny-poc

Summary: zk commitments published on different accounts can be published in a proof book to link them together, or left until the prover chooses to reveal them. We like how this allows the association between accounts to be kept private until the prover chooses to reveal them. The solution is well-explained, with a theory section going into how the cryptography works. The tool is implemented with a command-line interface and could be extended to many different types of accounts. It is decentralized, because there is no central site where proofs have to be aggregated or linked to - a proof book can be displayed in any way. And it is certainly an original application of cryptographic primitives.

Woodpigeon, aka Richard Newman

https://github.com/rnewman/scua

Summary: A browser extension to track claims of account ownership through association with ION DIDs. Rather than presenting a theoretical explanation of how to use DIDs, which is where many ideas for their usage ends, this picks an implementation and sees it through. I liked the attention to user experience, the practical implementation of an existing decentralized id standard, and the thorough reasoning and explanation. It doesn’t present a novel attestation protocol, but it pulls pieces together in a cohesive and unique way.

Peergos

*long peergos link, because object capabilities*

Summary: Peergos took the prompt as inspiration to integrate an identity linking protocol into their existing system. It builds upon prior work put into Peergos for a decentralized and encrypted way of controlling access to files with user keys and, by doing so, allows proofs to be both public and private. This was a fairly robust solution that deserved to be highlighted for its robustness, decentralization, and additional feature of optional privacy.

Honorable Mentions:

Lucas Meier, Andy Raddatz, IndieWeb solutions, Gershon Ballas

Lucas Meier

https://cronokirby.com/posts/2021/09/bluesky_satelllite/

Lukas submitted a solution on the first day of the contest that is simple but captures the gist of a cryptographic attestation-based linking method. I appreciated how quickly he put this together.

Stretch, aka Andy Raddatz

https://gist.github.com/andyraddatz/6f90c1c567d072d33ec4c530daf528d6

Stretch’s solution had an interesting application of BLS signatures. A BLS keypair is published with each site, so an association between all sites is proven by aggregating the public keys and checking the aggregate signature. There is no single keypair that controls all accounts.

Indieweb solutions: Ryan Barrett, Barack Sokullu

https://snarfed.org/bluesky-satellite-contest-entry

sokullu-satellite.pdf

Several people submitted well-written IndieWeb solutions. They weren't as original and decentralized as the winning submissions that had implementations that did not require platform-level support, but they described a simple and straightforward way to link identities across the web. Ryan Barrett has a good writeup of how the IndieWeb syntax of “rel-me” bidirectional links can be used to link websites. Barack Sokullu wrote an explanation as well as designed mockups of how “rel-me” links could be taken a step further by linking to DIDs, which would provide keypairs that could be used to sign content.

ggballas, aka Gershon Ballas

https://github.com/ggballas/satlink

Gershon implemented a smart contract in Solidity to prove ownership of different accounts/content. This is one of the few that pointed out how to show "ownership" of an IPFS hash, through an NFT held by an address.