區(qū)塊鏈的一些理解

區(qū)塊鏈是什么

區(qū)塊鏈到底是什么?他的內(nèi)涵和外延在哪里?底層存儲邏輯上把區(qū)塊按照順序相連形成區(qū)塊鏈,這一點是毋庸置疑的。在此基礎(chǔ)上,那些節(jié)點能夠參與到區(qū)塊鏈中形成了公有鏈、私有鏈和聯(lián)盟鏈;那個節(jié)點具有生成區(qū)塊權(quán)利,形成了基于POW,POS,DPOS,PBFT等所謂的共識算法; 那些交易是能夠?qū)懭雲(yún)^(qū)塊中,比特幣基于非圖靈完備的腳本,以太坊基于圖靈完備的腳本,任何數(shù)據(jù)都可以寫入也沒有問題。

從存儲角度看區(qū)塊鏈分為記錄在區(qū)塊內(nèi)的操作序列以及記錄在區(qū)塊外的操作結(jié)果。對于比特幣,區(qū)塊內(nèi)記錄的每一筆轉(zhuǎn)賬記錄(挖礦收入可以看作無輸入方的轉(zhuǎn)賬記錄),區(qū)塊外記錄是UTXO;對于以太坊,區(qū)塊記錄是對于智能合約的調(diào)用(特殊的是挖礦記錄和智能合約創(chuàng)建),區(qū)塊外記錄的是世界狀態(tài)。

共識是一切

合約模型可以分為Agreement:協(xié)定; Formalization:形式化 ;Execution/Enforcement:執(zhí)行。(來自網(wǎng)絡(luò),非本人獨創(chuàng))

協(xié)定確定了游戲規(guī)則,我稱之為共識(不同于區(qū)塊鏈常說的POW,POS共識)。形式化是使用某種方式或手段記錄下協(xié)定成果。執(zhí)行則是根據(jù)形式化的記錄運行達成的共識。

以社會運行為例,協(xié)定由討論、爭吵、打架、戰(zhàn)爭等方式達成;形式化包括法律法規(guī)、制度等;執(zhí)行包括懲罰、罰款等。

在區(qū)塊鏈環(huán)境中,形式化是區(qū)塊鏈系統(tǒng)代碼或基于區(qū)塊鏈開發(fā)的智能合約(區(qū)塊鏈代碼是一個共識,規(guī)定區(qū)塊鏈使用者必須使用gas生成和運行合約等;開發(fā)的每個智能合約又是新的共識,如某代幣智能合約制定了此代幣體系的共識:發(fā)行總量是多少,如何分配).執(zhí)行就是對智能合約的運行,區(qū)塊鏈系統(tǒng)提供了運行以及對運行結(jié)果的確認和記錄。在上述合約模型中,區(qū)塊鏈唯一不能涵蓋的是協(xié)定階段。

因此,我認為區(qū)塊鏈的本質(zhì)是 在共識的前提下,區(qū)塊鏈通過代碼把共識形式化和客觀地執(zhí)行。

共識的含義

共識是信任和資產(chǎn)的所有權(quán)的因

在比特幣或以太坊的公有鏈環(huán)境下,共識使得節(jié)點互相信任,因為運行其他共識的節(jié)點會被邊緣化。

同樣,共識決定了資產(chǎn)的所有權(quán)。因為無法提供需要的簽名。,屬于某賬戶的比特幣其他賬戶無法轉(zhuǎn)走.

然而這一切在無共識的環(huán)境下沒有任何意義。比特幣和以太坊就有節(jié)點共識的分歧導(dǎo)致硬分叉。而共識的變更同樣能導(dǎo)致資產(chǎn)所有權(quán)的混亂。我們的財產(chǎn)屬于我們是基于現(xiàn)有的法律法規(guī),而在原始社會,一切都屬于部落,你的衣服、武器都不屬于你。以比特幣為例,如果規(guī)則修改為生成創(chuàng)始區(qū)塊的地址有權(quán)利消費其他賬戶的比特幣,則你的比特幣就不一定屬于你了。

共識是設(shè)計區(qū)塊鏈體系的關(guān)鍵

既然共識是一切的關(guān)鍵,那么設(shè)計區(qū)塊鏈體系就是設(shè)計共識的達成和維護機制。不管是公有鏈、聯(lián)盟鏈還是私有鏈,所有參與方形成一個社區(qū)。設(shè)計的目的就是得到共識能夠得到社區(qū)的認可。這是一個社會學(xué)問題,與世界秩序的制定,國家法規(guī)執(zhí)行,公司員工手冊制定類似;又是一個博弈學(xué)問題,雖然重口難調(diào),但是還是要達成共識。

