• Stars
    star
    118
  • Rank 299,923 (Top 6 %)
  • Language Mathematica
  • License
    Other
  • Created over 4 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Blockchain Commons Research papers

Blockchain Commons Research

This repository contains early-stage research of interest to the blockchain community.

Blockchain Commons Research papers (BCRs) are not standards. They are fluid specifications, typically based on our own libraries or other coding. Because of their fluidity, BCRs might change without notice. If you decide to adopt a Blockchain Commons Research paper, you are becoming a Research Partner, examining how the specification might work in the real world. We look forward to working with you!

If you are using the specifications from a BCR, please let us know. Having a BCR in usage by at least two parties other than Blockchain Commons is one of our criteria for advancing a BCR to a Blockchain Commons Proposal (BCP), increasing its stability. If you can only use a specification if it is advanced to the BCP stage, sldo let us know that, as we sometimes advance BCRs on our own if they have achieved sufficient maturity.

Generally, it's only if a BCR advances to the BCP stage that we more deeply involve community in its continued maturation and focus on it becoming an actual standard.

Contents

Number Title Owner Status
BCR-2020-001 Uniformly Translating Entropy into Cryptographic Seeds Wolf McNally
BCR-2020-002 Bech32 Encoding for Cryptographic Seeds Wolf McNally
BCR-2020-003 Encoding Binary Compatibly with URI Reserved Characters Wolf McNally
BCR-2020-004 The BC32 Data Encoding Format Wolf McNally
BCR-2020-005 Uniform Resources (UR): Encoding Structured Binary Data for Transport in URIs and QR Codes (Version 2) Wolf McNally
BCR-2020-006 Registry of Uniform Resource (UR) Types Wolf McNally
BCR-2020-007 UR Type Definition for Hierarchical Deterministic (HD) Keys Wolf McNally
BCR-2020-008 UR Type Definition for Elliptic Curve (EC) Keys Wolf McNally
BCR-2020-009 UR Type Definition for Cryptocurrency Addresses Wolf McNally
BCR-2020-010 UR Type Definition for Bitcoin Output Descriptors (Version 1) Wolf McNally
BCR-2020-011 UR Type Definition for Sharded Secret Key Reconstruction (SSKR) Wolf McNally
BCR-2020-012 Bytewords: Encoding binary data as English words Wolf McNally
BCR-2020-013 CRC-32 Checksums in CBOR Wolf McNally
BCR-2020-014 URs on E-paper display Gorazd Kovacic
BCR-2020-015 UR Type Definition for BIP44 Accounts Craig Raw
BCR-2021-001 UR Type Definitions for Transactions Between Airgapped Devices Wolf McNally
BCR-2021-002 Digests for Digital Objects Wolf McNally
BCR-2022-001 Encrypted Message Wolf McNally
BCR-2022-002 ARID: Apparently Random Identifier Wolf McNally
BCR-2023-001 Compressed Message Wolf McNally
BCR-2023-002 Known Values: A Compact, Deterministic Representation for Ontological Concepts Wolf McNally
BCR-2023-003 Gordian Envelope Extension: Known Values Wolf McNally
BCR-2023-004 Gordian Envelope Extension: Symmetric Encryption Wolf McNally
BCR-2023-005 Gordian Envelope Extension: Compression Wolf McNally
BCR-2023-006 Gordian Envelope: Attachments Wolf McNally
BCR-2023-007 Gordian Envelope: Bitcoin Output Descriptors (Version 2) Wolf McNally
BCR-2023-008 dCBOR: Preferred Encoding of Dates Wolf McNally
BCR-2023-009 Gordian Envelope: Cryptographic Seeds Wolf McNally
BCR-2023-010 Bitcoin Output Descriptor (Version 3) Wolf McNally
BCR-2023-011 UR Type Definitions for Public Key Cryptography Wolf McNally
BCR-2023-012 Gordian Envelope Expressions Wolf McNally
BCR-2023-013 Gordian Envelope Cryptography Wolf McNally
BCR-2023-014 Gordian Sealed Transaction Protocol (GSTP) Wolf McNally
BCR-2023-015 UR Type Definition for Cryptographic Nonce Wolf McNally
BCR-2023-016 UR Type Definition for Scrypt-Hashed Password Wolf McNally
BCR-2023-017 UR Type Definition for Random Salt Wolf McNally
BCR-2023-018 Gordian Depository API Wolf McNally

Also see our Testimony and our Blockchain Commons Proposals.

Please feel free to submit your own Drafts of BCRs for specifications that support the creation of open, interoperable, secure & compassionate digital infrastructure to this repo as PRs, as follows.

All contributions to this repo require a Signed Contributor License Agreement (which will be needed if we submit to other organizations like IETF, W3C, Linux Foundation, etc.).

