“區塊鏈技術來源于位元幣,也因為位元幣的瘋狂而備受矚目,區塊鏈技術發展到現在,無論是在技術上的深度與廣度,還是在應用場景上的寬度,均取得了較大突破,雖然位元幣類加密數字貨幣在區塊鏈領域依然備受關注,但是百花齊放的區塊鏈應用,尤其是大量企業級區塊鏈應用的出現正在催熟區塊鏈技術,區塊鏈技術正處于快速發展演化期,未來會擁有一個更大的可以施展拳腳的舞臺,”——《區塊鏈技術及應用 華為區塊鏈技術開發團隊編著》
區塊鏈與位元幣學習筆記一
- 位元幣系統與區塊鏈技術
- 位元幣交易
- 區塊鏈問題澄清
- 區塊鏈的核心技術是分布式而不是去中心
- 區塊鏈是分布式賬本,但分布式賬本不一定是區塊鏈,
- 區塊鏈在工程技術層面還不夠成熟,離金融行業大面積應用還需要數年時間,
- “代碼即法律”只是烏托邦理想,智能合約也只是幫助執行雙方約定的計算機程式而已,
- 比數字貨幣范圍更大、價值更大的數字資產,
位元幣系統與區塊鏈技術
本書通過一個通俗的故事介紹什么是位元幣系統,從而引出區塊鏈:
從前,有個古老的村落,里面住著一群古老的村民,這個村莊沒有銀行為大家存錢、記賬,沒有一個讓所有村民都信賴的村長來維護和記錄村民之間的財務往來,也就是沒有任何中間機構或者個人來記賬,于是,村民想出了一個不需要中間機構或個人,而是大家一起記賬的方法,
比如,張三要給李四1000塊錢,張三在村里大吼一聲:大家注意了,我張三,給李四轉了1000塊錢,這時候附近的村民聽到之后呢,需要做兩件事:
1)通過聲音確定這是張三喊的,而不是別人冒名張三喊的,從而防止別人去花張三的錢;
2)檢查張三是否有足夠的錢,每個村民都有個小賬本記錄各個村民有多少錢,當確認張三真的有1000塊錢后,每個村民都會在這個賬本上記錄:“xxxx年xx月xx日,張三轉給李四1000塊錢,”
除此之外,這些村民口口相傳,把張三轉賬的事情告訴了十里八村,當所有人都知道轉賬的事情后,大家就能夠共同證明“張三轉給李四1000塊錢”,這樣,一個不需要村長(中心節點)卻能讓所有村民都能達成一致的記賬系統誕生了,這個記賬系統就可以類比為我們今天常說的位元幣系統,
這個故事也引出了三個值得思考的問題:
1.記的賬在后面會不會被篡改?
2.村民有什么動力幫別人記賬?
3.這么多人記賬,萬一記的不一致豈不是壞了,以誰記的為準?
而位元幣則巧妙地解決了這三個問題,
第一,位元幣采用兩種策略保證賬本不可篡改:①人人記賬,人人手上都維護一本賬本,這樣即使某個人改了自己的賬本,他也無權修改其他村民手上的賬本,修改自己的賬本相當于“掩耳盜鈴”,他人并不會認可,②采用“區塊+鏈”的特殊賬本結構,在這種賬本結構中,每一個區塊保存著某段時間內所發生的的交易,這些區塊通過鏈式結構連接在一起,形成了一個記錄全部交易的完整賬本,如果對區塊內容進行了修改就會破壞整個區塊鏈的鏈式結構,導致鏈條斷了,從而很容易被檢測到,這兩個策略保證了從全域來看整個賬本是不可修改的,
第二,前面一條提到了人人參與記賬,這就產生疑問“憑什么我要幫別人記賬呢?”,這涉及到位元幣系統中的激勵機制,參與記賬的村民,被稱作“礦工”,這些礦工中,首個記賬被認可的人:①將獲得一筆獎勵,這筆獎勵就是若干個位元幣,這也是位元幣發行的唯一來源,這種獎勵措施使眾多礦工積極參加記賬;②誰在某一塊賬本被認可,其他人都會分別拷貝這一塊賬本,從而保證所有人維護的賬本是完全一致的,這兩點保證了區塊鏈的自動安全運行,
第三,既然有了激勵,大家就會爭搶著記賬并努力讓自己的記賬被認可,怎么確定以誰記的為準呢?為了能夠確定以誰記的賬為準,村民們想到了一個公平的辦法;對每一塊賬本(類比為現實賬本中的一頁),他們從題庫中找到一道難題,讓所有參與記賬的“礦工”都去破解這道難題,誰若最先破解了,該頁/塊就以他記的賬為準,這個破解難題的程序就被稱為“挖礦”,也即作業量證明的程序,(這個難題的解題程序需要不斷嘗試,較為困難,但是找到答案發給別人后,別人是很容易驗證的)
位元幣通過“區塊+鏈”的分布式賬本保障了交易不可篡改,通過發放位元幣的激勵措施激勵了“礦工”的參與,通過計算難題(礦工挖礦)解決了記賬一致性問題,這樣完美形成了一個不依賴任何中間人即可完成記賬的自動運行系統,這其中具有“區塊+鏈”不可篡改賬本、多方參與、結果共識的技術,就是位元幣背后的區塊鏈技術,
位元幣交易
想要參與位元幣系統中的交易程序,需要一個類似現實世界中銀行“賬戶”的物體,而實際上位元幣的交易參與方物體為一組公私鑰組合,私鑰是由程式生成的一串亂數,而其公鑰則是根據私鑰經過一系列的計算生成的,公與私鑰之間存在一一對應的關系,其中,公鑰作為參與交易的“賬戶名”,在交易中被參考,用于指明一筆交易中資金的來源于去向,而私鑰則作為交易程序中的“驗證密碼”,用于確認某一交易的合法性,
在位元幣的設計中,私鑰的長度被設定為256位元,取值范圍在[0,2^256-1],在這么大的取值下,難以出現兩個完全相同的私鑰,這也是密碼學的基礎,
位元幣的一對公私鑰以及其對應的錢包地址是按如下流程產生的:
首先通過某種亂數生成演算法產生出一個256位元串作為私鑰,然后再使用橢圓曲線加密演算法(ECC)對這個私鑰計算生成公鑰,此后公鑰再通過一系列的哈希計算和Base58編碼得到錢包地址,
而對于交易內容存盤的介紹,在《區塊鏈 智能合約與DApp應用實戰》中有更詳細的介紹:
在Bitcoin世界所謂的交易是指傳輸加密貨幣,然而完整的交易內容(例如A傳100個位元幣給B)并不會直接直接存盤于區塊中,所存放的僅為處理過后的交易哈希值,完整的交易內容存盤于區塊鏈節點得到資料庫中,交易哈希值僅用于協助快速查找交易內容的資料索引值,
Bitcoin采用Merkle Tree演算法來實作哈希值的處理,

