---
# System prepended metadata

title: <center><i class="fa fa-edit"></i> 4.3 Splitting and Sharing Keys</center>
tags: [Blockchain]

---

# <center><i class="fa fa-edit"></i> 4.3 Splitting and Sharing Keys</center>
###### tags: `Blockchain`
The following notes are taken from [Coursera](https://www.coursera.org/learn/cryptocurrency/home/week/2)

---
### Secret Sharing
Idea: split secret into `N` pieces, such that 
- given any `K` pieces, can reconstruct the secret 
- given fewer than `K` pieces, don't learn anything 

**Example**: 
```
N=2, K=2
P = a large prime
S = secret in [0, P)
R = random in [0, P) 

split:
X₁ = (S+R) mod P
X₂ = (S+2R) mod P

reconstruct:
(2X₁-X₂) mod P = S
```

Given any 2 shares, you can find `S`
Given 1 share, you can't determine anything

![](https://i.imgur.com/2Thw8fx.png)

Support `K-out-of-N` splitting, for any `K, N`

![](https://i.imgur.com/g5NAX7L.png)

**Pros:**
- Store shares separately
- Adversary must compromise several shares to get they key

**Cons:**
- To sign, need to bring shares together, then reconstruct the key
    - Vulnerable

### Multi-sig
- Keeps shares apart, approve transaction without reconstructing key at any point
- Helps manage large bodies of cold-stored coins in a way that is relatively secure 
- Requires action by multiple people before anything drastic happens

**Example**
* A, B, C, D are co-workers. Their company has lots of Bitcoins. 
* Each of the four generates a key-pair, puts secret key in a safe, private, offline place. 
* The company's cold-stored coins use multi-sig, so that three of the four keys must sign to release a coin.
* Would need a conspiracy of three out of four to steal coins. 
* If something goes wrong, others can still get coins back and transfer them to a new place. 