具體又分為共識的達成和維護。達成在區(qū)塊鏈體系的創(chuàng)建期間,往往由某人/組織帶領(lǐng)下達成。如比特幣由中本聰以及他朋友制定,共識包括10分鐘出塊、每個塊挖礦獎勵50個比特幣、獎勵(大概)每4年減半、使用POW等等。達成往往不是最難的,維護才是最大的挑戰(zhàn)。比特幣的各個BP就是對共識的維護。

DAO以及CSDN蔣濤說的DCO都是設(shè)想通過新的組織架構(gòu)模型來維持共識。

特點和解讀

在百度上搜索區(qū)塊鏈特點,無外乎一下幾個,其他都是各種copy&paste.我認為他都不是區(qū)塊鏈的本質(zhì),而是共識的一些具體體現(xiàn)。

去中心化

其核心思想在于大量的節(jié)點參與到區(qū)塊里系統(tǒng)的運行(記賬),這樣可以防止某些個體對系統(tǒng)的控制后輕易修改共識。從現(xiàn)狀來看,礦池的出現(xiàn)已經(jīng)使得其價值大大弱化。比特幣前3大礦池已經(jīng)控制超過50%算力,而一個不大的礦池也可能導(dǎo)致硬分叉。

EOS的DPOS在這方面比較有意思,實質(zhì)是與其讓礦池通過堆硬件來中心化,還不如在設(shè)計系統(tǒng)的時候讓他們?nèi)?1個節(jié)點。

因此,海量權(quán)益均等節(jié)點的去中心化是不可能的,人性使然。多節(jié)點是必然,最終可能的情形是:核心節(jié)點行使記賬功能,參與節(jié)點行使監(jiān)督功能(有全量數(shù)據(jù)但是不記賬)以及使用節(jié)點(SPV).

信息不可篡改/可靠數(shù)據(jù)庫

區(qū)塊鏈數(shù)據(jù)存儲在硬盤上,而不是存儲在ROM里,肯定是可以纂改的。說不可纂改主要體現(xiàn)在,第一修改以后能發(fā)現(xiàn),因為會導(dǎo)致對應(yīng)區(qū)塊的哈希值變化。另外一個就是,修改后的區(qū)塊也無法同步到其他節(jié)點,因為會導(dǎo)致校驗錯誤而被其他節(jié)點拋棄。另外,因為有多節(jié)點,導(dǎo)致你無法修改所有節(jié)點(如果黑客能夠修改所有節(jié)點的數(shù)據(jù),則是可能纂改區(qū)塊數(shù)據(jù),因為雖然導(dǎo)致和區(qū)塊哈希值變化。但是一般不會對歷史區(qū)塊哈希值做校驗)。

唯一干凈修改的方法把要修改的區(qū)塊以及以后的區(qū)塊都拋棄后重新記賬。這就是通過POW等機制防止,代價太大。

雖然上面的感覺象廢話,但是如果設(shè)計一個分布式存儲的區(qū)塊鏈需要考慮。因為,很多小白感覺區(qū)塊鏈有黑科技科技可以無條件的做到不可纂改。

去信任

信任源于對游戲規(guī)則/共識的認同。去銀行取錢,會領(lǐng)取一個叫號代碼,然后只需要安靜等待,你可以信任銀行到了你的號碼就可以去取錢。但是如果游戲規(guī)則是可變的,譬如其他人可以插隊,這是你對銀行的信任就不存在。所以,信任是共識的結(jié)果。

比特幣體系下,節(jié)點互相信任是不按照共識執(zhí)行的節(jié)點會被邊緣化;對于每個賬號來說,按照共識規(guī)則,除非數(shù)學(xué)上有重大突破破解了橢圓曲線加密法,你的比特幣其他人是無法拿走的。

自治性

我認為使用”自洽”更加準確,也是我認為區(qū)塊鏈非常重要的一個特點。傳統(tǒng)關(guān)系型數(shù)據(jù)庫有不同范式,如每個表格列數(shù)相同,每列具有相同的類型,主鍵不能重復(fù)等等。區(qū)塊鏈系統(tǒng)在此基礎(chǔ)上更進一步,他可以給出更加復(fù)雜的范式。從這個角度看,他不僅僅是一個存儲,而是一個能自動維持共識的系統(tǒng)。比特幣系統(tǒng)中無法記錄一筆異常(不符合共識規(guī)則)交易,如雙花或輸入不存在。

