<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated></updated>
  <generator>https://nostr.ae</generator>

  <title>Nostr notes by </title>
  <author>
    <name></name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://nostr.ae/npub1a80jcetgws9xmu7wnylvekpymw2acym2psjpp03e0chmhq38pc8qwrpwgy.rss" />
  <link href="https://nostr.ae/npub1a80jcetgws9xmu7wnylvekpymw2acym2psjpp03e0chmhq38pc8qwrpwgy" />
  <id>https://nostr.ae/npub1a80jcetgws9xmu7wnylvekpymw2acym2psjpp03e0chmhq38pc8qwrpwgy</id>
  <icon></icon>
  <logo></logo>




  <entry>
    <id>https://nostr.ae/nevent1qqsyx9pd5vyf06pjcmscwvf3au4uc6f8f8l0g5uhuv3ttnaj7646kcczyr5a7tr9dp6q5m0ne6vnanxcyndethqndgxzgy9789lzlwuzyu8quq9x8s2</id>
    
      <title type="html">📅 Original date posted:2023-06-02 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsyx9pd5vyf06pjcmscwvf3au4uc6f8f8l0g5uhuv3ttnaj7646kcczyr5a7tr9dp6q5m0ne6vnanxcyndethqndgxzgy9789lzlwuzyu8quq9x8s2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswpyvm8xyw2q8axpr2zxga28h2u8t9lfn5h6r3r6p0954j7x3xkeg7kxumn&#39;&gt;nevent1q…xumn&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-06-02&lt;br/&gt;🗒️ Summary of this message: A proposal for clear moderation policies on the bitcoin-dev mail list and the replacement of the current moderator, who has been accused of abusing their powers.&lt;br/&gt;📝 Original message:Dear community,&lt;br/&gt;&lt;br/&gt;I am writing this list to bitcoin-dev mail list, but to prevent potential censorship I am sending CC to lightning-dev mail list, in order to leave the current moderator(s) without an option not to publish the letter and not to leave the topic “under the cover” (sorry Lightning friends for spamming your list with this off-topic).&lt;br/&gt;&lt;br/&gt;A day before yesterday I sent a post to bitcoin-dev referencing the publication of the new Bitcoin scalability and privacy protocol, which had already received a broad reaction across the bitcoin community with literally no critical/negative responses after ~25k of reads [1]. I am not the first-time writer to the mail list and had developed things like RGB smart contracts [2], rust lightning implementation named LNP [3], multiple bitcoin libraries and software [4], [5], during three years was a main contributor to rust-bitcoin [6] etc, etc. The post was clearly not spam and received support from known community members like Giacomo Zucco [7]. Bryan Bishop knows me since 2019 when I was presenting Storm protocol on the stage on Scaling Bitcoin in Tel Aviv - and he was writing a transcript of it [8]. Thus, I am not a random unknown guy or a known spammer - and the post can be easily checked for not containing any scam promotion.&lt;br/&gt;&lt;br/&gt;Nevertheless, I next day I see other e-mails getting released to bitcoin-dev, while mine - was not. It is not a problem, but since we already had an incident in the past where Bryan reported the failure of his software, me and my colleagues from LNP/BP Standards Association started asking questions about whether this post ever got to Bryan.&lt;br/&gt;&lt;br/&gt;What happened next was very unexpected. I am giving the core of the conversation over Twitter after in Annex A - with the purpose to showcase the problem I’d like to address in this e-mail. From the discussion, it is clear that bitcoin-dev mail list lacks clear explicit moderation (or peer-review) policies, which must be applied on a non-selective basis. Also, Bryan Bishop, as the current moderator, had abused his powers in achieving his agenda based on personal likes or dislikes. The conversation went nowhere, and the post got published only after a requirement from Peter Todd [9].&lt;br/&gt;&lt;br/&gt;In this regard, I’d like to propose the following:&lt;br/&gt;&lt;br/&gt;- The bitcoin-dev mail list must have a clear moderation (or pre-publication peer-review policy). It can be proposed and discussed in this mail list and, upon agreement, must become public and obligatory.&lt;br/&gt;- Bryan Bishop, who was acting for a long time as moderator, must be appreciated for many years of unpaid work, and replaced with the new moderator who should be selected from a list of potential candidates (again in this mail list) using the criteria “least votes against”.&lt;br/&gt;- The role of the moderator(s) must be purely executive of the policies, without any personal preferences.&lt;br/&gt;- A dedicated mail list should be created (“bitcoin-dev-unmoderated”) which will publish all submissions without moderation. It may contain spam and only people interested in the auditing bitcoin-dev main mal list non-censorship will be reading it. However, if they will notice that some non-spam e-mails were censored, they can announce that publicly. In this case, the failing moderator(s) should be removed and replaced.&lt;br/&gt;- The incentive to work as a moderator should be reputation-based.&lt;br/&gt;&lt;br/&gt;With that, I rest my case.&lt;br/&gt;&lt;br/&gt;Kind regards,&lt;br/&gt;&lt;br/&gt;Maxim Orlovsky&lt;br/&gt;&lt;br/&gt;[1]:&lt;a href=&#34;https://twitter.com/lnp_bp/status/1664329393131364353?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&#34;&gt;https://twitter.com/lnp_bp/status/1664329393131364353?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[2]:&lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-April/021554.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-April/021554.html&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[3]:&lt;a href=&#34;https://github.com/LNP-WG&#34;&gt;https://github.com/LNP-WG&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[4]:&lt;a href=&#34;https://github.com/BP-WG&#34;&gt;https://github.com/BP-WG&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[5]:&lt;a href=&#34;https://github.com/mycitadel&#34;&gt;https://github.com/mycitadel&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[6]:&lt;a href=&#34;https://github.com/rust-bitcoin/rust-bitcoin/graphs/contributors?from=2018-12-31&amp;amp;to=2022-04-12&amp;amp;type=c&#34;&gt;https://github.com/rust-bitcoin/rust-bitcoin/graphs/contributors?from=2018-12-31&amp;amp;to=2022-04-12&amp;amp;type=c&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[7]:&lt;a href=&#34;https://twitter.com/giacomozucco/status/1664515543154544645?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQygandhttps://twitter.com/giacomozucco/status/1664731504923095041?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&#34;&gt;https://twitter.com/giacomozucco/status/1664515543154544645?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQygandhttps://twitter.com/giacomozucco/status/1664731504923095041?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[8]:&lt;a href=&#34;https://scalingbitcoin.org/transcript/telaviv2019/wip-storm-layer-2-3-storage-and-messaging&#34;&gt;https://scalingbitcoin.org/transcript/telaviv2019/wip-storm-layer-2-3-storage-and-messaging&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[9]:&lt;a href=&#34;https://twitter.com/peterktodd/status/1664742651835367424?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&#34;&gt;https://twitter.com/peterktodd/status/1664742651835367424?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Annex A:&lt;br/&gt;&lt;br/&gt;- @kanzure just like to check that our submission to bitcoin-dev hasn’t got to spam &amp;lt;&lt;a href=&#34;https://twitter.com/lnp_bp/status/1664649328349069320?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&#34;&gt;https://twitter.com/lnp_bp/status/1664649328349069320?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&lt;/a&gt;;&lt;br/&gt;- A few mods are reviewing it &amp;lt;&lt;a href=&#34;https://twitter.com/kanzure/status/1664680893548572677?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&#34;&gt;https://twitter.com/kanzure/status/1664680893548572677?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&lt;/a&gt;;&lt;br/&gt;- Oh, so a peer review is required to get to bitcoin-dev mail list? Never read about that requirement anywhere &amp;lt;&lt;a href=&#34;https://twitter.com/lnp_bp/status/1664695061462777858?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&#34;&gt;https://twitter.com/lnp_bp/status/1664695061462777858?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&lt;/a&gt;;. Seems like bitcoin-dev mail list requirements are now specific to the author :) &amp;lt;&lt;a href=&#34;https://twitter.com/dr_orlovsky/status/1664695668475142144?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&#34;&gt;https://twitter.com/dr_orlovsky/status/1664695668475142144?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&lt;/a&gt;;&lt;br/&gt;- Not the greatest email to pull this over. I&amp;#39;ll double check but pretty sure the antagonization is boring me. &amp;lt;&lt;a href=&#34;https://twitter.com/kanzure/status/1664705038315409420?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&#34;&gt;https://twitter.com/kanzure/status/1664705038315409420?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&lt;/a&gt;;&lt;br/&gt;- Not sure I understand what you are saying. Can you please clarify? &amp;lt;&lt;a href=&#34;https://twitter.com/dr_orlovsky/status/1664705280393859103?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&#34;&gt;https://twitter.com/dr_orlovsky/status/1664705280393859103?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&lt;/a&gt;;&lt;br/&gt;- You are boring me and these antics don&amp;#39;t make me want to go click approve on your email. &amp;lt;&lt;a href=&#34;https://twitter.com/kanzure/status/1664705509147004946?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&#34;&gt;https://twitter.com/kanzure/status/1664705509147004946?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&lt;/a&gt;;&lt;br/&gt;- Are you the person to approve emails for it? &amp;lt;&lt;a href=&#34;https://twitter.com/phyrooo/status/1664732932068589568?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&#34;&gt;https://twitter.com/phyrooo/status/1664732932068589568?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&lt;/a&gt;;&lt;br/&gt;- Yes &amp;lt;&lt;a href=&#34;https://twitter.com/kanzure/status/1664733107096899585?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&#34;&gt;https://twitter.com/kanzure/status/1664733107096899585?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&lt;/a&gt;;&lt;br/&gt;- It appears that people boring @kanzure is going through a dedicated review procedure on bitcoin-dev mail list. Good moderation! Very clear policy! &amp;lt;&lt;a href=&#34;https://twitter.com/dr_orlovsky/status/1664706165790461959?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&#34;&gt;https://twitter.com/dr_orlovsky/status/1664706165790461959?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&lt;/a&gt;;&lt;br/&gt;- What are you even doing. How does this behavior suppose to get people to help you? &amp;lt;&lt;a href=&#34;https://twitter.com/kanzure/status/1664706931083329536?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&#34;&gt;https://twitter.com/kanzure/status/1664706931083329536?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&lt;/a&gt;;&lt;br/&gt;- I am not expecting you to help me - and never asked. I expect you to openly declare moderation (or peer review) policy and follow it. &amp;lt;&lt;a href=&#34;https://twitter.com/dr_orlovsky/status/1664719295123685381?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&#34;&gt;https://twitter.com/dr_orlovsky/status/1664719295123685381?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&lt;/a&gt;; Since “if you get me bored I will not click an accept button” is not a moderation policy which I expect from bitcoin-dev mail list. Probably not just me. &amp;lt;&lt;a href=&#34;https://twitter.com/dr_orlovsky/status/1664719786633310209?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&#34;&gt;https://twitter.com/dr_orlovsky/status/1664719786633310209?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&lt;/a&gt;;&lt;br/&gt;- Yeah I mean I don&amp;#39;t think these tweets are likely to get me to enthusiastically resolve your problem... I dunno man. What&amp;#39;s even going on here. &amp;lt;&lt;a href=&#34;https://twitter.com/kanzure/status/1664735139065208833?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&#34;&gt;https://twitter.com/kanzure/status/1664735139065208833?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&lt;/a&gt;;&lt;br/&gt;- Bitcoin mail list clearly lacks explicit moderation policy. The same mistake like with rust-bitcoin 1&#43; yrs ago. I am fine with peer review. Moderation. But only explicit - not just “the way I (dis)like this guy” &amp;lt;&lt;a href=&#34;https://twitter.com/dr_orlovsky/status/1664736404931321859?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&#34;&gt;https://twitter.com/dr_orlovsky/status/1664736404931321859?s=61&amp;amp;t=9A8uvggqKVKV3sT4HPlQyg&amp;gt&lt;/a&gt;;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230602/f0fd6794/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230602/f0fd6794/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-08T01:22:10&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxgupdqgz0j298xk9muz5ap97l9l60ng5m7z0wh8pw6y5py26q6eqzyr5a7tr9dp6q5m0ne6vnanxcyndethqndgxzgy9789lzlwuzyu8quk0xh30</id>
    
      <title type="html">📅 Original date posted:2023-04-17 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxgupdqgz0j298xk9muz5ap97l9l60ng5m7z0wh8pw6y5py26q6eqzyr5a7tr9dp6q5m0ne6vnanxcyndethqndgxzgy9789lzlwuzyu8quk0xh30" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsygga53qnpcnf5rk2e88swq5vsafwyt6fldpl9aj83ymv2txgpf4cqhjl70&#39;&gt;nevent1q…jl70&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-04-17&lt;br/&gt;🗒️ Summary of this message: The author thanks the recipient for their analysis and addresses small questions. They clarify the status of RGB implementations and mention documentation efforts.&lt;br/&gt;📝 Original message:Hi David,&lt;br/&gt;&lt;br/&gt;Thank you for taking time on doing analysis and writing comments.&lt;br/&gt;I will address all small questions in this reply -- with a follow-up &lt;br/&gt;e-mail dedicated to the technical question from your letter&lt;br/&gt;regarding the problem of &amp;#34;on-publishable conditional statements seemingly&lt;br/&gt;being insecure in multiparty protocols&amp;#34;, which requires longer write-up.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; FYI: the RGB-WG organization page links to a repository whose latest&lt;br/&gt;&amp;gt; release is 0.9 and whose latest commit is titled, &amp;#34;Release v.0.9.1&amp;#34;, see&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://github.com/RGB-WG/rgb-node/&#34;&gt;https://github.com/RGB-WG/rgb-node/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Thank you for spotting; we hadn&amp;#39;t updated the readme. Now its fixed.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; &amp;gt; Nevertheless, in 2021 we were able to present both RGB powered with a&lt;br/&gt;&amp;gt; &amp;gt; Turing-complete virtual machine (AluVM) [2] and RGB had became&lt;br/&gt;&amp;gt; &amp;gt; operational on&lt;br/&gt;&amp;gt; &amp;gt; Lightning Network [3] using the LNP Node - a complete rust&lt;br/&gt;&amp;gt; &amp;gt; re-implementation of&lt;br/&gt;&amp;gt; &amp;gt; the Lightning protocol made by me at the Association [4].&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Could you clarify the status of these implementations?&lt;br/&gt;&lt;br/&gt;The status of LNP implementation is &amp;#34;experimental&amp;#34;: it is an instrument&lt;br/&gt;for testing new protocols in the scope of the Lightning network, and&lt;br/&gt;its main feature is in having lightweight and modular architecture.&lt;br/&gt;&lt;br/&gt;LNP implementation is not anymore required for using RGB on LN - as &lt;br/&gt;Federico already mentioned in his reply, Bitfinex team was able to&lt;br/&gt;independently integrate RGB with existing LDK codebase [1] (I even &lt;br/&gt;didn&amp;#39;t know about that before they announced), and there is a WIP on&lt;br/&gt;integrating RGB through CLN extensions. So the question of LNP node&lt;br/&gt;readiness/completeness is unrelated to the question of RGB readiness,&lt;br/&gt;features or technical properties; in my previous e-mail I just had &lt;br/&gt;pointed out that at some (past) point in time we had to work on LN &lt;br/&gt;re-implementation due to some restrictions we had back those days -- &lt;br/&gt;like with pay-to-contract commitments which were impossible to &lt;br/&gt;implement in the existing nodes due to architecture limitations -- &lt;br/&gt;but with the change to taproot-based commitments in late 2021-&lt;br/&gt;early 2022 this is not true anymore.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; While trying to&lt;br/&gt;&amp;gt; learn about RGB, I noticed that you don&amp;#39;t have much completed&lt;br/&gt;&amp;gt; documentation. Previous reviewers also mentioned this and I saw that&lt;br/&gt;&amp;gt; you suggested them to read the code or view your videos.&lt;br/&gt;&lt;br/&gt;A lot of documentation was written and is being written. For instance,&lt;br/&gt;if you look at the foundational crates we have in RGB, they are&lt;br/&gt;well documented, containing more docs than the code itself, like in&lt;br/&gt;&amp;lt;&lt;a href=&#34;https://github.com/LNP-BP/client_side_validation/blob/master/single_use_seals/src/lib.rs&amp;gt&#34;&gt;https://github.com/LNP-BP/client_side_validation/blob/master/single_use_seals/src/lib.rs&amp;gt&lt;/a&gt;;&lt;br/&gt;&lt;br/&gt;Also, we have a number of websites tracking the RGB docs, listed in&lt;br/&gt;&amp;lt;&lt;a href=&#34;https://rgb.tech/docs/&amp;gt&#34;&gt;https://rgb.tech/docs/&amp;gt&lt;/a&gt;; and &amp;lt;&lt;a href=&#34;https://rgb.tech/learn/&amp;gt&#34;&gt;https://rgb.tech/learn/&amp;gt&lt;/a&gt;; - literally&lt;br/&gt;dozens of them. So your information is outdated.&lt;br/&gt;&lt;br/&gt;Of course, much more need to be written - but again, for a small team&lt;br/&gt;of community &amp;amp; self-fundend non-profit with the budget comparable to &lt;br/&gt;a coffee  shop. I think we are doing all what we can. If community &lt;br/&gt;needs more docs -- it is welcome to provide more funding or hands in &lt;br/&gt;writing them.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; When reading your code for your LN implementation (LNP), I noticed it&lt;br/&gt;&amp;gt; seemed to be missing a lot of things present in other LN implementations&lt;br/&gt;&amp;gt; I regularly review. For example, I can&amp;#39;t find where it supports&lt;br/&gt;&amp;gt; creating or parsing onions, which seems to be a fundamental requirement&lt;br/&gt;&amp;gt; for using LN.&lt;br/&gt;&lt;br/&gt;It is there, literally for years, where it should be - in P2P protocol,&lt;br/&gt;BOLT4, as directory and file names suggest:&lt;br/&gt;&amp;lt;&lt;a href=&#34;https://github.com/LNP-WG/lnp-core/blob/master/lnp2p/src/bolt/bolt4.rs&amp;gt&#34;&gt;https://github.com/LNP-WG/lnp-core/blob/master/lnp2p/src/bolt/bolt4.rs&amp;gt&lt;/a&gt;;&lt;br/&gt;&lt;br/&gt;It is based on our other library which provides encryption:&lt;br/&gt;&amp;lt;&lt;a href=&#34;https://docs.rs/internet2/0.9.0/internet2/presentation/sphinx/index.html&amp;gt&#34;&gt;https://docs.rs/internet2/0.9.0/internet2/presentation/sphinx/index.html&amp;gt&lt;/a&gt;;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; In trying to figure out how it works, I also noticed that&lt;br/&gt;&amp;gt; I couldn&amp;#39;t find either unit tests or integration tests---indeed several&lt;br/&gt;&amp;gt; of your applications seem to almost entirely lack the string &amp;#34;test&amp;#34;.&lt;br/&gt;&amp;gt; For example, here are LNP-node and RGB-node compared to the four LN&lt;br/&gt;&amp;gt; implementations I regularly monitor:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; /tmp/rgb-node$ git grep -i &amp;#39;\&amp;lt;test\&amp;gt;&amp;#39; | wc -l&lt;br/&gt;&amp;gt; 7&lt;br/&gt;&lt;br/&gt;RGB Node is not a part of the current RGB release -- starting from &lt;br/&gt;v0.10 RGB do not require a background service. The node is still useful&lt;br/&gt;in server-side environments - but 100% of mobile and most of desktop&lt;br/&gt;users and wallet devs would never need to touch it; thus the update&lt;br/&gt;of the node to v0.10 will come later. Anyway, there is no reason of&lt;br/&gt;doing its extensive test coverage since it its role to be a wrapper&lt;br/&gt;around RGB libraries (existing in other repositories) which contain&lt;br/&gt;100% of RGB consensus and applied business logic. Node just manages&lt;br/&gt;threads and file I/O - not the stuff which is test-covered first of &lt;br/&gt;all (and even for that task it uses others of our libraries with a &lt;br/&gt;like io-react, used in other high-load projects. (BTW pls pay &lt;br/&gt;attention to how such libs are documented:&lt;br/&gt;&amp;lt;&lt;a href=&#34;https://docs.rs/io-reactor/0.1.2/reactor/&amp;gt&#34;&gt;https://docs.rs/io-reactor/0.1.2/reactor/&amp;gt&lt;/a&gt;;).&lt;br/&gt;&lt;br/&gt;The real RGB code is here, as it is clearly stated in the Github:&lt;br/&gt;* consensus-level &lt;br/&gt;  - &amp;lt;github.com/RGB-WG/rgb-core&amp;gt;&lt;br/&gt;  - &amp;lt;github.com/BP-WG/bp-core&amp;gt;&lt;br/&gt;  - &amp;lt;github.com/LNP-BP/client_side_validation&amp;gt;&lt;br/&gt;* integration libraries - &amp;lt;github.com/RGB-WG/rgb-wallet&amp;gt;&lt;br/&gt;&lt;br/&gt;With the update to v0.10 a lot of code was changed, so most of tests&lt;br/&gt;got outdated and were thrown out. Yes, we need more time and&lt;br/&gt;effort to re-do them -- but even taking that into the account,&lt;br/&gt;the core of RGB is covered to much greater extent than the estimations&lt;br/&gt;you have provided:&lt;br/&gt;* client-side-validation library - 80%: &lt;br/&gt;  &amp;lt;&lt;a href=&#34;https://app.codecov.io/gh/LNP-BP/client_side_validation&amp;gt&#34;&gt;https://app.codecov.io/gh/LNP-BP/client_side_validation&amp;gt&lt;/a&gt;;&lt;br/&gt;* RGB Core - ~25% (due to significant re-write in v0.10)&lt;br/&gt;  &amp;lt;&lt;a href=&#34;https://app.codecov.io/gh/RGB-WG/rgb-core&amp;gt&#34;&gt;https://app.codecov.io/gh/RGB-WG/rgb-core&amp;gt&lt;/a&gt;;&lt;br/&gt;&lt;br/&gt;Finally, the most of code coverage happens due to the used&lt;br/&gt;strict types system [4], which does compilation-type verification&lt;br/&gt;of all data serialization, deserialization and semantic type system.&lt;br/&gt;I.e. with its taken into account, the actual code coverage exceeds&lt;br/&gt;2/3 (&amp;gt;60%). I provide more explanations at the end of the letter.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; /tmp/lnp-node$ git grep -i &amp;#39;\&amp;lt;test\&amp;gt;&amp;#39; | wc -l&lt;br/&gt;&amp;gt; 4&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ~/repos/rust-lightning$ git grep -i &amp;#39;\&amp;lt;test\&amp;gt;&amp;#39; | wc -l&lt;br/&gt;&amp;gt; 2008&lt;br/&gt;&amp;gt; ~/repos/cln$ git grep -i &amp;#39;\&amp;lt;test\&amp;gt;&amp;#39; | wc -l&lt;br/&gt;&amp;gt; 1459&lt;br/&gt;&amp;gt; ~/repos/lnd$ git grep -i &amp;#39;\&amp;lt;test\&amp;gt;&amp;#39; | wc -l&lt;br/&gt;&amp;gt; 3547&lt;br/&gt;&amp;gt; ~/repos/eclair$ git grep -i &amp;#39;\&amp;lt;test\&amp;gt;&amp;#39; | wc -l&lt;br/&gt;&amp;gt; 2576&lt;br/&gt;&lt;br/&gt;Well, that&amp;#39;s a strange way to estimate the code coverage by counting&lt;br/&gt;lines with the word &amp;#34;test&amp;#34;. I usually use code coverage reports, like&lt;br/&gt;those coming from codecov.com -- since neither count of unit tests nor&lt;br/&gt;code lines in them are a valid metric to see how the code is&lt;br/&gt;test-covered.&lt;br/&gt;&lt;br/&gt;Unlike all those implementations, the node repository doesn&amp;#39;t contain&lt;br/&gt;any lightning network business logic or protocols - it is just a &amp;#34;shell&amp;#34;&lt;br/&gt;providing I/O, networking and thread management, not requiring much&lt;br/&gt;testing. Instead, one should look into the actual LNP codebase&lt;br/&gt;implementing BOLT standards, which is in&lt;br/&gt;&amp;lt;&lt;a href=&#34;https://github.com/LNP-BP/lnp-core&amp;gt&#34;&gt;https://github.com/LNP-BP/lnp-core&amp;gt&lt;/a&gt;;. And as one might see from test&lt;br/&gt;coverage reports [2] it has 40% of all code covered in tests - which&lt;br/&gt;is not huge, yes, but (see next reply)...&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; I realize those are all projects by larger teams than that which works&lt;br/&gt;&amp;gt; on RGB, but a difference of three orders of magnitude is very surprising&lt;br/&gt;&amp;gt; to me. Do you have out-of-tree testing or am I missing something else?&lt;br/&gt;&lt;br/&gt;... as I pointed above, there is no &amp;#34;three orders of magnitude&amp;#34; difference&lt;br/&gt;if the comparison is done correctly. Of course mainstream implementation&lt;br/&gt;developed for more than 5 years, with millions invested by large companies/&lt;br/&gt;non-profits and full teams of devs will have more test coverage than&lt;br/&gt;an implementation created at my own personal expense - and I do not&lt;br/&gt;understand what is surprising here :) I wrote about this implementation&lt;br/&gt;to attract more interest from the community devs who may be interested&lt;br/&gt;in joining to work/use an independent lightning re-implementation with&lt;br/&gt;more open architecture allowing much larger protocol-level customizations&lt;br/&gt;than any other mainstream implementation out there.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; As your replies to previous reviewers also mentioned that they should&lt;br/&gt;&amp;gt; view your Youtube videos, I also tried that.&lt;br/&gt;&lt;br/&gt;I had never replied to previous _reviewers_ like that. For instance, the&lt;br/&gt;protocol was reviewed by Peter Todd and Federico Tenga, as well as by&lt;br/&gt;other devs from the community, and I am sure they can confirm that the&lt;br/&gt;communications were complete and I was providing all the required answers&lt;br/&gt;and comments. If you are talking about Ruben Somsen, he was never&lt;br/&gt;introduced to me as a reviewer, nor wrote to me anything other than&lt;br/&gt;several sarcastic tweets -- and I rather see him as an internet troll,&lt;br/&gt;who, notwithstanding verbal communications and explanations I&lt;br/&gt;had provided him over phone call, continues to spread miss-information &lt;br/&gt;positioning himself as &amp;#34;RGB expert&amp;#34; -- while still demonstrating absence &lt;br/&gt;of desire of reading any recent updates we had even when provided links.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; I focused on the ones&lt;br/&gt;&amp;gt; discussing LNP, as LN is something I know fairly well,&lt;br/&gt;&lt;br/&gt;But this discussion is an offtopic to RGB and this letter. I am fine to&lt;br/&gt;have it, but let&amp;#39;s move it to a separate thread.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; I skimmed them quite fast, but I couldn&amp;#39;t find any demos where you&lt;br/&gt;&amp;gt; progressed beyond using LNP to open a channel with another node. E.g.,&lt;br/&gt;&amp;gt; they seemed to stop at the same point as this demo:&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://github.com/LNP-WG/lnp-node/blob/c402decc9ff5b557a9e3d542f74e2fd6ed856742/doc/demo-alpha.4/README.md&#34;&gt;https://github.com/LNP-WG/lnp-node/blob/c402decc9ff5b557a9e3d542f74e2fd6ed856742/doc/demo-alpha.4/README.md&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The current LNP Node version is v0.9, so v0.4-alpha is extremely outdated,&lt;br/&gt;as well a doc there. For sure the doc needs an update. These are more &lt;br/&gt;recent demos of node operations, with a remote CLN node as of end of 2021:&lt;br/&gt;* &lt;a href=&#34;https://youtu.be/DoNfKLLjzsY&#34;&gt;https://youtu.be/DoNfKLLjzsY&lt;/a&gt;&lt;br/&gt;* &lt;a href=&#34;https://youtu.be/L6JlIQXbl6Y&#34;&gt;https://youtu.be/L6JlIQXbl6Y&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; My understanding of the basic goal of RGB from years ago was that it&lt;br/&gt;&amp;gt; would allow ordinary users to define new assets on Bitcoin in a way that&lt;br/&gt;&amp;gt; would allow those assets to be transferred over LN. As far as I can&lt;br/&gt;&amp;gt; tell, it doesn&amp;#39;t do that yet, not even in a way that&amp;#39;s accessible to a&lt;br/&gt;&amp;gt; power user such as myself.&lt;br/&gt;&lt;br/&gt;I do not know how to compare the power of users, but, for instance it&lt;br/&gt;was successfully demonstrated by an independent Bitfinex team using BDK&lt;br/&gt;and LDK last month on the stage of Lightning Tuscany Summit. Of course &lt;br/&gt;there yet no fancy UI all around, but absence of UI says nothing about&lt;br/&gt;technology or its readiness. In fact, several teams are working on the&lt;br/&gt;first UI apps using RGB, so this thing will change - and it is not a&lt;br/&gt;task for a non-profit protocol-level research organization, but rather&lt;br/&gt;for commercial ventures.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; Even for that original goal, there are&lt;br/&gt;&amp;gt; several problems outstanding---problems which will likely require&lt;br/&gt;&amp;gt; significant research and experimentation to overcome, e.g.[2].&lt;br/&gt;&amp;gt; Instead of tackling those problems and building upon existing wallet and&lt;br/&gt;&amp;gt; LN libraries, I see an ambitious effort at reimplementation and massive&lt;br/&gt;&amp;gt; scope creep.&lt;br/&gt;&lt;br/&gt;Sorry for not meeting your expectations about how I should use my time,&lt;br/&gt;funds and funds of those who support such developments :)&lt;br/&gt;&lt;br/&gt;The real part of the story is that 80% of the time we were working&lt;br/&gt;on solving the original scope you pointed out. It just appeared that&lt;br/&gt;there were much more hidden stones (than was expected back in 2018) &lt;br/&gt;in doing the idea of &amp;#34;assets over Lightning&amp;#34;:&lt;br/&gt;* the original single-use-seals didn&amp;#39;t worked for the world of multiple&lt;br/&gt;  assets which may co-exists, which required development of a set of&lt;br/&gt;  quite complex protocols (still being probably most complex part&lt;br/&gt;  of RGB);&lt;br/&gt;* the original pay-to-contract commitment scheme did work badly on&lt;br/&gt;  practice, being poorly inter-operable with existing lightning&lt;br/&gt;  implementations (which took a year of work on LNP node in total,&lt;br/&gt;  as I mentioned above) and leading to hard problems in wallet&lt;br/&gt;  integration and compatibility with all existing frameworks. We were&lt;br/&gt;  solving that problem until Taproot had arrived - and then we switched&lt;br/&gt;  to Taproot-based commitment scheme. It took another half of year&lt;br/&gt;  to update the whole code base - but the reward was compatibility&lt;br/&gt;  with BDK, LDK and other existing tools in the ecosystem, so your&lt;br/&gt;  comment on &amp;#34;Instead of tackling those problems and building upon&lt;br/&gt;  existing wallet and LN libraries&amp;#34; is not valid;&lt;br/&gt;* as a part of the above, I had to significantly contribute to&lt;br/&gt;  taproot implementation and maintenance of rust-bitcoin project,&lt;br/&gt;  being the most active project contributor during the course of&lt;br/&gt;  2019-2022 [3] (=&amp;#34;building upon existing wallet libraries);&lt;br/&gt;* a lot of time was spent on privacy-related improvements, since none&lt;br/&gt;  of the original authors nor sponsors had seen any value about putting&lt;br/&gt;  &amp;#34;colored coins on lightning&amp;#34; without worriyng about the privacy;&lt;br/&gt;and only after that comes some &amp;#34;fancy stuff&amp;#34;, like doing a dedicated&lt;br/&gt;virtual machine and rich data type system -- which primary features&lt;br/&gt;were not &amp;#34;Turing completeness&amp;#34; but ability of formal verification and&lt;br/&gt;compiler-time safety guarantees. For instance, the developed type&lt;br/&gt;system [4] allows not just to &amp;#34;compile&amp;#34; any rust data type into a&lt;br/&gt;smart contract, but also to prove that all data types used in &lt;br/&gt;consensus code do not mutate between releases. If bitcoin had that&lt;br/&gt;type system, there would be no &amp;#34;unnoticed&amp;#34; hardforks or risks of them&lt;br/&gt;in a future -- and I think not implementing such system in doing a&lt;br/&gt;new consensus protocol would be a poor decision. And the last, but&lt;br/&gt;not least, I do not want to be in such situation&lt;br/&gt;&amp;lt;&lt;a href=&#34;https://twitter.com/fiatjaf/status/1647976362374844416?s=61&amp;amp;t=H4U6Q30N4eanvS4GjyAt4g&amp;gt&#34;&gt;https://twitter.com/fiatjaf/status/1647976362374844416?s=61&amp;amp;t=H4U6Q30N4eanvS4GjyAt4g&amp;gt&lt;/a&gt;;&lt;br/&gt;preferring to spend a year more on a proper design instead of&lt;br/&gt;&amp;#34;shipping earlier&amp;#34;. What is acceptable for networking protocols&lt;br/&gt;can&amp;#39;t be acceptable for consensus-level protocols, which, unlike&lt;br/&gt;even blockchain consensus can&amp;#39;t have softforks.&lt;br/&gt;&lt;br/&gt;----&lt;br/&gt;&lt;br/&gt;Overall, I am quite negatively impressed with the amount of &lt;br/&gt;misinterpretations and estimates which are simply wrong - and I know&lt;br/&gt;that they are being floated around working like fake news. &lt;br/&gt;Unfortunately writing answers to such claims takes a lot of time - &lt;br/&gt;and takes it from doing other stuff like writing docs, tests or &lt;br/&gt;integrations. I understand that this letter will be read by many, &lt;br/&gt;thus I did address some of most common misconceptions. I am doing &lt;br/&gt;that on bitcoin-dev mail list, but not elsewhere, since if I were&lt;br/&gt;doing that on Twitter I would never have time for anything else.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;[1]: &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-April/021558.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-April/021558.html&lt;/a&gt;&lt;br/&gt;[2]: &lt;a href=&#34;https://app.codecov.io/gh/LNP-WG/lnp-core&#34;&gt;https://app.codecov.io/gh/LNP-WG/lnp-core&lt;/a&gt;&lt;br/&gt;[3]: &lt;a href=&#34;https://github.com/rust-bitcoin/rust-bitcoin/graphs/contributors?from=2019-01-11&amp;amp;to=2022-04-11&amp;amp;type=c&#34;&gt;https://github.com/rust-bitcoin/rust-bitcoin/graphs/contributors?from=2019-01-11&amp;amp;to=2022-04-11&amp;amp;type=c&lt;/a&gt;&lt;br/&gt;[4]: &lt;a href=&#34;https://www.strict-types.org&#34;&gt;https://www.strict-types.org&lt;/a&gt;
    </content>
    <updated>2023-06-08T01:20:27&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2tma0adf82s8zsa7v5kf30zpagg6v4yu2w2fe7wvan065cnr8fgszyr5a7tr9dp6q5m0ne6vnanxcyndethqndgxzgy9789lzlwuzyu8qu4yh4ye</id>
    
      <title type="html">📅 Original date posted:2023-04-10 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2tma0adf82s8zsa7v5kf30zpagg6v4yu2w2fe7wvan065cnr8fgszyr5a7tr9dp6q5m0ne6vnanxcyndethqndgxzgy9789lzlwuzyu8qu4yh4ye" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsp034c364t6f7335qdtlvjcwvsp0gjxw9zeqgzc3ycx6r2wsznr6s7a2z63&#39;&gt;nevent1q…2z63&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-04-10&lt;br/&gt;🗒️ Summary of this message: RGB v0.10, supported by LNP/BP Standards Association and several bitcoin companies, brings smart contract support to Bitcoin and Lightning after four years of development.&lt;br/&gt;📝 Original message:TL;DR&lt;br/&gt;-----&lt;br/&gt;&lt;br/&gt;LNP/BP Standards Association &amp;lt;&lt;a href=&#34;https://www.lnp-bp.org&amp;gt&#34;&gt;https://www.lnp-bp.org&amp;gt&lt;/a&gt;;, supported by Fulgur&lt;br/&gt;Ventures, Bitfinex, Hojo Foundation, Pandora Prime, and DIBA, is happy to&lt;br/&gt;announce the release of RGB v0.10 - the next significant milestone in the RGB&lt;br/&gt;protocol &amp;lt;&lt;a href=&#34;https://rgb.tech&amp;gt&#34;&gt;https://rgb.tech&amp;gt&lt;/a&gt;; which brings full support of smart contracts to&lt;br/&gt;Bitcoin and Lightning. This is the result of a great cross-industry long-term&lt;br/&gt;collaboration between these bitcoin companies and more than four years of&lt;br/&gt;extensive development work.&lt;br/&gt;&lt;br/&gt;RGB v0.10 can be downloaded and installed as described on &amp;lt;&lt;a href=&#34;https://rgb.tech&amp;gt&#34;&gt;https://rgb.tech&amp;gt&lt;/a&gt;;&lt;br/&gt;website, which also contains a number of user and developer guidelines.&lt;br/&gt;RGB source code can be found on &amp;lt;&lt;a href=&#34;https://github.com/RGB-WG&amp;gt&#34;&gt;https://github.com/RGB-WG&amp;gt&lt;/a&gt;;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Background of RGB&lt;br/&gt;-----------------&lt;br/&gt;&lt;br/&gt;Some of you might remember the announcement of RGB protocol idea back in&lt;br/&gt;2018 [1]: it was an idea of “colored coins” over Lightning by Giacomo&lt;br/&gt;Zucco, based on new concepts developed by Peter Todd - client-side-validation&lt;br/&gt;and single-use-seals.&lt;br/&gt;&lt;br/&gt;In 2019 me (Maxim Orlovsky) and Giacomo Zucco formed the LNP/BP Standard&lt;br/&gt;Association, aiming to bring RGB from the concept to production. The initiative&lt;br/&gt;was supported by Bitfinex and Fulgur Ventures. My goal with RGB was not just to&lt;br/&gt;enable assets on Lightning, but that of a much larger scope: to build a&lt;br/&gt;programmability layer for Bitcoin and Lightning, which may unlock other cases&lt;br/&gt;than just tokens - DAOs, decentralized identities and other things that&lt;br/&gt;bitcoin itself was lacking. This took much longer than was expected, and both&lt;br/&gt;myself and the LNP/BP Standards Association had gone through very turbulent&lt;br/&gt;times on this road, relying on self-financing for more than a year...&lt;br/&gt;&lt;br/&gt;Nevertheless, in 2021 we were able to present both RGB powered with a&lt;br/&gt;Turing-complete virtual machine (AluVM) [2] and RGB had became operational on&lt;br/&gt;Lightning Network [3] using the LNP Node - a complete rust re-implementation of&lt;br/&gt;the Lightning protocol made by me at the Association [4]. Those who are&lt;br/&gt;interested in the history of RGB development and our past releases may refer&lt;br/&gt;to it graphical representation [5] - or navigate through years of videos and&lt;br/&gt;demos on our YouTube channel &amp;lt;&lt;a href=&#34;https://www.youtube.com/@LNPBP/videos&amp;gt&#34;&gt;https://www.youtube.com/@LNPBP/videos&amp;gt&lt;/a&gt;;.&lt;br/&gt;&lt;br/&gt;Despite 4 years of active development, weekly community calls, talks on&lt;br/&gt;all mainstream bitcoin-only evens and conferences, the awareness about RGB&lt;br/&gt;in the bitcoin community is still very small - and some bitcoin media put&lt;br/&gt;as a requirement for us to submit information about RGB to the bitcoin-dev mail&lt;br/&gt;list, so that they could see the new technology that has been developed -&lt;br/&gt;so here we are.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;RGB v0.10&lt;br/&gt;---------&lt;br/&gt;&lt;br/&gt;Today we’d like to announce the next main milestone: **release of RGB v0.10**,&lt;br/&gt;which includes consensus layer, standard library (used by wallets/exchanges&lt;br/&gt;for integration) and a command-line tool.&lt;br/&gt;&lt;br/&gt;v0.10 release is a major milestone which brings RGB further to being a&lt;br/&gt;production-ready system. It introduces the last consensus-breaking changes,&lt;br/&gt;aiming at keeping future RGB versions fully backward-compatible. It also unlocks&lt;br/&gt;the last features that were required for implementing fully-functional smart&lt;br/&gt;contracts which may be arbitrary customized by contract developers.&lt;br/&gt;&lt;br/&gt;This release brings the support of the following features to RGB:&lt;br/&gt;&lt;br/&gt;- ### Global state in RGB contracts&lt;br/&gt;  Now each RGB contract has a global state accessible by a virtual machine&lt;br/&gt;  and clients (wallets etc).&lt;br/&gt;&lt;br/&gt;- ### Contract interfaces&lt;br/&gt;  Interfaces, introduced in this version, represent a standard way of&lt;br/&gt;  communicating a diverse range of smart contracts through well-defined APIs.&lt;br/&gt;  Interfaces can be compared to contract ABIs and ERCs in Ethereum world,&lt;br/&gt;  however, unlike in Ethereum, they require neither obligatory standardization&lt;br/&gt;  (as ERCs) nor separate distribution, being always packed together with&lt;br/&gt;  contracts. By using interfaces, wallets and other software can provide a&lt;br/&gt;  semantic-aware UI for the users for working with the contracts - and contract&lt;br/&gt;  developers may add more interfaces to their existing contracts over time&lt;br/&gt;  without the need to update the immutable contract itself.&lt;br/&gt;&lt;br/&gt;- ### Strict type system&lt;br/&gt;  Strict types is a new functional data type system with provable&lt;br/&gt;  properties used for the RGB contract state representation and introspection.&lt;br/&gt;  It allows compile-time guarantees on the size of any data, simplifying RGB&lt;br/&gt;  operations on low-end and limited-memory devices like hardware wallets.&lt;br/&gt;  The whole RGB consensus layer is now compiled into strict types, which&lt;br/&gt;  allows formal proofs of the binary compatibility between releases (the&lt;br/&gt;  feature which might have been very useful for bitcoin consensus if it existed&lt;br/&gt;  back in the days of Satoshi). You can learn more about strict types on&lt;br/&gt;  &amp;lt;&lt;a href=&#34;https://www.strict-types.org&amp;gt&#34;&gt;https://www.strict-types.org&amp;gt&lt;/a&gt;;&lt;br/&gt;&lt;br/&gt;- ### Contracts in Rust&lt;br/&gt;  Writing and compiling an RGB smart contracts in Rust. Thanks to the strict&lt;br/&gt;  types, it is also possible to compile rust data types right into RGB&lt;br/&gt;  contracts.&lt;br/&gt;&lt;br/&gt;- ### State introspection&lt;br/&gt;  Contracts can introspect their own state in the validation code used by the&lt;br/&gt;  virtual machine, which unlocks the way for writing complex forms of contracts&lt;br/&gt;  working with bitcoin transactions, DLCs and other complex data.&lt;br/&gt;&lt;br/&gt;- ### URL-based invoice format&lt;br/&gt;  Previously RGB was using Bech32m-encoded invoices, which were very long,&lt;br/&gt;  not human-readable and couldn&amp;#39;t be automatically opened with most of the&lt;br/&gt;  software. The new format is much shorter, easier to verify by the user and&lt;br/&gt;  can be opened automatically as a link with a preconfigured software.&lt;br/&gt;&lt;br/&gt;- ### WASM support&lt;br/&gt;  RGB standard library can run without I/O and file system access,&lt;br/&gt;  i.e. can operate inside a web page or a browser plugin.&lt;br/&gt;&lt;br/&gt;- ### Tapret descriptors and custom derivation&lt;br/&gt;  RGB uses taproot-based OP_RETURN commitments (in short - tapret), which&lt;br/&gt;  require support on the descriptor level such that wallets could see the&lt;br/&gt;  transactions with tweaked outputs as those belonging to the wallet descriptor.&lt;br/&gt;  New version also introduces custom derivation indexes that prevent non-RGB&lt;br/&gt;  wallets from accidentally spending outputs with RGB assets (and thus -&lt;br/&gt;  destroying assets).&lt;br/&gt;&lt;br/&gt;- ### Simplified dependencies&lt;br/&gt;  RGB consensus layer is being shipped with fewer dependencies, improving the&lt;br/&gt;  stability of API. We have abandoned the dependency on custom bulletproofs&lt;br/&gt;  implementation from Grin projects. We also do not use rust-bitcoin and&lt;br/&gt;  rust-miniscript due to their overall API instability and recently discovered&lt;br/&gt;  bugs; since RGB uses a very small subset of bitcoin functionality it is now&lt;br/&gt;  implemented as a part of the library with no assumptions about bitcoin&lt;br/&gt;  consensus layer (like those which halted rust-bitcoin powered software when&lt;br/&gt;  Burak&amp;#39;s hack had happened last year).&lt;br/&gt;&lt;br/&gt;- ### Simplified integration&lt;br/&gt;  Many operations that previously required multiple API calls, as well as&lt;br/&gt;  cross-language encoding of complex data structures now work with a&lt;br/&gt;  single API call. RGB contract state is represented as a JSON object and&lt;br/&gt;  can be serialized across different languages without a hassle.&lt;br/&gt;&lt;br/&gt;- ### Simplified UX&lt;br/&gt;  Previously, to use RGB, a wallet or a user had to run the RGB Node, interface&lt;br/&gt;  it through RPC (or cli tool) - and use a number of other libs and command-line&lt;br/&gt;  tools to perform most of the operations on PSBTs etc. With the new release&lt;br/&gt;  this complex stack was replaced by a single library API and a command-line&lt;br/&gt;  tool `rgb`, which operate like a swiss knife for RGB user (and it can be&lt;br/&gt;  compared to the way `git` works). RGB Node still can be run by users on their&lt;br/&gt;  home servers, but is not obligatory for using RGB anymore.&lt;br/&gt;&lt;br/&gt;### Migration notes&lt;br/&gt;&lt;br/&gt;There is no migration from contracts issued on RGB v0.9 to the future versions.&lt;br/&gt;All assets have to be re-issued; asset holders can contact asset issuers to&lt;br/&gt;provide them with a newly re-issued contracts and assets matching the assets&lt;br/&gt;from v0.9.&lt;br/&gt;&lt;br/&gt;RGB v0.10 can be downloaded and installed as described on [&lt;a href=&#34;https://rgb.tech&#34;&gt;https://rgb.tech&lt;/a&gt;]&lt;br/&gt;(&lt;a href=&#34;https://rgb.tech&#34;&gt;https://rgb.tech&lt;/a&gt;) website, which also contains a number of user and&lt;br/&gt;developer guidelines. RGB source code can be found on &lt;a href=&#34;https://github.com/RGB-WG&#34;&gt;https://github.com/RGB-WG&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Roadmap after v0.10&lt;br/&gt;-------------------&lt;br/&gt;&lt;br/&gt;With this release the future development of the core RGB technology (at in its&lt;br/&gt;consensus layer) becomes gradually ossified, as the cases of&lt;br/&gt;client-side-validated systems upgrades are more complex to coordinate than&lt;br/&gt;those of blockchain layer 1. Also, the normal understanding of soft-forks and&lt;br/&gt;hard-forks do not apply to upgrades in layer 2 and 3. So we found a way&lt;br/&gt;for backwards-compatible upgrades, which we call “fast-forwards”, where users&lt;br/&gt;keep their assets issued under the older versions that can always operate and be&lt;br/&gt;accepted by the users of any other future version. However, the users of a newer&lt;br/&gt;version will be restricted in transferring their assets only to the users of the&lt;br/&gt;same or more recent version (but they can always ask recipients to upgrade their&lt;br/&gt;software). We have a number of features planned for the future fast-forwards:&lt;br/&gt;&lt;br/&gt;- full support of bitcoin layer 1 and channel state introspection;&lt;br/&gt;- inter-contract interaction;&lt;br/&gt;- bulletproofs&#43;&#43; support;&lt;br/&gt;- zero-knowledge-based optimizations of the client-side-validated history.&lt;br/&gt;&lt;br/&gt;We&amp;#39;re also working on the design of a layer 1 which will be perfect for the&lt;br/&gt;client-side-validated applications (“how to design a blockchain today if we&lt;br/&gt;knew about client-side-validation/single-use-seals”). This should be very&lt;br/&gt;compact (order of one signature per block) ultra-scalable (theoretically&lt;br/&gt;unlimited no of tx in a block) chain which can run systems like RGB - with&lt;br/&gt;Bitcoin UTXO set migrated into RGB operating on both bitcoin blockchain and&lt;br/&gt;this new chain (we code-name it “sigchain”). However, these are quite early&lt;br/&gt;developments with a number of unsolved tradeoffs and challenges; if there is&lt;br/&gt;an interest on this topic here we can start a different discussion thread&lt;br/&gt;on the matter.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Software and integrations&lt;br/&gt;-------------------------&lt;br/&gt;&lt;br/&gt;Companies, which are a part of the LNP/BP Standards Association, as well&lt;br/&gt;as other independent vendors are already working on upgrading their software&lt;br/&gt;to v0.10. This includes (but not limited to):&lt;br/&gt;&lt;br/&gt;- MyCitadel wallet (iOS, Desktop)&lt;br/&gt;- Iris wallet (Android) from RGB team inside Bitfinex&lt;br/&gt;- BitMask (Web browser plugin) from DIBA&lt;br/&gt;- LNP Node with RGB support - lightning node from the LNP/BP Standards Association&lt;br/&gt;- RGBEx.io - website listing RGB assets and contracts,&lt;br/&gt;  using pseudonymous credentials (public key &#43; signatures)&lt;br/&gt;- RGB Tools library - SDK based on BitcoinDevKit for RGB wallet integration&lt;br/&gt;- LightningDevKit with RGB support - again by RGB team in Bitfinex&lt;br/&gt;- Core Lightning RGB plugin&lt;br/&gt;&lt;br/&gt;LNP/BP Standards Association will focus its further development activity&lt;br/&gt;around these three areas:&lt;br/&gt;&lt;br/&gt;- Completing RGB documentation, specification and helping public audits of the&lt;br/&gt;  technology. Right now we have a nearly-complete RGB whitepaper [6] a codified&lt;br/&gt;  standards [7]&lt;br/&gt;- Lightning network support for complex RGB smart contracts - the thing we name&lt;br/&gt;  #BiFi (Bitcoin finance) [8]. It includes further development of Storm -&lt;br/&gt;  a decentralized data storage &amp;amp; messaging network on top of Lightning, that we&lt;br/&gt;  presented last year.&lt;br/&gt;- RGB toolchain, which includes a new high-level functional smart contracting&lt;br/&gt;  language called Contractum (&amp;lt;&lt;a href=&#34;https://www.contractum.org&amp;gt&#34;&gt;https://www.contractum.org&amp;gt&lt;/a&gt;;) and other tools&lt;br/&gt;  which will simplify the life of RGB devs.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Sources of information&lt;br/&gt;----------------------&lt;br/&gt;&lt;br/&gt;We have already witnessed some actors distributing misinformation about&lt;br/&gt;non-existing products released with/on RGB even before the official releases of&lt;br/&gt;some RGB components happened. Thus, we advise all media people to always check&lt;br/&gt;the official sources before publishing information about the RGB protocol.&lt;br/&gt;&lt;br/&gt;All releases and major things are being announced on:&lt;br/&gt;* Official website of the protocol &amp;lt;&lt;a href=&#34;https://rgb.tech&amp;gt&#34;&gt;https://rgb.tech&amp;gt&lt;/a&gt;;,&lt;br/&gt;  community &amp;lt;&lt;a href=&#34;https://rgbfaq.com&amp;gt&#34;&gt;https://rgbfaq.com&amp;gt&lt;/a&gt;; and LNP/BP Standards Association&lt;br/&gt;  &amp;lt;&lt;a href=&#34;https://lnp-bp.org&amp;gt&#34;&gt;https://lnp-bp.org&amp;gt&lt;/a&gt;;.&lt;br/&gt;* Twitter of the Association: &amp;lt;&lt;a href=&#34;https://twitter.com/lnp_bp&amp;gt&#34;&gt;https://twitter.com/lnp_bp&amp;gt&lt;/a&gt;;&lt;br/&gt;* Community telegram channel: &amp;lt;&lt;a href=&#34;https://t.me/rgbtelegram&amp;gt&#34;&gt;https://t.me/rgbtelegram&amp;gt&lt;/a&gt;;&lt;br/&gt;&lt;br/&gt;Other websites are not in control of the RGB protocol developers and are not&lt;br/&gt;open-source and should not be considered to be trusted sources of information.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-------------------------&lt;br/&gt;Maxim Orlovsky&lt;br/&gt;Mail: orlovsky [at] lnp-bp.org&lt;br/&gt;Github: &lt;a href=&#34;https://github.com/dr-orlovsky&#34;&gt;https://github.com/dr-orlovsky&lt;/a&gt;&lt;br/&gt;Twitter: &lt;a href=&#34;https://twitter.com/dr_orlovsky&#34;&gt;https://twitter.com/dr_orlovsky&lt;/a&gt;&lt;br/&gt;PGP: EAE7 30CE C0C6 6376 3F02 8A58 6009 4BAF 18A2 6EC9&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;[1]: &lt;a href=&#34;https://www.youtube.com/watch?v=xHWxtmgQP94&#34;&gt;https://www.youtube.com/watch?v=xHWxtmgQP94&lt;/a&gt;&lt;br/&gt;[2]: &lt;a href=&#34;https://www.youtube.com/watch?v=Mma0oyiVbSE&#34;&gt;https://www.youtube.com/watch?v=Mma0oyiVbSE&lt;/a&gt;&lt;br/&gt;[3]: &lt;a href=&#34;https://www.youtube.com/watch?v=6Svmh0OQVf4&#34;&gt;https://www.youtube.com/watch?v=6Svmh0OQVf4&lt;/a&gt;&lt;br/&gt;[4]: &lt;a href=&#34;https://github.com/LNP-WG/lnp-node&#34;&gt;https://github.com/LNP-WG/lnp-node&lt;/a&gt;&lt;br/&gt;[5]: &lt;a href=&#34;https://twitter.com/dr_orlovsky/status/1640833926456307714/photo/1&#34;&gt;https://twitter.com/dr_orlovsky/status/1640833926456307714/photo/1&lt;/a&gt;&lt;br/&gt;[6]: &lt;a href=&#34;https://blackpaper.rgb.tech&#34;&gt;https://blackpaper.rgb.tech&lt;/a&gt;&lt;br/&gt;[7]: &lt;a href=&#34;https://standards.lnp-bp.org&#34;&gt;https://standards.lnp-bp.org&lt;/a&gt;&lt;br/&gt;[8]: &lt;a href=&#34;https://www.youtube.com/watch?v=DtkTE6m0zio_&#34;&gt;https://www.youtube.com/watch?v=DtkTE6m0zio_&lt;/a&gt;
    </content>
    <updated>2023-06-08T01:20:24&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqszvyd7fdjaxdh53pwxr97qmtzjkdqr2y9pfuw5j8uyk7wszylesfgzyr5a7tr9dp6q5m0ne6vnanxcyndethqndgxzgy9789lzlwuzyu8qug6fpjq</id>
    
      <title type="html">📅 Original date posted:2021-02-11 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqszvyd7fdjaxdh53pwxr97qmtzjkdqr2y9pfuw5j8uyk7wszylesfgzyr5a7tr9dp6q5m0ne6vnanxcyndethqndgxzgy9789lzlwuzyu8qug6fpjq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstymk973fhsydts3z70g8p3v0ez5f7da7tfa5x7pj3ledcd83aywgxfekm3&#39;&gt;nevent1q…ekm3&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2021-02-11&lt;br/&gt;📝 Original message:Hi Dmitry,&lt;br/&gt;&lt;br/&gt;Thank you very much for readying and analyzing my proposal!&lt;br/&gt;&lt;br/&gt;&amp;gt;&amp;gt; Testnet path is unhardened from this point &amp;amp; till the end of the&lt;br/&gt;&amp;gt;&amp;gt; derivation path: no need to prevent private key leak there,&lt;br/&gt;&amp;gt;&amp;gt; simplifies test software (hardened paths require private key access&lt;br/&gt;&amp;gt;&amp;gt; for derivation).&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I believe this will reduce robustness and will add complexity to the&lt;br/&gt;&amp;gt; test software instead. If the derivation path is hardened in &amp;#39;production&lt;br/&gt;&amp;gt; code&amp;#39; and is unhardened in &amp;#39;test code&amp;#39;, then: code paths that depend on&lt;br/&gt;&amp;gt; hardened derivation may not be tested; there will be unnecessary&lt;br/&gt;&amp;gt; code that will need to deal with &amp;#39;un-hardening&amp;#39; the paths for test code.&lt;br/&gt;&amp;lt;...&amp;gt;&lt;br/&gt;&amp;gt; It is OK to require privkey access to hardened paths in test&lt;br/&gt;&amp;gt; software, because the same behaviour is expected in &amp;#39;production’.&lt;br/&gt;&lt;br/&gt;You are right, agree&lt;br/&gt;&lt;br/&gt;&amp;gt; It is much more robust to just change the &amp;#39;purpose&amp;#39; part of the path,&lt;br/&gt;&amp;gt; and leave the rest unchanged.&lt;br/&gt;&lt;br/&gt;Not sure whether the purpose is the correct place to indicate testnet: in this case it we will have to support one testnet per each blockchain type (which is not the case). So probably we should reserve a single dedicated value for any testnet withing ``blockchain` field using hardened path as you suggested - for instance, 0xFFFFFFFF may do the job.&lt;br/&gt;&lt;br/&gt;Kind regards,&lt;br/&gt;Maxim
    </content>
    <updated>2023-06-07T20:28:27&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxlw7trn2ejwcgvpxrw5xr4p0k8r008l59gdg5xh0etpaqemwktsqzyr5a7tr9dp6q5m0ne6vnanxcyndethqndgxzgy9789lzlwuzyu8qutg6hvs</id>
    
      <title type="html">📅 Original date posted:2021-02-05 📝 Original message:Hi, ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxlw7trn2ejwcgvpxrw5xr4p0k8r008l59gdg5xh0etpaqemwktsqzyr5a7tr9dp6q5m0ne6vnanxcyndethqndgxzgy9789lzlwuzyu8qutg6hvs" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsd9j9ktm76aeelt30avtlyhy2afl8hrqnhm74hj50n5xauzgkyqnsqd82ae&#39;&gt;nevent1q…82ae&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2021-02-05&lt;br/&gt;📝 Original message:Hi,&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Background&lt;br/&gt;==========&lt;br/&gt;&lt;br/&gt;Had a discussion last night in Bitcoin Core IRC with Peter Wuille on different topics regarding key derivations, security, key tweaks in context of Schnorr signatures &amp;amp; Taproot. Would like to share some action points and plans that emerged from there:&lt;br/&gt;&lt;br/&gt;1. There is a real need for BIP-43 based new BIP with a new purpose field for keys used in Schnorr signatures. Peter will not do it (he is not very much interested in spending his time on wallet-level stuff), so someone else should.&lt;br/&gt;&lt;br/&gt;2. Keys used in Schnorr signatures MUST NEVER BE used in ECDSA signatures, otherwise there is a risk of private key leak via correlation attack. This is rationale behind N1.&lt;br/&gt;&lt;br/&gt;3. The other need (not discussed with Peter) is to change the general structure of derivation path used before with BIP-44, 45, 84. This change is required to enable the use of all modern wallet use cases under a single standard: single-sigs &amp;amp; multi-sigs, ECDSA &amp;amp; BIP340 signatures.&lt;br/&gt;&lt;br/&gt;4. Embedding multisig support in a hierarchical format requires introduction of a “signer id” concept as a part of the derivation path. I found a way how this can be done seamlessly, leading to emergence of decentralized identity as a side effect.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Proposal&lt;br/&gt;========&lt;br/&gt;&lt;br/&gt;Derivation path structure &amp;amp; purpose values&lt;br/&gt;------------------------------------------&lt;br/&gt;&lt;br/&gt;The new format for the hierarchical derivation BIP32 path is the following:&lt;br/&gt;&lt;br/&gt;	m/purpose’/blockchain’/identity’/scope&amp;#39;/case/index&lt;br/&gt;&lt;br/&gt;**Purpose:**&lt;br/&gt;BIP-43 purpose values under the proposal:&lt;br/&gt;- 340’ for BIP340 signatures&lt;br/&gt;- ???’ for old-style ECDSA signatures (??? will be set to the BIP number of this standard once it gets assigned)&lt;br/&gt;Thus, purpose will be used to signify the type of the signature.&lt;br/&gt;NB: purpose MUST be hardened since otherwise a key leak may occur.&lt;br/&gt;&lt;br/&gt;**Blockchain:**&lt;br/&gt;was not there before, but now we should have it:&lt;br/&gt;- to prevent key reuse across blockchains &amp;amp; combined inter-chain analysis&lt;br/&gt;- to get rid of using custom xpub prefixes (like SLIP-132) which are very unwelcomed by the community and are unnecessary since we have descriptors.&lt;br/&gt;&lt;br/&gt;Testnet path `1` covers all testnets (no problem with key re-use for valueless testnet or inter-testnet chainanalysis) - this follows the logic of recent changes in other standards related to testnet (use the same Bech32 prefixes for all testnets).&lt;br/&gt;&lt;br/&gt;Testnet path is unhardened from this point &amp;amp; till the end of the derivation path: no need to prevent private key leak there, simplifies test software (hardened paths require private key access for derivation).&lt;br/&gt;&lt;br/&gt;Devs are free to choose other unhardened number if they need, without changing the standard - unhardened numbers will never be used for chains with real value.&lt;br/&gt;&lt;br/&gt;**Identity and scope**&lt;br/&gt;Hardened components signify the main identity (decentralized id) and the scope under that id used in context of specific multisig wallet or other identity case. Scope is required to use the same id with different peers without exposing the main identity xpub (and, thus, the scope must be hardened as well).&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;**Case**&lt;br/&gt;This is the same as a “change” field before (under BIP44 etc), however it is proposed to change the name to denote that the field may have other values and is used for signalling support for some custom features (for instance, pay-to-contract or sign-to-contract schemes, which may be used for client-side validation like in RGB protocol etc).&lt;br/&gt;&lt;br/&gt;**Index**&lt;br/&gt;Sequentially increased index like in BIP44&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Identity basics&lt;br/&gt;---------------&lt;br/&gt;&lt;br/&gt;**Identity index** SHOULD be a random number within BIP32 hardened index range.&lt;br/&gt;&lt;br/&gt;Rationale: derivation path may be kept public (see decentralized logins below), and use of sequential numbers will leak information of how many identities are used by some person.&lt;br/&gt;&lt;br/&gt;**(Identity) scope index**: depending on whether revocation is enabled:&lt;br/&gt;- if revocation is not enabled, or before the first revocation, it SHOULD be any random hardened number&lt;br/&gt;- otherwise, it must be a number provided during the revocation procedure for the previous scope&lt;br/&gt;&lt;br/&gt;Rationale for identity scope: it is required for an identity to be safely usable under multiple multisig wallets/descriptors without exposure of the identity xpub to unrelated parties. Its introduction also allows to use the keys derived under the same identity index as a universal decentralized identity (see details below) without the risk of correlation analyses; especially when they are used outside of the transaction context (for instance as a part of login) without the risk of chain analysis against such data (linking logins to onchain transactions). &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Identity representations&lt;br/&gt;------------------------&lt;br/&gt;&lt;br/&gt;The XpubIdentifier created with extended public key under BIP32 derivation path ending at the level of the identity index is called **bitcoin decentralized id** (hereinafter simply **decentralized id**).&lt;br/&gt;&lt;br/&gt;Rationale: XpubIdentifier is a hash of the extended public key, thus id does not leak any confidential information about the user, her/his outputs or any keys used in the setup and after. As a 256-bit number it is sufficient for global unique identification; and it is created in such a way that it will always be unique for each user (based on the selection of random number), seed &amp;amp; derivation path combination; which allows each user to have multiple unique decentralized ids without any significant risk collision. These ids will be scoped to some blockchain &amp;amp; authorization scheme (based on the use of specific signature algorithm).&lt;br/&gt;&lt;br/&gt;Decentralized id can be used as a unique user login or a key for searching user metadata with different centralized or decentralized systems, which design is outside of the scope of this proposal (however there is a WIP in this regard involving client-validated LN-based smart contract system).&lt;br/&gt;&lt;br/&gt;Aside from the decentralized id, when a user needs to use the identity under some scope (i.e. creating multisig wallet or registering/signing up to some online service or an app) he should use the following string, called “decentralized login” and/or “decentralized id string&amp;#34;:&lt;br/&gt;&lt;br/&gt;	m/purpose’/blockchain&amp;#39;/identity’=[decentralized_id]/scope’=[scope_xpub]&lt;br/&gt;&lt;br/&gt;Where:&lt;br/&gt;- purpose&amp;#39;, blockchain’, identity’ and scope&amp;#39; have the meaning according to this proposal (see the proposed BIP43 derivation path structure above);&lt;br/&gt;- * decentralized_id* is the decentralized id (XpubIdentifier value at that derivation path level) encoded as BIP350 Bech32m string with HRP set ot `bcid`;&lt;br/&gt;- **scope_xpub* is the Base64-encoded xpubkey (according to BIP32) derived at that level.&lt;br/&gt;&lt;br/&gt;Rationale on the use of Bech32m encoding for XpubIdentifier&lt;br/&gt;- the standard 64-hex string can be easily confused with other 64-hex strings such as transaction ids, XpubIdentifiers, SHA256(d) hash values etc. Bech32 prefix provides context making it unambiguously parsable by software&lt;br/&gt;- Bech32m contains a checksum which makes it easier to check whether two ids are equal visually&lt;br/&gt;- `bcid` HRP is selected to signify that this particular id standard is based on bitcoin ecosystem and Secp256k1 curves.&lt;br/&gt;&lt;br/&gt;Rationale on login string: &lt;br/&gt;- decentralized login string is designed in such a way that it can both be an id backup for the id owner (providing full information necessary for deriving keys under this id or checking the value of the scoped xpub from the seed) - and give the context (blockchain and signature algo) under which this id is valid.&lt;br/&gt;- text representation of the login string is easy to check in the logs and simple to use in text-based protocols such as HTTP for authentication.&lt;br/&gt;&lt;br/&gt;NB: If the revocation protocol is supported this string MUST be suffixed with a revocation single-use-seal (see below) in form of `?txid:vout`&lt;br/&gt;&lt;br/&gt;**Examples:**&lt;br/&gt;&lt;br/&gt;Decentralized id: bcid1ncr68x65lpvpz8nqtjrchnheru2e5x9rcdf2dk (this id corresponds to XpubIdentifier 9e07a39b54f858111e605c878bcef91f159a18a3; since I do not have Bech32m at hand I have temporally used Bech32)&lt;br/&gt;&lt;br/&gt;Decentralized login: m/340’/0&amp;#39;/[bcid1ncr68x65lpvpz8nqtjrchnheru2e5x9rcdf2dk]/20721421274’=[xpub6FHa3pjLCk84BayeJxFW2SP4XRrFd1JYnxeLeU8EqN3vDfZmbqBqaGJAyiLjTAwm6ZLRQUMv1ZACTj37sR62cfN7fe5JnJ7dh8zL4fiyLHV]&lt;br/&gt;&lt;br/&gt;Decentralized login with key revocation: m/340’/0&amp;#39;/[bcid1ncr68x65lpvpz8nqtjrchnheru2e5x9rcdf2dk]/20721421274’=[xpub6FHa3pjLCk84BayeJxFW2SP4XRrFd1JYnxeLeU8EqN3vDfZmbqBqaGJAyiLjTAwm6ZLRQUMv1ZACTj37sR62cfN7fe5JnJ7dh8zL4fiyLHV]?0e94ada127fbbc6d2152b18a50fd02ea9aaa608ec20cfc606ad327da1c255201:1&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Multisig wallets with decentralized id&lt;br/&gt;--------------------------------------&lt;br/&gt;&lt;br/&gt;In case of multisig wallet creation, the parties may share their decentralized id strings in one of two forms:&lt;br/&gt;&lt;br/&gt;1. Compact, skipping the scope xpub and replacing it with 32-bit xpub fingerprint:&lt;br/&gt;    ```&lt;br/&gt;	m/purpose’/blockchain&amp;#39;/identity’=[decentralized_id]/scope’=[scope_xpub_fingerprint]&lt;br/&gt;    ```&lt;br/&gt;2. Full, as specified in the previous section&lt;br/&gt;&lt;br/&gt;This will provide all parties with a sufficient information to construct full paths with a sequentally-increased final indexes&lt;br/&gt;&lt;br/&gt;	m/purpose’/blockchain’/identity’/scope&amp;#39;/case/index&lt;br/&gt;&lt;br/&gt;for change and normal cases.&lt;br/&gt;&lt;br/&gt;The first option will allow all parties to prepare PSBTs for the common signing process; however they will not be able to generate invoices or track blockchain for new transactions. However, on the other hand, that will not leak the scoped xpub.&lt;br/&gt;&lt;br/&gt;The second option allows full features for multisig wallets, including invoice creating and onchain tracking.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Authenticating with decentralized id&lt;br/&gt;------------------------------------&lt;br/&gt;&lt;br/&gt;To authenticate (or register) a user must provide the authentification service with the following information:&lt;br/&gt;- Login string from the previous section&lt;br/&gt;- Random number within the **unhardened** BIP32 index range&lt;br/&gt;- A signature, created according to the signature algorithm specified as a part of login (ECDSA or BIP340) with the private key derived with the following derivation path:&lt;br/&gt;&lt;br/&gt;	m/purpose’/blockchain&amp;#39;/identity’/scope’/random_seed&lt;br/&gt;&lt;br/&gt;where *random_seed* is the random number from the above.&lt;br/&gt;&lt;br/&gt;This scheme is non-interactive and can be used for authentication, authorization and registration with servers or applications.&lt;br/&gt;&lt;br/&gt;Rationale:&lt;br/&gt;- random number is required for avoiding private key reuse&lt;br/&gt;- it is unhardened so the public key required for signature verification may be generated by the service from the scoped identity xpub provided as a part of the login&lt;br/&gt;- random number can’t be a challenge from the service side since it will (a) make the protocol interactive, introducing unnecessary complexity and (b) will allow malicious servers to repeat the same challenge for private key correlation analysis if BIP340 signature is used.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Identity revocations&lt;br/&gt;--------------------&lt;br/&gt;&lt;br/&gt;It will be possible to revoke identities using single-use-seals mechanics ([originally proposed by Peter Todd][1]) based on bitcoin blockchain. What&amp;#39;s important here is that this will not lead to the increase in transaction size and may be simply combined with normally happening transactions using special signature design procedure (see below).&lt;br/&gt;&lt;br/&gt;NB: Since the revocation procedure is non-trivial, it is proposed to have the first version of the standard to be published without it and add it later by using the suffix `?txid:vout` with the revocation single-use-seal added to the identity string.&lt;br/&gt;&lt;br/&gt;The protocol runs as follows:&lt;br/&gt;&lt;br/&gt;### Identity creation&lt;br/&gt;Alice, after creating a decentralized identity under this standard and its first scope, chooses some of her existing bitcoin UTXOs and uses it as a suffix for the identity/login string. It is important that:&lt;br/&gt;- the UTXO must be protected by a key from the derivation path unrelated to the used identity. &lt;br/&gt;- the UTXO should be mined at a safe depth, such that reogs would have a negligible probability.&lt;br/&gt;- should be spendable by a single signature from a private key in Alice&amp;#39;s possession.&lt;br/&gt;&lt;br/&gt;### Identity scope revocation&lt;br/&gt;If Alice needs to revoke specific scoped identity xpub (for instance, a private key leak happened) she needs to:&lt;br/&gt;1. Spend the previously specified revocation UTXO signalling about the revocation by setting two most significant bits of the random number `k` used during the signature creation to `01` value.&lt;br/&gt;2. Use the first output of the spending transaction as a new revocation UTXO.&lt;br/&gt;3. For now, she needs to use 32-byte fingerprint | 0x8000000 of the transaction as a new identity scope for future logins and key derivations under the same identity.&lt;br/&gt;&lt;br/&gt;### Full identity revocation&lt;br/&gt;Alice also has an option of completely revoking the identity without providing a new scope, which will be an equivalent of removing login or cancelling participation in a multisig wallet. To do so she just needs to set two most significant bits to `10` value instead of `01`.&lt;br/&gt;&lt;br/&gt;### Identity revocation detection&lt;br/&gt;Other parties knowing Alice&amp;#39;s identity string (her multisig co-signers under the same identity scope or services that her login information is) will know about revocation by monitoring the spending of the revocation UTXO in the blockchain and checking firts two most significant bit values in `k` value computable from the the signature in the spending input. They will be able to monitor consequent revocations using the first output from the revocation transaction as a new single-use-seal. They will also update Alice’s identity scope accordingly and will be able to verify Alice’s new signatures without any communications with her. It’s quite important that they will also be able to decline Alice&amp;#39;s login attempts with the revoked key from the moment the revocation tx got into mempool, i.e. instantly.&lt;br/&gt;&lt;br/&gt;### Spending single-use-seal without revocation&lt;br/&gt;If, because of whatever reason, Alice needs to spend the UTXO which was previously marked as a revocation UTXO without the actual revocation, she can do that by setting ‘k’ two most significant bits to `00` value. The new revocation UTXO will become assigned to the first input of that transaction, but the identity would not be revoked and the scope value will not change.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Visual summaries&lt;br/&gt;================&lt;br/&gt;&lt;br/&gt;I have prepared some visual summary covering the proposal, which may simplify its analysis:&lt;br/&gt;&lt;br/&gt;![image]( &lt;img src=&#34;https://user-images.githubusercontent.com/372034/107058405-dd645580-67d4-11eb-986f-a0211d2dd54f.png&#34;&gt; )&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;=================&lt;br/&gt;&lt;br/&gt;Hope that all make sense. Me and my colleagues spent more than a year on finding ways to build decentralized identity standard suitable for cypherpunk needs, and this is the first part of what I came up with. Since I am also engineer behind [RGB smart contracts][2] (allow complex logic on top of bitcoin transactions &amp;amp; Lightning channels using client-side-validation and single-use-seals), the proposed identity, if accepted, will be later accompanied by layer-2 and 3 solutions on top, giving user the ability to provide the identity meta-information (name, surname, emails, avatars etc) with such features as:&lt;br/&gt;- decentralized non-blockchain database &amp;amp; search engine for metadata: LN network&lt;br/&gt;- no centralized notary: I will not need to ask anyone’s permission if I’d like to change my name&lt;br/&gt;- partial meta-information disclosures: ability to selectively hide some fields&lt;br/&gt;- multiple IDs under some root ID: unlinkable, until I disclose the link myself (and I can prove that the link exists, if I need)&lt;br/&gt;- can be combined with bitcoin multisigs without confidentiality leaks: no onchain analysis is possible&lt;br/&gt;&lt;br/&gt;Since there is no need to make that part of BIPs, I narrowed this proposal down to the part which is relevant only in the context of Layer 1 stuff.&lt;br/&gt;&lt;br/&gt;——&lt;br/&gt;[1]: &lt;a href=&#34;https://building-on-bitcoin.com/docs/slides/Peter_Todd_BoB_2018.pdf&#34;&gt;https://building-on-bitcoin.com/docs/slides/Peter_Todd_BoB_2018.pdf&lt;/a&gt;&lt;br/&gt;[2]: &lt;a href=&#34;https://rgb-org.github.io/&#34;&gt;https://rgb-org.github.io/&lt;/a&gt; &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Kind regards,&lt;br/&gt;Dr Maxim Orlovsky,&lt;br/&gt;LNP/BP Standards Association (&lt;a href=&#34;https://lnp-bp.org&#34;&gt;https://lnp-bp.org&lt;/a&gt;)&lt;br/&gt;&amp;amp; Pandora Core AG&lt;br/&gt;GPG: FBDE A843 3DDC 1E69 FA90  C35E FFC0 2509 47E5 C6F7&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://github.com/dr-orlovsky&#34;&gt;https://github.com/dr-orlovsky&lt;/a&gt;&lt;br/&gt;IRC: dr-orlovsky at freenode (usually in #rust-bitcoin, #lnp-bp &amp;amp; ##taproot-activation)&lt;br/&gt;Twitter: @dr_orlovsky
    </content>
    <updated>2023-06-07T20:28:26&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsf48xc3y8z2wsu67sz6wrwtkxemy4v87n3naey9dlljkdcj5rq0kqzyr5a7tr9dp6q5m0ne6vnanxcyndethqndgxzgy9789lzlwuzyu8quu9rvez</id>
    
      <title type="html">📅 Original date posted:2019-08-19 📝 Original message:Hi, ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsf48xc3y8z2wsu67sz6wrwtkxemy4v87n3naey9dlljkdcj5rq0kqzyr5a7tr9dp6q5m0ne6vnanxcyndethqndgxzgy9789lzlwuzyu8quu9rvez" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvh49edusla3gz85vhdskzntj3zmk8s63yjg6nadf4lu5gg5ncaugun9jya&#39;&gt;nevent1q…9jya&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-08-19&lt;br/&gt;📝 Original message:Hi,&lt;br/&gt;&lt;br/&gt;I&amp;#39;d like to propose a design for distributed storage and messaging with escrow/economic incentivization leveraging LNP/BP ecosystem and working at Layer 2 and 3. It is described in details here: &lt;a href=&#34;https://github.com/storm-org/storm-spec&#34;&gt;https://github.com/storm-org/storm-spec&lt;/a&gt; [1]&lt;br/&gt;&lt;br/&gt;Briefly, it allows to construct special type of payment channels guaranteeing remote data storage and retrieval with counterparty risks mitigated by economic stimulus (stakes etc). Next, it can be combined with Lightning Network, i.e. operate completely off-chain (&amp;#34;Storm with Lightning&amp;#34; :).&lt;br/&gt;&lt;br/&gt;This proposal came as a side-effect of our joint work on RGB and single-use seals technologies (recently mentioned by Peter Todd here [2]). In the nearest future I will be busy with finalizing and implementing these protocols, but don&amp;#39;t want this idea to be missed/forgotten, since it can be very useful for other L2/L3 technologies requiring client-stored data, like guaranteeing external storage of script data for Taproot, scriptless scripts or Prometheus (technology for scalable computing [3]). So I&amp;#39;d welcome any possible comments, critics, or interest in driving Storm development forward.&lt;br/&gt;&lt;br/&gt;[1] &lt;a href=&#34;https://github.com/storm-org/storm-spec&#34;&gt;https://github.com/storm-org/storm-spec&lt;/a&gt;&lt;br/&gt;[2] &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-August/017257.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-August/017257.html&lt;/a&gt;&lt;br/&gt;[3] &lt;a href=&#34;https://github.com/pandoracore/prometheus-spec/blob/master/prometheus.pdf&#34;&gt;https://github.com/pandoracore/prometheus-spec/blob/master/prometheus.pdf&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;------&lt;br/&gt;&lt;br/&gt;Dr Maxim Orlovsky&lt;br/&gt;Pandora Core AG&lt;br/&gt;&lt;a href=&#34;https://twitter.com/dr_orlovsky&#34;&gt;https://twitter.com/dr_orlovsky&lt;/a&gt;&lt;br/&gt;&lt;a href=&#34;https://github.com/dr-orlovsky&#34;&gt;https://github.com/dr-orlovsky&lt;/a&gt;&lt;br/&gt;xorlovsky[1..]@pandoracore.com&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20190819/31c10a56/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20190819/31c10a56/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:20:20&#43;02:00</updated>
  </entry>

</feed>