type
status
date
slug
summary
tags
category
icon
password
😆
Arise, you have nothing to lose but your barbed wire fences!

💰B-Money

戴维的梦想。是他从 Tim May’s的”The Crypto Anarchist Manifesto’的设想而落地的一个提议,加密货币的早期版本是由这篇论文的概念衍生而来,但是戴维发布的是一个Proposal,而没有具体的代码或相关实现。
谁有多少钱的账户由一部分参与者(从现在开始称为服务器)而不是所有人保存。这些服务器通过Usenet样式的广播信道链接。在此信道上广播的事务消息的格式与第一个协议中的格式相同,但每个事务的受影响参与者应验证该消息是否已被随机选择的服务器子集接收并成功处理

Tim-May

加密无政府主义 ——— The Crypto Anarchist Manifesto
暴力将会被避免,因为你根本找不到参与者的真实姓名和肉身位置。
 

PoW

Proof-work 工作量证明
PoW造币是通过消耗对应的计算量来产生同等价值的奖励(基本都是货币),但是需要计算的内容并不具备实际量化的意义,而是纯粹的消耗。 举个🌰
BTC为例子,算出对应的数学题后就拥有当前区块的记账权,同时也会获得分配给自己的奖励。每2016会调整一次计算难度,假设当前的计算是一个18位长度的Hash值,并没有任何算法能进行对应的解密,只能通过类似暴力的方式一次次进行对称重试直到找到答案,而每个矿工去计算的时候可以自由的选择方式从哪里开始进行,这里对于高算力的矿工来说提升的只是几率而不是靠速度快就能百分之百的完成计算,低算力的也同样会有机会。
 
优劣点分析:
  1. 去中心化程度高,但是为了确保区块的共识的确认、时间无法缩短又导致非常的不环保。
  1. 计算成本过高导致常见的攻击无效、例如双花攻击、篡改数据,但一旦攻击程度到达51%,而区块算力不够时就无法承受。
 
流程
 

双花问题

BMoney无法解决双花问题、因为没有共识机制来证明,只能确保PoW的工作量证明,但不能保证工作产生的值被多次使用。
因为没有中央账本来进行管理,BMoney没有提供解决类似拜占庭将军的类似问题,而Btc的出现就弥补了BMoney 带来的共识机制问题,通过在分布式的各个参与者记录账本来保证区块的连续性和真实性。
通过区块链、共识机制、时间戳服务器来实现BMoney 没有做到的那部分。
比特币通过链,让后来区块的安全去累加加固以前区块的安全,是非常厉害的安全思路。
 
notion image
 
 

拜占庭将军问题

当 n > 3t 时,可以冗余出现问题的情况。
 

PoS

Proof of Stake 权益共识,解决资源大量浪费的情况,当持有占总币数量、时间决定是否拥有记账权的概率越大。
 
PoW机制中工作机制需要耗费大量的计算量得到 nonce , Pos机制则采取更快速的算法。
H = 哈希函数
t = UTC时间戳
Bprev = 上个区块
balance(A) = 账户余额
balance(A)足够大的时候,数值越大同等算力的情况下越容易找到符合的t
 
引用知乎的一个例子总结: 你上学的时候,班级里发生的行为需要被记在班级的一个大家公用的账本(区块链)上。
老师或者同学们用这个公用的账本进行记录,并且有一种专门用来支付这个账本上大家记录的、需要支付的代币,我们暂且把它叫做Good币。
这些币可以兑换成钱。你们班级的公共账本不是一个大本子,而是由很多个小本子中间连接一条线组合成的。
在PoW机制下,老师是用一道特别难的数学题来让第一个算出来的同学获得记账权,在这个机制下会导致大部分的同学计算题目导致的时间资源浪费,目前重新推举了PoS的共识机制.
调整区别如下
  1. 不再计算数学题。
  1. 增加币龄的概念(持有币的时间,例: 每个币每天产生1币龄)
  1. 增加持有币的统计 (持有的币越多几率越高)
  1. 增加币的年利率(假设5%)
  1. 每次新区块产生之前会清空币龄
  1. 每清空365个币龄就会产生5%的年化利息
 
现在,如果 A 持有 30天 100个 Good币,则 30 * 100 * 0.05 / 365 = 0.4109589041 Good币
 
 

总结

根据PoW和PoS来看,在去中心化的区块技术下没有最好的机制只有更好的机制, 每种机制都有取舍、包括还有新推出的PoA机制,多多少少都有对应的优劣。

📎 参考文章

 
读《高性能MySQL》—— 索引章节的应用思考从西门开始一路向东-岳麓山西门徒步
  • GitTalk
2021-2025 guozichun.

BLOG | Father, Husband, Developer