APP推广合作
联系“鸟哥笔记小乔”
带你真正从0~1认识区块链和比特币
2018-01-29 21:52:19

这是司马特小分队第11篇原创文章


最近币圈真的火的一塌糊涂,之前的比特币疯涨(总计7年疯涨100余万倍)、到现在周边朋友同事人人都在谈论代币,甚至那批征战股市多年的大妈们都已经开始**入市了,看来2018年的最牛热点非比特币之流莫属啊。


——小试牛刀之区块链篇——


说到比特币,不得不说区块链,两者什么关系呢?比特币是区块链技术的一种应用。

那么区块链技术是什么呢?我们可以把它理解成一种分布式账本。账本是用来记账的,只不过它是一种电子账本,需要服务器来记录数据。而分布式的概念其实IT行业一直都有,即去中心化,这里指由多个服务器节点完成记录,而非某一个中心化(比如银行、或者支付宝)平台单独记录。所以简单概括下:区块链1.0是由多个服务器节点完成数据记录的技术。


目前与智能合约结合的区块链2.0也是非常常见了,比如以太坊。

智能合约又是啥?举个非常容易理解的例子售货机:我放一美元进去,就会触发让我选商品的选项,选择以后售货机的可乐就会掉下来,这就是智能合约。一旦合约设定的某个条件被触发,就会执行相应的动作。

而以太坊是一个能够在区块链上实现智能合约、开源的底层系统,类似于计算机的操作系统,N多程序猿可以在上面编程开发应用。


没有一个东西是莫名其妙出现的,区块链的出现也必然是为了解决某些问题。传统的数据存储一旦出现丢失、窃取、损坏会比较麻烦,因为数据都是个人单独存储的,很多甚至都没有备份,而区块链很好的解决了这个问题,因为哪怕你的数据丢了,其他所有人依然存储着数据(包括你的数据),他们只要把数据同步给你就可以了,所以妈妈再也不用担心我了~


既然每个人都存储着全网所有数据,那么是不是就意味着我的账户上有多少钱别人也能看到?哎呀妈,这不是要被大家发现我“负二代”的身份了!!!!


别慌,区块链当然考虑到了这点,他采用了哈希摘要的方式,也就是说别人只能看到一串字符串摘要(比如1234567ABC),但并不能拿到隐藏在背后的信息,比如“我在1月5日借了隔壁老王250元”。哈希摘要是什么原理,且听我后面分解。


那聪明的你又会问:我借了老王250元,但是如果老王窜通楼上的小红、小白、小绿等一众小三一起造假记录“我借了老王500元”,那可怎么办?因为在中心化的管理模式下,比如支付宝,他的造假成本是非常高的,理论上他也不可能会去造假。但是在没有中心化机构的记账模式下,如何保证记录的信息是真实可靠的?而不是虚假伪造的?


那是因为:每次交易数据都会传给系统中的各个节点,大家都会在自己的节点上进行记录,如果有人伪造,而其他人按照正确的进行记录,一旦超过50%的节点认为这个记录不可靠,那么这个数据包包含的交易肯定有错误,是不被认可的。篡改数据也是一样的道理。


那么区块链到底是怎么记账的?

假如有这样一条交易信息:

账号

入帐

出账

余额

交易时间

250


251

2018/01/27

老王


250

250000

2018/01/27

区块链通过哈希函数y=hash(x)算出哈希值,这个过程就可以简要的理解为记账。其中第一页账本中的输入值 x 包括(账本序号、记账时间、交易记录),相信大家应该都知道,这些都是记账中的必要字段,缺一不可。而第二页账本的输入值 x 包括(上一页的哈希值、账本序号、记账时间、交易记录)。算出的哈希值代表着一个区块,就像你的身份证号码代表着你一样。


从中可以看出每个区块都是互相联系的,就像链子一样一环扣着一环,这样的区块链就构成了一个便于验证(只要验证最后一个区块的Hash值就相当于验证了整个账本),不可更改(任何一个交易信息的更改,会让所有之后的区块的Hash值发生变化,这样在验证时就无法通过)的总账本。所以看到大家是不是对整个区块链概念已经豁然开朗了~


图:这里附上一张总图方便大家理解



——最火应用比特币基础篇——


其实比特币是早于区块链被大家所知晓的,就像大家知道了苹果手机,用起来后才开始了解苹果系统非常好用一样,正因为比特币的巨大市场,很多人开始关注其中的本质——区块链技术,并将其应用在其他领域。作为目前最火的应用,比特币到底和区块链有什么关系呢?


我们前面已经讲过:

区块是包含了一定时间内若干笔交易数据及时间戳的数据块

