question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Two Factor Authentication (Multi-sig)

See original GitHub issue

Overview

Adding support for multi-sig based 2FA will make the web wallet more secure. This will require deploying a contract to wallet users’ accounts, and will allow them to specify which transactions require multi-sig.

Stories

As a user, I want to set limits on my transaction amounts, requiring two factor authentication above the limits, so I can use the web wallet to safely store $100-$1000 worth of assets.

Flows

For any account, there are minimum three keys

1 key in localStorage 1 key in recovery 1 key on our server

TXs require 2-of-3 multi-sig

Create account with 2FA

  1. User receives Linkdrop link
  2. User enters desired account name on /create
  3. User chooses how to “Secure Account” a. Use Ledger only b. Setup SMS-based 2FA, choose email or seed phrase recovery
  4. createAccount function on Linkdrop contract is called
    1. Up to 3 keys are passed as arguments to be added as multi-sig keys a. If Ledger, only one key is passed and multi-sig is 1-of-1 b. If 2FA, backend generates a key to be added to multi-sig, returns to frontend
    2. In a batch TX a. Account is created b. Multi-sig contract is deployed, with keys as multi-sig keys c. Keys are added as access keys (separate from above) d. Account is funded (if applicable)

Sign TX with 2FA

  1. User initiates a TX, signs with key in localStorage
  2. Server sends an SMS to the user with TX details, code to enter
  3. User enters the code into the UI
  4. Server signs and sends TX

Recover with 2FA (Email)

  1. User clicks link in recovery message
  2. User is redirected to /recover-with-link
  3. Selects “Continue”
  4. Uses Sign TX with 2FA flow to finish recovery

Recover with 2FA (Seed)

  1. User navigates to /recover-seed-phrase
  2. User enters account name and seed phrase
  3. Selects “Continue”
  4. Uses Sign TX with 2FA flow to finish recovery

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:8 (8 by maintainers)

github_iconTop GitHub Comments

3reactions
bowenwang1996commented, May 4, 2020

@ilblackdragon what if friends collude to steal your phone 😂

2reactions
kcole16commented, May 18, 2020

Expanding on @ilblackdragon’s comments:

Goals

Prevent attackers from

  • Gaining access to keys
  • Manipulating the user into signing a bad TX (e.g. don’t have the key, but change the UI)

Flow

For any account, there are minimum three keys

  • 1 key in localStorage
  • 1 key in recovery
  • 1 key on our server

TXs require 2-of-3 multi-sig

  1. User initiates a TX, signs with key in localStorage
  2. Server sends an SMS to the user with TX details, code to enter
  3. User enters the code into the UI
  4. Server signs and sends TX

cc @vgrichina @Patrick1904

Read more comments on GitHub >

github_iconTop Results From Across the Web

What are Multi-signature 2FA Crypto Wallets? - HelloCrypto
The most common and easiest type of multisig is two factor authentication (2FA), a version of a dual key system. This system, simply...
Read more >
What Is a Multisig Wallet? - Shrimpy Academy
Two -factor authentication is a method by which a user requires two keys to access funds. Most online platforms already utilize this model...
Read more >
What Is a Multi-Signature Wallet? - Gemini
Multi-sig can also serve as a form of two-factor authentication (2FA), because users can hold private keys on different devices. However, there ...
Read more >
What is a multisig wallet? Understanding the basics - Casa Blog
Multisig is short for multisignature, a security feature with more ... The premise is similar to two-factor authentication, but more robust.
Read more >
How does Blockstream Green's multisig security work?
The second key is held on the Blockstream Green servers protected by two-factor authentication (2FA). Multisig Shield Account Types. You can create two...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found