當(dāng)前位置:首頁(yè) > 物聯(lián)網(wǎng) > 區(qū)塊鏈
[導(dǎo)讀] 這是一篇從程序員視角看區(qū)塊鏈的文章,將區(qū)塊鏈落地為程序員能夠理解的概念,比如圖靈狀態(tài)機(jī),而狀態(tài)機(jī)是一種狀態(tài)模式,是事件驅(qū)動(dòng)建模的核心。本文適合區(qū)塊鏈入門(mén)閱讀: 不對(duì)稱(chēng)密碼已經(jīng)存在了很長(zhǎng)一

這是一篇從程序員視角看區(qū)塊鏈的文章,將區(qū)塊鏈落地為程序員能夠理解的概念,比如圖靈狀態(tài)機(jī),而狀態(tài)機(jī)是一種狀態(tài)模式,是事件驅(qū)動(dòng)建模的核心。本文適合區(qū)塊鏈入門(mén)閱讀:

不對(duì)稱(chēng)密碼已經(jīng)存在了很長(zhǎng)一段時(shí)間,密鑰有公鑰和私鑰之分。我們使用公鑰進(jìn)行加密并使用私鑰解密?;蛳喾匆嗳弧D銦o(wú)法從一個(gè)密鑰中獲得另外一個(gè)密鑰。因此,如果使用不對(duì)稱(chēng)加密技術(shù),我可以向某人發(fā)送一條信息,比如“我轉(zhuǎn)賬100美元”,并且每個(gè)人都會(huì)知道它是由我發(fā)送的,并且沒(méi)有任何改動(dòng)。

假設(shè)有十個(gè)人都同意每個(gè)人擁有一百萬(wàn)單位的新貨幣。他們每個(gè)人都可以確保(并且每個(gè)人都可以確信)是有某人發(fā)送了三十萬(wàn)個(gè)單位。但是X是否真的擁有這些三十萬(wàn)個(gè)單位貨幣卻還不得而知。為了找到答案,我們可以了解每個(gè)人的余額情況。為此,我們只需將所有收入交易加起來(lái)并扣除所有費(fèi)用進(jìn)行計(jì)算。由此,我們就需要有關(guān)收入和支出的信息,這就是公共賬本。它可以讓我們識(shí)別某個(gè)人是否真的可以發(fā)出30萬(wàn)個(gè)單位的貨幣。

比特幣:開(kāi)始

還有一個(gè)問(wèn)題 - 如果我把我所有的錢(qián)同時(shí)寄給兩個(gè)人怎么辦?這被稱(chēng)為雙重支出。如果讓這兩個(gè)人彼此溝通以找出誰(shuí)最終獲得付款是不方便的;查看時(shí)間戳以確定我首先將資金發(fā)送誰(shuí)了?這種辦法非fail-safe的。這里有一個(gè)解決方案 - 我們需要流線(xiàn)化交易,在這種流線(xiàn)化交易模式下,很明顯能看出第一筆付款已經(jīng)發(fā)給了約翰,根本無(wú)法再將這筆付款發(fā)給第二個(gè)人,因?yàn)槲覜](méi)有更多的錢(qián)了。

流線(xiàn)型交易主要是對(duì)交易進(jìn)行排序,但是現(xiàn)在還不清楚怎么來(lái)決定交易的順序。在銀行和其他集中系統(tǒng)中,銀行自身代表了受托人,是單點(diǎn)風(fēng)險(xiǎn)點(diǎn),也是單點(diǎn)信任點(diǎn)。該銀行可以出面澄清說(shuō),某某的錢(qián)先寄給了誰(shuí)。但是在區(qū)塊鏈中,沒(méi)有單個(gè)受托人。它可能是網(wǎng)絡(luò)的大部分參與者(當(dāng)然,這意味著整個(gè)網(wǎng)絡(luò),因?yàn)槟悴荒芟嘈琶恳粋€(gè)參與者,因?yàn)槠渲锌隙ㄓ幸恍_子)。這里的假設(shè)前提是網(wǎng)絡(luò)不受任何一個(gè)人的控制,并且大多數(shù)參與者嚴(yán)格按照利于自己的經(jīng)濟(jì)利益行事(自利)。

