BitcoinDesign
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Write
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Versions and GitHub Sync Note Insights Sharing URL Help
Menu
Options
Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Owners
  • Owners
  • Signed-in users
  • Everyone
Owners Signed-in users Everyone
Write
Owners
  • Owners
  • Signed-in users
  • Everyone
Owners Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       owned this note    owned this note      
    Published Linked with GitHub
    Subscribed
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    Subscribe
    ## Bitcoin Backups :::info Since slack often deletes history and we lose some interesting perspectives here is a record of one such thread. ::: Daniel Nordh Oct 18th at 4:02 PM Will an interoperable standard for backups supporting Lightning state ever happen? I posted a question in the LDK slack, not encouraging: ![](https://i.imgur.com/ys6IZdj.png) 15 replies Dan Gould 8 days ago why is this desirable? Stephen DeLorme 8 days ago @Dan Gould With layer 1, one can take a recovery phrase from Wallet Software A and reconstruct the same HD wallet with Wallet Software B. This is seemingly not feasible with LN wallets because each implementation backups their state differently. Dan Gould 8 days ago @Stephen DeLorme I'm not sure this is the complete picture. Recovery phrase alone is not sufficient to back up. You also need metadata and each software needs to implement the derivation technique the other used to find the money in the first place. Further, any metadata like labels is lost with recovery words only. I'm still not sure why this is desirable (edited) Stephen DeLorme 8 days ago Yes, agreed, saying “recovery phrase” alone is not sufficient. However, with the correct data (such as recovery phrase, derivation path, etc) one could take an existing HD wallet and use it with another piece of software. Layer 1 backups are more interoperable. Stephen DeLorme 8 days ago @Daniel Nordh We may need to adjust our mental model of guiding the user through “restoring” a wallet that is LN compatible. To me, it seems clear that LN wallet backups should always be restored in the same application that created the backup. If a user wants to stop using said LN wallet, then there are two paths out: Start a new LN wallet, sends all the funds from your existing wallet to the new wallet Move the funds from the old LN wallet to on-chain address (either through a sub-swap or simply closing all of the channels) Daniel Nordh 8 days ago Given that one of our principles in the guide is 'Interoperability', and that it avoids product lock in, I'd say it is very desirable. And sure, you can always send all your funds to a new wallet, so there are ways around it. But in a world where more people hold funds on Lightning in their wallet, it will also render restoring in general less feasible in another application. I had certainly operated under the impression that it would one day be possible. If that's wrong, it's good to find out sooner rather than later. :100: 1 :white_check_mark: 1 :star: 1 Hampus 8 days ago Will an interoperable standard for backups supporting Lightning state ever happen? Highly doubt that... sorry. Even for on-chain, lnd is not using the same seed format as the others (BIP32 vs Aezseed). :white_check_mark: 1 Hampus 8 days ago However for wallets using the same lightning node, I'm seeing great success for my Blixt wallet. I've had a lot of users with broken Umbrel nodes that have been able to recover their funds with Blixt. (edited) :eyes: 1 Hampus 8 days ago https://darthcoin.substack.com/p/umbrel-btcln-node-shtf-scenario Courtesy of Darthcoin. :100: :fire: 2 Stephen DeLorme 8 days ago Interesting. So from your perspective @Hampus it is feasible to restore LN state provided that the two LN nodes use the same implementation? Hampus 8 days ago @Stephen DeLorme I would say it's definitely possible, given some effort. Personally I've thinking about how to make this happen with Blixt<->Breez. But as aforementioned, not seeing cross-node interoperability happening in the foreseeable future. (edited) Stephen DeLorme 8 days ago I read through that article, and most methods want the user to use the Umbrel recovery script. I see that Blixt is the only one with a “recover node” option. Pretty cool. Hampus 8 days ago Yep as Blixt is literally running vanilla lnd, it's a pretty good and convenient choice, albiet being number 3 in the list (first option is arguably the best if the user got the command line skills for it). bosch 7 days ago Start a new LN wallet, sends all the funds from your existing wallet to the new wallet I think for now this ^ is probably the best option for switching wallets. It's not the best solution but it's also not the worst. It's still probably easier than switching to a new bank with traditional finance. But yes it would be great if there was some standardized backup that was interoperable between different implementations - it is very desirable from a UX perspective. :100: 3 Johns Beharry 27 minutes ago ./migrate.sh ldk.json > blixt.json --- ## There has also been mention about how BlueWallet will migrate custodial lightning wallets created with LNDHub to the new LDK > Hey @Nuno I'm interested to know how Bluewallet will be migrating users funds from LNDHub to the new LDK model? Johns Beharry 7 days ago How might we migrate users with funds on lndhub to their new node on device? How might we use lndhub funds to pay for LSP fees when provisioning a new on device node? Nuno 6 days ago Not completly defined yet. Johns Beharry 6 days ago @bosch was telling me about a more abstract migration pattern for sweeping funds — as blue wallet is a multi-wallet app (which i absolutely love btw) this could look like “transfers” between them (contacts may also come into play here). The idea of using the lndhub funds someone might have as a way to pay for opening a channel with bluewallets LSP also came up. ## The saga about backups continue with Christopher Allen of BlockchainCommons doing an assesment of Muun's backup bosch Today at 3:58 AM Interesting thread on issues with Muun’s recovery kit: https://twitter.com/christophera/status/1452735401207107584?s=21 Christopher AllenChristopher Allen @ChristopherA The Lightning Wallet @MuunWallet has failed my #SmartCustody test, and I am unable to recover test funds. Many fragile points: confusing & non-standard recovery process, no mnemonics, logs you out of old device before new device success, too many fragile parts, and more.:-1: … TwitterTwitter | Yesterday at 10:34 PM 8 replies bosch 5 hours ago Def something to consider with the backups page @Stephen DeLorme bosch 4 hours ago Breez and Phoenix I found recovery to be very seamless, going to test out Muun today and report back Andy R. 4 hours ago Thanks @bosch - I use Muun for some small amounts but have never tested the recovery (I know, I know). I might move my sats considering the above. bosch 4 hours ago Muun's a great wallet don't get me wrong, but I agree with the premise of having a very unique backup method can have lots of edge cases. Also makes things much less interoperable bosch 4 hours ago Phoenix is my fav :heart: :pray: 1 Christoph Ono 1 hour ago We could do a review session on recovery processes of the wallets we’ve reviewed so far? :100: 1 Christoph Ono 1 hour ago See the reply by @Nuno. https://twitter.com/nvcoelho/status/1452737459742248960?s=20 NunoNuno @nvcoelho @ChristopherA @MuunWallet I think the most impressive part is that you were just trying to recover a 2of2 multisig. There’s no lightning involved… :sweat_smile: TwitterTwitter | Yesterday at 10:42 PM Christoph Ono 1 hour ago If Allen was expecting a single-key Lightning backup process, then naturally his expectations do not match with how 2-of-2 multi-key backup works. Is it then maybe helpful if Muun provides slightly more insight into what is happening behind the scenes, so experienced users can adjust their expectations? (edited) ## Mega Thread by Stephen Hey everyone, I have been working on the Onboarding > Backing up a recovery phrase section and it’s subordinate chapters for LN :zap:️ content. Here is a rough in-progress document. This is really 3 pages, just presented in one document. https://docs.google.com/document/d/1y19VskiZcm6AXO1fVECr2ze_xTehyz4GtGs4zzheKLU/edit?usp=sharing I really needed to clarify my thinking around backing up Lightning wallets and what is needed in order to restore them, so I did a lot of research and thinking around what data is required and how that data would be used in a restore scenario. @Daniel Nordh this may be relevant to your interests. Here is a FigJam where I outline different backup and recovery scenarios: https://www.figma.com/file/9BYQVePTMMDSRwsUKxnCAn/Bitcoin-and-Lightning-Backup-and-Restore-Flows And here is a video where I discuss my thoughts about, for those who are super curious or would rather listen for 10 minutes than read. https://vimeo.com/637098615/55c5b2aaa2 FigmaFigma Bitcoin and Lightning - Backup and Restore Flows Created with FigJam (22 kB) https://www.figma.com/file/9BYQVePTMMDSRwsUKxnCAn/Bitcoin-and-Lightning-Backup-and-Restore-Flows VimeoVimeo | Stephen DeLorme Backing up Lightning wallets - design thinking :raised_hands::raised_hands::skin-tone-6: 3 :100: 3 :fire: 3 :pray::pray::skin-tone-6: 3 29 replies Pavlenex 6 days ago Nice work. LGTM. Pavlenex 6 days ago I still cannot believe how LN implementations managed to fuck up the backup part. Incredible overlook. Pavlenex 6 days ago I guess backup may include channel closing, retriving funds to the on-chain wallet and then retriving the on-chain wallet? Daniel Nordh 6 days ago It was only when I asked the question the the LDK slack that I realized that there most likely never will be a standard, and everyone seems … fine with it? Pavlenex 6 days ago I really cannot see how this can be fine, was shocked how okay everyone seem to be. Pavlenex 6 days ago I guess we can look at it from two perspectives: (As Roy from breez mentioned) Depenency Can you restore the client w/o the vendor (backup data doesn’t reside on vendor servers)? Interoperability: the ability to restore in a different application using same lightning network implementation. Cross-compatibility (or sth) - the ability to restore in an application using different LN implementation (LND to c-lightning, LND to LDK, etc (edited) Pavlenex 6 days ago The first two seem possible, but how may a user know about implementations, I guess it’s up to vendors to provide this info? Pavlenex 6 days ago @Roy maybe you have some thoughts/insights on ^ Roy 6 days ago @Pavlenex I think you're right. It's up to the vendors to document the restore process. Btw, I don't think "everyone is fine" with not having a standard. It's just that every implementation saves the information differently, and not sure having a standard is the right solution (because every implementation/vendor has different capabilities, needs, requirements etc). More likely that in time there will be conversation/export tools to enable greater interoperability (similarly to the way you switch from one db implementation to another). (edited) :pray: 1 :+1: 1 Roy 6 days ago Just FYI, in Breez we didn't want to create a dependency on the Breez node, so we offer backup to the cloud (currently Google Drive, iCloud, Nextcloud or any WebDav server). Although we're using lnd, we decided not to use SCB, but save a pruned version of the app databases. These are exportable via the developers scree and users can use any lnd node to restore the channels state. Roy 6 days ago SCB is really not an option from a UX standpoint. :100: 1 Stephen DeLorme 6 days ago Glad to see this well received. I began to feel like the meme of Charlie from Always Sunny with the board full of red string as I was assembling this. Stephen DeLorme 6 days ago I will put together a PR tomorrow and we can discuss this topic even further. Stephen DeLorme 6 days ago In the absence of an interoperable standard, it seems to me that the best thing that wallet developers can do is just illustrate how the user should remove their funds from the wallet if they choose to stop using that wallet. E.g. “you could send your funds to another LN wallet like so…“, “you can send your funds to a bitcoin address like so…“, etc. bosch 5 days ago Is SCB not an option because it closes channels when used? Compared to the pruned DB Breez uses which I presume does not? @Roy bosch 5 days ago A feature LN wallets could have is an option in the settings called 'Switch wallets' which would: Sweep all the users funds to a new wallet, preferably an LSP enabled one that auto-creates a channel so the payment can be received easily. Mutually closes the channels with the current wallet as to not lock up the wallet devs funds indefinitely. (edited) :+1: 1 Roy 5 days ago @bosch yes bosch 5 days ago Something to consider on this page is also that recovery phrases differ from LN implementation. LND uses AEZEED, Eclair uses BIP39, c-lightning uses Bitcoin core's backup method (no phrase at all). https://coldbit.com/what-types-of-mnemonic-seeds-are-used-in-bitcoin/ (edited) :+1: 1 Daniel Nordh 5 days ago @Stephen DeLorme I think you mean this / also include this when you say wallet developers should say ‘how to remove funds’, but just to make sure: can a user recover the funds WITHOUT using the application? (developer stops maintaining, no longer possible / willing to install it etc.) Christoph Ono 5 days ago Although Muun is on-chain only, I think they cover it very well with their emergency kit. There’s a “Muun” folder in my iCloud with a file called “Muun - Emergency kit.pdf”. It includes a simple step-by-step process using their recovery tool on Github, as well as advanced information (output descriptors). While other wallets state that they back things up on iCloud, I can’t actually access that information and work with it. Even if the individual backup formats differ for Lightning per wallet, I think it would be fantastic if the backup process was as clear and transparent as the one Muun has. That could cover issues with varying standards as users only need to follow simple instructions they know where to find. Christoph Ono 5 days ago The cost of sweeping should also be considered, it may be problematic for a lot of people to close and open lots of new channels. Christoph Ono 5 days ago Also, do LSPs always want channels with users who switch away from their apps? Are there benefits or disadvantages for them/users? Let’s say I start a wallet with an LSP, and it takes the role of advertising routes to my node. If I switch to another wallet that allows me to open channels manually, does this cause problems with routing? Christoph Ono 5 days ago Also, great video, thanks for sharing your thoughts. Stephen DeLorme 5 days ago can a user recover the funds WITHOUT using the application? (developer stops maintaining, no longer possible / willing to install it etc.) @Daniel Nordh My current understanding is no: users can only recover funds on LN using the same wallet. That’s why I think it is very important for developers to build in a clear exit path for their application. (There are definitely very technical ways to get around this, but nothing easy and user-friendly at the moment). Stephen DeLorme 5 days ago While Muun is primarily an on-chain wallet and not the same as a true LN wallet, I love their method of having a stand-alone recovery tool. I think it just builds confidence that they provide a clear way to get your money out of your Muun wallet. It would be cool to see more of those, especially in the Lightning space. Stephen DeLorme 5 days ago @bosch I personally don’t care for SCB because I see it as a security risk. I believe SCB is backup from when the channel was opened. It’s basically asking your channel partner to force close on you. If you are lacking your own channel state data, then I worry the channel partner could close with a prior commitment TX without fear of punishment. Caveat as usual: I’m not a LN dev, so I’m open to being corrected on that. Stephen DeLorme 5 days ago @bosch Agreed, I’m concerned about the different recovery phrases. That’s why I want to promote including the derivation path and fingerprint in the backup. Perhaps it’s also helpful to include the “type” e.g. BIP39, AEZEED, etc. Overall, I want to move away from this concept of saving a “recovery phrase” and focus on saving a “backup kit”, because it really needs as much information as possible to truly help preserve funds. bosch 4 days ago Yeah I agree, SCB seems like a bad solution. Force closing is inherently a bad practice / costly as well if we are factoring in scaling it make's Bitcoin much less scalable if everytime someone recovers a wallet they need to close and re-open channels. The wallet the backup was made with is also quite important, especially in the context of LN of which recovery seems to only be viable within the same wallet currently. Pavlenex 4 days ago This screenshot by Bosch is good example on how we may want to communicate things when it comes to backups. It’s quite relevant to the discussion here, so sharing how it works in the wild that may help us how we thing about things and maybe we can come up with concrete solution here? Screenshot 2021-10-22 at 13.10.44.png ![](https://i.imgur.com/QOuT0Qz.png)

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully