大家好贾陷,我是三也,歡迎關(guān)注幣小也說(shuō)區(qū)塊系列文章
一嘱根、區(qū)塊鏈的本質(zhì)
可以簡(jiǎn)單理解為一種特殊的分布式數(shù)據(jù)庫(kù)髓废,但是區(qū)塊鏈不是為了存儲(chǔ)數(shù)據(jù),它是多種技術(shù)的集合该抒。
其次慌洪,區(qū)塊鏈的節(jié)點(diǎn)不屬于任何公司,每個(gè)節(jié)點(diǎn)都是平等的柔逼,都保存著一份一樣的完整的數(shù)據(jù)庫(kù)數(shù)據(jù)蒋譬。每次你寫入/讀取數(shù)據(jù),如果有新的區(qū)塊生成愉适,所有節(jié)點(diǎn)都先進(jìn)行同步犯助,所以可以保證區(qū)塊鏈數(shù)據(jù)是一致。
二维咸、區(qū)塊鏈的一些理解
在互聯(lián)網(wǎng)界剂买,要么是用空間換時(shí)間,這樣效率和速度快癌蓖,要么是時(shí)間換空間瞬哼,這樣節(jié)省成本。而區(qū)塊鏈即耗空間租副,每個(gè)節(jié)點(diǎn)都要存相同的數(shù)據(jù)坐慰,又非常慢,每次讀寫都要同步一次用僧,這么說(shuō)是完全“違反”軟件開(kāi)發(fā)原則的结胀。
互聯(lián)網(wǎng)的所有節(jié)點(diǎn)都屬于一個(gè)中心化的公司集團(tuán),但是區(qū)塊鏈的節(jié)點(diǎn)是不全屬于一個(gè)公司的责循,可能是個(gè)人的(即使是一些公司的服務(wù)糟港,但是任何人都可以看到這個(gè)數(shù)據(jù),不再是一個(gè)公司控制了)院仿,這樣成本的問(wèn)題就可以降低秸抚,因?yàn)楸淮蠹曳謹(jǐn)偭恕V劣谒俣确矫娲醯妫杂懈鞣N解決方案來(lái)提高(比如分層設(shè)計(jì)的閃電網(wǎng)絡(luò)剥汤、側(cè)鏈技術(shù)的RSK、并發(fā)技術(shù)的EOS排惨、還有DGA等等)吭敢。如果想達(dá)到商用的速度性能,目前是遠(yuǎn)遠(yuǎn)不能實(shí)現(xiàn)的若贮,所以很多區(qū)塊鏈項(xiàng)目更多的是概念和模型省有。至于耗費(fèi)這么多的空間和時(shí)間,只是在現(xiàn)有技術(shù)下實(shí)現(xiàn)區(qū)塊鏈不可篡改的特性所做的一個(gè)取舍谴麦!
因此區(qū)塊鏈的最大特點(diǎn)是不可篡改而不是去中心化蠢沿。
這里還要認(rèn)識(shí)到的一點(diǎn)是去中心化并不等于分布式技術(shù),而是數(shù)據(jù)對(duì)所有人公開(kāi)透明匾效,不是由一個(gè)或少數(shù)幾個(gè)公司控制舷蟀,是大家一起”投票“共同“治理”。
很多人盲目的追求完全去中心化面哼,抨擊pos野宜,dpos這些共識(shí)算法不是純粹的區(qū)塊鏈去中心的特性(后面會(huì)詳細(xì)講共識(shí)算法)。其實(shí)任何事物都無(wú)法完全去中心化魔策。因?yàn)檫@樣效率太低匈子,每次讀和寫都要同步全部的數(shù)據(jù),如果數(shù)據(jù)少還好闯袒,但是數(shù)據(jù)量很大的時(shí)候虎敦,他要花相當(dāng)一部分時(shí)間去做這個(gè)事情。所以為了業(yè)務(wù)需要政敢,很多項(xiàng)目會(huì)部分的犧牲去中心化其徙,來(lái)提高效率。去中心化和效率是無(wú)法完美兼得的喷户,只有根據(jù)具體業(yè)務(wù)去協(xié)調(diào)唾那。
技術(shù)是用來(lái)解決問(wèn)題的,追求絕對(duì)是不切實(shí)際的褪尝,技術(shù)的堆砌也是無(wú)用的闹获,是否需要用到這個(gè)技術(shù),需要反問(wèn)這個(gè)技術(shù)解決什么問(wèn)題恼五!
很多人看白皮書(shū)認(rèn)為很多新的技術(shù)昌罩,看起來(lái)很完美的描述,就認(rèn)為這個(gè)項(xiàng)目是好項(xiàng)目灾馒,但是80%以上是吹出來(lái)的茎用。為什么用這個(gè)技術(shù),這個(gè)技術(shù)具體解決什么問(wèn)題睬罗,都是需要去考究的轨功,這些是有門檻的。
回到我們的主題容达,區(qū)塊鏈不可篡改到底是怎么樣的呢古涧?
比如區(qū)塊鏈有10個(gè)節(jié)點(diǎn),我們理解成有10本賬本花盐,我花出去10元羡滑,我在寫入自己賬本的同時(shí)菇爪,還要把這個(gè)記錄同步到另外的9本賬本,這樣就保持了數(shù)據(jù)的一致柒昏,即使我這個(gè)賬本壞了凳宙,其他賬本仍然有記錄,而你要更改的話职祷,你需要把所有的賬本都改了氏涩,所以這種概率是極小的,相對(duì)來(lái)說(shuō)就是無(wú)法篡改的了有梆。(具體的原理在第四大點(diǎn)是尖,Hash的不可修改性里面解釋)
因此在多方參與的情況下,區(qū)塊鏈可以有效保障鏈上數(shù)據(jù)的難篡改泥耀,但無(wú)法解決鏈外數(shù)據(jù)上鏈的真實(shí)性(后面會(huì)專題討論)饺汹。當(dāng)然還有其他問(wèn)題,比如參與積極性爆袍,參與可行性首繁,即成本和持續(xù)發(fā)展可行性問(wèn)題。
總之陨囊,數(shù)據(jù)的不可篡改不能單方面解決信任問(wèn)題弦疮,必須要結(jié)合其他的東西,這點(diǎn)是需要謹(jǐn)記的蜘醋。而去中心化胁塞,區(qū)塊自治等只是輔助,是讓整個(gè)區(qū)塊鏈模型更加健壯压语。
三啸罢、區(qū)塊鏈的基本概念
說(shuō)了這么多,我們對(duì)區(qū)塊鏈理解也只是印象中的概念胎食。任何學(xué)科都需要使用概括語(yǔ)言扰才,簡(jiǎn)明的解釋概念。接下來(lái)我們來(lái)看看學(xué)術(shù)的概念含義厕怜。
區(qū)塊鏈基本概念包括:
區(qū)塊(Block):記錄一段時(shí)間內(nèi)發(fā)生的交易和狀態(tài)結(jié)果衩匣,是對(duì)當(dāng)前賬本狀態(tài)的一次共識(shí);
鏈(Chain):由一個(gè)個(gè)區(qū)塊按照發(fā)生順序串聯(lián)而成粥航,是整個(gè)狀態(tài)變化的日志記錄琅捏。
交易(Transaction):一次操作,導(dǎo)致賬本狀態(tài)的一次改變递雀,如添加一條交易或修改記錄柄延;
(一)區(qū)塊
記錄一段時(shí)間內(nèi)發(fā)生的交易和狀態(tài)結(jié)果,是對(duì)當(dāng)前賬本狀態(tài)的一次共識(shí)缀程。而每個(gè)區(qū)塊包含區(qū)塊頭(Head)和區(qū)塊體(Body)兩個(gè)部分搜吧。區(qū)塊頭用來(lái)記錄當(dāng)前區(qū)塊的特征值市俊,區(qū)塊體是實(shí)際數(shù)據(jù)。
區(qū)塊頭包含了當(dāng)前區(qū)塊的生成時(shí)間滤奈、實(shí)際數(shù)據(jù)(即區(qū)塊體)的哈希秕衙、上一個(gè)區(qū)塊的哈希等多項(xiàng)特征值。
所謂"哈希"就是計(jì)算機(jī)可以對(duì)任意內(nèi)容僵刮,計(jì)算出一個(gè)長(zhǎng)度相同的特征值(一個(gè)長(zhǎng)串的數(shù)字字母組合)。區(qū)塊鏈的 哈希長(zhǎng)度是256位鹦牛,這就是說(shuō)搞糕,不管原始內(nèi)容是什么,最后都會(huì)計(jì)算出一個(gè)256位的二進(jìn)制數(shù)字曼追。而且可以保證窍仰,只要原始內(nèi)容不同,對(duì)應(yīng)的哈希一定是不同的礼殊。
舉例來(lái)說(shuō)驹吮,字符串123的哈希是a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0(十六進(jìn)制),轉(zhuǎn)成二進(jìn)制就是256位晶伦,而且只有123能得到這個(gè)哈希碟狞。(理論上,其他字符串也有可能得到這個(gè)哈希婚陪,但是概率極低族沃,可以近似認(rèn)為不可能發(fā)生。)
因此泌参,就有兩個(gè)重要的推論脆淹。
推論1:每個(gè)區(qū)塊的哈希都是不一樣的,可以通過(guò)哈希標(biāo)識(shí)區(qū)塊沽一。
推論2:如果區(qū)塊的內(nèi)容變了盖溺,它的哈希一定會(huì)改變。
(二)區(qū)塊鏈
每個(gè)區(qū)塊都連著上一個(gè)區(qū)塊铣缠,這些區(qū)塊按照發(fā)生順序串聯(lián)在一起代表的整個(gè)狀態(tài)變化的日志記錄就是區(qū)塊鏈烘嘱。
(三)交易
交易:又稱貿(mào)易、交換攘残、互市拙友,是買賣雙方對(duì)有價(jià)值物品及服務(wù)進(jìn)行互通有無(wú)的行為〖吖可以是以遗契、貨幣為交易媒介的過(guò)程,也可以是以物易物病曾。
區(qū)塊鏈的交易更多的是以代幣的形式進(jìn)行交換記錄的牍蜂,和銀行卡轉(zhuǎn)賬一樣簡(jiǎn)單漾根,只需要自己的地址鸭你,對(duì)方地址碑韵,轉(zhuǎn)賬金額,手續(xù)費(fèi)即可澈蝙。那怎么說(shuō)明幣是自己的从绘,只要擁有私鑰寄疏,就能操作對(duì)應(yīng)地址的所有代幣,就代表你擁有了這個(gè)地址上的代幣僵井。所以一切需要私鑰的項(xiàng)目絕大部分是騙子陕截。而交易記錄需要寫入?yún)^(qū)塊的時(shí)候,只能是獲取了權(quán)益的礦工才有權(quán)利寫入(這個(gè)寫入權(quán)益是按照一定規(guī)則去競(jìng)爭(zhēng)的批什,比如比特幣是按照算力的)农曲。
另外一個(gè)區(qū)塊大小是固定大小的(比特幣的是1M),能容納交易數(shù)是有限的(比特幣可以同時(shí)進(jìn)行數(shù)千筆)驻债。當(dāng)前轉(zhuǎn)賬的人比較多乳规,你可能要排隊(duì)等你前面的交易全部完成。而礦工們會(huì)選擇手續(xù)費(fèi)比較高的優(yōu)先進(jìn)行記賬合呐。
四暮的、 Hash 的不可修改性
區(qū)塊鏈的不可修改性,其實(shí)也就是Hash的不可修改性淌实,可以簡(jiǎn)單理解為青扔,每個(gè)區(qū)塊對(duì)應(yīng)一個(gè)唯一的Hash值。
區(qū)塊與哈希是一一對(duì)應(yīng)的翩伪,每個(gè)區(qū)塊的哈希都是針對(duì)"區(qū)塊頭"(Head)計(jì)算的微猖。也就是說(shuō),把區(qū)塊頭的各項(xiàng)特征值缘屹,按照順序連接在一起凛剥,組成一個(gè)很長(zhǎng)的字符串,再對(duì)這個(gè)字符串計(jì)算哈希轻姿。
Hash = SHA256( 區(qū)塊頭 )
上面就是區(qū)塊哈希的計(jì)算公式犁珠,SHA256
是區(qū)塊鏈的哈希算法。注意互亮,這個(gè)公式里面只包含區(qū)塊頭犁享,不包含區(qū)塊體,也就是說(shuō)豹休,哈希由區(qū)塊頭唯一決定炊昆,
前面說(shuō)過(guò),區(qū)塊頭包含很多內(nèi)容,其中有當(dāng)前區(qū)塊體的哈希凤巨,還有上一個(gè)區(qū)塊的哈希视乐。這意味著,如果當(dāng)前區(qū)塊體的內(nèi)容變了敢茁,或者上一個(gè)區(qū)塊的哈希變了佑淀,一定會(huì)引起當(dāng)前區(qū)塊的哈希改變。
這一點(diǎn)對(duì)區(qū)塊鏈有重大意義彰檬。如果有人修改了一個(gè)區(qū)塊伸刃,該區(qū)塊的哈希就變了。為了讓后面的區(qū)塊還能連到它(因?yàn)橄乱粋€(gè)區(qū)塊包含上一個(gè)區(qū)塊的哈希)逢倍,該人必須依次修改后面所有的區(qū)塊奕枝,否則被改掉的區(qū)塊就脫離區(qū)塊鏈了。由于后面要提到的原因瓶堕,哈希的計(jì)算很耗時(shí),短時(shí)間內(nèi)修改多個(gè)區(qū)塊幾乎不可能發(fā)生症歇,除非有人掌握了全網(wǎng)51%以上的計(jì)算能力郎笆。
正是通過(guò)這種聯(lián)動(dòng)機(jī)制,區(qū)塊鏈保證了自身的可靠性忘晤,數(shù)據(jù)一旦寫入宛蚓,就無(wú)法被篡改。這就像歷史一樣设塔,發(fā)生了就是發(fā)生了凄吏,從此再無(wú)法改變。
任何技術(shù)只有在解決了某個(gè)業(yè)務(wù)問(wèn)題時(shí)才有用闰蛔,區(qū)塊鏈也不例外痕钢。區(qū)塊鏈可以解決多個(gè)問(wèn)題。
知識(shí)星球一:幣小也
1序六、從小白到老韭菜的升級(jí)之路任连,詳細(xì)教程幫助你打怪升級(jí)。
2例诀、專業(yè)看K線随抠,看白皮書(shū)課程
3、篩選海量?jī)?yōu)質(zhì)國(guó)內(nèi)外項(xiàng)目繁涂,告別矮矬窮劣幣拱她。
https://t.zsxq.com/B2juBUf
我是三也,請(qǐng)分享公眾號(hào)任意文章到朋友圈并截圖扔罪,注明需要加入的微信群秉沼,比如量化交易,或區(qū)塊鏈項(xiàng)目交流,驗(yàn)證后拉你入群氧猬。