但是流線(xiàn)型交易的一致性問(wèn)題仍然沒(méi)有徹底解決 - 這就要求我們?cè)诰W(wǎng)絡(luò)參與者中實(shí)現(xiàn)一種稱(chēng)之為“共識(shí)”的機(jī)制。這個(gè)問(wèn)題是由一個(gè)共識(shí)算法處理的,這是每個(gè)區(qū)塊鏈中的一個(gè)關(guān)鍵算法。

在我們討論一個(gè)特定的共識(shí)算法之前,先說(shuō)說(shuō)區(qū)塊鏈的塊。塊是一種技術(shù)措施,是批量處理(稱(chēng)為批處理)的一個(gè)實(shí)例,因此許多交易能在一個(gè)“批量”內(nèi)計(jì)算以達(dá)成共識(shí),并且網(wǎng)絡(luò)的間接費(fèi)用可以跨多個(gè)交易中“分?jǐn)偂?。塊內(nèi)交易的順序是由網(wǎng)絡(luò)參與者(即生成該塊的人員(也稱(chēng)為“礦工”))定義的。但塊之間的順序由共識(shí)算法確定。共識(shí)算法存在相當(dāng)長(zhǎng)的一段時(shí)間。例如包括多主NoSQL系統(tǒng)中的Paxos和Raft等算法。但這些算法并不適合擁有一百萬(wàn)對(duì)參與者的網(wǎng)絡(luò)。

比特幣在它出現(xiàn)的時(shí)候代表了相當(dāng)革命性的東西 - 一種工作證明(PoW)共識(shí)的算法。許多網(wǎng)絡(luò)參與者(礦工)會(huì)同時(shí)生成很多新塊。因此有必要決定這些塊中的哪一個(gè)塊能夠被真正用作區(qū)塊鏈的下一塊。

為了使自己產(chǎn)生的塊成為區(qū)塊鏈中真正的下一個(gè)塊,礦工必須執(zhí)行特別挑選且非常耗時(shí)的哈希計(jì)算。當(dāng)一個(gè)哈希數(shù)值計(jì)算到一個(gè)大數(shù)字,且必須符合某些條件,比如必須前面包含10個(gè)零。這就會(huì)需要數(shù)十億次哈希計(jì)算,這個(gè)計(jì)算量就代表礦工能“證明”其塊的確實(shí)存在的證據(jù)。同時(shí),檢查這項(xiàng)工作是否正確完成是非常容易的 - 您只需要一次哈希操作。必須了解到的是:平均而言,整個(gè)網(wǎng)絡(luò)(其中包括成千上萬(wàn)的礦工?。┰?0分鐘內(nèi)就可以生成一個(gè)區(qū)塊(比特幣生成區(qū)塊的平均間隔)! 。這大大降低了曠工之間碰撞的可能性,即就不可能同時(shí)有兩個(gè)礦工提供兩個(gè)或更多的塊作為下一個(gè)塊。

但是,發(fā)生碰撞的可能性還是可能存在的。因此,存在這樣規(guī)則 - 網(wǎng)絡(luò)參與者接受形成最長(zhǎng)鏈的塊(當(dāng)有兩個(gè)塊同時(shí)生成時(shí),選擇其中一個(gè)更長(zhǎng)的鏈的塊)。

事實(shí)上,它不是一個(gè)鏈,而是一個(gè)有許多分支和有向無(wú)環(huán)圖(DAG)的鏈,而鏈通常被稱(chēng)為“共同歷史”(它是最長(zhǎng)的鏈)。既然共識(shí)不能立即達(dá)成,你就必須等待一段時(shí)間直到出現(xiàn)幾個(gè)塊之后。為了防止比特幣的雙重支出,人們通常會(huì)等待六個(gè)塊(在比特幣里需要花費(fèi)一個(gè)小時(shí))。

除了事務(wù)之外,塊還包括前一個(gè)塊的哈希。因此,過(guò)去歷史就不可能被修改,因?yàn)檫@會(huì)使隨后的所有哈希無(wú)效。同時(shí),連接到同一個(gè)塊,您會(huì)獲得挖礦獎(jiǎng)勵(lì),這會(huì)給您帶來(lái)新的收益!否則,就無(wú)法將新資金引入這個(gè)系統(tǒng)中 - 資金將不得不發(fā)放給某人,這會(huì)使這個(gè)人變得特殊,這與分權(quán)的想法會(huì)形成矛盾。為挖礦發(fā)錢(qián)似乎是一種合乎邏輯和可接受的解決方案。

