summaryrefslogtreecommitdiff
path: root/site/gossamer/mistakes
diff options
context:
space:
mode:
authorOwen Jacobson <owen@grimoire.ca>2022-02-26 13:10:37 -0500
committerOwen Jacobson <owen@grimoire.ca>2022-02-26 13:20:38 -0500
commita4b5716d159cb35f99d5291c1951f140643c0c68 (patch)
tree43cdbab8c1f5e3c9efaf02aeb1e8fa66d683f136 /site/gossamer/mistakes
parenta229af2ef98099d88e85faedfde4d9ee68cd7f8d (diff)
Stop tracking the built site!
Diffstat (limited to 'site/gossamer/mistakes')
-rw-r--r--site/gossamer/mistakes/index.html231
1 files changed, 0 insertions, 231 deletions
diff --git a/site/gossamer/mistakes/index.html b/site/gossamer/mistakes/index.html
deleted file mode 100644
index 7bff282..0000000
--- a/site/gossamer/mistakes/index.html
+++ /dev/null
@@ -1,231 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
-
-
-
- <link rel="shortcut icon" href="../../img/favicon.ico">
- <title>Design Mistakes - The Grimoire</title>
- <link href="../../css/bootstrap-custom.min.css" rel="stylesheet">
- <link href="../../css/font-awesome.min.css" rel="stylesheet">
- <link href="../../css/base.css" rel="stylesheet">
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/github.min.css">
- <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
- <!--[if lt IE 9]>
- <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
- <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
- <![endif]-->
-
- <script src="../../js/jquery-1.10.2.min.js" defer></script>
- <script src="../../js/bootstrap-3.0.3.min.js" defer></script>
- <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
- <script>hljs.initHighlightingOnLoad();</script>
- </head>
-
- <body>
-
- <div class="navbar navbar-default navbar-fixed-top" role="navigation">
- <div class="container">
-
- <!-- Collapsed navigation -->
- <div class="navbar-header">
- <!-- Expander button -->
- <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
- <span class="sr-only">Toggle navigation</span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </button>
- <a class="navbar-brand" href="../..">The Grimoire</a>
- </div>
-
- <!-- Expanded navigation -->
- <div class="navbar-collapse collapse">
- <!-- Main navigation -->
- <ul class="nav navbar-nav">
- <li >
- <a href="../..">Owen Jacobson</a>
- </li>
- <li >
- <a href="../../code/">Code</a>
- </li>
- <li >
- <a href="../../nomic/">Nomic</a>
- </li>
- </ul>
-
- <ul class="nav navbar-nav navbar-right">
- <li>
- <a href="#" data-toggle="modal" data-target="#mkdocs_search_modal">
- <i class="fa fa-search"></i> Search
- </a>
- </li>
- <li>
- <a href="https://github.com/grimoire-ca/bliki/edit/master/docs/gossamer/mistakes.md"><i class="fa fa-github"></i> Edit on GitHub</a>
- </li>
- </ul>
- </div>
- </div>
- </div>
-
- <div class="container">
- <div class="col-md-3"><div class="bs-sidebar hidden-print affix well" role="complementary">
- <ul class="nav bs-sidenav">
- <li class="main active"><a href="#design-mistakes">Design Mistakes</a></li>
- <li><a href="#is-gossamer-up">Is Gossamer Up?</a></li>
- <li><a href="#protected-feeds-who-needs-those">Protected Feeds? Who Needs Those?</a></li>
- <li><a href="#ddos-as-a-service">DDOS As A Service</a></li>
- <li><a href="#passive-nodes-matter">Passive Nodes Matter</a></li>
- <li><a href="#traffic-analysis">Traffic Analysis</a></li>
- </ul>
-</div></div>
- <div class="col-md-9" role="main">
-
-<h1 id="design-mistakes">Design Mistakes<a class="headerlink" href="#design-mistakes" title="Permanent link">&para;</a></h1>
-<h2 id="is-gossamer-up">Is Gossamer Up?<a class="headerlink" href="#is-gossamer-up" title="Permanent link">&para;</a></h2>
-<p><a href="https://twitter.com/megtastique">@megtastique</a> points out that two factors
-doom the whole design:</p>
-<ol>
-<li>
-<p>There's no way to remove content from Gossamer once it's published, and</p>
-</li>
-<li>
-<p>Gossamer can anonymously share images.</p>
-</li>
-</ol>
-<p>Combined, these make Gossamer the <em>perfect</em> vehicle for revenge porn and
-other gendered, sexually-loaded network abuse.</p>
-<p>This alone is enough to doom the design, as written: even restricting the
-size of messages to the single kilobyte range still makes it trivial to
-irrevocably disseminate <em>links</em> to similar content.</p>
-<h2 id="protected-feeds-who-needs-those">Protected Feeds? Who Needs Those?<a class="headerlink" href="#protected-feeds-who-needs-those" title="Permanent link">&para;</a></h2>
-<p>Gossamer's design does not carry forward an important Twitter feature: the
-protected feed. In brief, protected feeds allow people to be choosy about who
-reads their status updates, without necessarily having to pick and choose who
-gets to read them on a message by message basis.</p>
-<p>This is an important privacy control for people who wish to engage with
-people they know without necessarily disclosing their whereabouts and
-activities to the world at large. In particular, it's important to vulnerable
-people because it allows them to create their own safe spaces.</p>
-<p>Protected feeds are not mere technology, either. Protected feeds carry with
-them social expectations: Twitter clients often either refuse to copy text
-from a protected feed, or present a warning when the user tries to copy text,
-which acts as a very cheap and, apparently, quite effective brake on the
-casual re-sharing that Twitter encourages for public feeds.</p>
-<h2 id="ddos-as-a-service">DDOS As A Service<a class="headerlink" href="#ddos-as-a-service" title="Permanent link">&para;</a></h2>
-<p>Gossamer's network protocol converges towards a total graph, where every node
-knows how to connect to every other node, and new information (new posts)
-rapidly push out to every single node.</p>
-<p>If you've ever been privy to the Twitter “firehose” feed, you'll understand
-why this is a drastic mistake. Even a moderately successful social network
-sees on the order of millions of messages a day. Delivering <em>all</em> of this
-directly to <em>every</em> node <em>all</em> of the time would rapidly drown users in
-bandwidth charges and render their internet connections completely unusable.</p>
-<p>Gossamer's design also has no concept of “quiet” periods: every fifteen to
-thirty seconds, rain or shine, every node is supposed to wake up and exchange
-data with some other node, regardless of how long it's been since either node
-in the exchange has seen new data. This very effectively ensures that
-Gossamer will continue to flood nodes with traffic at all times; the only way
-to halt the flood is to shut off the Gossamer client.</p>
-<h2 id="passive-nodes-matter">Passive Nodes Matter<a class="headerlink" href="#passive-nodes-matter" title="Permanent link">&para;</a></h2>
-<p>It's impractical to run an inbound data service on a mobile device. Mobile
-devices are, by and large, not addressable or reachable by the internet at
-large.</p>
-<p>Mobile devices also provide a huge proportion of Twitter's content: the
-ability to rapidly post photos, location tags, and short text while away from
-desks, laptops, and formal internet connections is a huge boon for ad-hoc
-social organization. You can invite someone to the pub from your phone, from
-in front of the pub.</p>
-<p>(This interacts ... poorly with the DDOS point, above.)</p>
-<h2 id="traffic-analysis">Traffic Analysis<a class="headerlink" href="#traffic-analysis" title="Permanent link">&para;</a></h2>
-<p>When a user enters a new status update or sends a new private message, their
-Gossamer node immediately forwards it to at least one other node to inject it
-into the network. This makes unencrypted Gossamer relatively vulnerable to
-traffic analysis for correlating Gossamer identities with human beings.</p>
-<p>Someone at a network “pinch point” -- an ISP, or a coffee shop wifi router --
-can monitor Gossamer traffic entering and exiting nodes on their network and
-easily identify which nodes originated which messages, and thus which nodes
-have access to which identities. This seriously compromises the effectiveness
-of Gossamer's decentralized, self-certifying identities.</p></div>
- </div>
-
- <footer class="col-md-12">
- <hr>
- <p>Documentation built with <a href="https://www.mkdocs.org/">MkDocs</a>.</p>
- </footer>
- <script>
- var base_url = "../..",
- shortcuts = {"help": 191, "next": 78, "previous": 80, "search": 83};
- </script>
- <script src="../../js/base.js" defer></script>
- <script src="../../search/main.js" defer></script>
-
- <div class="modal" id="mkdocs_search_modal" tabindex="-1" role="dialog" aria-labelledby="Search Modal" aria-hidden="true">
- <div class="modal-dialog">
- <div class="modal-content">
- <div class="modal-header">
- <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
- <h4 class="modal-title" id="exampleModalLabel">Search</h4>
- </div>
- <div class="modal-body">
- <p>
- From here you can search these documents. Enter
- your search terms below.
- </p>
- <form role="form">
- <div class="form-group">
- <input type="text" class="form-control" placeholder="Search..." id="mkdocs-search-query" title="Type search term here">
- </div>
- </form>
- <div id="mkdocs-search-results"></div>
- </div>
- <div class="modal-footer">
- </div>
- </div>
- </div>
-</div><div class="modal" id="mkdocs_keyboard_modal" tabindex="-1" role="dialog" aria-labelledby="Keyboard Shortcuts Modal" aria-hidden="true">
- <div class="modal-dialog">
- <div class="modal-content">
- <div class="modal-header">
- <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
- <h4 class="modal-title" id="exampleModalLabel">Keyboard Shortcuts</h4>
- </div>
- <div class="modal-body">
- <table class="table">
- <thead>
- <tr>
- <th style="width: 20%;">Keys</th>
- <th>Action</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td class="help shortcut"><kbd>?</kbd></td>
- <td>Open this help</td>
- </tr>
- <tr>
- <td class="next shortcut"><kbd>n</kbd></td>
- <td>Next page</td>
- </tr>
- <tr>
- <td class="prev shortcut"><kbd>p</kbd></td>
- <td>Previous page</td>
- </tr>
- <tr>
- <td class="search shortcut"><kbd>s</kbd></td>
- <td>Search</td>
- </tr>
- </tbody>
- </table>
- </div>
- <div class="modal-footer">
- </div>
- </div>
- </div>
-</div>
-
- </body>
-</html>