那么以比特币为例:

1、 比特币的本质是什么?它和区块的关系?

2、比特币系统中,区块记录了哪些信息?

3、 怎么生成区块?

4、 怎么链下去?

5、 谁来记录这些数据呢?

6、如何确认区块的有效性?

7、 为什么会形成分叉?

8、区块链为什么不可篡改?


接下来跟着马特的思路,我们逐步揭开事件的真相:

1、比特币的本质是什么?它和区块的关系?

比特币的本质是一种虚拟币,他其实并没有和现实中的任何一个实体币有关系。马特依然给大家举个通俗易懂的例子,像支付宝余额,他其实代表着是你在支付宝存的钱,这个钱是可以以**的形式取出来的,是以实体币作为背书的,所以他是有价值的。但是比特币并没有以实体币或是某种实物作为背书,或者说标的,理论上来讲他并没有价值。


它和区块啥关系?

区块只是记录了比特币交易的数据,当然区块中还包含其他信息,只是最重要的就是比特币的交易信息~



2、比特币系统中,区块记录了哪些信息?

简单来讲,区块有一个区块头,有一个区块体

我们简单介绍下:

2.1、哈希值前面讲过是类似于a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0(十六进制)这样一串字符串,转成二进制就是 256 位。

哈希值可以理解为一个区块的标识,所以每个区块的哈希值是不一样的。

比特币中的区块哈希值大概是这么算出来的(原谅我也不知道具体的函数公式是怎么样的):

h0 = Hash(A || Nonce0)

h1 = Hash(B || h0 || Nonce1)

从一个简易版的公式可以看出下一个区块的哈希值h1是根据上一个区块的哈希值h0、当前区块的待确认的交易信息B、Nonce值Nonce1(随机数)综合计算得出的。可以看到和前面区块链中的介绍的略有不同,但是本质一样。

另外我们需要了解哈希函数有几个特点:

  • 同样的原始信息用同一个哈希函数总能得到相同的摘要信息

  • 原始信息任何微小的变化都会哈希出面目全非的摘要信息

  • 从摘要信息无法逆向推算出原始信息



2.2、难度目标是什么,为什么会有难度目标?

因为在比特币的世界里是这样设计的:

每个节点在计算hash值时,如果所计算出的hash值小于目标值,则这个节点才可以宣布解出谜题,打包出区块,并向全网传输。通过这个计算,系统将区块生成速度限定为约10分钟/块

但是随着算力(计算的节点)增加,区块生成会越来越快,假设上周区块平均生成速度为9分钟,那么本周算法难度(目标值会相应减小来增加难度)会上浮10%,以确保区块生成速度平均为10分钟/块,说白了就是动态调整计算难度来保持恒定的区块生成速度。

此外那个Nonce值随机数其实就是计算中不停的枚举、试错,最后找到那个满足目标值的Nonce值。


区块体:一个区块第一个交易规定为coinbase交易。


普通交易:



这里有很多数据、参数,看不懂没关系,后面都会讲到,大家只要知道区块体是记录交易数据为主的就行~


那么这些表格里要求的数据是怎么产生的?

比如A把10个比特币转给了B,那么这就是一笔交易,就会记录下来这笔交易的所有相关数据。聪明的小伙伴们可能会问:那如果没有交易呢?那就没有交易呗,那就不存交易信息,但是依然会生成区块。因为比特币系统中大概设定的是每10分钟左右一定会生成一个区块。


3、区块是怎么生成的?

前面也讲了,区块其实就是一串字符串,他是根据一段时间内的交易数据、时间戳、哈希值、难度、Nonce值等组合而成并记录到节点上(也即某一台服务器中)


4、谁来记录这些数据呢?

答案是矿工,你可以理解为一个节点或一个人,矿工来帮你在他的节点进行区块的记录。

那它凭什么帮你?

因为他有收益呀,区块链的创始人在创造它的时候就规定了:矿工通过生成区块可以获得一定的比特币奖励。假如某一天比特币全部发完了,那么就会用交易佣金、或者叫手续费来奖励矿工。所以理论上来说,只要收益高于成本,就会有人愿意帮忙记账,反过来说只有矿工不断的努力工作,整个区块链系统才能不断延续下去。


5、区块怎么链下去?

每生成一个区块时,都必须以上一个所有节点公认的区块作为父区块,本区块中也必须带上父区块的哈希值,确保只有一条主链。那么问题又来了,怎么让一个区块大家都认可?这到底是怎么实现的?

