从技术角度学习区块链(三)

上一篇文章,讲解了区块链的基础知识。今天,我们继续讨论区块链技术中使用的分布式系统下一致性算法,也就是共识算法。

那么什么是共识算法呢?

在一个分布式系统中,如何保证集群中所有节点中的数据完全相同并且能够对某个提案(Proposal)达成一致是分布式系统正常工作的核心问题,而共识算法就是用来保证分布式系统一致性的方法。共识算法解决的是对某个提案(Proposal),大家达成一致意见的过程。提案的含义在分布式系统中十分宽泛,如多个事件发生的顺序、某个键对应的值、谁是领导……等等,可以认为任何需要达成一致的信息都是一个提案。常见的公式算法有Paxos、Raft、POW、POS、DPOS等。

Paxos和Raft算法

Paxos (帕克索斯)共识算法,在工程角度实现了一种最大化保障分布式系统一致性(存在极小的概率无法实现一致)的机制。Paxos 被广泛应用在 Chubby、ZooKeeper 这样的系统中。该算法解决了数据一致性的问题。Raft(ra福特)可以为Paxos算法的简化版本,Raft更容易理解并且更易于建立实际的系统。这两种算法主要针对内部服务系统,不会故意发送错误的数据。

POW算法

Proof of Work,工作量证明。该算法的原理是,该分布式系统中的请求服务的节点必须解决一个一般难度但是可行(feasible)的问题,但是验证问题答案的过程对于服务提供者来说却非常容易,也就是一个不容易解答但是容易验证的问题。通过计算来猜测一个数值(nonce),得以解决规定的 hash 问题(来源于 hashcash)。保证在一段时间内,系统中只能出现少数合法提案。简单来讲就是,该算法会给出一个数学题,每个参与的节点,谁先计算出来,谁就获得奖励。整个系统会动态调整难度,保证出块的速度保持在指定时间内。这样说,可能不好理解,简单用麻将来类比区块链,其实麻将作为中国传统的区块链项目,四人一组,先碰撞出13个数字正确的哈希值的人获得记账权并且获得奖励。

POS算法

Proof of Stake,权益证明。类似了股份制的公司,你有多少股份,你就多少发言权。在区块链里,下一个区块的矿工选择是根据不同节点的权益和时间进行随机选择的。与工作量证明相比,权益证明不需要消耗大量的电力就能够保证区块链网络的安全性,同时也不需要在每个区块中创建新的货币来激励矿工参与当前网络的运行,这也就在一定程度上缩短了达成共识所需要的时间。所以会需要算法之外的奖励和惩罚规则。

DPOS

委托权益证明(DPOS,Delegated Proof-of-Stake)能够让每一个人选出可以代表自己利益的人参与到记账权的争夺中,这样多个小股东就能够通过投票选出自己的代理人,保障自己的利益。整个网络中选举出的多个节点能够在 1s 中之内对 99.9% 的交易进行确认,使用委托权益证明的区块链能够每秒处理几十万笔交易,同时也能够比较监管的干预。简单来说,DPOS和现行的人民代表大会的制度以及美国的议员选择总统类似。每个人都会有票数,每个人就可以选出自己的代表去参加会议,代表自己的权利,执行自己的权利。

什么是矿工?

上面说了很多共识算法是保质数据的一致性,那么矿工的作用是记账权。还记得第一期的例子,里面的记账的就是村长,村长就是矿工。在区块链里,矿工是需要根据算力来争夺记账权的,谁先计算出来,谁就会获得奖励。获得记账权后,矿工会把这笔交易数据记录到区块里。

区块链技术的应用价值

俗话说,一切没有应用的技术都是耍牛氓。那么区块链技术到底有什么样的应用价值呢?区块链技术的应用价值在于,重构信任,确权,价值流动。

重构信任

通过区块链技术的应用都是可以在链上查询到相关交易记录的,每个人都有自己独立的账本,想抵赖,没门。通过智能合约的机制,可以把更多的合同数字化,自动执行合同约定的操作。code is law 。代码就是法律,从底层上解决需要第三方信任的缺点,以很少甚至可以忽略不计的成本解决了个人与个人、机构之间的信任问题。

确权

过去,我们经常为证明问题头疼。办理一个证件,还需要证明这些问题:怎么证明你是你?怎么证明你妈是你妈?应用区块链技术后,就不需要为这些问题头疼了。你的私钥只有你自己知道。只需要把你交易记录以及数字签名发布出去,别人就能确认这是你的了。甚至还可以采用零知识证明来实现隐私保护。再也不用证明你妈是你妈了。不用证明你是你了。你的终究是你的。

好比,大家都喜欢用淘宝购物,你的钱充值放在支付宝里,你怎么知道支付宝有没有用你的钱借给别人做投资?你的钱到底是不是你的?如果采用区块链技术的话,你的钱只有你才能操作,因为只私钥在你自己的手里。别人没有权限动用你的资金,你放在支付宝的钱就是你。支付宝是无法动用你的资金的。

价值流动

现实世界的交易,都是一手交易,一手交钱。很多时候交易成本相当高。比如房产交易,一般是需要2-3个月左右的交易时间。如果应用区块链技术,首先确认房产的所属权,然后两个直接进行交易就行了,交易完会把这些交易信息加密后广播出去,得到确认后会写入到区块链的区块里,不可篡改。这项交易就这样完成咯。你甚至可以做到按照0.01平方米的分割来卖,这些都提供了价值的流动性,极大的提高了生产效率。再讲一个转账电汇的例子,利用区块链技术的转账,大约操作只需要你填写对方的地址,填写数量,确认就好了,耗时3分钟。但是传统的转账,你要去银行的柜台填一堆的表格或者去操作难用的App、网上银行,耗时估计要30–40分钟。

投资

大家说,你讲了那么多区块链的技术,那到底有没有什么可以投资的数字货币?没有!

在这里不推荐任何数字货币,因为目前市场还是在非常早期,毕竟在价值之外还有泡沫的存在。但可以推荐区块链世界简明生存指南以及INblockchain 投资原则

以下是我对指南和投资原则的一些理解:

  1. 不懂不投。就是搞清楚,弄明白了,再去投资,自己的投资自己负责。
  2. 不要问,一问你就不是合格的投资者。
  3. 多花点时间读懂白皮书,充值了信仰,就能拿得住你手中的币了。
  4. 把时间和注意力,花费在你自己的成长上。

始发于微信公众号:神秘极客

发表评论

电子邮件地址不会被公开。 必填项已用*标注