<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2023-05-06T18:10:05Z</updated>
  <generator>https://nostr.now</generator>

  <title>Nostr notes by dr.orlovsky</title>
  <author>
    <name>dr.orlovsky</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://nostr.now/npub13mhg7ksq9efna8ullmc5cufa53yuy06k73q4u7v425s8tgpdr5msk5mnym.rss" />
  <link href="https://nostr.now/npub13mhg7ksq9efna8ullmc5cufa53yuy06k73q4u7v425s8tgpdr5msk5mnym" />
  <id>https://nostr.now/npub13mhg7ksq9efna8ullmc5cufa53yuy06k73q4u7v425s8tgpdr5msk5mnym</id>
  <icon>https://nostr.build/i/nostr.build_8e0117fecac8c630d4482f1c3ed24b3187df54aae2a967ed194d6d88de1247a9.jpeg</icon>
  <logo>https://nostr.build/i/nostr.build_8e0117fecac8c630d4482f1c3ed24b3187df54aae2a967ed194d6d88de1247a9.jpeg</logo>




  <entry>
    <id>https://nostr.now/nevent1qqs9866arnnp5d09eu90mx28thpkzvz8j9pcp5d05xncrcvc9q360fczyz8war66qqh9x05lnll0znr38kjyns3l2m6yzhnej42jqadq95wnwptnw95</id>
    
      <title type="html">Thoughts on #nostr. Nostr is a websockets-based text protocol for ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs9866arnnp5d09eu90mx28thpkzvz8j9pcp5d05xncrcvc9q360fczyz8war66qqh9x05lnll0znr38kjyns3l2m6yzhnej42jqadq95wnwptnw95" />
    <content type="html">
      Thoughts on #nostr.&lt;br/&gt;&lt;br/&gt;Nostr is a websockets-based text protocol for logs of authenticated (but unauthorized) tagged (and otherwise unstructured) messages stored at public relay servers. The rest is a specific nostr application (like social networking or payments) on top of it.&lt;br/&gt;&lt;br/&gt;Nostr takes several decisions on possible tradeoffs, which I try to analyze here:&lt;br/&gt;&lt;br/&gt;1. Websockets. Good: pub/sub data access, web-integratable. Bad: high load on relay servers limiting scalability. Verdict: ⚠️&lt;br/&gt;&lt;br/&gt;2. Elliptic curve (secp256k1) for identities. Good: bitcoin-based. Bad: very low performance, not GPG/SSH compatible, sidechannels. Overall: ❌. &lt;br/&gt;&lt;br/&gt;3. Signature scheme: BIP-340 Schnorr. Good: batch verification, standard. Bad: optimized for onchain, discarding y coord, making verification ~50% more expensive than non-BIP Schnorr.  Verdict: ⚠️&lt;br/&gt;&lt;br/&gt;4. Hashing function: SHA256. Good: standard, bitcoin. Bad: slower than BLACKE3. Verdict: ⚠️&lt;br/&gt;&lt;br/&gt;5. Text JSON encoding. Good: easy to implement. Bad: hard to pass &amp;amp; slow to encode/decode non-text/binary data; no limits on data sizing opening a door for DoSing relays and clients. Verdict: ❌&lt;br/&gt;&lt;br/&gt;6. No authorization scheme. Good: easy to implement. Bad: limits use cases, limits scalability. Verdict: ⚠️&lt;br/&gt;&lt;br/&gt;7. No encryption on the transport level, relying on TLS. Good: easy to implement. Bad: centralized, not end-to-end. Verdict: ⚠️&lt;br/&gt;&lt;br/&gt;So I see most of selected tradeoffs by Nostr as a bad or poor decision. This us arguable of course. &lt;br/&gt;&lt;br/&gt;Can Nostr survive and success? For sure, if even much worse systems had done that in the past (Ethereum, JavaScript, PHP). &lt;br/&gt;&lt;br/&gt;What is the greatest Nostr weakness? Limited scalability and possible DoS (not even DDoS) attacks. &lt;br/&gt;&lt;br/&gt;If I were the one who did nostr, what I would had made differently? I would had used Ed25519 signatures on Ristretto25519 (speed), binary encoding with strict limits on data sizes, use Noise_XK encryption - and provide bridges to Websockets only when they are needed for the web. But we have what we have.&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://nostr.build/i/nostr.build_11196a0ce77932638fc00edde9487a49f50697c768eb16f91ed1fc1a3b60726c.jpeg&#34;&gt; 
    </content>
    <updated>2023-04-15T13:16:15Z</updated>
  </entry>

</feed>