区块链技术浅谈(一)

(一)区块链技术简介

网上关于区块链技术的介绍文章很多,多数都是少数几篇文章翻来覆去的引用。这年头,大家越来越懒,愿意打字的人真不多了。去繁存简,我用简单的例子,来讲讲区块链技术,希望能让对于区块链不了解的朋友们也能够多多少少的理解这个“新兴”的概念(其实早就不新啦)。

传统的网络程序

先来说说我们常用的网络程序,我尽量简单表述:传统的网络程序是需要一台服务器的,一般来说系统还需要记录数据,所以另外需要一个数据库。举个例子,你通过微信扫码成为了一个面包店的会员,你可以向你的会员账号里充值,商户也会在交易成功后从你的账户中划款到他的账户之中。这些注册、交易、充值流程是通过一台服务器(就是一台电脑)上的一个程序来执行的,而所有会员的余额、各个商户的收益也都需要记录下来,所以也会需要一个数据库(就是一个小账本,例如数据库软件SQL、Redis,甚至Excel,只要能记录数据都行)来记录。

这就是传统网络程序的构造了,开发者需要买一台服务器,还需要安装一个数据库,而用户们使用的所有功能都是通过这台服务器来处理的。程序会一直平稳的运行下去吗?那可不一定,大家多少也遇到过这些的情况:

1、服务器死机了、断线了、停电了、坏了、用户太热情导致服务器处理不过来了;

2、数据库打不开了、坏了、被删了

这时候你就买不了面包了,只能等待(焦头烂额的)运维、技术人员把问题处理好才能再买。

还有更可怕的,如果有一个“坏蛋”,他来干坏事:

1、到服务器上把程序删了;或者他到服务器上把程序改了,改成你充100块人民币进去,账户里增加10000的余额。

2、他到数据库里改数据,把你的余额改成0,把他自己的余额改成1个小目标(1亿)

3、他跑去机房,一把火把服务器烧了……

好吧,这种情况下就没那么简单能处理好了,你可以考虑去隔壁的包子铺换换口味了。

这就是传统互联网程序的弊端:1、只有一台服务器,坏了就不能用了;2、数据库可能会被篡改。

区块链应用程序

而区块链技术就不一样了,它需要很多很多的服务器和数据库,每一台服务器和数据库上的数据都是自动同步、且完全一样的,每一笔业务它随机挑选一些服务器来处理,在验证结果之后,把结果同步给所有的服务器和数据库。你可以这样理解:世界上有几千几万几十万台电脑,每台电脑上都运行着面包店程序,而且记录着所有的客户余额。你每次充值、花钱买面包,系统都会从这几十万台电脑中选几台或者几十台、或者几百台电脑来执行程序,并且大家相互核对执行结果,保证你的金额没有出错,然后把最终的数据同步到世界上剩余的所有的电脑之中。

在这样的系统架构下,一台电脑坏了不要紧,还有其它几万个电脑同胞顶上来。一台电脑的程序被改动了也没关系,你的结果与其它参与计算的电脑算出来的结果对不上,不采纳你的结果,用大多数电脑的结果。一台电脑上的数据库被改了也没关系,你这个库的数据与其它的电脑同胞的数据对不上,那么大家都不采信你的数据就行了。

小结

其它文章中经常会说:“区块链技术开放、可信、去中心化、共享……”就是这个意思,说到底就是只要我的电脑足够多,我的程序就能保证安全,“坏人”就改不了我的程序和数据。这千百万的电脑兄弟都是我的服务器、是我的数据库。坏人要是想做坏事,只控制一台电脑可不管用了,他得有本事控制这千百万的电脑兄弟才行

em……等一下,我有问题要问问

1、你说了这么多传统互联网程序有危险、不靠谱,我们平时用的那么多那么多程序平时也没出什么问题?就算出了问题,多数情况下过了一会就能正常使用了呀。