其实很简单,在这样一个全网数据公开的环境中,每个矿工都在算一个目标值以下的哈希值,如果A算出来了,他会马上播报给全网,如果A是全网第一个算出来的,那么毫无疑问,大家都认可他作为本区块,其他矿工自动放弃,开始以他为父区块进行下一个区块的计算。

但是聪明的你又会问:如果同时有多人在同一个时间算出来呢?或者说广播传到B那里经过了一定时间,B在此之前已经生成了一个区块,那到底B是以A传过来的区块为准还是以自己的为准呢?

这就引发出了另一个问题:如何确认区块的有效性?


6、如何确认区块的有效性?

系统考虑了这个问题并规定了一个策略:那就是6次确认,即包含交易数据的区块链已经创建了6个区块以后,这笔交易(第一个区块中记录的这币交易)获得了6次确认,那么这个区块被废弃的可能性就无限趋于0了(别问我为什么,中老湿通过科学的验证后得出的),即这笔交易被记录且不可篡改。


7、 为什么会形成分叉?

回到5中提到的,区块生成后,会同步传输给其他节点。如果在传输过程中,其他还未被同步的节点同时生成了一个区块,那么一条主链就会形成分叉。分叉里又有一种情况叫双花。

什么是双花?假设A只有5比特币,A将5比特币交易给B,在交易确认前,又将5比特币交易给C,那么将有矿工决定这5比特币最终交易给了谁。如果此时两个矿工同时生成了区块,在分叉的两条线路中,其中一条给了B,一条给了C,这就形成了双花。

形成双花怎么办?比特币的处理方法是在这两条分叉的区块链下,由矿工继续进行挖矿行为。当多条链路同步给某个节点后,节点会选择链路更长的一条,交易给B的区块后已经创建了3个区块,交易给C的区块后只创建了2个区块,那么此时,节点废弃第二条链路,选择第一条。当所有节点做出选择时,全网的账单就统一了。


关于分叉,我们再做个详细的解释方便大家理解:

比如某个区块h1生成后,A节点根据h1在10分钟的时候生成h2,然后开始向全网传播,然后传了2分钟(事实上并没有那么久,因为一个区块也就1M,按照100M的网速花不了几秒),也就是在12分钟的时候传到B节点,但是B节点在11分钟的时候生成h3,那么这个时候到底是以h2还是h3为下一个区块呢?我们暂且假设一部分人优先听到h1,包括A、A1、A2、A3.。。。。A9共10个节点,另一部分优先听到h2,包括B、B1、B2、B3、。。。B9共10个节点;然后大家开始疯狂计算下个节点,此时A3最快计算出h3,于是广而告之,这时除非B~B9在听到h3之前算出h4,否则只能以h3作为下一个区块,然而h3并不是基于h2算出来的(事实上是基于h1算出来的),数据对不上了,于是B~B9啪啪啪打脸,认h3为真正的下一个区块,同时h2的分支则被无情抛弃,大家开始以h3作为父区块计算下一个区块了


这里聪明的小伙伴可能已经考虑到了:

如果区块生成速度过快,那么出现分叉的可能性就会很高,假设区块链中有1000个节点,如果有两个分叉,则平均每个分叉有500个节点,此时只需要超过250个节点,就可以控制其中一条分叉(51%攻击)。区块生成速度越快,出现分叉的可能性越高,风险也就越高。因此综合考虑系统控制10分钟左右生成一个新区块。如果全网的区块节点越来越多时,分叉的可能性也更高



8、区块链为什么不可篡改?

我们做个假设:假如区块内的数据被该节点篡改,那么他对应的哈希值就会变化(生成新的分支),新的分支区块会播报给所有节点,此时如果其他节点上已经记录的区块数大于播报给他的新分支的节点数(或者说所有区块的哈希值与传过来的不匹配),显然大家都会选择链路更长的一条,因此新分支不被承认,自动废弃。(请认真思考这段话)


那么此时问题又来了,如果超过50%的节点都窜通起来一起篡改呢?话说真有这种算力的团伙,只能说这个系统已经**控了,没救了,大家自然会放弃它。而且按照比特币现在的节点数来看,要掌控50%以上的

节点那基本上是富可敌国,哦不,富克敌好几国了,基本可能性为0!


总结:

看了上述的介绍,相信大家应该已经了解比特币的基本运作逻辑了,目前其他代币也基本上是这样一套原理,那么我们来总结下他的优缺点:

缺点:

1、缺乏时效性:交易确认时间长。

2、安全性问题:比特币发展至今,已经拥有足够多的节点以防止数据被篡改,而市面上新发行的各种货币,仍会因为节点数量过少而缺乏安全性。

