还记得炎热的夏天里很火热的ICO吗?肯定记得,我相信很多人记得,当时在学习群里或是订阅的公号里,感觉每天都有新币出现,那时候我也只知道比特币、以太坊等有限的几种币,具体它们哪里不同,根本不清楚,甚至比特币的特点也无法理解清楚,人们常说比特币系统设计很精妙,我不明白精妙在哪了,那时候甚至弄不清代币和比特币有啥关系,最近又开始翻看以前的课程,觉得头脑里有了一些轮廓了。
先说说什么是代币
比特币就是比特币系统的代币,以太币就是以太坊的代币。别的币不说,就拿最熟悉的这两种币来理解币的概念比较容易。
比特币系统是一个程序,以太坊也是个程序,但比特币和比特币系统的关系就很单纯,它就是个依靠比特币系统四处流动的一个电子货币,比特币系统里只有一种交易—转账,比特币沿着比特币系统这个管道流淌在比特币系统所能触及的任意一个地方。
就是这么简单,比特币就是一个电子货币,往复杂了说是点对点、去中心化的数字加密货币系统。
而以太币在以太坊中是会被消耗的,我理解以太坊是停车场,以太币就是你在这里停车要支付的代价。
这样看,比特币系统和以太坊系统其实就是两个程序,代币就是基于这个程序发行的。这样看很明显代币就有不同的类型了,以太币就属于功能性的代币,你用这个系统你就要消耗手里的代币,而比特币系统是不消耗比特币的。
什么是区块链呢?
以下都以比特币来说区块链。
区块链就像一列火车,第一节车厢就是创始区块即中本聪挖出来的第一个区块,然后就是第二个区块,第三个区块……,这样一节节的车厢就排在了一起成为一列火车。
这里就涉及到几个概念:
1、块高度:中本聪挖的第一个块标记为“0”,它的块高度就是1,挖出的第二个块标记为“1”,块高度即2。块高度这个概念有什么用?我目前见到并能理解的就是,当大家打算分叉的时候会约定好在哪一个块高度进行分叉,而不说在几点几分进行分叉,在这里用块高度这个说法比时间更精确更有意义。
2、块深度:举例说,我给你转了1个比特币,我这笔交易被打包进区块并被广播全网后,这时的区块深度就是1,10分钟后又有一个区块生成并全网广播,此时的区块深度就是2,以此类推,后面生成的区块越多,块深度越深,说明你的这笔交易越保险,我们常听说块深度达到6时就可以认定这笔转账是安全的。
这个块深度有什么用呢?平时我们会在哪里用到呢?
就拿手机端的轻钱包举例,钱包里会有一个设置:交易经过几个区块钱包才确认为收到币,这里指的就是区块的深度。如果设置为“1”,那你的钱包在这笔交易所在区块生成时,就会立刻认为你已经收到币,如果设置为“6”,你的钱包就会在区块深度达到6时才确认为收到币。在场外面对面和人交易的时候,你最好是等块深度达到6以后再给对方钱,否则就有可能钱没了币也没了。
3、车厢上的挂钩:哈希
每个区块的头部都放着父区块的哈希值,父区块头部放着它前面的父区块的哈希值,这个哈希值就如同车厢上的挂钩一样,把区块由后到前一个个的连起来,然后就形成了一列火车。
哈希是什么呢?它就是个做香肠的机器,你放猪也行、放牛也行,反正出来后就是固定长度的香肠,从哈希值无法推算出原来输入的数据,就像这个香肠机只能把猪牛羊变成香肠,但无法把香肠变回原来的东西。
区块是哪来的?
举例来说,我向你买一个比特币,你就从你的钱包里把一个比特币转账到我的钱包地址上,这就是一笔交易。像这样的交易在比特币系统里不停的发生着,它们分别在各个节点上确认然后对外广播。
某个矿工节点接着上一块区块开始,拼命的算一道数学题,这刻可能有上千个矿工在比赛着算这一道数学题,看谁先算出答案,先算出答案的就获得了接着上一个区块打包这个区块的权利,他在当地交易数据池里筛选出符合条件的交易放入区块中,然后再把可以证明是他打包了这个区块的证明也记录在区块中,当然还有给他的12.5个比特币的奖励也要记入区块中,此外还要放入父区块的哈希值,本区块的生成时间,这样区块就诞生了。
拜占庭将军和区块链啥关系?
在古代有一个叫拜占庭的城邦,周围有些小国想要对抗拜占庭,这些小国凝结成十支军队,对于对抗还是撤退就需要进行协调得出一致的结论,这就是共识,如何得到共识,这个过程就是拜占庭将军问题,也叫拜占庭容错。
这个拜占庭问题描述了比特币系统中各个节点之间信息传递交互的一个场景,原本十支军队中的每个军队都会派出9个信使去另外9支军队传递信息并带回信息,这个信息量就很大了,信谁的?这些将军就是比特币系统中的节点,各个节点就竞赛算数学题,谁最快得出答案,谁的号令就是最终号令,其他将军同步执行,而节点中就是谁最快谁获得打包区块记账的权利。
这是学习笔记的第一部分,这是就我目前的理解而做的整理,可能随着学习的不断深入,对相关知识的不断吸收,我也许会发现这些理解中有许多的错误,不过学习就是个不断推翻现有认知的过程,也欢迎看到错漏的你向我提出来,我会非常感谢。