<rss
      xmlns:atom="http://www.w3.org/2005/Atom"
      xmlns:media="http://search.yahoo.com/mrss/"
      xmlns:content="http://purl.org/rss/1.0/modules/content/"
      xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
      xmlns:dc="http://purl.org/dc/elements/1.1/"
      version="2.0"
    >
      <channel>
        <title><![CDATA[Why Nostr?]]></title>
        <description><![CDATA[A curation of posts explaining why Nostr matters. Learn more at https://nostr.how]]></description>
        <link>https://www.whynostr.org/tag/relays/</link>
        <atom:link href="https://www.whynostr.org/tag/relays/rss/" rel="self" type="application/rss+xml"/>
        <itunes:new-feed-url>https://www.whynostr.org/tag/relays/rss/</itunes:new-feed-url>
        <itunes:author><![CDATA[brugeman]]></itunes:author>
        <itunes:subtitle><![CDATA[A curation of posts explaining why Nostr matters. Learn more at https://nostr.how]]></itunes:subtitle>
        <itunes:type>episodic</itunes:type>
        <itunes:owner>
          <itunes:name><![CDATA[brugeman]]></itunes:name>
          <itunes:email><![CDATA[brugeman]]></itunes:email>
        </itunes:owner>
            
      <pubDate>Mon, 09 Sep 2024 20:27:30 GMT</pubDate>
      <lastBuildDate>Mon, 09 Sep 2024 20:27:30 GMT</lastBuildDate>
      
      <itunes:image href="https://i.nostr.build/wJoQLMG5fd5yvVAk.png" />
      <image>
        <title><![CDATA[Why Nostr?]]></title>
        <link>https://www.whynostr.org/tag/relays/</link>
        <url>https://i.nostr.build/wJoQLMG5fd5yvVAk.png</url>
      </image>
      <item>
      <title><![CDATA[NOSTR basic concepts for new users]]></title>
      <description><![CDATA[A guide for new users to NOSTR]]></description>
             <itunes:subtitle><![CDATA[A guide for new users to NOSTR]]></itunes:subtitle>
      <pubDate>Mon, 09 Sep 2024 20:27:30 GMT</pubDate>
      <link>https://www.whynostr.org/post/1725913455892/</link>
      <comments>https://www.whynostr.org/post/1725913455892/</comments>
      <guid isPermaLink="false">naddr1qqxnzdejx5unzve5x56nswfjqgswswmx4rkj6d7q05dtafhpkqq2z42fc62s37jvtp642m2jkpfxc2crqsqqqa280mh22n</guid>
      <category>Nostr</category>
      
      <noteId>naddr1qqxnzdejx5unzve5x56nswfjqgswswmx4rkj6d7q05dtafhpkqq2z42fc62s37jvtp642m2jkpfxc2crqsqqqa280mh22n</noteId>
      <npub>npub1aqakd28d95muqlg6h6nwrvqq5925n354prayckr424k49vzjds4s0c237n</npub>
      <dc:creator><![CDATA[mike]]></dc:creator>
      <content:encoded><![CDATA[<p>First,</p>
<p>Key management.</p>
<p>When you “created” your NOSTR account, what you actually created was a cryptographic key pair.<br>This consists of a private key, which starts “nsec” and a public key which starts with “npub”.</p>
<p>As the names suggest, your “nsec” key is private and you should never reveal it to anyone.<br>Your “npub” key is your public key, feel free to share that everywhere.</p>
<p>Your “npub” key is used by others to verify your identity, through the signature added to your messages.<br>It is also used by others to encrypt private messages to you.</p>
<p>We don’t have perfect key management yet and because of the limitation of smart phones and various eco systems, it often becomes necessary for you to copy and paste your private key into apps in order to use them. This is less than ideal, but until we have ubiquitous cross platform key management devices, this situation will remain necessary.</p>
<p>For the moment, consider using software key management options, some of which are listed under “signers” here:<br><np-embed url="https://nostrapps.com/"><a href="https://nostrapps.com/">https://nostrapps.com/</a></np-embed></p>
<p>N.B. We do have projects like Seedsigner that provide more secure hardware key management, but this isn’t for the faint hearted:</p>
<p>Secondly,</p>
<p>Lightning wallets.</p>
<p>It is common for most people to link a Bitcoin Lightning wallet to their NOSTR profile</p>
<p>N.B. Your profile is stored on relays and signed by your private key, which is verified by others through your public key.</p>
<p>You are not tied to any specific wallet for sending payments (called zaps), but you do provide a specific incoming LN address for receiving payments. This could be something like a wallet of Satoshi Address i.e. “<a href="mailto:randomname@walletofsatoshi.com">randomname@walletofsatoshi.com</a>” or could you be your own node with a connection to it via “Nostr Wallet Connect” a free plugin that connects a lightning wallet.</p>
<p>Enabling this allows people to “zap” any posts or content or even send you payments directly at any time or for any reason. N.B. It is called freedom money for a reason….</p>
<p>It also allows you to send small micropayments to posts or people you like.</p>
<p>Thirdly,</p>
<p>Paid Services</p>
<p>As you go deeper into the NOSTR ecosystem, you’ll notice there is no advertising being pushed at you and there are no algorithms manipulating the content you receive. This is because there is no company behind NOSTR, it is a protocol. Because of this, while all the ecosystem is free to use and will remain so for the foreseeable future, most of it is run by enthusiastic volunteers or developers and incurs a cost to them. For that reason many of us choose to support these <a href='/tag/devs/'>#devs</a> by paying for services. This can also enhance our experience, giving our “npub” greater reach and discoverability.</p>
<p>I, for example choose to pay for the following services:</p>
<p><np-embed url="https://nostr.wine/"><a href="https://nostr.wine/">https://nostr.wine/</a></np-embed> - 120,000 Sats for 2 years relay<br><np-embed url="https://relay.tools/"><a href="https://relay.tools/">https://relay.tools/</a></np-embed> - My own relay - <np-embed url="https://nortis.nostr1.com/"><a href="https://nortis.nostr1.com/">https://nortis.nostr1.com/</a></np-embed> 12,000 Sats a month<br><np-embed url="https://nostr.build/"><a href="https://nostr.build/">https://nostr.build/</a></np-embed> - Media storage - 69,000 Sats for 1 year</p>
<p>Total: 22,750 Sats per month<br>Approx $15 per month</p>
<p>This is not strictly necessary, but I decided to support the various developers behind these projects.</p>
<p>Do not feel any pressure at this early stage to pay for any service, but if you enjoy the freedom NOSTR brings, you may want to consider supporting the projects that become important to you going forward.</p>
]]></content:encoded>
      <itunes:author><![CDATA[mike]]></itunes:author>
      <itunes:summary><![CDATA[<p>First,</p>
<p>Key management.</p>
<p>When you “created” your NOSTR account, what you actually created was a cryptographic key pair.<br>This consists of a private key, which starts “nsec” and a public key which starts with “npub”.</p>
<p>As the names suggest, your “nsec” key is private and you should never reveal it to anyone.<br>Your “npub” key is your public key, feel free to share that everywhere.</p>
<p>Your “npub” key is used by others to verify your identity, through the signature added to your messages.<br>It is also used by others to encrypt private messages to you.</p>
<p>We don’t have perfect key management yet and because of the limitation of smart phones and various eco systems, it often becomes necessary for you to copy and paste your private key into apps in order to use them. This is less than ideal, but until we have ubiquitous cross platform key management devices, this situation will remain necessary.</p>
<p>For the moment, consider using software key management options, some of which are listed under “signers” here:<br><np-embed url="https://nostrapps.com/"><a href="https://nostrapps.com/">https://nostrapps.com/</a></np-embed></p>
<p>N.B. We do have projects like Seedsigner that provide more secure hardware key management, but this isn’t for the faint hearted:</p>
<p>Secondly,</p>
<p>Lightning wallets.</p>
<p>It is common for most people to link a Bitcoin Lightning wallet to their NOSTR profile</p>
<p>N.B. Your profile is stored on relays and signed by your private key, which is verified by others through your public key.</p>
<p>You are not tied to any specific wallet for sending payments (called zaps), but you do provide a specific incoming LN address for receiving payments. This could be something like a wallet of Satoshi Address i.e. “<a href="mailto:randomname@walletofsatoshi.com">randomname@walletofsatoshi.com</a>” or could you be your own node with a connection to it via “Nostr Wallet Connect” a free plugin that connects a lightning wallet.</p>
<p>Enabling this allows people to “zap” any posts or content or even send you payments directly at any time or for any reason. N.B. It is called freedom money for a reason….</p>
<p>It also allows you to send small micropayments to posts or people you like.</p>
<p>Thirdly,</p>
<p>Paid Services</p>
<p>As you go deeper into the NOSTR ecosystem, you’ll notice there is no advertising being pushed at you and there are no algorithms manipulating the content you receive. This is because there is no company behind NOSTR, it is a protocol. Because of this, while all the ecosystem is free to use and will remain so for the foreseeable future, most of it is run by enthusiastic volunteers or developers and incurs a cost to them. For that reason many of us choose to support these <a href='/tag/devs/'>#devs</a> by paying for services. This can also enhance our experience, giving our “npub” greater reach and discoverability.</p>
<p>I, for example choose to pay for the following services:</p>
<p><np-embed url="https://nostr.wine/"><a href="https://nostr.wine/">https://nostr.wine/</a></np-embed> - 120,000 Sats for 2 years relay<br><np-embed url="https://relay.tools/"><a href="https://relay.tools/">https://relay.tools/</a></np-embed> - My own relay - <np-embed url="https://nortis.nostr1.com/"><a href="https://nortis.nostr1.com/">https://nortis.nostr1.com/</a></np-embed> 12,000 Sats a month<br><np-embed url="https://nostr.build/"><a href="https://nostr.build/">https://nostr.build/</a></np-embed> - Media storage - 69,000 Sats for 1 year</p>
<p>Total: 22,750 Sats per month<br>Approx $15 per month</p>
<p>This is not strictly necessary, but I decided to support the various developers behind these projects.</p>
<p>Do not feel any pressure at this early stage to pay for any service, but if you enjoy the freedom NOSTR brings, you may want to consider supporting the projects that become important to you going forward.</p>
]]></itunes:summary>
      
      </item>
      
      <item>
      <title><![CDATA[What is the Outbox Model?]]></title>
      <description><![CDATA[An explainer on the Outbox Model, including what it is, where it came from, and why it's integral to making nostr work.]]></description>
             <itunes:subtitle><![CDATA[An explainer on the Outbox Model, including what it is, where it came from, and why it's integral to making nostr work.]]></itunes:subtitle>
      <pubDate>Thu, 29 Aug 2024 00:50:27 GMT</pubDate>
      <link>https://www.whynostr.org/post/8yjqxm4sky-tauwjoflxs/</link>
      <comments>https://www.whynostr.org/post/8yjqxm4sky-tauwjoflxs/</comments>
      <guid isPermaLink="false">naddr1qq2nskt2w9vx6dznfdvj64rpw4mk5nmxf3v9xq3qjlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qxpqqqp65wzfj8s4</guid>
      <category>Nostr</category>
      
        <media:content url="https://yakihonne.s3.ap-east-1.amazonaws.com/97c70a44366a6535c145b333f973ea86dfdc2d7a99da618c40c64705ad98e322/files/1724892627307-YAKIHONNES3.jpg" medium="image"/>
        <enclosure 
          url="https://yakihonne.s3.ap-east-1.amazonaws.com/97c70a44366a6535c145b333f973ea86dfdc2d7a99da618c40c64705ad98e322/files/1724892627307-YAKIHONNES3.jpg" length="0" 
          type="image/jpeg" 
        />
      <noteId>naddr1qq2nskt2w9vx6dznfdvj64rpw4mk5nmxf3v9xq3qjlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qxpqqqp65wzfj8s4</noteId>
      <npub>npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn</npub>
      <dc:creator><![CDATA[ hodlbod]]></dc:creator>
      <content:encoded><![CDATA[<p>Nostr is a mess. It always has been and will always be. That's part of the appeal! But it's important that users be able to navigate the rolling seas of this highly partition-tolerant network of kaleidoscopically-interwoven people, bots, topics, relays, clients, events, recommendations, lists, feeds, micro-apps, macro-apps, Chinese spam, and "GM"s.</p>
<p>In order to do this, users must be able to articulate "what" they are looking for, and clients must be able to articulate "how" to find that thing. This "how" is divided into two parts: building a request that will match the desired content (very easy), and selecting a relay that is able to serve that content to the user requesting it (very very hard).</p>
<h1>Why guessing isn't good enough</h1>
<p>As a concrete example, let's say the user wants to find everyone in their "network" who is using a particular topic. The process would look something like this:</p>
<ol>
<li>The user clicks the "network" tab and types in the topic they want to browse. This is the "what".</li>
<li>The client then translates the term "network" to a list of public keys using whatever definition they prefer (Follows? WoT? Grapevine?), and builds a filter that might look something like this: <code>[{"authors": pubkeys, "#t": ["mytopic"]}]</code>. Any relay will happily accept, understand, and respond to that filter.</li>
<li>The client then has to decide which relays it should send that filter to. This is the <code>???</code> stage of the outbox model, which immediately precedes:</li>
<li>Profit</li>
</ol>
<p>It may not be immediately obvious why selecting the correct relays might be difficult. Most people post to relay.damus.io, and most people read from relay.damus.io, so in most cases you should be good, right?</p>
<p>This approach to relay selection has historically worked "well enough", but it depends on a flawed definition of success. If you only want to find 90% of the content that matches your query, using the top 10 relays will suffice. But nostr is intended to be censorship-resistant. What if those 10 hubs have banned a particular public key? Nostr clients should (at least in theory) be 100% successful in retrieving requested content. Even if someone only posts to their self-hosted relay, you should be able to find their notes if their account is set up properly.</p>
<h1>A naive solution to fixing the FOMO</h1>
<p>A 90% hit rate results in a feeling of flakiness, even if users aren't completely aware of what isn't working. Feeds will be incomplete, quoted notes will be missing, replies will be orphaned, user profiles won't load. The natural response to the FOMO this creates is for users to "try harder" by adding more relays.</p>
<p>On the read side, this means clients open more connections, resulting in much higher data transfer requirements, with massively diminishing returns, since there's no reason to expect that a randomly chosen relay will have a substantially different data set.</p>
<p>One the publish side, this means that clients end up publishing more copies of their data to more relays. This approach has been automated in the past by services like Blastr, which don't store a copy of events published to the relay, but instead forward events to the top 300 relays in the network. This results in a two-orders-of-magnitude increase in storage required, and only makes the read side of the problem worse, since it reduces the uniqueness of the data set each relay stores. This in turn means that more duplicates are retrieved when querying relays.</p>
<p>Both halves of this approach are equivalent to guessing. On the read side, users are guessing which relays will have any arbitrary content they might ask for in the future. On the write side, users are guessing which relays other people might use to find their notes. It is a brute-force method for finding content.</p>
<h1>Randomness results in centralization</h1>
<p>In theory, random relay selection would result in a perfect distribution of content across all relays in the network. But in practice, this method of selection isn't random at all, but is strongly influenced by user bias in what constitutes a "good" relay. While some users may check <a href="https://nostr.watch">nostr.watch</a> for ping times, geographical proximity, or uptime, most will choose relays based on familiar names or other people's recommendations.</p>
<p>In either case, these biases are entirely orthogonal to achieving a higher content retrieval hit rate, <em>except when bias in relay selection results in clustering</em> — i.e., centralization. In other words, the kind of randomness exhibited by users when selecting relays actually results in pretty much everyone picking the same few relays. We see this same effect when people try to come up with passwords or seed phrases — human-provided randomness is anything but random.</p>
<p>Clustering improves the hit rate when requesting events (slightly), but it results in nearly as much centralization as if only a single relay was used —&nbsp;and a lot more duplicate events.</p>
<h1>Something (anything) other than randomness</h1>
<p>In early 2023, Mike Dilger <a href="https://github.com/nostr-protocol/nips/pull/218">introduced NIP 65</a> (now known as the "Outbox Model") with a problem statement in the spirit of the original description of nostr: "Nostr should scale better. People should be able to find what they want."</p>
<p><em>Historical note: NIP 65 was formerly known as the "Gossip Model", derived from the name of Mike's <a href="https://github.com/mikedilger/gossip">desktop nostr client</a>, called "Gossip". This unfortunately created a lot of confusion, since <a href="https://en.wikipedia.org/wiki/Gossip_protocol">gossip protocols</a> work very differently from how nostr tends to work, hence the re-brand.</em></p>
<p>Before NIP 65, an informal standard existed in which <code>kind 3</code> user contact lists also included a list of relays that clients could use as something similar to Mastodon's "home servers". This list included the option to only read or write from a given relay. Unfortunately, it wasn't really clear what the semantics of this relay list were, so different clients handled them differently (and many clients ignored them). Usually this amounted to user-provided static relay configurations, which resulted in the naive relay selection approach described above.</p>
<p>NIP 65 used a very similar format (a list of relay urls with optional "read" or "write" directives), but with a very important semantic difference: relays listed in a user's <code>kind 10002</code> were intended to "advertise to others, not for configuring one's client." In other words, these relay selections were intended as a signal to other users that they should use certain relays when attempting to communicate with the author of the relay list.</p>
<p>I highly recommend reading the <a href="https://github.com/nostr-protocol/nips/blob/master/65.md">entire NIP</a>, which is very short and easy to read. But the mechanics of the spec are very simple:</p>
<blockquote>
<p>When seeking events&nbsp;<strong>from</strong>&nbsp;a user, Clients SHOULD use the WRITE relays of the user's&nbsp;<code>kind:10002</code>.</p>
<p>When seeking events&nbsp;<strong>about</strong>&nbsp;a user, where the user was tagged, Clients SHOULD use the READ relays of the user's&nbsp;<code>kind:10002</code>.</p>
<p>When broadcasting an event, Clients SHOULD:</p>
<ul>
<li>Broadcast the event to the WRITE relays of the author</li>
<li>Broadcast the event to all READ relays of each tagged user</li>
</ul>
</blockquote>
<p>For the first time, we had a way to differentiate relays in terms of <em>what content could be found where</em>.</p>
<p>When looking for a note by a particular user, a client could now look up the author's <code>write</code> relays according to their <code>kind 10002</code> event, and send its query there. The result is a much higher hit rate with much lower data transfer requirements, and fewer connections per query.</p>
<h1>Making Outbox Work</h1>
<p>There are of course some assumptions required to make this work. </p>
<p>First, the user must know which author they're looking for. This isn't always true when looking up a quote or parent note, but context and <a href="https://github.com/nostr-protocol/nips/pull/1171">pubkey hints</a> solve this difficulty in most cases.</p>
<p>The author must also publish a <code>kind 10002</code> event. This may not always be the case, but clients should prompt users to set up their relay list correctly. This isn't really a flaw in the Outbox Model, just in implementations of it.</p>
<p>Additionally, the user's client must be able to find the author's <code>kind 10002</code> event. This is the "bootstrapping" phase of the Outbox Model, during which the mechanisms the system provides for finding events aren't available. This requires us to fall back to randomly guessing which relays have the content we're looking for, which as we saw above doesn't work very well.</p>
<p>Other than guessing, there are a few different ways a client might find the relay selection event in question, each of which is applicable in different circumstances. In most cases, using one of a handful of indexer relays like <a href="wss://purplepag.es">purplepag.es</a> or <a href="wss://relay.nostr.band">relay.nostr.band</a> is a simple and efficient way to find user profiles and relay selections.</p>
<p>However, if an author's content has been aggressively purged from these indexers due to censorship, they obviously can't be relied upon. Even though the author in question hasn't been deplatformed from nostr itself (since he can always self-host a publicly accessible relay to store his content), he has been effectively shadow-banned.</p>
<p>To get around this, relay selections have to be communicated in some other way. Nostr has a few different mechanisms for this:</p>
<ul>
<li>If the author's NIP 05 address is known and properly configured (it may not be), clients can look up the author's NIP 05 endpoint to find some reasonable relay hints. Unfortunately, these are often neglected, and usually custodial, so they can run into the same problems.</li>
<li>If the author's pubkey is found in another signed event found on nostr, <a href="https://github.com/nostr-protocol/nips/blob/fade0164f52033314bf0a5ef9bd63c2483afae9b/10.md#marked-e-tags-preferred">relay hints</a> can be a way to propagate relay selections through the network. This relies on implementations picking reliable relay hints which can be difficult, and hints do tend to become less reliable over time. However, this strategy is very effective in resisting censorship because it makes banning viral — if a relay wants to completely purge a particular pubkey from their database, they have to purge every event that references it, since events are tamper-proof.</li>
<li>In extremis, relay recommendations can always be communicated out-of-band. This can be done using manual input, QR codes, DHTs, jsonl torrents full of <code>kind 10002</code> events, or any other mechanism client developers choose to resort to.</li>
</ul>
<p>Another, more technical assumption is that any given query can be fulfilled by few enough relays that a client can actually make all the connections needed, without running into resource limits. If you're trying to request content from 10,000 users across 1,000 relays, you're going to have a bad time. This was <a href="https://coracle.social/nevent1qythwumn8ghj76twvfhhstnwdaehgu3wwa5kuef0qyv8wumn8ghj7cm9d3kxzu3wdehhxarj9emkjmn99uq3samnwvaz7tmrwfjkzarj9ehx7um5wgh8w6twv5hsqgrn7l6zj7ht6ruyk76vvvtkfs4xrhyzc3tm64l3eyfvd40y26sz0gshmunh">pointed out</a> to me by Mazin of <a href="https://nostr.wine">nostr.wine</a>. He makes a good point, and it's definitely something to keep in mind. There are some mitigating factors though.</p>
<p>The first is that the current topology of the network probably won't persist forever. Because nostr is largely populated by self-hosting enthusiasts, the number of "tiny" relays is proportionally much higher than it will be if adoption picks up, even if the total number of relays grows. The trajectory is that nostr will drift toward fewer, larger relays, reducing the number of connections needed to fulfill any given query.</p>
<p>This is "centralizing", but it's important to understand that this isn't necessarily a bad thing. As long as there are more than one or two large hubs, there is user choice. And as long as it's possible to run a new relay, there is always an escape hatch. Nostr, like bitcoin, has no hard dependency on the biggest player in the network.</p>
<p>The other thing to consider is that there are lots of other techniques we can use to overcome the limits of the lowest-common denominator's limitations (mobile browser clients), including self hosted or third-party relay proxies. The trade-off here is that a little trust (aka centralization) can go a long way to reducing resource requirements needed to fulfill queries using the Outbox model.</p>
<p>If you're interested in more details on this topic, see <a href="https://habla.news/u/hodlbod@coracle.social/sfwV1rNaoQXd65PbIMYgm">this blog post</a>.</p>
<p>That was a long digression, but there is one other thing that the Outbox model assumes to be the case. Even if the correct relays are found and connected to, they still may not return all desired content, either because they don't have it, or because they refuse to return it to the user requesting it.</p>
<p>This can happen if the publishing client isn't following the Outbox Model, if the author had migrated from one relay set to another without copying their notes over, or if the relay in question chose not to retain the author's content for some reason.</p>
<p>The first two issues can be fixed by improving implementations, but the question of policy is a little more interesting.</p>
<h1>Relativistic relays</h1>
<p>The Outbox Model is a mechanical process; it's only as useful as user relay selections are. In order for it to work, users have to be able to make intelligent relay selections.</p>
<p>Every relay has trade-offs, depending on its policy. <a href="wss://140.f7z.io">140.f7z.io</a> would not be useful for long-form content, for example. Some relays might have a content retention policy that changes depending on whether you're a paying user. If you don't pay, you might find out too late that your content has been deleted from the relay.</p>
<p>So what makes a relay "good" for a particular use case? Well, it's complicated. Here are a few factors that go into that calculus:</p>
<ul>
<li>Is the relay in the same geographical as the user? Proximity reduces latency, but jurisdictional arbitrage might be desired. Users should probably have a variety of relays that fit different profiles.</li>
<li>Will the relay ban the user? Do the operators have a history of good behavior? Is the relay focused on particular types of content? Is the relay's focus consistent with the user's goal in adding that relay to their list?</li>
<li>What are the relay's retention policies? A user might want to set up an archival relay for her old content, or a multi-availability-zone relay so her notes are immediately accessible to the rest of the network.</li>
<li>Does the relay require payment? Paid relays are more aligned with their users, but obviously come at a financial cost.</li>
<li>Does the relay have policies for read-protecting content? If so, other users might not be able to find your posts published to that relay. On the other hand, some relays are configured to work as inboxes for direct messages, which can help preserve privacy.</li>
<li>Does the relay request that users authenticate? Authentication can help manage spam, but it also allows relays to correlate content requests with users, reducing user privacy.</li>
<li>Is the relay you use hosted by your client's developer? If so, you're in danger of getting banned from your client and your relay at the same time.</li>
<li>Is the relay a hub? Using hubs can help smooth out rough areas in Outbox Model implementations, at the cost of centralization.</li>
<li>Is the relay used by anyone else? One-off relays can be useful for archival purposes, but often won't be used by clients following the Outbox Model, depending on how they optimize requests.</li>
</ul>
<p>There are lots of ways to approach the problem of helping users select relays, but it's an inherently complex problem which very few people will have the patience to properly address on their own. Relay selection is a multi-dimensional problem, and requires satisfying multiple constraints with a limited number of relay selections.</p>
<p>In the future, special-purpose clients might be used to help people build relay sets. Clients also might provide curated "relay kits" that users can choose and customize. Or, we might see an increase in hybrid solutions, like smarter relay proxies or client-local relays that synchronize using other protocols or platforms.</p>
<h1>The Limitations of Outbox</h1>
<p>Outbox is not a complete solution, not because of any of the caveats listed above, but because NIP 65 per se only addresses the question of how to index content by pubkey in a broadcast social media context. But there are many other scenarios for relay selection that Outbox does not solve:</p>
<ul>
<li>Community, chat, and group posts might be best posted to relays dedicated to that context.</li>
<li>Direct messages shouldn't follow the same contours as public social media content.</li>
<li>Topic-oriented relays, or relays serving a custom feed might be useful independent of who uses them.</li>
<li>Relays focused on serving a particular kind of event, like music, long-form content, or relay selections, are useful independent of who reads from or writes to them.</li>
<li>Certain clients might need to fulfill particular use cases by using relays that support certain protocol features, like search, count, or sync commands.</li>
<li>Some events might not make sense to publish to relays, but should instead be shared only directly, out of band.</li>
</ul>
<p>Some of these use cases might be solved by new specifications similar to Outbox that prescribe where certain data belongs&nbsp;— for example, <a href="https://github.com/nostr-protocol/nips/blob/master/17.md">NIP 17</a> requires users to publish a different relay list before they can receive direct messages, while <a href="https://github.com/nostr-protocol/nips/blob/master/72.md">NIP 72</a> places community relay recommendations directly into the group's metadata object. A reasonably complete list of different relay types can be found in <a href="https://github.com/nostr-protocol/nips/issues/1282">this PR</a>, very few of which have a canonical way to manage selections.</p>
<p>Other use cases might be supported more informally, either by relays advertising their own value proposition, or via third-party <a href="https://github.com/nostr-protocol/nips/pull/230">NIP 66</a> metadata. Still others might be supported by scoping the network down to only certain relays through explicit relay selection — this is how white-labeled <a href="https://coracle.tools/">Coracle instances</a> work.</p>
<p>The basic idea here is that there are categories of events that don't have anything to do with where a particular person puts his or her "tweets". For every "what" on nostr, there should be a "how".</p>
<h1>Keep nostr weird</h1>
<p>Whatever additional systems we end up adopting for helping with relay selection, one thing is certain — people will continue to discover new, creative uses for relays, and we will always be playing catch up. This is one of the coolest things about nostr!</p>
<p>But it does mean that users will have to adapt their expectations to a network that partitions, re-configures, and evolves over time. Nostr is not a "worse" experience than legacy social media, but it is a version of social media that has itself been set free from the stagnant walled-garden model. Nostr is in many ways a living organism — we should be careful not to impose our expectations prematurely, leaving room to discover what this thing actually is, or can be.</p>
<p>If you enjoyed this post but want more take a look at the talk I gave at <a href="https://www.youtube.com/live/Nz15SyiwQFk?t=2751s">Nostrasia</a> last year. I also wrote up a <a href="https://habla.news/u/hodlbod@coracle.social/1700155417145">blog post</a> at about the same time that addresses some of the same issues, but focuses more on privacy concerns around relays and nostr groups. Finally, I recently wrote <a href="https://github.com/nostrability/nostrability/issues/69#issuecomment-2310524841">this comment</a>, which includes some details about challenges I've faced putting Outbox into Coracle.</p>
]]></content:encoded>
      <itunes:author><![CDATA[ hodlbod]]></itunes:author>
      <itunes:summary><![CDATA[<p>Nostr is a mess. It always has been and will always be. That's part of the appeal! But it's important that users be able to navigate the rolling seas of this highly partition-tolerant network of kaleidoscopically-interwoven people, bots, topics, relays, clients, events, recommendations, lists, feeds, micro-apps, macro-apps, Chinese spam, and "GM"s.</p>
<p>In order to do this, users must be able to articulate "what" they are looking for, and clients must be able to articulate "how" to find that thing. This "how" is divided into two parts: building a request that will match the desired content (very easy), and selecting a relay that is able to serve that content to the user requesting it (very very hard).</p>
<h1>Why guessing isn't good enough</h1>
<p>As a concrete example, let's say the user wants to find everyone in their "network" who is using a particular topic. The process would look something like this:</p>
<ol>
<li>The user clicks the "network" tab and types in the topic they want to browse. This is the "what".</li>
<li>The client then translates the term "network" to a list of public keys using whatever definition they prefer (Follows? WoT? Grapevine?), and builds a filter that might look something like this: <code>[{"authors": pubkeys, "#t": ["mytopic"]}]</code>. Any relay will happily accept, understand, and respond to that filter.</li>
<li>The client then has to decide which relays it should send that filter to. This is the <code>???</code> stage of the outbox model, which immediately precedes:</li>
<li>Profit</li>
</ol>
<p>It may not be immediately obvious why selecting the correct relays might be difficult. Most people post to relay.damus.io, and most people read from relay.damus.io, so in most cases you should be good, right?</p>
<p>This approach to relay selection has historically worked "well enough", but it depends on a flawed definition of success. If you only want to find 90% of the content that matches your query, using the top 10 relays will suffice. But nostr is intended to be censorship-resistant. What if those 10 hubs have banned a particular public key? Nostr clients should (at least in theory) be 100% successful in retrieving requested content. Even if someone only posts to their self-hosted relay, you should be able to find their notes if their account is set up properly.</p>
<h1>A naive solution to fixing the FOMO</h1>
<p>A 90% hit rate results in a feeling of flakiness, even if users aren't completely aware of what isn't working. Feeds will be incomplete, quoted notes will be missing, replies will be orphaned, user profiles won't load. The natural response to the FOMO this creates is for users to "try harder" by adding more relays.</p>
<p>On the read side, this means clients open more connections, resulting in much higher data transfer requirements, with massively diminishing returns, since there's no reason to expect that a randomly chosen relay will have a substantially different data set.</p>
<p>One the publish side, this means that clients end up publishing more copies of their data to more relays. This approach has been automated in the past by services like Blastr, which don't store a copy of events published to the relay, but instead forward events to the top 300 relays in the network. This results in a two-orders-of-magnitude increase in storage required, and only makes the read side of the problem worse, since it reduces the uniqueness of the data set each relay stores. This in turn means that more duplicates are retrieved when querying relays.</p>
<p>Both halves of this approach are equivalent to guessing. On the read side, users are guessing which relays will have any arbitrary content they might ask for in the future. On the write side, users are guessing which relays other people might use to find their notes. It is a brute-force method for finding content.</p>
<h1>Randomness results in centralization</h1>
<p>In theory, random relay selection would result in a perfect distribution of content across all relays in the network. But in practice, this method of selection isn't random at all, but is strongly influenced by user bias in what constitutes a "good" relay. While some users may check <a href="https://nostr.watch">nostr.watch</a> for ping times, geographical proximity, or uptime, most will choose relays based on familiar names or other people's recommendations.</p>
<p>In either case, these biases are entirely orthogonal to achieving a higher content retrieval hit rate, <em>except when bias in relay selection results in clustering</em> — i.e., centralization. In other words, the kind of randomness exhibited by users when selecting relays actually results in pretty much everyone picking the same few relays. We see this same effect when people try to come up with passwords or seed phrases — human-provided randomness is anything but random.</p>
<p>Clustering improves the hit rate when requesting events (slightly), but it results in nearly as much centralization as if only a single relay was used —&nbsp;and a lot more duplicate events.</p>
<h1>Something (anything) other than randomness</h1>
<p>In early 2023, Mike Dilger <a href="https://github.com/nostr-protocol/nips/pull/218">introduced NIP 65</a> (now known as the "Outbox Model") with a problem statement in the spirit of the original description of nostr: "Nostr should scale better. People should be able to find what they want."</p>
<p><em>Historical note: NIP 65 was formerly known as the "Gossip Model", derived from the name of Mike's <a href="https://github.com/mikedilger/gossip">desktop nostr client</a>, called "Gossip". This unfortunately created a lot of confusion, since <a href="https://en.wikipedia.org/wiki/Gossip_protocol">gossip protocols</a> work very differently from how nostr tends to work, hence the re-brand.</em></p>
<p>Before NIP 65, an informal standard existed in which <code>kind 3</code> user contact lists also included a list of relays that clients could use as something similar to Mastodon's "home servers". This list included the option to only read or write from a given relay. Unfortunately, it wasn't really clear what the semantics of this relay list were, so different clients handled them differently (and many clients ignored them). Usually this amounted to user-provided static relay configurations, which resulted in the naive relay selection approach described above.</p>
<p>NIP 65 used a very similar format (a list of relay urls with optional "read" or "write" directives), but with a very important semantic difference: relays listed in a user's <code>kind 10002</code> were intended to "advertise to others, not for configuring one's client." In other words, these relay selections were intended as a signal to other users that they should use certain relays when attempting to communicate with the author of the relay list.</p>
<p>I highly recommend reading the <a href="https://github.com/nostr-protocol/nips/blob/master/65.md">entire NIP</a>, which is very short and easy to read. But the mechanics of the spec are very simple:</p>
<blockquote>
<p>When seeking events&nbsp;<strong>from</strong>&nbsp;a user, Clients SHOULD use the WRITE relays of the user's&nbsp;<code>kind:10002</code>.</p>
<p>When seeking events&nbsp;<strong>about</strong>&nbsp;a user, where the user was tagged, Clients SHOULD use the READ relays of the user's&nbsp;<code>kind:10002</code>.</p>
<p>When broadcasting an event, Clients SHOULD:</p>
<ul>
<li>Broadcast the event to the WRITE relays of the author</li>
<li>Broadcast the event to all READ relays of each tagged user</li>
</ul>
</blockquote>
<p>For the first time, we had a way to differentiate relays in terms of <em>what content could be found where</em>.</p>
<p>When looking for a note by a particular user, a client could now look up the author's <code>write</code> relays according to their <code>kind 10002</code> event, and send its query there. The result is a much higher hit rate with much lower data transfer requirements, and fewer connections per query.</p>
<h1>Making Outbox Work</h1>
<p>There are of course some assumptions required to make this work. </p>
<p>First, the user must know which author they're looking for. This isn't always true when looking up a quote or parent note, but context and <a href="https://github.com/nostr-protocol/nips/pull/1171">pubkey hints</a> solve this difficulty in most cases.</p>
<p>The author must also publish a <code>kind 10002</code> event. This may not always be the case, but clients should prompt users to set up their relay list correctly. This isn't really a flaw in the Outbox Model, just in implementations of it.</p>
<p>Additionally, the user's client must be able to find the author's <code>kind 10002</code> event. This is the "bootstrapping" phase of the Outbox Model, during which the mechanisms the system provides for finding events aren't available. This requires us to fall back to randomly guessing which relays have the content we're looking for, which as we saw above doesn't work very well.</p>
<p>Other than guessing, there are a few different ways a client might find the relay selection event in question, each of which is applicable in different circumstances. In most cases, using one of a handful of indexer relays like <a href="wss://purplepag.es">purplepag.es</a> or <a href="wss://relay.nostr.band">relay.nostr.band</a> is a simple and efficient way to find user profiles and relay selections.</p>
<p>However, if an author's content has been aggressively purged from these indexers due to censorship, they obviously can't be relied upon. Even though the author in question hasn't been deplatformed from nostr itself (since he can always self-host a publicly accessible relay to store his content), he has been effectively shadow-banned.</p>
<p>To get around this, relay selections have to be communicated in some other way. Nostr has a few different mechanisms for this:</p>
<ul>
<li>If the author's NIP 05 address is known and properly configured (it may not be), clients can look up the author's NIP 05 endpoint to find some reasonable relay hints. Unfortunately, these are often neglected, and usually custodial, so they can run into the same problems.</li>
<li>If the author's pubkey is found in another signed event found on nostr, <a href="https://github.com/nostr-protocol/nips/blob/fade0164f52033314bf0a5ef9bd63c2483afae9b/10.md#marked-e-tags-preferred">relay hints</a> can be a way to propagate relay selections through the network. This relies on implementations picking reliable relay hints which can be difficult, and hints do tend to become less reliable over time. However, this strategy is very effective in resisting censorship because it makes banning viral — if a relay wants to completely purge a particular pubkey from their database, they have to purge every event that references it, since events are tamper-proof.</li>
<li>In extremis, relay recommendations can always be communicated out-of-band. This can be done using manual input, QR codes, DHTs, jsonl torrents full of <code>kind 10002</code> events, or any other mechanism client developers choose to resort to.</li>
</ul>
<p>Another, more technical assumption is that any given query can be fulfilled by few enough relays that a client can actually make all the connections needed, without running into resource limits. If you're trying to request content from 10,000 users across 1,000 relays, you're going to have a bad time. This was <a href="https://coracle.social/nevent1qythwumn8ghj76twvfhhstnwdaehgu3wwa5kuef0qyv8wumn8ghj7cm9d3kxzu3wdehhxarj9emkjmn99uq3samnwvaz7tmrwfjkzarj9ehx7um5wgh8w6twv5hsqgrn7l6zj7ht6ruyk76vvvtkfs4xrhyzc3tm64l3eyfvd40y26sz0gshmunh">pointed out</a> to me by Mazin of <a href="https://nostr.wine">nostr.wine</a>. He makes a good point, and it's definitely something to keep in mind. There are some mitigating factors though.</p>
<p>The first is that the current topology of the network probably won't persist forever. Because nostr is largely populated by self-hosting enthusiasts, the number of "tiny" relays is proportionally much higher than it will be if adoption picks up, even if the total number of relays grows. The trajectory is that nostr will drift toward fewer, larger relays, reducing the number of connections needed to fulfill any given query.</p>
<p>This is "centralizing", but it's important to understand that this isn't necessarily a bad thing. As long as there are more than one or two large hubs, there is user choice. And as long as it's possible to run a new relay, there is always an escape hatch. Nostr, like bitcoin, has no hard dependency on the biggest player in the network.</p>
<p>The other thing to consider is that there are lots of other techniques we can use to overcome the limits of the lowest-common denominator's limitations (mobile browser clients), including self hosted or third-party relay proxies. The trade-off here is that a little trust (aka centralization) can go a long way to reducing resource requirements needed to fulfill queries using the Outbox model.</p>
<p>If you're interested in more details on this topic, see <a href="https://habla.news/u/hodlbod@coracle.social/sfwV1rNaoQXd65PbIMYgm">this blog post</a>.</p>
<p>That was a long digression, but there is one other thing that the Outbox model assumes to be the case. Even if the correct relays are found and connected to, they still may not return all desired content, either because they don't have it, or because they refuse to return it to the user requesting it.</p>
<p>This can happen if the publishing client isn't following the Outbox Model, if the author had migrated from one relay set to another without copying their notes over, or if the relay in question chose not to retain the author's content for some reason.</p>
<p>The first two issues can be fixed by improving implementations, but the question of policy is a little more interesting.</p>
<h1>Relativistic relays</h1>
<p>The Outbox Model is a mechanical process; it's only as useful as user relay selections are. In order for it to work, users have to be able to make intelligent relay selections.</p>
<p>Every relay has trade-offs, depending on its policy. <a href="wss://140.f7z.io">140.f7z.io</a> would not be useful for long-form content, for example. Some relays might have a content retention policy that changes depending on whether you're a paying user. If you don't pay, you might find out too late that your content has been deleted from the relay.</p>
<p>So what makes a relay "good" for a particular use case? Well, it's complicated. Here are a few factors that go into that calculus:</p>
<ul>
<li>Is the relay in the same geographical as the user? Proximity reduces latency, but jurisdictional arbitrage might be desired. Users should probably have a variety of relays that fit different profiles.</li>
<li>Will the relay ban the user? Do the operators have a history of good behavior? Is the relay focused on particular types of content? Is the relay's focus consistent with the user's goal in adding that relay to their list?</li>
<li>What are the relay's retention policies? A user might want to set up an archival relay for her old content, or a multi-availability-zone relay so her notes are immediately accessible to the rest of the network.</li>
<li>Does the relay require payment? Paid relays are more aligned with their users, but obviously come at a financial cost.</li>
<li>Does the relay have policies for read-protecting content? If so, other users might not be able to find your posts published to that relay. On the other hand, some relays are configured to work as inboxes for direct messages, which can help preserve privacy.</li>
<li>Does the relay request that users authenticate? Authentication can help manage spam, but it also allows relays to correlate content requests with users, reducing user privacy.</li>
<li>Is the relay you use hosted by your client's developer? If so, you're in danger of getting banned from your client and your relay at the same time.</li>
<li>Is the relay a hub? Using hubs can help smooth out rough areas in Outbox Model implementations, at the cost of centralization.</li>
<li>Is the relay used by anyone else? One-off relays can be useful for archival purposes, but often won't be used by clients following the Outbox Model, depending on how they optimize requests.</li>
</ul>
<p>There are lots of ways to approach the problem of helping users select relays, but it's an inherently complex problem which very few people will have the patience to properly address on their own. Relay selection is a multi-dimensional problem, and requires satisfying multiple constraints with a limited number of relay selections.</p>
<p>In the future, special-purpose clients might be used to help people build relay sets. Clients also might provide curated "relay kits" that users can choose and customize. Or, we might see an increase in hybrid solutions, like smarter relay proxies or client-local relays that synchronize using other protocols or platforms.</p>
<h1>The Limitations of Outbox</h1>
<p>Outbox is not a complete solution, not because of any of the caveats listed above, but because NIP 65 per se only addresses the question of how to index content by pubkey in a broadcast social media context. But there are many other scenarios for relay selection that Outbox does not solve:</p>
<ul>
<li>Community, chat, and group posts might be best posted to relays dedicated to that context.</li>
<li>Direct messages shouldn't follow the same contours as public social media content.</li>
<li>Topic-oriented relays, or relays serving a custom feed might be useful independent of who uses them.</li>
<li>Relays focused on serving a particular kind of event, like music, long-form content, or relay selections, are useful independent of who reads from or writes to them.</li>
<li>Certain clients might need to fulfill particular use cases by using relays that support certain protocol features, like search, count, or sync commands.</li>
<li>Some events might not make sense to publish to relays, but should instead be shared only directly, out of band.</li>
</ul>
<p>Some of these use cases might be solved by new specifications similar to Outbox that prescribe where certain data belongs&nbsp;— for example, <a href="https://github.com/nostr-protocol/nips/blob/master/17.md">NIP 17</a> requires users to publish a different relay list before they can receive direct messages, while <a href="https://github.com/nostr-protocol/nips/blob/master/72.md">NIP 72</a> places community relay recommendations directly into the group's metadata object. A reasonably complete list of different relay types can be found in <a href="https://github.com/nostr-protocol/nips/issues/1282">this PR</a>, very few of which have a canonical way to manage selections.</p>
<p>Other use cases might be supported more informally, either by relays advertising their own value proposition, or via third-party <a href="https://github.com/nostr-protocol/nips/pull/230">NIP 66</a> metadata. Still others might be supported by scoping the network down to only certain relays through explicit relay selection — this is how white-labeled <a href="https://coracle.tools/">Coracle instances</a> work.</p>
<p>The basic idea here is that there are categories of events that don't have anything to do with where a particular person puts his or her "tweets". For every "what" on nostr, there should be a "how".</p>
<h1>Keep nostr weird</h1>
<p>Whatever additional systems we end up adopting for helping with relay selection, one thing is certain — people will continue to discover new, creative uses for relays, and we will always be playing catch up. This is one of the coolest things about nostr!</p>
<p>But it does mean that users will have to adapt their expectations to a network that partitions, re-configures, and evolves over time. Nostr is not a "worse" experience than legacy social media, but it is a version of social media that has itself been set free from the stagnant walled-garden model. Nostr is in many ways a living organism — we should be careful not to impose our expectations prematurely, leaving room to discover what this thing actually is, or can be.</p>
<p>If you enjoyed this post but want more take a look at the talk I gave at <a href="https://www.youtube.com/live/Nz15SyiwQFk?t=2751s">Nostrasia</a> last year. I also wrote up a <a href="https://habla.news/u/hodlbod@coracle.social/1700155417145">blog post</a> at about the same time that addresses some of the same issues, but focuses more on privacy concerns around relays and nostr groups. Finally, I recently wrote <a href="https://github.com/nostrability/nostrability/issues/69#issuecomment-2310524841">this comment</a>, which includes some details about challenges I've faced putting Outbox into Coracle.</p>
]]></itunes:summary>
      <itunes:image href="https://yakihonne.s3.ap-east-1.amazonaws.com/97c70a44366a6535c145b333f973ea86dfdc2d7a99da618c40c64705ad98e322/files/1724892627307-YAKIHONNES3.jpg"/>
      </item>
      
      <item>
      <title><![CDATA[NOSTR – A social media protocol for the next epoch]]></title>
      <description><![CDATA[A guide to NOSTR for new users.]]></description>
             <itunes:subtitle><![CDATA[A guide to NOSTR for new users.]]></itunes:subtitle>
      <pubDate>Sun, 25 Aug 2024 23:00:00 GMT</pubDate>
      <link>https://www.whynostr.org/post/1724842277970/</link>
      <comments>https://www.whynostr.org/post/1724842277970/</comments>
      <guid isPermaLink="false">naddr1qqxnzdejxsurgv3jxumnjdesqgswswmx4rkj6d7q05dtafhpkqq2z42fc62s37jvtp642m2jkpfxc2crqsqqqa28nd73ep</guid>
      <category>Nostr</category>
      
        <media:content url="https://i.nostr.build/i3OVA9StJYgRYqnc.webp" medium="image"/>
        <enclosure 
          url="https://i.nostr.build/i3OVA9StJYgRYqnc.webp" length="0" 
          type="image/webp" 
        />
      <noteId>naddr1qqxnzdejxsurgv3jxumnjdesqgswswmx4rkj6d7q05dtafhpkqq2z42fc62s37jvtp642m2jkpfxc2crqsqqqa28nd73ep</noteId>
      <npub>npub1aqakd28d95muqlg6h6nwrvqq5925n354prayckr424k49vzjds4s0c237n</npub>
      <dc:creator><![CDATA[mike]]></dc:creator>
      <content:encoded><![CDATA[<p>The founder of Telegram has just been arrested in France. Charges include lack of cooperation with law enforcement, drug trafficking and fraud.</p>
<p>Aside from Telegram, social media is controlled by two billionaires who decide what you say, are themselves controlled by overbearing governments and make money through advertising and selling your personal data.</p>
<p>There is a different way.</p>
<p>NOSTR stands for Notes and Other Stuff Transmitted on Relays and it is a social media protocol in the same way http is a web protocol.</p>
<p>The protocol is open and anybody can build upon it. It has some fundamental concepts that are very different to existing social media platforms.</p>
<p>Firstly it is decentralised, it runs across relays and anybody can run a relay. They can be open or closed, public or private, free or paid.</p>
<p>Secondly as a user, you don’t have an account, you have a private key which is used to secure your data.</p>
<p>Your profile (account) is yours, you own and control it using your private keys and verified by others with your public key.</p>
<p>Your posts are yours and you can store them on your own relay in your own home or business or you can rely on free public relays or more feature rich paid public relays.</p>
<p>All your public data is signed by your private keys to verify it is you that owns it and all your private data is encrypted so nobody can read it.</p>
<p>Messages (i.e. think NOSTR WhatsApp) are encrypted with your private keys so NOBODY can hack it or listen in, not even the NSA through a companies backdoor. You message other users privately by encrypting messages to them using their public key, which they decrypt using their private key.</p>
<p>Relays store your data in a decentralised network of private and public relays and you discover relays automatically when searching for people or content.</p>
<p>Data is normally sent on the clearnet, but can be relayed across the darknet (Tor) in highly censored regions.</p>
<p>Because it is built using Bitcoin principles and technology, so it has Bitcoin money built in, meaning you actually send / receive money from / to any participant.</p>
<p>As money is built in, the commercial options are different to centralised corporate owned platforms. It would be technically possible to build a platform that supports advertising, however that hasn’t really happened because influencers can be paid directly from their audience in many different ways. Ad hoc tips, subscriptions, pay to view or pay per time models.</p>
<p>The great thing for content creators is that they control, own and keep all the money they make. There is no third party intermediary or merchant deciding whether they are allowed to be paid or not.</p>
<p>NOSTR is censorship resistant, as there is no way to stop anybody publishing anything they want, in the same way nobody can stop or interfere with a Bitcoin payment.</p>
<p>From an end users point of view, if they want to self censor, they can do this in multiple ways. You can mute users individually, or you can choose to use relays that adhere to your views or interests, so if you don’t want to see certain categories of content, you would avoid relays that carry those feeds. You can even run your own relay and curate content that you then charge other like minded users to connect to. You can of course connect to multiple relays for multiple different type of feed.</p>
<p>While NOSTR is a protocol, platforms have to be built to use it, so the first platforms were twitter like clients and they are still very prevalent. However, NOSTR now has clients that emulate most social media platforms, Instagram, Facebook, YouTube, Soundcloud, WhatsApp etc. They are even creating their own categories as well as emulating other functions such as Office Suite tools, collaborative calendars, contact lists or e-commerce shops.</p>
<p>If you want to give it a go, the easiest, but not the best, way to get started is download Primal on your phone from here:</p>
<p><np-embed url="https://primal.net/downloads"><a href="https://primal.net/downloads">https://primal.net/downloads</a></np-embed></p>
<p>It will create a private key for you and setup a Bitcoin wallet.</p>
<p>Once you have done this you can visit me here:</p>
<p><a href="/author/npub1aqakd28d95muqlg6h6nwrvqq5925n354prayckr424k49vzjds4s0c237n/">mike</a></p>
<p>If you want to see a small part of the ecosystem, then visit <np-embed url="https://www.nostrapps.com/"><a href="https://www.nostrapps.com/">https://www.nostrapps.com/</a></np-embed> where volunteers are listing some of the many apps that exist already.</p>
<p>NOSTR is being backed by Jack Dorsey, Twitter founder, and you can see his account here:</p>
<p><a href="/author/npub1sg6plzptd64u62a878hep2kev88swjh3tw00gjsfl8f237lmu63q0uf63m/">jack</a></p>
<p>Or you can see his account like this:</p>
<p><np-embed url="https://primal.net/jack"><a href="https://primal.net/jack">https://primal.net/jack</a></np-embed></p>
<p>Edward Snowden is also on the platform and you can find him here:</p>
<p><np-embed url="https://primal.net/Snowden"><a href="https://primal.net/Snowden">https://primal.net/Snowden</a></np-embed></p>
<p>NOSTR has around 2 million users or public keys, although nobody really knows how many, because it is decentralised and not controlled or run by any person or organisation.</p>
<p>Once you’ve setup Primal, you can use those same private keys to access any platform you wish and you can use a browser extension such as Alby to manage your keys: <np-embed url="https://getalby.com/"><a href="https://getalby.com/">https://getalby.com/</a></np-embed></p>
<p>Primal looks great, but there are other better functioning twitter like clients, probably the most reliable for iPhone is Damus: <np-embed url="https://www.nostrapps.com/apps/damus"><a href="https://www.nostrapps.com/apps/damus">https://www.nostrapps.com/apps/damus</a></np-embed></p>
<p>or Amethyst for Android: <np-embed url="https://nostrapps.com/amethyst"><a href="https://nostrapps.com/amethyst">https://nostrapps.com/amethyst</a></np-embed></p>
<p>The content and user base is very Bitcoin and freedom focused right now, but more and more people are starting to use the various platforms and some are transferring exclusively to it.</p>
<p>Some of the more interesting projects right now are:</p>
<p><np-embed url="https://www.0xchat.com/#/"><a href="https://www.0xchat.com/#/">https://www.0xchat.com/#/</a></np-embed> – Private messaging – think WhatsApp</p>
<p><np-embed url="https://zap.stream/"><a href="https://zap.stream/">https://zap.stream/</a></np-embed>  – Video streaming</p>
<p><np-embed url="https://fountain.fm/"><a href="https://fountain.fm/">https://fountain.fm/</a></np-embed> – Podcasting</p>
<p><np-embed url="https://wavlake.com/"><a href="https://wavlake.com/">https://wavlake.com/</a></np-embed> – Music streaming</p>
<p><np-embed url="https://shopstr.store/"><a href="https://shopstr.store/">https://shopstr.store/</a></np-embed> – Online shop</p>
<p><np-embed url="https://npub.pro/"><a href="https://npub.pro/">https://npub.pro/</a></np-embed> – Website creation tool</p>
<p><np-embed url="https://nostr.build/"><a href="https://nostr.build/">https://nostr.build/</a></np-embed> – Media and file storage</p>
<p><np-embed url="https://relay.tools/"><a href="https://relay.tools/">https://relay.tools/</a></np-embed> – Build and curate your own relay</p>
<p><np-embed url="https://creatr.nostr.wine/subscriptions/new-user"><a href="https://creatr.nostr.wine/subscriptions/new-user">https://creatr.nostr.wine/subscriptions/new-user</a></np-embed> – Creator tools</p>
<p>Remember, the same keys you created for Primal can be used across the whole ecosystem.</p>
<p>If you want to see some of the other apps that have been built on the NOSTR protocol visit:<br><np-embed url="https://nostrapps.com/"><a href="https://nostrapps.com/">https://nostrapps.com/</a></np-embed></p>
]]></content:encoded>
      <itunes:author><![CDATA[mike]]></itunes:author>
      <itunes:summary><![CDATA[<p>The founder of Telegram has just been arrested in France. Charges include lack of cooperation with law enforcement, drug trafficking and fraud.</p>
<p>Aside from Telegram, social media is controlled by two billionaires who decide what you say, are themselves controlled by overbearing governments and make money through advertising and selling your personal data.</p>
<p>There is a different way.</p>
<p>NOSTR stands for Notes and Other Stuff Transmitted on Relays and it is a social media protocol in the same way http is a web protocol.</p>
<p>The protocol is open and anybody can build upon it. It has some fundamental concepts that are very different to existing social media platforms.</p>
<p>Firstly it is decentralised, it runs across relays and anybody can run a relay. They can be open or closed, public or private, free or paid.</p>
<p>Secondly as a user, you don’t have an account, you have a private key which is used to secure your data.</p>
<p>Your profile (account) is yours, you own and control it using your private keys and verified by others with your public key.</p>
<p>Your posts are yours and you can store them on your own relay in your own home or business or you can rely on free public relays or more feature rich paid public relays.</p>
<p>All your public data is signed by your private keys to verify it is you that owns it and all your private data is encrypted so nobody can read it.</p>
<p>Messages (i.e. think NOSTR WhatsApp) are encrypted with your private keys so NOBODY can hack it or listen in, not even the NSA through a companies backdoor. You message other users privately by encrypting messages to them using their public key, which they decrypt using their private key.</p>
<p>Relays store your data in a decentralised network of private and public relays and you discover relays automatically when searching for people or content.</p>
<p>Data is normally sent on the clearnet, but can be relayed across the darknet (Tor) in highly censored regions.</p>
<p>Because it is built using Bitcoin principles and technology, so it has Bitcoin money built in, meaning you actually send / receive money from / to any participant.</p>
<p>As money is built in, the commercial options are different to centralised corporate owned platforms. It would be technically possible to build a platform that supports advertising, however that hasn’t really happened because influencers can be paid directly from their audience in many different ways. Ad hoc tips, subscriptions, pay to view or pay per time models.</p>
<p>The great thing for content creators is that they control, own and keep all the money they make. There is no third party intermediary or merchant deciding whether they are allowed to be paid or not.</p>
<p>NOSTR is censorship resistant, as there is no way to stop anybody publishing anything they want, in the same way nobody can stop or interfere with a Bitcoin payment.</p>
<p>From an end users point of view, if they want to self censor, they can do this in multiple ways. You can mute users individually, or you can choose to use relays that adhere to your views or interests, so if you don’t want to see certain categories of content, you would avoid relays that carry those feeds. You can even run your own relay and curate content that you then charge other like minded users to connect to. You can of course connect to multiple relays for multiple different type of feed.</p>
<p>While NOSTR is a protocol, platforms have to be built to use it, so the first platforms were twitter like clients and they are still very prevalent. However, NOSTR now has clients that emulate most social media platforms, Instagram, Facebook, YouTube, Soundcloud, WhatsApp etc. They are even creating their own categories as well as emulating other functions such as Office Suite tools, collaborative calendars, contact lists or e-commerce shops.</p>
<p>If you want to give it a go, the easiest, but not the best, way to get started is download Primal on your phone from here:</p>
<p><np-embed url="https://primal.net/downloads"><a href="https://primal.net/downloads">https://primal.net/downloads</a></np-embed></p>
<p>It will create a private key for you and setup a Bitcoin wallet.</p>
<p>Once you have done this you can visit me here:</p>
<p><a href="/author/npub1aqakd28d95muqlg6h6nwrvqq5925n354prayckr424k49vzjds4s0c237n/">mike</a></p>
<p>If you want to see a small part of the ecosystem, then visit <np-embed url="https://www.nostrapps.com/"><a href="https://www.nostrapps.com/">https://www.nostrapps.com/</a></np-embed> where volunteers are listing some of the many apps that exist already.</p>
<p>NOSTR is being backed by Jack Dorsey, Twitter founder, and you can see his account here:</p>
<p><a href="/author/npub1sg6plzptd64u62a878hep2kev88swjh3tw00gjsfl8f237lmu63q0uf63m/">jack</a></p>
<p>Or you can see his account like this:</p>
<p><np-embed url="https://primal.net/jack"><a href="https://primal.net/jack">https://primal.net/jack</a></np-embed></p>
<p>Edward Snowden is also on the platform and you can find him here:</p>
<p><np-embed url="https://primal.net/Snowden"><a href="https://primal.net/Snowden">https://primal.net/Snowden</a></np-embed></p>
<p>NOSTR has around 2 million users or public keys, although nobody really knows how many, because it is decentralised and not controlled or run by any person or organisation.</p>
<p>Once you’ve setup Primal, you can use those same private keys to access any platform you wish and you can use a browser extension such as Alby to manage your keys: <np-embed url="https://getalby.com/"><a href="https://getalby.com/">https://getalby.com/</a></np-embed></p>
<p>Primal looks great, but there are other better functioning twitter like clients, probably the most reliable for iPhone is Damus: <np-embed url="https://www.nostrapps.com/apps/damus"><a href="https://www.nostrapps.com/apps/damus">https://www.nostrapps.com/apps/damus</a></np-embed></p>
<p>or Amethyst for Android: <np-embed url="https://nostrapps.com/amethyst"><a href="https://nostrapps.com/amethyst">https://nostrapps.com/amethyst</a></np-embed></p>
<p>The content and user base is very Bitcoin and freedom focused right now, but more and more people are starting to use the various platforms and some are transferring exclusively to it.</p>
<p>Some of the more interesting projects right now are:</p>
<p><np-embed url="https://www.0xchat.com/#/"><a href="https://www.0xchat.com/#/">https://www.0xchat.com/#/</a></np-embed> – Private messaging – think WhatsApp</p>
<p><np-embed url="https://zap.stream/"><a href="https://zap.stream/">https://zap.stream/</a></np-embed>  – Video streaming</p>
<p><np-embed url="https://fountain.fm/"><a href="https://fountain.fm/">https://fountain.fm/</a></np-embed> – Podcasting</p>
<p><np-embed url="https://wavlake.com/"><a href="https://wavlake.com/">https://wavlake.com/</a></np-embed> – Music streaming</p>
<p><np-embed url="https://shopstr.store/"><a href="https://shopstr.store/">https://shopstr.store/</a></np-embed> – Online shop</p>
<p><np-embed url="https://npub.pro/"><a href="https://npub.pro/">https://npub.pro/</a></np-embed> – Website creation tool</p>
<p><np-embed url="https://nostr.build/"><a href="https://nostr.build/">https://nostr.build/</a></np-embed> – Media and file storage</p>
<p><np-embed url="https://relay.tools/"><a href="https://relay.tools/">https://relay.tools/</a></np-embed> – Build and curate your own relay</p>
<p><np-embed url="https://creatr.nostr.wine/subscriptions/new-user"><a href="https://creatr.nostr.wine/subscriptions/new-user">https://creatr.nostr.wine/subscriptions/new-user</a></np-embed> – Creator tools</p>
<p>Remember, the same keys you created for Primal can be used across the whole ecosystem.</p>
<p>If you want to see some of the other apps that have been built on the NOSTR protocol visit:<br><np-embed url="https://nostrapps.com/"><a href="https://nostrapps.com/">https://nostrapps.com/</a></np-embed></p>
]]></itunes:summary>
      <itunes:image href="https://i.nostr.build/i3OVA9StJYgRYqnc.webp"/>
      </item>
      
      </channel>
      </rss>
    