2、你说使用区块链技术有千百万的电脑,可从哪里弄这么多的电脑呢,成本不是更高了吗?

必须得扩展说明

1、先说传统互联网应用。刚刚列举的场景只是一个超级简单的架构,多数的互联网应用可不仅仅只是一台服务器,一个数据库这么简单的。常用的分布式服务器架构可以将程序扩展到多台服务器上,一方面可以减轻单台服务器的运行压力,另一方面可以避免由于单台服务器出现问题,导致整个程序瘫痪的情况发生;数据库也是如此,一般都会定时备份,再需求更高时也会采取更高级的数据容灾方案。

在今天,对于程序安全、数据安全,有数不清的架构师、程序员、运维工作者不断为之努力,为的就是程序更加强健、更加安全。数不清的日志、数据库记录、核算、对账过程都在默默运行着。对于服务器的监控、分布式部署也是从不停歇。

其实在纯技术手段之外还有一个厉害的角色来威慑“坏人”——网信办、公安部等相关机构会负责网络安全保护和监督管理工作,防止有“坏人”恶意从事网络犯罪。在此情况下,“坏人”需要承担的风险是相当巨大的。总之,互联网技术在不断完善着,在大家共同的努力完善下,传统互联网应用的容灾手段越发完善,越发安全了。

2、再来说说区块链的“电脑”问题。这些“电脑”其实叫做“节点”。节点是一个程序而已,运行起来很简单方便,只要你有能联网的电脑或者平板,下载一个节点程序,运行程序然后你就可以该干嘛干嘛去了,节点程序会自己完成区块链的所有工作。

——那么问题来了,我自己的电脑干点啥不好,非要运行你的节点程序做什么?我运行你的程序有什么好处?

Very Good,这真实一个灵魂拷问!电脑只要开机就要费电,运行程序还会带来硬件折损,而世界上几乎没有人愿意无偿奉献。所以,最初的聪明的区块链设计者们设计出来了一个直观、好玩的激励机制:虚拟币,以及挖矿。

我们大家熟知的,有里程碑意义的“比特币”,实际上就是“比特币区块链”内部定义的货币,就是虚拟币。而你的电脑运行节点程序时,可以藉由一个公平的算法,有一定的概率得到“比特币”,这个过程就像矿工在乱石中挖掘有价值的矿石一样,所以大家把这个过程称之为“挖矿”。

继比特币之后,又出现了很多其它的虚拟币,很多都采用了新的挖矿算法产出各自的虚拟币。而不用管各种挖矿算法多么的玄乎,其实本质就是一个:你运行我的节点程序,就有机会获得我的一个“虚拟币”!

——那么问题又来了,我能获得多少虚拟币?你的虚拟币值钱吗?

挖矿的收益算法就很复杂了,有兴趣的可以深入了解。而对于其本质,可以这样理解:有的虚拟币是通过显卡运算(你的显卡越厉害,收益就越多)、有的通过CPU运算(你的CPU越强悍,收益越多)、还有的通过硬盘运算(你的硬盘容量越大,收益就越多)挖矿……而这些硬件可是你需要真金白银买来的,大家都想去挖比特币,显卡的价格自然就被抬高了——这就是为什么前几年显卡价格离谱的原因,这种溢价的情况也可以类推到某些型号的CPU、硬盘。

再说虚拟币是否值钱的。说到底,虚拟币就是区块链创造者做出来的一个数字而已,是由市场决定它是否值钱,说白了就是大家觉得它有没有投资价值。大家都听说过比特币,现在一个比特币能换2万多美金,为什么它值2万美金?因为有人愿意出2万美金买1个比特币。为什么有人愿意出2万美金买1个比特币?因为他觉得以后可能有人出10万买1个比特币。而市面上各种虚拟币成千上万,价格差大的离谱,有的币的价格甚至要到小数点后十几位才有数值——因为市场不认可这个币,觉得它的投资价值为0。