匿名性

匿名性是指信息世界個體和物理世界個體的隔離。

在銀行系統(tǒng)里開一個賬號,銀行需要知道你是誰以及你的背景資料(KYC)[譬如你叫”張三”],然后給你開了一個賬號123456.在銀行系統(tǒng)里,張三和123456是關(guān)聯(lián)的。比特幣等系統(tǒng)里,張三申請一個賬號567890,張三和567890之間沒有任何地方記錄其關(guān)聯(lián)。

實現(xiàn)匿名性與否取決于共識,并不是區(qū)塊鏈或代幣的本質(zhì)特征。如基于以太坊開發(fā)一個智能合約發(fā)行代幣要求必須是KYC完全沒有問題。實現(xiàn)可以是:第一,合約創(chuàng)建者做KYC后維護一個白名單;第二,所有轉(zhuǎn)賬目標地址必須是在白名單內(nèi)。

胡說八道

以下是喝醉酒寫的,寫的對不要夸,寫的不好不要罵,寫錯了不要噴;另外很多分析是基于現(xiàn)有實現(xiàn),區(qū)塊鏈架構(gòu)肯定會有突破和改變。

架構(gòu)架構(gòu)

區(qū)塊鏈說的最多的是”分布式賬本”。從表象看,一個區(qū)塊鏈系統(tǒng)由很多計算設(shè)備通過網(wǎng)絡(luò)形成一個系統(tǒng),很分布式。但從存儲和計算兩個角度看,又有一些不同的解讀。

從存儲的角度看,我們說一個分布式的數(shù)據(jù)庫或文件系統(tǒng),往往是指數(shù)據(jù)分片存儲在多臺設(shè)備里,同一數(shù)據(jù)可能有多個拷貝,但每臺設(shè)備不存儲全量數(shù)據(jù)。而比特幣系統(tǒng)區(qū)塊數(shù)據(jù)是所有節(jié)點全量存儲(輕量節(jié)點或SPV節(jié)點是另外一個概念),很不分布式。

從計算角度看,我們說一個分布式的系統(tǒng),往往是指通過一個負載均衡把請求分布到多臺服務(wù)器上,每個節(jié)點執(zhí)行全部請求中的部分。而比特幣系統(tǒng)中所有節(jié)點必須運行所有的記賬過程,挖礦成功的節(jié)點執(zhí)行后其他節(jié)點驗證,好像也不分布式。

所以區(qū)塊鏈系統(tǒng)是一個效率很差、存儲昂貴的系統(tǒng),標定值取決于最弱的節(jié)點(如果他沒有被拋棄的化)。另外需要注意,比特幣的記賬以及以太坊的智能合約并沒有占用太多計算資源,大量的算力用的是用于POW挖礦,所以不能認為他們算力很大就是一個”強大”的系統(tǒng)。

從這個角度看,區(qū)塊鏈不會取代現(xiàn)在互聯(lián)的而是互聯(lián)網(wǎng)的一塊拼圖,用于做一些附加值高的場景。

比特幣的UTXO和以太坊的世界狀態(tài)

這兩者從概念上非常類似,都是區(qū)塊鏈交易運行的結(jié)果。比特幣交易是一筆筆的轉(zhuǎn)賬,未消費的轉(zhuǎn)賬形成UTXO;以太坊運行智能合約,智能合約的存儲形成世界狀態(tài)。但是這些數(shù)據(jù)都不是區(qū)塊鏈的一部分,也不能在節(jié)點間同步,從這個角度看形成了某種割裂。某種意義上,結(jié)果比歷史過程更加重要。譬如比特幣中我要看某賬號有多少比特幣,直接看UTXO即可,要查看某筆交易是否可用也只需要關(guān)注UTXO.

因此把UTXO/世界狀態(tài)作為區(qū)塊鏈的一部分是有價值的。但是把全量UTXO/世界狀態(tài)附在每個區(qū)塊上是不現(xiàn)實的,需要找到一種類似增量的模式。

