区块链学习——总体了解
- 初步了解区块链之后的一些理解
- Timestamp sever
- 区块链
- 后记
初步了解区块链之后的一些理解
为了解决传统的支付方式当中存在的“双重支付”以及信任代价的问题,由中本聪的白皮书当中提出了解决办法:通过随机散列哈希并且对每一笔交易加上时间戳记,然后将所有的交易合并到一个不断延伸的基于随机散列的工作量证明的链条作为交易记录,除非重新完成所有的工作量证明,否则交易记录不会改变。
由于传统线上支付是通过第三方金融机构来进行支付的,金融机构的存在就是为了防止“双重支付”的问题,该模式受制于基于信任的模型,在进行交易时增加了信任代价,而区块链是基于密码学的,而非基于信任,可以杜绝回滚。其主要的特点就是一个基于点对点网络的、分散式的、拥有时间戳记的和伺服器的依照时间进行前后排列并加以记录的电子交易证明。
Timestamp sever
交易信息以区块的方式存在,对区块进行随机散列加上时间戳记之后就可以进行全网广播了,而时间戳记存在的意义是证实信息在特定的时间是存在的。每一个时间戳记都将上一个加入其随机散列值当中,并且对其增强,从而形成链。广播的过程如下所示:
- 新的交易向全网广播
- 将交易纳入一个区块当中
- 节点进行工作量证明
- 当有一个节点完成了工作量证明,将其向全网广播
- 当且仅当在区块中的所有交易有效且未存在过,则认为是有效的,所有节点认同
- 在该区块的末尾,制造新的区块,将这个区块的随机散列值加入到新的区块当中
区块链
区块链是由包含信息的区块从后向前有序链接起来的数据结构,可以被看做是一个栈,第一个区块作为栈底的首区块,随后,每一个区块被放置在其上,高度表示区块与首区块之间的距离,顶部或顶端表示最新添加的区块。对每一个区块进行加密哈希,生成的哈希值用来识别区块链当中的对应区块。每一个区块的区块头包含父区块的哈希值,用来引用前一区块(父区块)。
区块结构 | 对应功能 |
区块大小 | 用字节表示该字段之后的区块大小 |
区块头 | 表示区块的各种信息 |
交易计数器 | 表示交易的数量 |
交易 | 记录在区块中的交易信息 |
区块头内结构 | 对应功能 |
版本 | 根据版本来进行后续操作 |
父区块哈希值 | 引用父区块的哈希值 |
难度 | 工作量难度目标 |
时间戳记 | 区块产生的近似时间 |
Nonce | 用来进行哈希散列的数值 |
Merkle | 交易的merkle树根的哈希值 |