Skip to content
This repository has been archived by the owner on Oct 17, 2022. It is now read-only.

Main Concepts

Jon Ramvi edited this page Feb 17, 2022 · 1 revision

Common Terms

This is a list of terms you might encounter when developing on BRØK.

Cap table

  • A ledger showing the shareholders of a company and their shareholding
  • The Norwegian term is "aksjeeierbok", literally a "book" of shareholders

Registry of cap tables

  • Registry of all cap tables on BRØK
  • This is where you can get a list of all cap tables for companies.

Entity registry

  • Information about people and companies
  • "Enhetsregisteret", in Norwegian

Chairman of the board

  • The legal entity responsible for the cap table

Share class

  • Share classes are called partitions in the SDK

Block explorer

  • Service that allows a view into what is happening on the blockchain
  • Arbiscan

Testnet

Blockchain

  • A peer-to-peer ledger, like a database. "Writes" to the blockchain are done by the user in question directly instead of a server authenticating the user and storing the data for her.
  • BrregCapTable is built on Ethereum whose underlying technology is blockchain.
  • Any reference to blockchain, Ethereum, or smart contract is a reference to this underlying technology.

Smart Contracts

  • A piece of code (or program) that is stored on the blockchain. Conditions of the contract are predefined by the users; if all conditions are met, certain actions are executed by the contract (program).

Wallet

  • The interface/client/wrapper/holder which allows users to manage their account(s) and interactions with the blockchain.
  • Examples: MetaMask.io, your Ledger Hardware Wallet, a Multisig Wallet Contract.

Account

  • A pair consisting of a public and a private key that identifies an entity on the platform.
  • The user's stock and operations are actually stored on the blockchain, not in the wallet or account.
  • Just like your Facebook account has a Name (public) and password (private), so does your Ethereum account.

Address ("Public Key")

  • You use this as a reference to another user or smart contract.
  • Sometimes referred to as the "public key"
  • A string made up of 0x + 40 hexadecimal characters.
  • In Ethereum, the addresses begin with 0x.
  • Example: 0x06A85356DCb5b307096726FB86A78c59D38e08ee

Public Key

  • A central concept of cryptography is the pairing of a public and a private key.
  • You can derive a public key from a private key, but cannot derive a private key from a public key.
  • (Advanced) In Ethereum, the address "acts" like the public key, but it's not actually the public key.
  • (Advanced) In Ethereum, the public key is derived from the private key and is 128 hex characters. You then take the "SHA3" (Keccak-256) hash of this (64 characters), take the last 40 characters, and prefix with 0x, give you your 42-character address.

Private Key

  • You use this to send stock or issue commands from an account.
  • The secret half of your Address / public key.
  • A string of 64 hexadecimal characters.
  • Every string of 64 hexadecimal characters is a private key.
  • If you hand-type a private key differently today than yesterday, you will access a different wallet. Never hand type your private key.
  • This is the string you need to send from your account. Without the private key, you cannot access your account. Although, you don't need to save this raw, unencrypted private key in this format. You can save the fancy versions of it (e.g. the Keystore File / Mnemonic Phrase).
  • Example: afdfd9c3d2095ef696594f6cedcae59e72dcd697e2a7521b1578140422a4f890

Mnemonic Phrase / Seed Phrase / Seed Words

  • Another fancy version of your private key, that is actually used to derive multiple private keys.
  • A (typically) phrase consisting of 12 or 24 words that allow you to access an infinite number of accounts.
  • Used by Ledger, TREZOR, MetaMask, Jaxx, and others.
  • Originates from BIP 39 Spec.
  • The accounts you can access with this phrase are determined by the "path".
  • Example 12-words: brain surround have swap horror body response double fire dumb bring hazard
  • Example 24-words: card enrich gesture connect kick topple fan body blind engine lemon swarm venue praise addict agent unaware equal bean sing govern income link leg

Hardware Wallet:

  • Typically, a single-purpose device that "holds" your private key(s), ensuring your private keys are safe.
  • Typically, they use a 24-word phrase. This phrase you should write down (not on your computer) and store separately from your hardware wallet.
  • If you lose your hardware wallet, you can still gain access to your accounts via the word phrase you wrote down.
  • Never type the word phrase on your computer. It defeats the purpose of your hardware wallet.

Hexadecimal

  • Used all over Ethereum for a variety of things, a hexadecimal string is comprised of the numbers 0 1 2 3 4 5 6 7 8 9 and A B C D E F

Seed

  • The input that is used to derive a private key from a public key. This should always be generated in a truly random way.

Encryption

  • Encryption is the act of taking a string of letters/numbers such as your private key and turning them into another string of letters/numbers through a method of private translation.
  • There are various encryption methods.
  • Encryption offers protection against information theft!

Encrypted vs Unencrypted Keys

  • An unencrypted private key is 64 characters long, and it is used to unlock or restore wallets.
  • An encrypted key is also 64 letters long and is a regular private key that has gone through the process of encryption, as defined above.
  • For example, if the word 'Apple' was your shortened private key, then it was encrypted three letters down the alphabet, your new shortened encrypted key would be 'Dssoh'. Since you know the way to encrypt this key, you could derive the original private key from it by reversing the method of encryption.
  • Encrypted private keys are usually kept within the extension or device they are encrypted by, and they remain out of sight from the user. This is meant to add another layer of security to keep a user's wallet information safe.

All feedback, rewrites, clarification, typo-fixing, and requests for additions are more than welcome.

Users

A user is a shareholder and/or CEO and/or chairman of the board. A user is either active or passive.

An active user is authenticated and can write changes directly into the shareholder register, like transferring shares or changing their address.

A passive user is a shareholder who is not registered on the platform. A passive user cannot make changes in the shareholder register, and any transfers have to be input by the chairman of the board, on behalf of the shareholder.

All changes in the shareholder register have to be approved by the chairman of the board. In future versions, this approval can be granted automatically if the articles of association and shareholder agreements are automated (i.e. programmed as code).

Networks and endpoints

Localhost

You can run the whole blockchain locally. This part is undocumented at this stage, but all of the source code is available on Github.

Staging

The production version of the platform is not live yet.

Production

The production version of the platform is not live yet.