一種折中方法是在一定區(qū)塊高度做一個快照,通過同步快照+運行剩余區(qū)塊中交易的方式實現(xiàn)世界狀態(tài)同步。如以太坊當前區(qū)塊高度為5501994,如果每1000個做一個快照(其實保留2個快照就夠了)。則同步世界狀態(tài)邏輯為同步5501000時生成的快照,然后同步并運行后續(xù)區(qū)塊即可。仔細想想,5501000以前的區(qū)塊對我沒有太多意義(除了某些區(qū)塊里保存的智能合約)。我感覺我有點繞回去了,傳統(tǒng)系統(tǒng)是存儲結(jié)果而弱化過程;區(qū)塊鏈剛好相反。

智能合約

智能合約名字很高大上,實際上功能很弱,完全無法和主流編程語言的能力相提并論。以太坊智能合約的一個方法,如轉(zhuǎn)賬操作,其輸入只有兩個:調(diào)用時的參數(shù)(目標地址,轉(zhuǎn)賬金額)以及世界狀態(tài)(賬戶余額等,與區(qū)塊鏈里記錄的歷史交易都沒有關(guān)系)。

這樣的結(jié)果就是智能合約無法和外部世界交互,除非在調(diào)用時通過參數(shù)傳遞給合約。智能合約具備和外部世界交互能力,不是一個合約語言升級的問題,而是整個體系架構(gòu)的革新。把外部世界作為一種輸入,如調(diào)用web service獲取某地溫度,某股票實時價格,從某設(shè)備讀取參數(shù),現(xiàn)在需要記賬節(jié)點調(diào)用后其他驗證節(jié)點也調(diào)用,而不同節(jié)點調(diào)用的返回值可能是不同的從而導(dǎo)致驗證失敗。同樣如果把外部世界作為一種輸出,如支付成功后啟動洗衣設(shè)備提供洗衣服務(wù),同樣不能是所有節(jié)點都調(diào)用。另外,外部世界的不可控會影響區(qū)塊鏈的成本控制、效率和可靠性。但從發(fā)展的眼光看,區(qū)塊鏈系統(tǒng)如果不能和外部世界交互,他永遠只能是封閉的系統(tǒng),最大價值就是發(fā)幣或純粹的數(shù)字資產(chǎn)交易。

一種可能的思路是調(diào)整驗證的方法?,F(xiàn)在是驗證節(jié)點運行相同代碼驗證,如果記賬節(jié)點處于強信任的情形或可以證明記賬節(jié)點確實是通過對某方法的正確調(diào)用,則驗證節(jié)點可以信任其運算結(jié)果。

合約漏洞是另外一個阿喀琉斯之踵,特別是對以太坊。DAO以及最近的ERC20合約漏洞影響都很大,結(jié)果可能導(dǎo)致回滾和硬分叉,從另一個角度說明了智能合約的脆弱性。通過合約升級來修補漏洞,從技術(shù)上是沒有問題,以太坊升級基礎(chǔ)代碼肯定能搞定。問題在于誰有資格去進行智能合約升級,如果合約創(chuàng)建者能夠隨意升級合約,意味著他可以隨意修改游戲規(guī)則,與區(qū)塊鏈形式化/固化共識的初衷是矛盾的。

EOS本質(zhì)就是一個昂貴的BaaS

EOS很熱,找了很多資料,無非是說兩點:DPOS共識機制,每秒百萬級的交易。這只能說明有人在鋪天蓋地的炒作,另外很多小白在不懂裝懂,人云亦云。

首先說DPOS,議會制,不象POW需要消耗大量電力,看上去很美好。實際上呢,全球21個超級節(jié)點。根據(jù)雷鋒網(wǎng)的報道,中國3個節(jié)點為EOS Gravity(引力區(qū))、EOS UNION以及EOS Shenzhen,都是以EOS開頭!用腳趾頭都能想到,最后節(jié)點都是EOS或者為EOS站臺的大佬控制。你想投票,多買點幣吧!多你還能超過創(chuàng)始人?