BCR Number

Please number all Bitcoin Research BCRs with a four-digit number representing the current year (YYYY) followed by a three-digit sequence number for that year (SSS). For example: bcr-2020-001 is the first BCR for 2020, bcr-2020-017 is the 17th, and bcr-2021-001 is the first BCR for 2021.

Note that the sequence number reverts to 001 at the start of each year.

BCR Title

Please be sure that your title is concise, yet informative.

BCR Version

When updating BCRs, please use semantic versioning for your version number.

Most briefly: your version number should be of the form X.Y.Z, where X is the major number ("0" for a BCR Draft; "1" for something ready to become a BCR Work Product; and "2" or higher for a new version that has introduced a backward-incompatible change), Y is the minor number (for a backward-compatible new feature), and Z is the patch number (for fixing typos and making other clarifications that don't fundamentally change what the BCR means).

But please consult the semantic versioning document for more information and adjust appropriately for the fact that these are textual BCRs, not software.

BCR Owner

Please list the person primarily responsible for the BCR, and moving it forward, as the owner. If there are multiple authors, they should be listed on the BCR itself, not on this overview.

BCR Status

  • Draft β€” The initial draft of a BCR. Contributors may work on a BCR as they see fit when it remains version 0.Y.Z. When they increment to 1.0.0, they are requested BC review.
  • Work Product β€” A major BCR or BCP draft that has been accepted by BC for further work.
  • Promoted β€” A BCR draft that has been promoted to a BCP.
  • Deprecated β€” A BCR or BCP draft that has been superseded by another specification.

Origin, Authors, Copyright & Licenses

Unless otherwise noted (either in this /README.md or in the file's header comments) the contents of this repository are Copyright Β© by Blockchain Commons, LLC, and are licensed under the spdx:BSD-2-Clause Plus Patent License.

Financial Support

This research is a project of Blockchain Commons. We are proudly a "not-for-profit" social benefit corporation committed to open source & open development. Our work is funded entirely by donations and collaborative partnerships with people like you. Every contribution will be spent on building open tools, technologies, and techniques that sustain and advance blockchain and internet security infrastructure and promote an open web.

To financially support further development of this research and other projects, please consider becoming a Patron of Blockchain Commons through ongoing monthly patronage as a GitHub Sponsor. You can also support Blockchain Commons with bitcoins at our BTCPay Server.

Contributing

We encourage public contributions through issues and pull requests! Please review CONTRIBUTING.md for details on our development process. All contributions to this repository require a GPG signed Contributor License Agreement.

Discussions

The best place to talk about Blockchain Commons and its projects is in our GitHub Discussions areas.

Gordian Developer Community. For standards and open-source developers who want to talk about interoperable wallet specifications, please use the Discussions area of the Gordian Developer Community repo. This is where you talk about Gordian specifications such as Gordian Envelope, bc-shamir, Sharded Secret Key Reconstruction, and bc-ur as well as the larger Gordian Architecture, its Principles of independence, privacy, resilience, and openness, and its macro-architectural ideas such as functional partition (including airgapping, the original name of this community).

Blockchain Commons Discussions. For developers, interns, and patrons of Blockchain Commons, please use the discussions area of the Community repo to talk about general Blockchain Commons issues, the intern program, or topics other than those covered by the Gordian Developer Community or the Gordian User Community.

Other Questions & Problems

As an open-source, open-development community, Blockchain Commons does not have the resources to provide direct support of our projects. Please consider the discussions area as a locale where you might get answers to questions. Alternatively, please use this repository's issues feature. Unfortunately, we can not make any promises on response time.

If your company requires support to use our projects, please feel free to contact us directly about options. We may be able to offer you a contract for support from one of our contributors, or we might be able to point you to another entity who can offer the contractual support that you need.

Credits

The following people directly contributed to this repository. You can add your name here by getting involved. The first step is learning how to contribute from our CONTRIBUTING.md documentation.

Name Role Github Email GPG Fingerprint
Christopher Allen Principal Architect @ChristopherA <[email protected]> FDFE 14A5 4ECB 30FC 5D22 74EF F8D3 6C91 3574 05ED
Wolf McNally Contributor @WolfMcNally <[email protected]> 9436Β 52EEΒ 3844Β 1760Β C3DCΒ Β 3536Β 4B6CΒ 2FCFΒ 8947Β 80AE

Responsible Disclosure

We want to keep all of our software safe for everyone. If you have discovered a security vulnerability, we appreciate your help in disclosing it to us in a responsible manner. We are unfortunately not able to offer bug bounties at this time.

We do ask that you offer us good faith and use best efforts not to leak information or harm any user, their data, or our developer community. Please give us a reasonable amount of time to fix the issue before you publish it. Do not defraud our users or us in the process of discovery. We promise not to bring legal action against researchers who point out a problem provided they do their best to follow the these guidelines.

Reporting a Vulnerability

Please report suspected security vulnerabilities in private via email to [email protected] (do not use this email for support). Please do NOT create publicly viewable issues for suspected security vulnerabilities.

The following keys may be used to communicate sensitive information to developers:

Name Fingerprint
Christopher Allen FDFE 14A5 4ECB 30FC 5D22 74EF F8D3 6C91 3574 05ED

You can import a key by running the following command with that individual’s fingerprint: gpg --recv-keys "<fingerprint>" Ensure that you put quotes around fingerprints that contain spaces.

More Repositories

1

Learning-Bitcoin-from-the-Command-Line

A complete course for learning Bitcoin programming and usage from the command
Jupyter Notebook
3,135
star
2

Gordian

An entire architecture focused on user agency and security.
Shell
112
star
3

Pseudonymity-Guide

How to securely create and operate a pseudonymous identity.
95
star
4

SmartCustodyWhitePapers

#SmartCustody White Papers, which have been consolidated into the #SmartCustody Book
83
star
5

LifeHash

A beautiful method of hash visualization based on Conway’s Game of Life: reference library in Swift
Mathematica
78
star
6

Community

Discussions & shared documents for stakeholders in Blockchain Commons
68
star
7

Gordian-Developer-Community

Discussions of Gordian principles, Gordian specifications, Gordian references, and making it all a reality.
Swift
64
star
8

GordianServer-macOS

Tor-protected full-node GordianServer for macOS
Swift
63
star
9

SmartCustodyBook

Manuscript for Book "#SmartCustody: The Use of Advanced Cryptographic Tools to Improve the Care, Maintenance, Control, and Protection of Digital Assets"
58
star
10

Bitcoin-Standup-Scripts

UNIX Scripts to install a Bitcoin-Core full node and Tor
Shell
54
star
11

lethekit

Open source DIY hardware box for offline cryptographic tools.
C++
52
star
12

GordianWallet-iOS

iOS wallet linked by Torgap to your own full-node server
Swift
47
star
13

SmartCustody

Overview of SmartCustody Topics, for Responsible Key Management
42
star
14

GordianSeedTool-iOS

Cryptographic Seed Manager for iOS
Swift
38
star
15

crypto-commons

Gordian Reference Code & CLI Utilities
34
star
16

spotbit

Self-Sovereign cryptocurrency price discovery tool leveraging Tor.
CSS
34
star
17

bc-lifehash

A beautiful method of hash visualization based on Conway’s Game of Life: reference library in C/C++
C++
29
star
18

seedtool-cli

Cryptographic Seed Tool for the command line
C++
28
star
19

QRCodeGenerator

A QR code generator written in pure Swift. Unlike Apple's built-in APIs for QR code generation, this package allows more sophisticated and tunable encoding techniques.
Swift
23
star
20

lifehash.info

A web-based demo of the LifeHash visual hash algorithm, written in C++ and compiled to WebAssembly.
C++
18
star
21

bc-sskr

Sharded Secret Key Reconstruction (SSKR) reference library in C
C
17
star
22

iOS-Bitcoin

libbitcoin bindings for Swift
Swift
12
star
23

bc-ur

UR reference library in C++
C++
11
star
24

GordianCosigner-iOS

Offline PSBT signer for iOS or MacOS
C
8
star
25

bc-bip39

BIP-39 mnemonics reference library in C
C
8
star
26

URKit

UR (Uniform Resources) reference framework for Swift
Swift
8
star
27

torgap

Torgap architecture & products
8
star
28

BCSwiftFoundation

A collection of useful primitives for cryptocurrency wallets.
Swift
7
star
29

BCSwiftTor

Opinionated pure Swift controller for Tor, including full support for Swift 5.5 and Swift Concurrency.
Swift
7
star
30

Secure-Development-Setup-macOS

Documentation & scripts for setting up secure developer tool environment for a macOS Catalina including git, github, gpg & ssh
Shell
7
star
31

URDemo

URKit demo of sending and receiving long binary messages via animated QR codes for iOS
Swift
7
star
32

bc-shamir

Shamir Secret Sharing reference library in C
C
6
star
33

www.SmartCustody.com

Website for #SmartCustody: the use of advanced cryptographic tools to improve the care, maintenance, control, and protection of digital assets.
SCSS
6
star
34

did-method-onion

Onion DID Method specification
HTML
5
star
35

bc-dcbor-rust

Deterministic CBOR ("dCBOR") for Rust.
Rust
5
star
36

iOS-CBitcoin

libbitcoin bindings for C
C++
5
star
37

musign-cli

ECDSA and Schnorr signing on libsecp256k1 for the command line
Rust
5
star
38

GordianQRTool-iOS

UR & QR code storage for iOS and MacOS
C
5
star
39

mori-cli

A CLI descriptor-based wallet to be used to safely inherit bitcoin
Rust
4
star
40

LifeHashTool

A command line tool written in Swift that generates LifeHash images as PNG files.
Swift
4
star
41

bc-libs-java

Blockchain Commons C libraries in Opinionated Java/Android wrapper
Java
4
star
42

keytool-cli

Cryptocurrency key & address derivation for the command line
C++
4
star
43

BCSwiftSecureComponents

A collection of useful primitives for cryptography, semantic graphs, and cryptocurrency in Swift.
Swift
3
star
44

BCLibwallySwift

Libwally in Opinionated Swift wrapper
Swift
3
star
45

bc-crypto-base

Audited cryptographic functions reference library in C
C
3
star
46

bc-bytewords

Bytewords reference library in C
C
3
star
47

secure-template

Template for future repositories to ensure provenance of commits through GPG
3
star
48

bytewords-cli

Bytewords reference tool for the command line
Shell
3
star
49

bc-dcbor-cli

A command line Deterministic CBOR ("dCBOR") validation and diagnostic tool.
Rust
3
star
50

www.blockchaincommons.com

Website for Blockchain Commons
SCSS
3
star
51

seedtool-cli-rust

A command-line tool for generating and transforming cryptographic seeds.
Rust
3
star
52

GordianSigner-macOS

Offline PSBT signer for MacOS (temporary repo)
C
2
star
53

bc-sskr-rust

Sharded Secret Key Reconstruction (SSKR) for Rust.
Rust
2
star
54

Bitcoin-Camouflage

HTML
2
star
55

bc-envelope-rust

Rust implementation of Gordian Envelope.
Rust
2
star
56

BCLibsSwift

Blockchain Commons C libraries in Opinionated Swift framework
Swift
2
star
57

bc-bech32

BIP-173 address format reference library in C
C
2
star
58

deployment-scripts

Scripts for Deploying Various Blockchain Commons Servers
Python
2
star
59

bc-tor

Tor project fork for use with Blockchain Commons projects, particularly Tor.framework and Mac Catalyst builds
C
2
star
60

argp-standalone

GNU Argp made available as a Git submodule
C
2
star
61

bc-slip39

SLIP-39 Shamir Secret Sharing reference library in C (deprecated)
C
2
star
62

bc-ur-java

UR encoding/decoding Java wrapper library
C++
2
star
63

bc-crypto-rust

A Rust crate that exposes a uniform API for the cryptographic primitives used in higher-level Blockchain Commons projects.
Rust
2
star
64

bc-components-rust

A collection of useful primitives for cryptography, semantic graphs, and cryptocurrency in Rust.
Rust
2
star
65

bc-libwally-swift

Libwally in Swift
C
1
star
66

BCSwiftEnvelope

Gordian Envelope - Swift Reference Implementation
Swift
1
star
67

BCSwiftNFC

A modern Swift library for reading and writing NFC tags.
Swift
1
star
68

bc-ur-rust

Wrapper around the `ur` crate for use in higher-level Blockchain Commons projects.
Rust
1
star
69

law-and-advocacy

Blockchain Commons Law & Advocacy Work
SCSS
1
star
70

www.FiduciaryComputing.com

HTML
1
star
71

bc-dcbor-ts

Blockchain Commons Deterministic CBOR ("dCBOR") for TypeScript
TypeScript
1
star
72

QRCodeGeneratorDemo

An iOS app that demonstrates use of the Blockchain Commons QRCodeGenerator.
Swift
1
star
73

Open-Development

Standard Terms for Open Development Agreements with Blockchain Commons
Makefile
1
star
74

lifehash-cli

A command line tool written in C++ that generates LifeHash images as PNG files.
Shell
1
star
75

.github

Default Community Health Files for all Blockchain Commons repos
1
star
76

sweeptool-cli

Descriptor based tool for sweeping bitcoin
Rust
1
star
77

BlockchainCommonsLLC

Information about "Blockchain Commons, LLC", a "not-for-profit" benefit organization chartered in the State of Wyoming, United States of America.
1
star
78

bc-shamir-rust

Shamir Secret Sharing (SSS) for Rust.
Rust
1
star
79

bc-depo-api-rust

API for the Blockchain Commons Depository ('depo') server.
Rust
1
star
80

WIPs-IETF-draft-envelope

The envelope protocol specifies a format for hierarchical binary data built on CBOR.
Shell
1
star
81

iOS-GordianCoordinator

Multisig Bitcoin transaction coordinator for iOS
Swift
1
star