首先,非常感谢你的信任点了进来。文章有点长,脑洞也有点大。还望各位耐心看完,相信一定有所收获,不会浪费你宝贵的时间,如果纰漏万望指出。如有币圈大佬看中也可以勾搭作者,我非常渴望成为一颗健康无害的小韭菜。
关于比特币,首先列一下其中关键的几项技术,在下文中都会一一讲到。
需要理解的核心技术及必要概念
核心技术
哈希算法(HASH)
非对称加密(RSA)
点对点网络协议(P2P)
必要概念
1.代码开源(让大家知道究竟是怎么运行的)
2.去中心化(节点不会被控制)
3.工作量证明(POW,如何确认新区块的写入)
以上便是需要了解所有概念以及核心技术了,看到这里详细有一部分读者已经开始想要点左上角关闭。然后取关说一声智障了,居然没有区块链,还谈什么比特币,装什么大尾巴狼。
那么所谓区块链到底是什么呢?在我看来其实他什么也不是,只是在无法清除的描述多项技术组合的情况下被发明出来的词语而已。
虽然关于区块链,目前已经被神话了。很多人在完全不清楚这是个什么东西,但是只要听到这个词的情况下就能侃侃而谈,从民生谈到经济,从经济谈到政府,谈到公民意思,谈到乌托邦,谈到货币政策,谈到打破垄断,重塑商业格局,谈到改变世界,改变互联网。让区块链成为暴富妄想症的翅膀,无论什么样的东西一旦加上区块链不用风就可以飞了。但可惜的是,目前市面上很多翅膀是塑料的,甚至是“隐形”的翅膀,跟空气一样,你压根见不着。
大多数人会在很久很久以后发现,原来自己是颗韭菜,还是被割过好多茬还在鼓吹镰刀很漂亮很有金属光泽的韭菜。
下面我就来让大家看看区块链的真是形态,希望大家不要失望。
如果我告诉你上面就是一个区块链,相信很多人都有打我的心了吧。说上一句垃圾文章,智障作者,然后果断取关。继续去真理的世界里遨游看看镰刀什么时候落下来。
然而很遗憾,以上就是一个货真价实的区块链,虽然其中一些信息是错误的,虚构的。但是并不妨碍我们了解他的本质。对于那些留下来继续看的读者,首先恭喜你。除了在各种钱包里见到数字货币以外,你已经看到了被称为这个世界上最“伟大”的发明区块链的原始样貌了。
区块链的本质是比特币程序中用于记录每一个区块的一种数据结构。我们可以将它想象成一个账本,账本里将发生过的每一个事件都真实的记录下来。
这个账本具有对历史数据任何人不可逆改的特性,以及任何人都可以获得账本且添加记录的特性。
我们先来看看他的不可逆改性体现在哪里。
首先我们解释一下上面区块链账本中的各项信息
其中每一块的第一行是次区块的主体信息,记录着这一区块的事件
第二行是该区块的验证标志,用于验证该区块的正确性,如果无法通过则代表改区块是伪造的
第二行中的是一个等式,等式想必不用介绍就是左右两边完全相等。重点我们来看左边的fx,fx是一个哈希函数
如果不明白什么是哈希函数的,可以把他想做一个单向转换器。他的功能是将你丢进来的信息进行转换,且转换的结果必须符合以下几点规则
如果你给转换器的信息是相同的,其结果必然唯一且相同
如果给转换器不同的信息,可以得到必然不同的结果(其实也有非常微小的可能得到相同的结果,但是其概率非常非常微小,以至于可以不加考虑)
我们根据转换的结果逆向的得到给转换器的原始信息非常非常困难
根据以上的信息我们来看一下第二行,以及他的作用。当我使用转换器将“我是创始者”进行转换时,必然得到A,且任何情况下都得到A。但我要通过A得到“我是创世者”这样的信息却非常非常的困难
虽然在以上的描述中我们可以看到其实哈希还是有两个弊端的,一个是我有可能通过转换其他的信息也得到A,另一个虽然要通过A得到“我是创始者”这样的信息非常非常的困难也并非绝对不可能。但相对于目前的计算机技术来说,无论是想要碰撞出A,还是逆转哈希需要的计算量都非常非常的大。所以目前为止,我们可以认为哈希算法是安全的。如果等到量子计算机面世那就不好说了,但我相信到时候必然也有对应的量子算法出来
理解了上面的转换器,在来结合账本,那么我们对于账本的不可逆性就有能比较好的认知了
首先我们从最后一块看起,他的验证标识为C,是通过自身主体信息加上第二块的验证标识B来生成的,而第二块的验证标识B又是通过第二块的主题信息加上创世块的验证标识A来生成的。 这么一来,无论我们更改了整个韭菜币链中的任何一点信息,整个链都将随之改变。
在账本已经存在的情况下,账本将无法被更改。当然如果我们能通过碰撞计算出一样的标识B来,我们则可以改掉第一块。但在真实的比特币程序中每一条的主体信息也是有格式的,实际上来说不存在这样的可能性。
看到这里有的读者可能会发现,虽然这个链看似很完整,但是我们可以任意的往账本里面加新的区块。由于比特币账本人人可获取,且人人可自由添加新区块的特性。这会导致账本可以任意的增加,最终导致奔溃。为了避免这样的情况发生,接下来我将改造一下我们的韭菜币链让加入一个块不那么容易,也就是我们的工作量证明。
那么什么是工作量证明?又该怎么证明呢?下面我们来看看我们的升级版韭菜币链。
在初始账本的基础上我们加多了一行,作为生成验证标识的辅助行。这一行用于将最终生成的标志,全部统一为我爱韭菜币开头。
由于我们知道无法通过 我爱韭菜币A得到转换器内的内容,那么我们剩下的唯一渠道便是通过不断的尝试将信息丢给转换器来观察结果,符合之后在将区块写入到区块链中。
这么说可能有点笼统,那么我们来试着看一下执行过程
以创世块为例
想要得到 我爱韭菜币A 我们经历了以下的尝试
fx(作者智障-我是创世者) = 作者很帅好吗?
fx(垃圾文章-我是创世者) = 文章很好请转发谢谢!
fx(我爱作者-我是创世者) = 已有女朋友,比你漂亮谢谢!
fx(我爱韭菜币-我是创世者) = 我们也爱你哟~
fx(改变世界-我是创世者) = 笑而不语!
千辛万苦的尝试。。。。。
万辛亿苦的尝试。。。。。
fx(作者真帅-我是创世者) = 我爱韭菜币A
历经了千辛万苦的尝试,然后在经过万辛亿苦的尝试之后,我们终于得到了一个 我爱韭菜币A 的标识。然后我们怀着激动的心情颤颤巍巍的将辅助验证标识,以及主题信息,验证标识写入到区块链中之后我们伟大的真•无敌究极完全体韭菜币的创世块便生成了
以上的过程,我们称之为挖矿!由此,我们开启了伟大的韭菜生涯,在成为收割者的图上迈进了坚实的一步!
当然,在上述的过程中。我们描述的是一个人,也可以说是一台机器的情况。当我们有了多台机器的时候,情况变得复杂且微妙起来了。
因为有非常非常多的人都在同时的计算,那么如果有两个人同时计算出来了一个可用的辅助验证标识该怎么办呢?
如何知道这个标识是我计算出来的,怎么验证他的所有权呢?
领取专属 10元无门槛券
私享最新 技术干货