区块链是什么?
分布式去中心化P2P账本
PoS 是什么
Proof of Stake(权益证明)是一种共识算法,在Eth迁移完成之后被大家熟知,大概的意思就是你存钱越多你越有信用挣钱也就越多,
关于PoS和PoW的区别请自行谷歌,这里就不再赘述了
Eth2.0使用的PoS算法叫Casper
这东西怎么工作的捏?
传统区块链有一个概念叫矿工,PoS也有,现在一个矿工需要先存一笔钱(保证金)才可以挖矿(验证别人的交易的合法性),存的钱的数量决定了他负责挖矿的权重,当然也为了公平起见会有一个稍微偏心点的随机算法,不过确实有的链是100%公平的,但那样存钱的动力就没了~
哦,假如这个矿工被抓到他不守规矩(如在煤矿里抽烟),那么他的保证金就会被没收,所以大家一般都是很诚实的矿工啦
矿工选择的伪代码如下
#[derive(Debug)]
struct Miner {
addr: Address,
stake: u64,
}
let miners : Vec<Miner> = vec![...];
// 计算权重
let total_stake = miners.iter().reduce(|m1, m2| m1.stake + m2.stake ).unwrap();
let weight_pair = calculate_weight(total_stake, miners);
// 带权重随机算出当前leader
let leader = weighted_rand(rand, weight);
println!("current leader is: {:?}", leader);
// > Miner { addr: 第二个, stake: 挺多的 }
这玩意儿的优点是啥?
- 哦!你看这东西他不需要矿机欸!你的电脑这要能跑起来这个程序,手头有点钱去质押你就可以当矿工!
- 挖矿不再是比拼算例,所以这东西很快而且很环保~
- 攻击并不会盈利 攻击者会损失他的财富,所以分叉会变少~
那缺点呢?
- 你保证金给的越多就约有希望去挖矿,所以只要你占比足够大你就可以控制整个网络
- 用户仓鼠化,用户会屯钱,因为这样就能赚更多钱
解决方法:
- 币龄
- 通缩
但是请原谅我不懂经济
流程和设计
下面是灵魂配图
然后这个过程跑完了其他的区块就会验证,验证失败了富裕的节点就会被打倒地主分田地
所以我们现在已经明确了应该写点啥
- 区块结构
- 区块链结构
- 账户
- 验证者
- 质押
- 交易结构
- 交易池
- 钱包
- libp2p太好了!
- 一些对外开放的api