順便說(shuō)一句,關(guān)于挖礦。你需要明白,礦工的主要工作是猛烈地哈希計(jì)算出新塊; 這里沒(méi)有非對(duì)稱(chēng)加密技術(shù),因?yàn)檫@里僅僅需要在交易加入塊之前檢查交易。比特幣使用SHA-256哈希; 在以太坊中,它是采取Keccak-256。如果你是單獨(dú)開(kāi)采,那么在你生成一個(gè)區(qū)塊之前,需要準(zhǔn)備好長(zhǎng)時(shí)間(每十分鐘產(chǎn)生一個(gè)區(qū)塊,你的競(jìng)爭(zhēng)者數(shù)量達(dá)到數(shù)百成千上萬(wàn)的?。?。如果礦工聚集在一起。在一個(gè)池中,參與者之間的獎(jiǎng)勵(lì)是以各種方式分配的(有不同的方法),這意味著您可以更經(jīng)常地獲得獎(jiǎng)金(盡管數(shù)量比較少)。在這種情況下,風(fēng)險(xiǎn)和收益都是成正比的。

到目前為止,我們主要處理的是網(wǎng)絡(luò)參與者之間的數(shù)據(jù)交換,而沒(méi)有深入細(xì)節(jié)。牢記數(shù)據(jù)通過(guò)網(wǎng)絡(luò)對(duì)等進(jìn)行交換是非常重要的。

這就是比特幣區(qū)塊鏈技術(shù)。

智能合約和ICO

在比特幣的每個(gè)賬戶(hù)上執(zhí)行兩個(gè)操作(加法和減法),并且可以由任何人檢查,當(dāng)然主要由礦工檢查。但是如果我們將一個(gè)內(nèi)部變量添加到帳戶(hù)(存儲(chǔ)),它是用來(lái)進(jìn)行操作比較的,假設(shè)我積累了1000萬(wàn)美元時(shí),我想讓我的帳戶(hù)停止接受資金 - 這意味著代碼實(shí)現(xiàn)上不僅要將資金能夠增加到我的帳戶(hù)中,還要為這種增加再添加一定的條件。通過(guò)開(kāi)發(fā)這個(gè)角度看過(guò)去,我們看到的是一個(gè)圖靈機(jī),一種確定性的類(lèi)型(每個(gè)人仍然可以檢查我的賬戶(hù))。因此,我們有了一個(gè)智能合約。在下文中,智能合約指的是以太坊網(wǎng)絡(luò)中的智能合約,因?yàn)樗悄壳白钍軞g迎的合約。

確定性意味著,在有相同的交易參數(shù)和存儲(chǔ)的初始狀態(tài)相同的情況下,我們最終會(huì)得到相同的結(jié)果,以及存儲(chǔ)中同樣的更改動(dòng)作(banq注:操作事件)。只有在這些條件下,網(wǎng)絡(luò)才能就每筆交易達(dá)成一致。

這里必須明白,由于要求確定性,可驗(yàn)證性和分散性,智能合約與外部世界相當(dāng)孤立。例如,它不能觸發(fā)分散式Web API(有解決方案,即所謂的“oracles”,但這些都很復(fù)雜,需要分別處理)。

另外,合同對(duì)外界的控制也非常有限。例如,要了解智能合同執(zhí)行結(jié)果(新余額或存儲(chǔ)的更改動(dòng)作),網(wǎng)絡(luò)節(jié)點(diǎn)必須執(zhí)行該合同規(guī)定的操作。在多個(gè)節(jié)點(diǎn)上進(jìn)行計(jì)算不是沒(méi)有成本的。因此,以太坊引入了gas 的概念,以避免加密貨幣硬編碼進(jìn)行計(jì)算帶來(lái)的成本,并允許用戶(hù)計(jì)算計(jì)算次數(shù)并設(shè)置其價(jià)格。這種結(jié)構(gòu)提供了一個(gè)額外的間接層,它允許用戶(hù)在低成本交易和快速交易之間進(jìn)行選擇。