再說每秒百萬級的交易(順便說下,2017年雙11支付寶峰值完成每秒25.6萬筆交易?。?。首先這個說法就不專業(yè),智能合約的復(fù)雜程度決定了吞吐量,我們就以轉(zhuǎn)賬作為考量的基準。如果以一臺服務(wù)器每秒處理1萬條,需要100臺服務(wù)器,生成存儲2.5M,一天210G。每個節(jié)點確實是一個小數(shù)據(jù)中心,別忘了P2P網(wǎng)絡(luò)還需要同步,而且EOS也沒說清楚怎么控制并發(fā)。最好結(jié)果就是21個節(jié)點自己玩,其他都是SPV節(jié)點。

如果把整個事情分為兩個階段:開發(fā)階段和運營階段。開發(fā)階段,開發(fā)團隊通過售賣代幣得到百億的收入,完成系統(tǒng)的開發(fā),結(jié)果是這套系統(tǒng)的開發(fā)成本是百億。從運營階段來看,用戶購買的代幣實際是用于支付使用EOS的費用(類似于以太坊的gas).從這個角度看,開發(fā)團隊套現(xiàn)的百億需要運營團隊來承擔(dān)。雖然運營的超級節(jié)點也有一定的”挖礦”收入,什么時候能把這個大坑填掉?

另外一點是EOS在智能合約上并沒有太多創(chuàng)新。如果EOS能做的以太坊也能做,僅僅通過節(jié)點集中化來提升處理效率,會不會辜負了大家的期望?

總結(jié),EOS項目最好的結(jié)果結(jié)果就是一個昂貴的BaaS服務(wù)商。

代幣

比特幣是一個典型的虛擬貨幣/資產(chǎn),其本身沒有任何價值,但是炒作的人多就有價格。很多人認為比特幣是”數(shù)字黃金”,總數(shù)2100萬個具有很強的稀缺性,但是我不這么認為。比特幣現(xiàn)在由礦霸和碼霸控制,隨著挖礦收入的減少,那天覺得挖礦無利可圖,提高發(fā)行量完全可行,修改一行代碼就結(jié)束了。得不到多數(shù)同意也可以分叉出一個新的貨幣BTX!比特幣不是由代碼控制的,而是代碼后面的人!

以太坊/EOS的代幣是用于支付區(qū)塊鏈的使用,類似于租用云服務(wù)的付費。云服務(wù)是用戶向云服務(wù)提供商支付后使用其提供的服務(wù),區(qū)塊鏈生態(tài)里是用戶使用礦工提供的區(qū)塊鏈服務(wù)時支付代幣,而代幣向礦工(中間可能經(jīng)過多次交易)購買并在礦工提供服務(wù)時產(chǎn)生。從這個角度看,代幣在一個區(qū)塊鏈生態(tài)中是有價值的,能夠簡化價值轉(zhuǎn)移。當然現(xiàn)在有些過度炒作反而忘記了其原始目的。

關(guān)于炒幣

技術(shù)很理性,市場很感性

一個人很冷靜,一群人就是從眾

代幣就是(國家眼中的)數(shù)字貨幣嗎?代幣就是區(qū)塊鏈(的未來)嗎?

炒什么都可以,總比大蒜有價值

比特幣轉(zhuǎn)賬成本分析

轉(zhuǎn)賬成本定義為每筆交易為比特幣系統(tǒng)運行支出承擔(dān)的份額。

按照10分鐘一個塊作為計算單元,假定塊中包含x個交易。比特幣運行成本主要是礦工挖礦成本,挖礦成本=收益/利潤率(y)。收益=(12.5+z)*比特幣單價。z為交易費。

按照上述計算,最理想情況下 x=4000,y=2(1倍利潤),z=0(忽略),結(jié)果為78人民幣。簡單點說,一筆交易花費了78元的(電費,設(shè)備費)!

有人會說礦工收益不是靠手續(xù)費,而是靠挖礦收入,挖礦收入是什么?本質(zhì)上是一種通貨膨脹。

隨著挖礦數(shù)量減少,單純靠手續(xù)費比特幣系統(tǒng)還能運行嗎?唯一可能性就是比特幣單價飆升。

區(qū)塊鏈系統(tǒng)

公有鏈的兩個悖論:用的人越多,公有鏈越有價值;但是用的越多,區(qū)塊鏈就越大甚至太大,限制了全量節(jié)點的數(shù)目;挖礦的人越多,公有鏈系統(tǒng)越有效,但是礦工越多,共識成本就高。所以通用的公有鏈系統(tǒng)未必是未來的方向,百花齊放的專用公有鏈肯定會越來越有價值。

隨之,跨鏈交易會成為一個非常重要的課題,實現(xiàn)鏈和鏈之間的信任交換。

另外一個公有區(qū)塊鏈也可以作為其他鏈的總鏈,如記錄私有鏈區(qū)塊的哈希,從而利用公有鏈的公信力來強化私有鏈的公信力/防篡改能力。

===未完不續(xù),歡迎討論

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容