bc-bizdev
      • 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 New
    • Engagement control
    • Make a copy
    • 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 Note Insights Versions and GitHub Sync Sharing URL Help
Menu
Options
Engagement control Make a copy 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
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    --- robots: noindex, nofollow --- # Gordian Seal Technical Details ###### tags: `article / in process` Developers interested in acquiring a Gordian Seal should be aware of the Blockchain Commons' suggested best practices and its reference architecture and wallet. ## What are the 2021 Gordian Requirements? To achieve a 2021 Gordian Seal of Approval requires meeting the following requirements: * **Independence:** - [ ] **1. Independent Authority:** User must hold sufficient private keys to either spend or recover funds without third-party intervention. - [ ] **2. No Third-Party Authority:** There must by no individual third party who holds sufficient private keys to either spend or recover funds. - [ ] **3. No Third-Party Collusion.** The wallet vendor must not know where enough keys are to be able to collude with entities other than the user to collect those keys and steal funds. - [ ] **4. Supported Sweep:** User must be able to sweep their funds to another account with no third-party intervention and at no cost other than standard Bitcoin transaction costs. - [ ] **5. Thoughtful Signing:** The UX for signing and verification must be explicit, not automatic. * **Resilience:** - [ ] **1. Adversarial Analysis:** Wallet vendor must conduct an adversarial analysis, such as the risk analysis of [#SmartCustody](https://www.smartcustody.com/), and publish the results. - [ ] **2. Multisig Funds:** Funds must be protected by a multisig, not a single signature. - [ ] **3. No Single Point of Failure for Funds:** The loss of a single private key, hardware device, software program, or account must not cause the loss of funds. - [ ] **4. No Single Point of Failure for Recovery:** The loss of a single private key, hardware device, software program, or account must not cause the loss of the ability to recover funds. - [ ] **5. No Third-Party Point of Failure for Recovery:** There must be a way to independently recover funds without the wallet vendor, even if the standard way to recover funds depends on that vendor. - [ ] **6. No Single Point of Compromise:** The theft of a single private key, hardware device, software program, or account must not allow the theft of funds without also circumventing biometric protection (or stealing additional items). - [ ] **7. Multifactor Authentication:** The release of key material must only be allowed following multiple factors for authentication. Some of these factor may be long-term, such as logging into an account, but at least one must be immediate, such as a thumbprint scan. * **Openness:** - [ ] **1. Open Transactions.** User must be able to send funds to and receive funds from standard addresses for the cryptocurrency of the wallet. - [ ] **2. Open Transfer of Account.** User must be able to move their digital-asset account to a different platform using a descriptor, a UR, or some other standard, interoperable means. - [ ] **3. Published Code:** Source code must be published online. - [ ] **4. Compilable Code.** Source code must be compilable if it is written in a well-known language. - [ ] **5. Open Patents.** Wallet vendor must have a published open patent strategy. [Possible new criteria: SSKR, UR, other specifications] ### What are the 2022 Gordian Requirements? The 2022 requirements are not yet set, but our curent expectation is that they will include the following new criteria: * **Independence:** - [ ] **Transaction Privacy:** User must able to use a privacy transaction method such as Coinjoin or Payjoin. - [ ] **Usage Privacy:** Usage of all Bitcoin-related services, including watching, transacting, and pricing, must be protected by Tor. * **Resilience:** - [ ] **Incapacitation Resilience:** Wallet must support funds recovery in case of user incapication, though the user may have the option to enable this or not. * **Openness:** - [ ] **Partition of Services:** Auxiliary services such as pricing and storage must be partitioned from the wallet by airgaps or torgaps. If the Speedy Trial of Taproot and Schnorr succeeds, we also expect to have Schnorr-related requirements. ### What are the Future Gordian Requirements? We expect the following requirements to come on board in 2023 or later: * **Openness:** - [ ] **Interoperability of Services:** Users must be able to freely pick from partitioned services such as pricing and storage offered by other vendors. ## What is the Gordian Wallet? The Gordian Wallet is a reference implementation of a wallet that adheres to the Gordian requirements. It can be used as a user wallet, but Blockchain Commons' main purpose is to offer it as an example and testing reference for wallet developers. It fulfills the Gordian requirements by implementing a two-of-three multisig, with one key on the user's device, one key on a Bitcoin full node, and one key kept offline in at least two secure places per the [#SmartCustody procedure](https://www.smartcustody.com/). The Independence requirements and the third Openness requirement are met by the user being in total, self-sovereign control of funds. The Resilience requirements are met by the two-of-three multisig, the partition of the keys across multiple devices, and the backup of the offline key. The other Openness requirements are met by the publication of [Gordian Wallet at GitHub](https://github.com/BlockchainCommons/GordianWallet-iOS). We would expect most wallets by third-parties to exercise more ability to support and intervene for a user, but still abiding by the Independence and Openness guidelines. ## What is the Gordian Architecture? Blockchain Commons also offers a a minimum viable reference architecture to manifest the Gordian principles and requirements, primarily as an example for developers. Its usage is not a mandate, but rather a demonstration of the feasability of Gordian requirements and principles in an architectural design. Other architectural designs that similarly adopt Gordian best practices would be certified for the Gordian Seal of Approval. The Gordian Architecture stands in contrast to classic cryptowallets, which were monolithic designs. Wallets often connected to nodes run by the same manufacturer and used pricing services and other utilities run or provided by the same manufacturer. It was a lazy architecture that created a single point of failure, a single point of compromise, and a single point of trust. It left users with no independence: the manufacturer of their wallet made all the decisions for them. Gordian instead builds its reference architecture around a distributed philosophy. Major services like the [Gordian Wallet](https://github.com/BlockchainCommons/GordianWallet-iOS) and the [Gordian Server](https://github.com/BlockchainCommons/GordianServer-macOS) connect to microservices such as [Spotbit](https://github.com/BlockchainCommons/spotbit), reference software such as [Gordian Cosigner](https://github.com/BlockchainCommons/GordianCosigner-iOS) and [Gordian Guardian](https://github.com/BlockchainCommons/GordianGuardian-iOS), and reference hardware such as [LetheKit](https://github.com/BlockchainCommons/bc-lethekit) using standard specifications: airgaps, supported by [Universal Resources and animated QR codes](https://github.com/BlockchainCommons/Research/blob/master/papers/bcr-2020-005-ur.md); and [torgaps](https://github.com/BlockchainCommons/torgap), created by Tor. This ensures that a wallet is distributed, not monolithic. ![](https://raw.githubusercontent.com/BlockchainCommons/Gordian/master/Images/appmap.jpg) This architectural design is built to directly support Gordian's principles. * **Independence.** Users get to decide which applications to use as part of their personal Gordian network. Torgaps and Airgaps in the system protect their privacy and pseudonymity. * **Resilience.** Users know that the network is purposefully built to avoid single points of failure and single points of compromise. A partition of keys, including a recovery key, across devices in the architecture ensures that funds can't be easily stolen or lost. * **Openness.** The use of standard specifications, such as the Uniform Resources, to interconnect elements of the Gordian architecture ensures that any company can offer up their products or services for fair competition and interoperability. Blockchain Commons also provides tools to test and manifest this architecture, such as [bytewords CLI](https://github.com/BlockchainCommons/bc-bytewords-cli), [keytool CLI](https://github.com/BlockchainCommons/bc-keytool-cli), [LifeHashTool](https://github.com/BlockchainCommons/LifeHashTool), [seedtool CLI](https://github.com/BlockchainCommons/bc-seedtool-cli), and [URDemo](https://github.com/BlockchainCommons/URDemo). They focus on the interoperable elements used in the Gordian architecture, such as the bytewords format, the LifeHash imaging, and the Universal Resources encoding. -- _From here down is no longer current._ # Best Practices (Archive) This is the iteration of our best-practices that we wrote up prior to moving to a checklist. ## What are Gordian's Best Practices? The core requirement for a Gordian-approved wallet is that it meet or exceed the current best practices of the industry as a whole. However, we also present our own, more strict best practices for 2021, both to offer a checklist for success and to provide a listing of more stringent practices that we expect Gordian companies will _mostly_ meet. Gordian-approved wallets can support the Gordian Principles by doing the following: * **Independence:** * ***Assure agency.*** The user ***must*** always be the principal authority for their digital transactions. * ***Assure independence of operations.*** Control of assets ***must*** remain with the user, though third parties might offer support, for example by holding a minority of keys; centralized authorities ***must not*** be required for standard operations. * ***Assure independence of recovery.*** Assets ***must*** be independently and fully recoverable by the users; external parties ***should not*** be able to steal funds, to coerce users, or to act as single-point-of-failure for recovering funds. * ***Maintain partition of services.*** Core wallet services (such as managing multisig policies, signing multisig transactions, and even storing keys) ***should*** be partitioned from each other, to improve privacy and reduce correlation. Auxilliary wallet services (such as looking up prices and purchasing coins) ***should*** also be partitioned, to create market fairness and improve user choice. * ***Maximize privacy.*** Blockchain queries and transactions ***must*** be privacy protected using features such as Tor. * **Resilience:** * ***Assure hardware resilience.*** Assets ***must*** remain safe and accessible even with the loss of a single computer or mobile device. * ***Assure key resilience.*** Assets ***must*** remain safe and accessible even with the loss of a single key. * ***Avoid SPOC.*** Wallets ***must*** be free of single-points-of-compromise (SPOC), where an attacker could steal assets if they stole a single key or compromised a single device. * ***Avoid SPOF.*** Wallets ***must*** be free of single-points-of-failure (SPOF), where a user could lose assets if they lost a single key or where they could lose their recovery if they lost access to a single service. * ***Balance security against vulnerability.*** The security of digital assets ***should*** be maximized, but that ***must*** be balanced against the problem of creating vulnerabilities (particularly through key fragility). * ***Maintain separation of interests.*** Key material and recovery material ***should*** be separated among entities with different interests, to make collusion more difficult. * **Openness:** * ***Integrate with interoperable specifications.*** Key material ***should*** be freely exportable from a wallet, using specifications such as Bitcoin descriptors or Blockchain Commons Universal Resources; or at a minimum ***must*** be rotatable to allow the recovery of digital assets to new keys. * ***Publish code and specifications.*** Wallet code ***must*** be freely available online so that anyone can review and verify the code. Preferrably, it ***can*** be open source. It also ***should*** be buildable if the code is written in a well-known language. Hardware and chip specifications similarly ***must*** be published. * ***Reject lock-in.*** Wallets and services ***must*** be free from vendor lock-in; users ***must*** be able to freely, easily, and cheaply move assets to other platforms or use other services. * ***Reject patent aggression.*** Wallet developer ***should*** adopt an [open patent strategy](https://www.opencrypto.org/about/). We say that wallets must _mostly_ meet these more stringent requirements because we recognize that best practices can vary for different platforms and different products and services, and further that some applications might have to compromise one best practice in order to assure another. The Gordian Seal of Approval rests on a professional assessment from Blockchain Commons in large part so that it can consider how these individual elements impact any specific wallet. As of 2021, Blockchain Commons suggests _multisig_ as a core element of wallet design to the Gordian best practices, but if a wallet company were to offer a different solution that similarly met these best practices, it would also receive the 2021 Gordian Seal of Approval. See our Smart Custody article on ["Designing Multisig for Independence and Resilience"](https://github.com/BlockchainCommons/Gordian/blob/master/Docs/Multisig.md) for more information on the thoughtful design of a multisig.

    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