Merkle樹為二叉樹結構,Bitcoin利用其特性將交易內容的哈希值存盤在默克爾樹的葉子節點,每層所得到的的哈希值再兩兩進行哈希運算,最終可得默克爾樹的根節點,被存盤于區塊的資料即默克爾樹的根哈希值,
Bitcoin使用Merkle樹的目的之一是為了驗證歷史資料是否被篡改過,舉例而言:假如有人嘗試篡改某一筆交易,那么修改過后所計算出的哈希值絕對會與篡改前的不同,因此最終得到的Merkle樹的根哈希值也會不同,通過這種對比,即可知道區塊內的交易是否被動過手腳,但是位元幣交易是否一定不會被人做手腳呢,其實也不是,這里推薦一篇知乎文章:
推薦文章
這篇文章里討論了對位元幣做手腳你可能需要付出的成本,
從某個Merkle樹中快速查找一筆交易所需經過的路徑長度即為Merkle路徑,若Merkle樹中有512筆交易,Merkle路徑搜索的長度僅為9,若具有32768(2^15)筆交易時,Merkle的路徑長度也只不過15,因此通過Merkle樹可以快速找到交易的哈希值,進而判斷區塊是否包含特定交易的演算法,
區塊鏈問題澄清
在《區塊鏈革命》的序章:從《失控》說起 中對大眾對區塊鏈的認知誤區做出糾正:
區塊鏈的核心技術是分布式而不是去中心
根據凱文·凱利的定義,分布式系統“沒有強制性的中心控制”,這里的明顯意思即分布式系統榷訓了中心控制,而不是消滅了中心控制,區塊鏈是若中心化的、分中心化的,在他眼中,去中心是一個程序而不是一個結果,而一個新的更具高效率和低成本的事物必將取代陳舊,區塊鏈也許能使得公平與效率達到一個接近最優平衡,但至少目前的技術仍然消弭公平與效率之間間隙的可能性,區塊鏈的希望中心分布式賬本依靠去中心的共識演算法來保持資料的高度一致性,這就無法照顧到效率,而公平與效率之間的宿命也就沒有被區塊鏈所打破,
區塊鏈是分布式賬本,但分布式賬本不一定是區塊鏈,
區塊鏈的誕生,代表著技術極客們在網路空間、虛擬社會里建立一個去中心化的自治社區的愿景,位元幣區塊鏈作為一個小范圍實驗,在過去近十年的時間里證明了分布式網路確實有不少值得借鑒的技術優勢,金融機構視圖對位元幣區塊鏈去偽存真,他們對像位元幣區塊鏈那樣的公共區塊鏈進行了一番改造,去掉了原生數字貨幣,允許多中心機構的多節點的弱控制、改進了共識演算法并加入了更強的隱私保護加密演算法,為了強調與去中心化的公共區塊鏈的區別,這個改造過的區塊鏈,被刻意命名為分布式賬本,而不再稱為區塊鏈了,
區塊鏈在工程技術層面還不夠成熟,離金融行業大面積應用還需要數年時間,
區塊鏈上一直有兩批人,在不同的方向上做著不同的事,一批人專注于挖礦、炒幣甚至發行自己的數字貨幣籌資,業界稱為“幣圈”;另一批人專注于區塊鏈技術的研發、應用,甚至從區塊鏈底層協議編程開始做起,業界俗稱“鏈圈”,區塊鏈技術目前的成熟程度已經足夠滿足“幣圈”的需求,但對于“鏈圈”而言,區塊鏈技術目前還存在不少瓶頸,妨礙了各行各業的區塊鏈+,比如現有共識演算法如果不優化,按照位元幣區塊鏈每秒七筆交易的速度,金融交易層面就無法使用區塊鏈技術;比如公共區塊鏈賬戶余額是向全網公開的,而銀行必然不能接受客戶賬戶余額向全網公開的做法,這就需要新的隱私保護演算法,而這方面的加密演算法還沒有達到生產級別的應用水平;再比如區塊鏈的可編程性是各國央行發行數字貨幣得到最大吸引力,也是金融行業對區塊鏈技術的最大期許,但TheDAO事件(北京時間2016年6月17日,黑客利用TheDAO撰寫的智能合約中的重大缺陷展開網路攻擊,造成300多萬以太幣資產被分離出TheDAO資產池的財產損失事件)提醒我們,應該有一個能對智能合約進行事先檢驗的科學方法,但這方面的最先進的技術如形式化驗證,目前還處于理論研究階段,
“代碼即法律”只是烏托邦理想,智能合約也只是幫助執行雙方約定的計算機程式而已,
一旦把雙方的約定寫入智能合約,計算機程式在技術上可以保證做到不可反悔、不可篡改以及按照約定自動執行,但代碼即法律就像網路社會完全自治一樣,基本不可能見容于現實社會,締結、編制智能合約的依據可能大部分還是要來源于現實世界的法律體制,比如產權的登記和確認;而網路世界里發生的糾紛,最終也會需要一個第三方機構來提供最后的司法仲裁和救濟,
比數字貨幣范圍更大、價值更大的數字資產,
數字資產是指在區塊鏈上登記、發行、交易的資產;它往往以數字代幣(token)的方式記錄在分布式賬本上,coin是它的貨幣單位,相較于數字貨幣,只有投身于區塊鏈的應用研究中,才能有大視野與大事業,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/265987.html
標籤:區塊鏈
上一篇:【重磅】內蒙古計劃4月底前關停所有虛擬貨幣挖礦專案,確保完成能耗目標
下一篇:最簡單的以太坊(ETH)挖礦教程

