这是我们「区块链入门教程」的第一篇,内容都是所长根据多方面资料收集整理的,并非原创,只是用来帮助大家更好的理解区块链是什么,快速入门!希望大家多多提建议!所长会根据反馈及时调整的。
什么是区块链?
首先,区块链是一个分布式的数据库,其本身是由一串使用密码学相关联所产生的数据块。例如在比特币相关的区块链应用中,每一个数据块中就包含了多次比特币网络交易中有效确认的信息。
我们先来理解一下中心化集中处理的过程。当你日常在X宝上购物时,交易流程是这样的:钱打给支付宝,支付宝收款后通知商家发货,商家发货,当你确认收货后,支付宝把钱打给商家。
在这个过程中,虽然你是在和商家交易,但是这笔交易还牵扯到了除去你和卖家的第三方——支付宝。如果支付宝系统一旦出问题便会造成这笔交易的失败。
而在分布式的处理方式中,你只需要和商家交换钱和商品,然后双方声称已经完成这笔交易。这样的做法不但方便快捷,同时也保证了双方与交易无关的信息泄露。
如果只考虑两个人的交易并不能完全展示这种操作的优势,设想成千上万笔交易在避免第三方代理的前提下进行,就能够省下很多资源,使得更多交易自主简化,并排除被第三方代理控制的风险。
根据西班牙最大银行桑坦德发布的一份报告显示,2020年左右如果全世界的银行内部都使用区块链技术的话,大概每年能省下200亿美元的成本。这样的数据足以说明区块链可以给传统金融领域带来的巨大变革和突破。
当然,上述的例子存在一个重大的潜在问题:如果没有了权威的第三方代理,我们如何保证每笔交易的准确性和有效性呢?这里就引出了区块链的其它特性。两个基础难题在去中心化以后,整个系统中没有了权威的中心化代理,信息的可信度和准确性便会面临问题。
问题1:类两军问题第一次听说这个问题居然是在TCP的课上,大致说的是有两个相距很远的军队要传递信息,红军派遣一个信使去跟蓝军说:“你他娘的把意大利炮拿出来!”。蓝军收到信息后又派了一个信使去红军说:“收到指令!”。然后红军又派一个信使去蓝军说:“知道你收到指令了!”。然后蓝军又派一个信使去红军说:“知道你知道我收到指令了!”。然后红军又派一个信使去蓝军说:“知道你知道我知道你收到指令了!”……然后就没完没了了。在分布式计算中在异步系统和不可靠的通道上达到一致性是不可能的在这种情况下,因为是点对点的通信,双方不可能在这种情况下达到信息的一致性。严谨一点,就是“在分布式计算上,试图在异步系统和不可靠的通道上达到一致性是不可能的”。
问题2:拜占庭将军问题拜占庭罗马帝国在军事行动中,采取将军投票的策略来决定是进攻还是撤退,也就是说如果多数人决定进攻,就上去干。但是军队中如果有奸细(比如将军已经反水故意乱投票,或者传令官叛变擅自修改军令),那怎么保证最后投票的结果真正反映了忠诚的将军的意愿呢?拜占庭将军问题反映到信息交换领域中来,可以理解为在一个去中心的系统中,有一些节点是坏掉的,它们可能向外界广播错误的信息或者不广播信息,在这种情况下如何验证数据传输的准确性。区块链技术的诞生现在让我们来一步一步在去中心化的系统中解决这些问题,见证区块链技术雏形的诞生。
1.
我们先来建立一个除去具有第三方信用支撑的借贷模型:首先小红借给小明 100块钱,这个时候小红在人群中大喊:“我是小红,我借给小明 100块钱!”小明也在人群中大喊:“我是小明,小红借给我100块钱!”此时路上的甲乙丙都听到了这个消息,所有人都在心中默默记下小红借给小明100元钱这件事。在这个借贷系统,不存在独立的第三方,也不需要借贷协议和收据,严格来说,甚至不需要人与人长久的信任关系,因为一旦小明改口说他不欠小红钱,人民群众就会站出来说:“不对!我们都听到了你向小红借钱!”
2.
再换一个场景,比如我在人群中大喊一声:“我创造了100个所长币!”我甚至不需要知道所长币是什么,也不需要关心世界上是否真的有所长币,只要大家都听到了,然后在自己的小本本上写下“所长有100个所长币”,我就真的有100个所长币了!从此以后,只要我声称我给了你1一个所长币,只要路人甲乙丙丁都收到并且承认了这个信息,那我就成功地完成了这笔交易。
然而真正的区块链和比特币比上述模型要复杂的多,细节也要丰富地多,以下继续假设,我凭空创造的所长币已经在人群中流通起来了,大家也对所长币高度认同,但是创造之初我就假设了系统中只有100个所长币,因此有人动了坏心思,也向人群中喊他有100个所长币,这样的结果不是会导致人人都可以伪造所长币了吗?
3.
为了防止这种现象发生,我决定在创造所长币之初就做上标记,在大喊“我创造了100个所长币”的时候坐上标记001,之后我每交易一次,我都会在001的基础上,再说我给某某一个所长币,并给这条记录标记上002。这样就解决了伪造的问题,其实上述模型就是一个简化版的中本聪第一版比特币区块链协议。
很多人可能会问,凭啥你喊一句话我就帮你记?我不用花精力在小本本上记录吗?那么,为了激励大家帮我传话和记账,我决定给第一个记录又快又好的人奖励1个所长币,这个所长币是整个系统个你的报酬,而你记录了这句话之后,也要马上对其他人说你已经记录好了,让别人放弃记录这句话,并给出你的记录编号让后来人有据可查,然后再把我的话加上你的记录标号一起喊出来,供下一个记账获取奖励,这也就是比特币挖矿的极简原理。
4.
“听谁的?”在这个系统中,如果我和另一个人C几乎同时地喊出一句:“我记得所长”。由于听众所处的位置不同,一定会有人先听到我说的那句话,而另外一些人则先听到C的那句话,如果我们规定只能有一个人说出这句话,那到底这句话是谁说的?
如果不加任何条件,那么上述的情况一定会这样发展:一部分人认为这句话是我说的,在听到这句话之后开始记账,之后他们所做的所有事情都是基于这个事实,并且随着这个信息一次次的传下去,这条信息链会越来越深;而另外一群认为是C先说这句话的人,也会按照这样的趋势发展。这样,原本是一条唯一的信息链,在我们喊出“我记得所长”这句话之后,分叉了?
“区块链”分叉这会导致怎样的情况呢?按照我们的设想,应该每个人的小本本上记录的东西都是一样的,都是一条可以把所有信息串联起来的链条。但是在这一刻,他们小本本上记录的东西不一样了!以后还怎么确定交易和信息的真实性?
为了解决这个问题,我又追加了新的规则:每个人在记录小本本的时候,需要脱鞋然后用脚拿笔,在小本本上用正楷体书写!有了这个规定,由于用脚写字难度很大,每个人至少需要10分钟才能写完,而且由于每个人用脚写字的熟练度不通,写完这句话所用的时间也不同,因此一定会有人先写完然后高呼“我写完了!那句话是所长助手喊的!”,这样其它正在写这句话的人便会停笔,然后在小本本上重新开始写“那句话是来文写的,上一句的编号是xxx”。
如果你对上述我的解决方法感兴趣,你可以对照我上面的比喻去了解以下知识:
“听谁的”——中本聪破解“拜占庭将军问题”的算法
“在小本本上记录”——比特币挖矿
“脱鞋用脚写字”——比特币挖矿难度
“脱鞋写字速度”——算力
“新的规则”——工作量证明链
5.
再举一个例子,假如你是一位女生,你男朋友每次跟你说一句肉麻的话或者承诺给你买东西,你都立刻记录下来发给你和他的爸妈、朋友或者朋友圈,让他无法抵赖,这就是叫区块链。
假如你是一位女生,在某年某月某日的某个晚上,你男朋友对你说了一句“我爱你一生一世”,然后你把这句话发个你的闺蜜、爸妈、微信群等,你的男朋友再也无法抵赖,你打赏点小费给他们帮你记住并且作证,这个小费就是token。
你和你男朋友,以及“我爱你一生一世”这句话、说这句话的时间地点等信息,打包起来形成一个结构化的信息包,这个信息包就是“区块”。而你的爸妈、朋友、朋友圈等节点就是“链”。最后你的男朋友不承认说过这句话,你翻出这个账本和他对质,这就是区块链应用。
还有,你男朋友这个节点会被永远踢出网络;当然网络更大的情况下,这个男的可能永远找不到女朋友。
结束语
虽然比特币的疯狂带动了区块链的繁荣,越来越多的人将目光锁定在数字货币上想要投机倒把,一旦你控制不住自己,没有很好地了解数字货币以及专业操作的情况下,被割韭菜是大概率的事,同时各种骗子横行,虚假交易所、虚假钱包、虚假代投、私募跑路以及黑客袭击无法避免。
希望大家要时刻防范,谨慎投资,在接下来的课程中,所长还会介绍各类关于比特币、山寨币、1C0与各类区块链投资方面等各类大家关心的内容。也欢迎大家在公众号后台或评论中留下问题,所长一定知无不言。感谢大家对所长的支持,如果您觉得这篇文章对您理解区块链有所帮助,也可以分享给更多身边的人,您的支持是所长的动力!
扫码添加所长微信
扫码加入知识星球
星球福利
1.知识星球目的是帮助小伙伴从区块链基础到框架,从框架到思维体系,完成区块链的入门,当然也会分享一些稍微深入的干货,大家根据自己的实际情况吸收;
2.解读分析区块链行业内大佬、前辈的逐字稿、内部分享与大家一起学习共同进步,包括不限于三点钟的啦;
3.所长正在编写一本区块链入门基本教程,免费送给星球的用户;
4.共同找到在区块链领域可以做的事情,能做的事情,组织星球的小伙伴整合资源,一起去做;
5、不定期整理国内外优质糖果信息给大家。










网友评论