上一节课讲了区块链是一种分布式账本,那么区块链应用了哪些关键技术来实现账本,又是怎么工作的呢?
一、区块链中的关键技术
1、区块链账本:区块链就是“区块+链”,区块就是数据块的意思,不同的数据块按照时间先后串联在一起就是区块链。就像会计记账,可以把每个月份的账记录在一个区块上,从1月份到12月份,按顺序排列,就是一个区块链。
2、共识机制:所谓共识,就是大家达成一致,共同遵守的一系列规则。就像钻石,本身没有价值,但当大家都认可那句:“钻石恒久远、一颗永流传”之后,钻石也就有了价值。这就是人们达成的一种共识。那么在区块链的世界中,共识算法是一个规则,每个节点按照这个规则去确认和同步自己的数据,从而使所有节点数据保持一致。
3、密码算法:区块链由于去中心化的特质,没有一个中心机构来负责数字货币的安全。那么如何保证安全性呢?答案是密码算法。主要的密码算法是哈希算法,只能加密不能解密,哈希算法是通过对一段不定长数据计算后得出的一段固定长度的值,输出和输入是唯一对应的。当修改输出值时,输出值也会变化。而且不能从输出值反向推算出输入值,算法的单向性保证了安全性。
4、公钥、私钥和地址:区块链采用的是非对称加密的方式,先生成一对密钥——公钥和私钥。对外公开的密钥叫公钥,不公开的密钥叫私钥。公钥就像银行的账户,私钥就像该账户的密码或者账户所有者的签名。私钥可以计算出公钥,公钥经双哈希运算得到的字符串,被称为地址。 私钥的持有者才是数字货币的持有者。
5、时间戳:时间戳用于记录当前区块数据的写入时间。每一个随后区块中的时间戳都是对前一个时间戳的增强,形成一个时间递增的链条。时间戳记录了区块链上什么时间发生了什么事情。时间戳可以作为存在性证明,保证了区块链数据的不可篡改和不可伪造。这也为区块链技术应用于公正、知识产权等时间敏感领域提供了可能。
二、区块链的工作流程
区块链组成示意图
区块链中的每个区块中主要包含了区块头、交易事务、交易计数器和区块大小等数据。
区块头主要包括上一区块的哈希值,用于保证区块按顺序链接;时间戳,记录该区块的生成时间。
交易事务记录了每笔交易的转出方、收入方、金额及转出方的数字签名,是每个区块内的主要内容。
交易计数器记录每个区块中包含的交易数量。区块大小标识每个区块数据的大小。
区块头中的梅克尔根关联了区块中的交易事务,使区块头和交易事务是一体的。每个区块之间通过区块头哈希值串联起来。这样就把区块头和区块体链接起来,后一个区块和前一个区块链接起来。
工作流程
当区块链中有新的交易发生的时候,流程如下:
1、Alice向Bob转账,由Alice发起一笔交易,带上自己的私钥签名,制成交易单;
2、Alice将交易单广播至全网,每个节点都将收到的交易信息放入一个区块中;
3、通过竞争机制,抢到记账权的节点把这笔交易记录到区块链中,并广播至全网;
4、全网节点核对该区块记账的正确性,如果验证通过就记录到区块链中。
5、转账完成。