我并不明白為什么人們會覺得要理解區(qū)塊鏈會有點難,而我也想知道為什么自己并沒有。那是在 2013 年,我第一次聽說有比特幣這個東西(是的,知道的太晚啦)。我窮得連一個都買不起,看到這兒你也許已經(jīng)對此文無愛了。后來,我想要去了解一下它所依賴的底層技術,也就區(qū)塊鏈。 不過因為太忙了,所以遲遲沒有開始(那就并不存在什么 開始不開始了)。
那么這個 “區(qū)塊鏈”到底是什么呢?
其實是兩個東西:一個是區(qū)塊一個是鏈。說玄虛一點,就是一鏈子的區(qū)塊。因為它是存在于計算機中的東西,所以我們可以厘定它的一個物理形態(tài)是啥樣子的,就是數(shù)字信息被分成一個一個區(qū)塊然后把這些區(qū)塊鏈接起來。舉個例子,下圖中的方塊,每一個都表示一個國家,而且每一個都包含了對應國家的城市名稱。
等等,其實還有更多東西來著。這里的每一個方塊都一個叫做哈希的東西。一個哈希就是一串字符 (比如“1hi515AHA5H” )。哈希是根據(jù)方塊里面所包含的信息來得到的。 U.S.A 的方塊擁有 New York, Los Angeles, 還有 Chicago 這幾個城市,所以它的哈希就是像 “NYLAC” 的東西了(技術上其實遠非如此,但你理會精要就行了)。
每一個接續(xù)的方塊都會包含前一個方塊的哈希,所以這個就是(強制性的)將它們綁到一起的紐帶。如果有人擅自篡改了第一個方塊,加入了城市Boston,那么新的哈希就會是 “NYLACB”,然而后面接續(xù)的 India 這個方塊已經(jīng)存著的哈希還是 “NYLAC”,這種不匹配就會把鏈條打斷。所以哈希的目的就是確保沒有人可以篡改區(qū)塊。
那如果有人修改了一個方塊的內(nèi)容,然后把后面的接續(xù)方塊的哈希也一并更新會如何呢?這也是有可能的,不過有一件事情我還沒有告訴你。區(qū)塊鏈的數(shù)據(jù)并不只是存在于僅僅一臺計算機里面。一臺計算機里面的區(qū)塊鏈數(shù)據(jù)并不能騙到人,因為它會被復制到網(wǎng)絡中每一個用戶的計算機里面去。如果你加入了一個區(qū)塊鏈網(wǎng)絡,那么你的計算機就會去下載這些區(qū)塊數(shù)據(jù),如果有人篡改了他擁有的版本,整個網(wǎng)絡也會考慮占多數(shù)的人的計算機上所擁有的版本才是正確的。
還有一件事,在一個區(qū)塊鏈網(wǎng)絡中,不僅是數(shù)據(jù),就連整個系統(tǒng)的程序都被復制到了所有的電腦中。大多數(shù)互聯(lián)網(wǎng)應用都是集中話的,比如 Facebook,她的數(shù)據(jù)和程序都被放在了她的服務器上,你的計算機會從 Facebook 的服務器上獲取到你一個人需要知道的信息。但在區(qū)塊鏈的世界理,就沒有存在于中心的東西,它依賴的是用戶的計算機來容納自己的程序。是的,這就意味著,如果整個區(qū)塊鏈網(wǎng)絡中的每一臺電腦都關機了,那么這個區(qū)塊鏈系統(tǒng)就死翹翹了。
公共區(qū)塊鏈
這是不是就意味著區(qū)塊鏈系統(tǒng)其實就是由一群心懷善意自愿讓他們的計算機保持運行的人來組成的呢? 還有這些防篡改的區(qū)塊是用來干嘛的呢?
區(qū)塊鏈網(wǎng)絡的功效不勝枚舉。比特幣是一種數(shù)據(jù)貨幣和一個支付系統(tǒng)。它所有的防篡改區(qū)塊中所保存的就是全部交易的分類賬。那些貢獻了他們自己的計算機的人被稱為礦工。系統(tǒng)會給他們提供比特幣作為獎勵。
Ethereum 有意向附加功能。它可以承載你的代碼,從頭開始發(fā)展出一個區(qū)塊鏈系統(tǒng),而要構建一個屬于你自己的系統(tǒng)也許會非常地困難(記住這得看有人為你犧牲他們的計算機運行能力才行哦)。Ethereum 就維護著這些耗損巨大的運算能力,而你則需要為這些計算消耗買單。
區(qū)塊鏈應用并不非得是支付系統(tǒng)或者加密貨幣。它可以任何東西,像是一個社交網(wǎng)絡,一個像LiveEdu這樣的學習平臺,等等。
私有區(qū)塊鏈
Bitcoin, Ethereum 等等這些都是公共區(qū)塊鏈的例子,任何人都可以成為其中的一分子。那如果我們想要有一個私有的區(qū)塊鏈網(wǎng)絡該如何呢?有些人想要一個私有的區(qū)塊鏈是想干嘛呢?那就來瞧瞧下面的故事吧。
Mark 和 Sara
Mark 已經(jīng)五個月沒交房租了,當 Sara 找他要的時候,他就說晚點會給她。她付不起律師費,而法院強制執(zhí)行訴訟就需要8個月甚至一年,所以唯一的選擇就是去說服Mark。
Joe 的生意
Joe 是一個商人,他經(jīng)常要跟不同的公司做生意。幾個月之前他和一家零售商簽了一份合同,盡管合同條款都已經(jīng)履約了,可零售商確拒絕付款。這幫人利用法律制度中的漏洞來游說 Joe,想以此達到少付錢的目的。Joe 在這以前就是有這方面經(jīng)驗的,在某些情況下,他會找法院求助,但這樣做所耗費的時間和金錢卻要損失他自己的利潤。
我們該如何幫助 Sara 和 Joe 呢?
我們是不是能在其它地方解決這個問題呢? 在 Sara 遇到的這種情況中,我們需要讓 Mark 按月支付房租,這其實就是一個基于時間的觸發(fā)機制。你的日歷程序使用這樣的觸發(fā)器來給你提供預設事件的通知。
在 Joe 遇到的場景中,一旦合約中的條款都滿足了,當事人就得付款,這其實就是一個基于條件的觸發(fā)機制。你想想上次從 Amazon 買電子書的時候,是不是得先確認付款了,Amazon 才會把電子書發(fā)給你?
重點是,計算機程序會始終如一的執(zhí)行諸如此類的指令。當你點擊著這篇文章,向下滾動,諸如這類的操作,它也會照著執(zhí)行不誤。為了能幫助到 Sara ,我們需要將合同的條款轉(zhuǎn)變成代碼。
Sara 和 Mark 之間所訂立的智能合同的偽代碼
Iftoday’sdateis30thandrentisnotpaidthen
Transfer$500fromMark’saccounttoSara’saccount
可是我們在哪兒部署這些代碼呢? 它就應該被部署到所有參與者的計算機上。Sara 的還有Mark 的銀行都會是這一個私有區(qū)塊鏈網(wǎng)絡的一部分。Joe 和 Sara 會簽署一份編碼的協(xié)議(也就是智能合同),然后這份協(xié)議會被分發(fā)到網(wǎng)絡中去,Mark 的和 Sara 的銀行都會有一份拷貝。在每個月的 30 號,當時鐘跳動到 12 點整,協(xié)議好的金額就會從 Mark 的賬戶轉(zhuǎn)移到 Sara 的賬戶上去。Joe 也開始使用智能合同來強制讓他的客戶支付協(xié)議好的貨款。
Sara 高興了,因為她再也不用去煩心 Mark 會不會如約付房租了。Joe 也高興,因為他也不用找法院要說法了,省下這些精力,他可以繼續(xù)發(fā)展自己的生意了。
私有區(qū)塊鏈只限于業(yè)務中涉及到的相關各方,因此 Joe 不會是 Sara 和 Mark 所屬區(qū)塊鏈網(wǎng)絡的一部分。
前行之路
現(xiàn)在你對此已經(jīng)有點概念了,也許應該嘗試一下edX 上的課程(免費的哦),它會教你怎么在區(qū)塊鏈上構建應用。
-
區(qū)塊鏈
+關注
關注
111文章
15562瀏覽量
105923
原文標題:區(qū)塊鏈初學者指南
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論