今天的内容是近期上的区块链开发课的笔记一部分,偏技术,是自己听的很有感觉的一节课,非区块链行业的同学如果看到我这片文章,会不知所云。
区块链概述
一个区块链,相当于一个账本,它是记录交易的,一个区块链像一本书一样,每一个个别的区块像书里的一页,每一页都会有一定数量的交易。
所以一个区块链描述的是一个封闭的生态的历史,从第一个交易到最后一个交易;不同的交易会被包装成个别的区块,整个历史是一个交易的排序,不同的交易会被包装在不同区块内,为了记账和验证的原因,它必须把整个历史分为一些明确的单位,这些单位就叫做区块。
每一个交易都是一个很明确的结构,比如甲方到乙方的交易,会描述,1.甲方是谁;2.乙方是谁;3.转帐的额度,这是最基本的对交易的理解。
如果你的程序想要计算任何人的交易,通过一个节点程序查看任何人账号的交易都可以,所有的账号的交易都是公开的。
但是区块链不会记每个人有多少钱,你需要查看交易历史,把所有的钱加在一起,才能知道它现在的额度。
比如甲的全部交易历史有三笔,第一笔收入500,第二笔收入200,第三笔支出100,把这些交易历史加起来,为600,这就是甲现在拥有的额度。
这种操作和传统电商的数据库没有太大差别,一个区块链的账本是很多人一起编写的,它不是一个人编写的,它是以竞争形式记账的,所以每一个区块是由不同的人生产的,而且不同的机器会相互竞争为了得到机会来编写下一个区块。
每个区块链都有网络,区块链的参与者之间相会有联系,一部分的参与者是挖掘者,一部分不是挖掘者,不是挖掘者的参与者,他们只是在做记录和验证,如果任何人试图进行非法的交易,比如我只有100,我试图来发送给别人200,他们会检查到,他们会拒绝这个交易,所以他们是来帮着做审查的,并且帮着来保存数据。
挖掘者们会通过竞争,来获取编写下一个区块的权利。比如在BTC内,每10分钟,都会有一次竞争(算力的竞争),那么每一局的胜利者就会获得编写下一个区块的权力。
POW VS POS
PoW叫做劳动证明,在PoW以下,会有一群人,为了获得编写下一个区块的权力进行竞争,这些人都是陌生人,他们不用泄漏个人信息,而且他们能随时进入竞争,能随时退出,在这个系统下,一个正常的用户,如果他们想要交易的话,他的钱包程序会通知一群挖掘者,它会做一个广播,很多挖掘者都会收到他的广播信息,赢得竞争的人会将我的交易写进下一个区块。
PoS叫做权益证明,在权益证明下,一群人不会以竞争名义来写账本,而是协作来写账本,要是你想要加入这个群体的话,你必须要付很大的押金,然后你进去之后,这个群体会提前设定一个规则来设定在哪一个时刻由那个人来负责记账。所以他们的规则会安排好每10分钟或几分钟轮到谁来记账,然后如果那个人在那个区间没有发布出来一个区块,比如他的计算机下线了,他就会获得惩罚,然后会轮到下一个人。
PoS被发明的原因是PoW使用的电力太多了,所以他们创造一个模式来减少能源的消耗,因为它不是竞争的,所以它用的电力特别少,在PoW模式下,所有的挖掘者都在用他们所有的算力,每时每刻都投入他们所有的算力来超过互相,因此挖矿消耗的电量超过了一些小的国家的平均消耗的电量。
在PoS之下写进行一次记账,和正常的写一个储存程序消耗的电力差别不大,网络上的每个节点会根据排序进行挖掘,然后他们简单的把这些交易放到一个包装之后,他们就会发送,因为他们去掉了竞争性,所以能够减少能源的消耗。
但是PoS也有一些问题,PoS的系统没有过非常大的交易量,有的人认为它逻辑上有漏洞,PoS系统运行起来之前,它必须有一个复杂的协议,这个协议首先让所有的挖掘者得到一个时间的排序,并且他要随时让挖掘者能够进来和出去,因为他们付了押金,但是他们不应该让挖掘者猜到什么时候该轮到他们,因为这个原因,他们拥有一个随机生产器的算法,他们会用一个算法把之前所有的内容给消化来变成一个数字,然后由数字来决定谁是下个一挖掘者。