3、能源消耗大:全球那么多节点同时在计算一件事件,重复劳动下所消耗的能源极大,并且最终在区块链的某个位置,只有一个节点计算出区块是真正有效的,也就是说其他节点计算中所消耗的能源全部无效,造成了极大的能源浪费。

4、难以最终做到去中心化:前面说生成区块需要做大量的计算,那么拥有更多算力的人更有可能在这个过程中获得矿工奖励。按照20%的人掌握全世界80%的资源这个规则,最终比特币80%的节点将最终掌握在20%的机构或人手中,这样去中心化的意义就不存在了。只能说是多中心化。


优点当然是去中心化的数据公开、不可篡改性等



对于区块链和比特币的基本原理介绍基本到这里就差不多了,你全部看懂并理解了吗?如果还有疑问,可以留言问我们,我们将认真回复每个问题。


下一篇的主题将是“比特币进阶”和“联盟链、侧链”等一系列延伸产物的深度解析。


欢迎大家关注“司马特小分队”公号,不错过进阶篇,才能真正了解区块链和比特币



司马特小分队
分享到朋友圈
收藏
收藏
评分

综合评分:

我的评分
Xinstall 15天会员特权
Xinstall是专业的数据分析服务商,帮企业追踪渠道安装来源、裂变拉新统计、广告流量指导等,广泛应用于广告效果统计、APP地推与CPS/CPA归属统计等方面。
20羽毛
立即兑换
一书一课30天会员体验卡
领30天VIP会员,110+门职场大课,250+本精读好书免费学!助你提升职场力!
20羽毛
立即兑换
顺丰同城急送全国通用20元优惠券
顺丰同城急送是顺丰推出的平均1小时送全城的即时快送服务,专业安全,准时送达!
30羽毛
立即兑换
司马特小分队
司马特小分队
发表文章205
4 位志同道合的资深产品经理打造,希望能把经历和经验分享给更多的产品经理,助力更多产品经理成长
确认要消耗 羽毛购买
带你真正从0~1认识区块链和比特币吗?
考虑一下
很遗憾,羽毛不足
我知道了

我们致力于提供一个高质量内容的交流平台。为落实国家互联网信息办公室“依法管网、依法办网、依法上网”的要求,为完善跟帖评论自律管理,为了保护用户创造的内容、维护开放、真实、专业的平台氛围,我们团队将依据本公约中的条款对注册用户和发布在本平台的内容进行管理。平台鼓励用户创作、发布优质内容,同时也将采取必要措施管理违法、侵权或有其他不良影响的网络信息。


一、根据《网络信息内容生态治理规定》《中华人民共和国未成年人保护法》等法律法规,对以下违法、不良信息或存在危害的行为进行处理。
1. 违反法律法规的信息,主要表现为:
    1)反对宪法所确定的基本原则;
    2)危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一,损害国家荣誉和利益;
    3)侮辱、滥用英烈形象,歪曲、丑化、亵渎、否定英雄烈士事迹和精神,以侮辱、诽谤或者其他方式侵害英雄烈士的姓名、肖像、名誉、荣誉;
    4)宣扬恐怖主义、极端主义或者煽动实施恐怖活动、极端主义活动;
    5)煽动民族仇恨、民族歧视,破坏民族团结;
    6)破坏国家宗教政策,宣扬邪教和封建迷信;
    7)散布谣言,扰乱社会秩序,破坏社会稳定;
    8)宣扬淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪;
    9)煽动非法集会、结社、游行、示威、聚众扰乱社会秩序;
    10)侮辱或者诽谤他人,侵害他人名誉、隐私和其他合法权益;
    11)通过网络以文字、图片、音视频等形式,对未成年人实施侮辱、诽谤、威胁或者恶意损害未成年人形象进行网络欺凌的;
    12)危害未成年人身心健康的;
    13)含有法律、行政法规禁止的其他内容;


2. 不友善:不尊重用户及其所贡献内容的信息或行为。主要表现为:
    1)轻蔑:贬低、轻视他人及其劳动成果;
    2)诽谤:捏造、散布虚假事实,损害他人名誉;
    3)嘲讽:以比喻、夸张、侮辱性的手法对他人或其行为进行揭露或描述,以此来激怒他人;
    4)挑衅:以不友好的方式激怒他人,意图使对方对自己的言论作出回应,蓄意制造事端;
    5)羞辱:贬低他人的能力、行为、生理或身份特征,让对方难堪;
    6)谩骂:以不文明的语言对他人进行负面评价;
    7)歧视:煽动人群歧视、地域歧视等,针对他人的民族、种族、宗教、性取向、性别、年龄、地域、生理特征等身份或者归类的攻击;
    8)威胁:许诺以不良的后果来迫使他人服从自己的意志;