當(dāng)資金被發(fā)送到合約賬戶(hù)(通過(guò)簡(jiǎn)單地使用地址)時(shí),它觸發(fā)回調(diào)函數(shù),這是默認(rèn)設(shè)置。與前面比特幣的帳戶(hù)類(lèi)型不同,智能合約的合約中有多個(gè)輸入點(diǎn) - 這些是可以接受參數(shù)的方法。要修改合約(無(wú)論輸入點(diǎn)是什么),您必須將交易發(fā)送到網(wǎng)絡(luò)才能進(jìn)行更改。但是,如果您只想以只讀模式查看某些內(nèi)容,則可以通過(guò)使用實(shí)時(shí)更新的區(qū)塊鏈在本地執(zhí)行此操作。另外與賬戶(hù)不同的是,智能合約沒(méi)有私鑰。您不能直接從余額中提取資金 - 這可以通過(guò)使用明確定義的方法來(lái)完成,當(dāng)然這些方法應(yīng)該有安全限制,例如檢查試圖訪(fǎng)問(wèn)資金的用戶(hù)的地址。

最后,我們?cè)诒忍貛棚L(fēng)格的區(qū)塊鏈上獲得了智能合約技術(shù)。

許多加密貨幣或所謂的“代幣tokens”都基于以太坊智能合約。是的,通常這種加密貨幣只是以太坊中的一個(gè)合同(一個(gè)?。?。余額通常是智能合約存儲(chǔ)中的map數(shù)據(jù)類(lèi)型的一個(gè)數(shù)據(jù)條目,并且從一個(gè)參與者轉(zhuǎn)移貨幣到另一個(gè)參與者如下:

map[Alice] –= payment;

map[Bob] += payment;

他們不需要自己的曠工和網(wǎng)絡(luò) - 他們可以使用以太坊的基礎(chǔ)設(shè)施。在以太坊,ICO / ITO實(shí)際就是加密貨幣(tokens)的以太網(wǎng)交換(以太坊網(wǎng)絡(luò)的加密貨幣)。

未來(lái)發(fā)展

除了智能合約之外,基于區(qū)塊鏈的基本概念之上還有很多其他想法,比如“零知識(shí)證明”和“自律網(wǎng)絡(luò)”。

零知識(shí)證明是基于密碼協(xié)議的同名家族,實(shí)質(zhì)上,它被設(shè)計(jì)為證明對(duì)象的所有權(quán)但不完全暴露它。例如,如果我能夠回答關(guān)于某文件的各種隨機(jī)位置中有關(guān)字節(jié)的十個(gè)問(wèn)題,我就可以證明我擁有一個(gè)特定的1 GB文件。顯然,在這種情況下,我只需公開(kāi)1 GB中的10個(gè)字節(jié)即可。

這意味著可以讓任何人檢查我的帳戶(hù)余額是否正確,同時(shí)卻沒(méi)有必要透露我的帳戶(hù)上有多少錢(qián)!通過(guò)構(gòu)建這個(gè)想法,我們可以創(chuàng)建一個(gè)包含余額和支付隱私信息的加密貨幣(實(shí)際上,它已經(jīng)存在了;參見(jiàn)Zcash),并且完全隱藏了智能合約中計(jì)算參數(shù)。

區(qū)塊鏈有寫(xiě)入網(wǎng)絡(luò)客戶(hù)端程序代碼的網(wǎng)絡(luò)通用設(shè)置,例如包含在該區(qū)塊中的交易數(shù)量。通常,更改它們需要網(wǎng)絡(luò)上所有參與者接受這些更改(以代碼更新的形式出現(xiàn)),這會(huì)帶來(lái)網(wǎng)絡(luò)分支的威脅(當(dāng)一些參與者決定不接受更改并繼續(xù)與“舊”碼)。Self-regulation試圖解決這些問(wèn)題(例如,參見(jiàn)Tezos或EOS區(qū)塊鏈)。這種想法的本質(zhì)是,對(duì)于每一次變更,您都可以用自己的資金進(jìn)行投票(當(dāng)然不會(huì)失去這些資金)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