我来打个比方,突然有一天,社会上所有人都说长度为0.987654321cm的大米非常值钱,一粒能卖20万人民币。你觉得不可思议,不就是一粒大米嘛,有这么值钱吗?但是市场上确实有人在买卖它,于是你抱着试试看的心态精确测量了你家的米缸里的大米,居然找到一粒完美匹配的,然后你惴惴不安的挂到市场上售卖,居然真的立马换成了20万人民币!你会不会热情高涨,买一袋又一袋的大米来测量?

你一个月本来只吃半袋米,现在每天都要买一袋回来测量,而且你也不再想着老实工作了——我找到一粒大米,不抵我工作一年?——这就是虚拟币的矿工、矿场,每天都要消耗大量的电力挖矿,同时也在极限压榨千千万万的硬件的寿命——而他们的目的,就是获得链上的一堆数字而已。

此外,你的朋友得知了这个消息,他开始去市场上买卖这种大米,遇到行情好,低买高卖的赚上一笔;行情差,大米就砸在手里了。整个市场也因为参与的人越来越多而热闹起来。

所以我现在问问你,虚拟币值钱吗?

关于虚拟币和交易所的事情,我们后面再慢慢聊,我们继续回到区块链技术。

区块链的公开性

一般来说区块链是开源的,也就是说它的源代码是公开的,它的数据也是公开的,链上的所有信息,任何人都可以查到。公开性是目前面向社会的区块链的应用的共识。

关于公开性,我是这样理解的:区块链的数据、程序是运行于各个节点上的,所以如果想让人们成为你的节点,你得公开代码,让看得懂的人来看看你的程序做的事情是不是跟你承诺的一致,不会偷偷做什么手脚。代码都公开了,数据藏着掖着也没有意义了。程序不可能不被破解,毕竟你的数据和程序可是分布在世界各地,拿到你的程序,所有的程序数据在破解专家面前都是完全透明的(甚至他掌握的比你还清楚),所以干脆放弃抵抗,完全放开算了,哈哈。

继续小结

大家也看到了,区别于传统的互联网技术,区块链技术的去中心化、可信、公开。区块链的拥护者们看到了一个美好、广阔的世界:公平、没有秘密、没有黑箱操作、透明的网络世界,接下来,就等着区块链技术改变人类的生活吧!

补充说明

1、随着虚拟币市场热度提升,参与者越来越多,节点也出现了细分。毕竟理论上负责区块链完整功能的全节点需要占用极大的空间,所以“轻节点”、“挖矿节点”等根据使用者目的不同,而细分出来了。例如轻节点,不需要挖矿功能,只同步保留自己的目标地址的数据即可。

2、矿池、以及矿池算法出现。例如:原先每一次挖矿产出的时候,只有一个人能分到1个比特币。现在有了矿池,大家“抱团”挖矿,矿池给大家分派任务,一旦其中的一个人挖到了矿,那么矿池内所有参与者根据自己计算量的多少,按照比例瓜分这1个比特币。

3、参与挖矿的电脑也不再是普通的家用电脑,它进化的更加极端。在比特币火爆之后,出现了定制矿机:一个铁架子、加上仅安装了挖矿程序的硬盘、基本的内存、CPU、再插上十几张万元显卡,为的就是挖矿更高效。这样的“计算机”除了挖矿以外,几乎没有任何作用。挖矿的电量损耗也是惊人的,一张显卡的功率是200W左右,所以在冬天一屋子的矿机运行起来,是可以在里面光膀子的。此外,参与挖矿的硬件也是7*24小时不间断运行,硬件的折损速度远远高于其在正常使用时的折损速度。

4、挖矿消耗了大量的能源,扰乱了硬件价格,与此同时,却并没有为人类社会的生产生活带来实质提升。国家在前段时间明文表示:挖矿违法。我个人深以为然。

 
posted @ 2022-08-10 17:07  嗜可乐的王梓  阅读(239)  评论(0)    收藏  举报