3. 发布垃圾广告信息:以推广曝光为目的,发布影响用户体验、扰乱本网站秩序的内容,或进行相关行为。主要表现为:
    1)多次发布包含售卖产品、提供服务、宣传推广内容的垃圾广告。包括但不限于以下几种形式:
    2)单个帐号多次发布包含垃圾广告的内容;
    3)多个广告帐号互相配合发布、传播包含垃圾广告的内容;
    4)多次发布包含欺骗性外链的内容,如未注明的淘宝客链接、跳转网站等,诱骗用户点击链接
    5)发布大量包含推广链接、产品、品牌等内容获取搜索引擎中的不正当曝光;
    6)购买或出售帐号之间虚假地互动,发布干扰网站秩序的推广内容及相关交易。
    7)发布包含欺骗性的恶意营销内容,如通过伪造经历、冒充他人等方式进行恶意营销;
    8)使用特殊符号、图片等方式规避垃圾广告内容审核的广告内容。


4. 色情低俗信息,主要表现为:
    1)包含自己或他人性经验的细节描述或露骨的感受描述;
    2)涉及色情段子、两性笑话的低俗内容;
    3)配图、头图中包含庸俗或挑逗性图片的内容;
    4)带有性暗示、性挑逗等易使人产生性联想;
    5)展现血腥、惊悚、残忍等致人身心不适;
    6)炒作绯闻、丑闻、劣迹等;
    7)宣扬低俗、庸俗、媚俗内容。


5. 不实信息,主要表现为:
    1)可能存在事实性错误或者造谣等内容;
    2)存在事实夸大、伪造虚假经历等误导他人的内容;
    3)伪造身份、冒充他人,通过头像、用户名等个人信息暗示自己具有特定身份,或与特定机构或个人存在关联。


6. 传播封建迷信,主要表现为:
    1)找人算命、测字、占卜、解梦、化解厄运、使用迷信方式治病;
    2)求推荐算命看相大师;
    3)针对具体风水等问题进行求助或咨询;
    4)问自己或他人的八字、六爻、星盘、手相、面相、五行缺失,包括通过占卜方法问婚姻、前程、运势,东西宠物丢了能不能找回、取名改名等;


7. 文章标题党,主要表现为:
    1)以各种夸张、猎奇、不合常理的表现手法等行为来诱导用户;
    2)内容与标题之间存在严重不实或者原意扭曲;
    3)使用夸张标题,内容与标题严重不符的。


8.「饭圈」乱象行为,主要表现为:
    1)诱导未成年人应援集资、高额消费、投票打榜
    2)粉丝互撕谩骂、拉踩引战、造谣攻击、人肉搜索、侵犯隐私
    3)鼓动「饭圈」粉丝攀比炫富、奢靡享乐等行为
    4)以号召粉丝、雇用网络水军、「养号」形式刷量控评等行为
    5)通过「蹭热点」、制造话题等形式干扰舆论,影响传播秩序


9. 其他危害行为或内容,主要表现为:
    1)可能引发未成年人模仿不安全行为和违反社会公德行为、诱导未成年人不良嗜好影响未成年人身心健康的;
    2)不当评述自然灾害、重大事故等灾难的;
    3)美化、粉饰侵略战争行为的;
    4)法律、行政法规禁止,或可能对网络生态造成不良影响的其他内容。


二、违规处罚
本网站通过主动发现和接受用户举报两种方式收集违规行为信息。所有有意的降低内容质量、伤害平台氛围及欺凌未成年人或危害未成年人身心健康的行为都是不能容忍的。
当一个用户发布违规内容时,本网站将依据相关用户违规情节严重程度,对帐号进行禁言 1 天、7 天、15 天直至永久禁言或封停账号的处罚。当涉及欺凌未成年人、危害未成年人身心健康、通过作弊手段注册、使用帐号,或者滥用多个帐号发布违规内容时,本网站将加重处罚。


三、申诉
随着平台管理经验的不断丰富,本网站出于维护本网站氛围和秩序的目的,将不断完善本公约。
如果本网站用户对本网站基于本公约规定做出的处理有异议,可以通过「建议反馈」功能向本网站进行反馈。
(规则的最终解释权归属本网站所有)

我知道了
恭喜你~答对了
+5羽毛
下一次认真读哦
成功推荐给其他人
+ 10羽毛
评论成功且进入审核!审核通过后,您将获得10羽毛的奖励。分享本文章给好友阅读最高再得15羽毛~
(羽毛可至 "羽毛精选" 兑换礼品)
好友微信扫一扫
复制链接