1. 區塊鏈網路中的節點包括
區塊鏈網路中的節點包括手機、礦機和伺服器等等。
節點指的是區塊鏈網路中的計算機,由大量個人或者家庭用戶參與的區塊鏈,每個個人或者家庭都是區塊鏈的節點。
區塊鏈是由一個個小區塊組成,形成一個區塊節點的每個人互不相識,但彼此之間卻相互信任,因為他們也有一個共同的目的,就是都想獲得機制的獎勵。
2. 區塊鏈入門的教程
可是,簡單易懂的入門文章卻很少。區塊鏈到底是什麼,有何特別之處,很少有解釋。
下面,我就來嘗試,寫一篇最好懂的區塊鏈教程。畢竟它也不是很難的東西,核心概念非常簡單,幾句話就能說清楚。我希望讀完本文,你不僅可以理解區塊鏈,還會明白什麼是挖礦、為什麼挖礦越來越難等問題。
需要說明的是,我並非這方面的專家。雖然很早就關注,但是仔細地了解區塊鏈,還是從今年初開始。文中的錯誤和不準確的地方,歡迎大家指正。
一、區塊鏈的本質
區塊鏈是什麼?一句話,它是一種特殊的分布式資料庫。
首先,區塊鏈的主要作用是儲存信息。任何需要保存的信息,都可以寫入區塊鏈,也可以從裡面讀取,所以它是資料庫。
其次,任何人都可以架設伺服器,加入區塊鏈網路,成為一個節點。區塊鏈的世界裡面,沒有中心節點,每個節點都是平等的,都保存著整個資料庫。你可以向任何一個節點,寫入/讀取數據,因為所有節點最後都會同步,保證區塊鏈一致。
二、區塊鏈的最大特點
分布式資料庫並非新發明,市場上早有此類產品。但是,區塊鏈有一個革命性特點。
區塊鏈沒有管理員,它是徹底無中心的。其他的資料庫都有管理員,但是區塊鏈沒有。如果有人想對區塊鏈添加審核,也實現不了,因為它的設計目標就是防止出現居於中心地位的管理當局。
正是因為嫌敗無法管理,區塊鏈才能做到無法被控制。否則一旦大公司大集團控制了管理權,他們就會控制整個平台,其他使用者就都必須聽命於他們了。
但是,沒有了管理員,人人都可以往裡面寫入數據,怎麼才能保證數據是可信的呢?被壞人改了怎麼辦?請接著往下讀,這就是區塊鏈奇妙的地方。
三、區塊
區塊鏈由一個個區塊(block)組成。區塊很像資料庫的記錄,每次寫入數據,就是創建一個區塊。
每個區塊包含兩個部分。
區塊頭(Head):記錄當前區塊的特徵值
區塊體(Body):實際數據
區塊頭包含了當前區塊的多項特徵值。
生成時間
實際數據(即區塊體)的哈希
上一個區塊的哈希
...
這里,你需要理解什麼叫哈希(hash),這是理解區塊鏈必需的。
所謂哈希就是計算機可以對任意內容,計算出一個長度相同的特徵值。區塊鏈的 哈希長度是256位,這就是說,不管原始內容是什麼,最後都會計算出一個256位的二進制數字。而且可以保證,只要原始內容不同,對應的哈希一定是不同的。
舉例來說,字元串123的哈希是(十六進制),轉成二進制就是256位,而且只有123能得到這個哈希。(理論上,其他字元串也有可能得到這個哈希,但是概率極低,可以近似認為不可能發生。)
因此,就有兩個重要的推論。
推論1:每個區塊的哈希都是不一樣的,可以通過哈希標識區塊。
推論2:如果區塊的內容變了,它的哈希一定會改變。
四、 Hash 的不可修改性
區塊與哈希是一一對應的,每個區塊的哈希都是針對區塊頭(Head)計算的。也就是說,把區塊頭的各項特徵值,按照順序連接在一起,組成一個很長的字元串,再對這個字元串計算哈希。
Hash = SHA256( 區塊頭 )
上面就是區塊哈希的計算公式,SHA256是區塊鏈的哈希演算法。注意,這個公式裡面只包含區塊頭,不包含區塊體,也就是說,哈希由區塊頭唯一決定,
前面說過,區塊頭包含很多內容,其中有當前區塊體的哈希,還有上一個區塊的哈希。這意味著,如果當前區塊體的內容變了,或者上一個區塊的哈希變了,一定會引起當前區塊的哈希改彎首變。
這一點對區塊鏈有重大意義。如果有人修改了一個區塊,該區塊的哈希就變了。為了讓後面的區塊還能連到它(因為下一個區塊包含上一個區塊的哈希),該人必須依次修改後面所有的區塊,否則被改掉的區塊就脫離區塊鏈了。由於後面要提到的原因,哈希的計算很耗時,短時間內修改多個區塊幾乎不可能發生,除非有人掌握了全網51%以上的計算能力。
正是通過這種聯動機制,區塊鏈保證了自身的可靠性,數據一旦寫入,就無法被篡改。這就像歷史一樣,發生了就是發生了,從此再無法改變。
每個區塊都連著上一個區塊,這也是區塊鏈這個名字的由來。
五、采礦
由於必須保證節點之間的同步,所以新區塊的添加速度芹鬧顫不能太快。試想一下,你剛剛同步了一個區塊,准備基於它生成下一個區塊,但這時別的節點又有新區塊生成,你不得不放棄做了一半的計算,再次去同步。因為每個區塊的後面,只能跟著一個區塊,你永遠只能在最新區塊的後面,生成下一個區塊。所以,你別無選擇,一聽到信號,就必須立刻同步。
所以,區塊鏈的發明者中本聰(這是假名,真實身份至今未知)故意讓添加新區塊,變得很困難。他的設計是,平均每10分鍾,全網才能生成一個新區塊,一小時也就六個。
這種產出速度不是通過命令達成的,而是故意設置了海量的計算。也就是說,只有通過極其大量的計算,才能得到當前區塊的有效哈希,從而把新區塊添加到區塊鏈。由於計算量太大,所以快不起來。
這個過程就叫做采礦(mining),因為計算有效哈希的難度,好比在全世界的沙子裡面,找到一粒符合條件的沙子。計算哈希的機器就叫做礦機,操作礦機的人就叫做礦工。
六、難度系數
讀到這里,你可能會有一個疑問,人們都說采礦很難,可是采礦不就是用計算機算出一個哈希嗎,這正是計算機的強項啊,怎麼會變得很難,遲遲算不出來呢?
原來不是任意一個哈希都可以,只有滿足條件的哈希才會被區塊鏈接受。這個條件特別苛刻,使得絕大部分哈希都不滿足要求,必須重算。
原來,區塊頭包含一個難度系數(difficulty),這個值決定了計算哈希的難度。舉例來說,第100000個區塊的難度系數是 14484.16236122。
區塊鏈協議規定,使用一個常量除以難度系數,可以得到目標值(target)。顯然,難度系數越大,目標值就越小。
哈希的有效性跟目標值密切相關,只有小於目標值的哈希才是有效的,否則哈希無效,必須重算。由於目標值非常小,哈希小於該值的機會極其渺茫,可能計算10億次,才算中一次。這就是采礦如此之慢的根本原因。
前面說過,當前區塊的哈希由區塊頭唯一決定。如果要對同一個區塊反復計算哈希,就意味著,區塊頭必須不停地變化,否則不可能算出不一樣的哈希。區塊頭裡面所有的特徵值都是固定的,為了讓區塊頭產生變化,中本聰故意增加了一個隨機項,叫做 Nonce。
Nonce 是一個隨機值,礦工的作用其實就是猜出 Nonce 的值,使得區塊頭的哈希可以小於目標值,從而能夠寫入區塊鏈。Nonce 是非常難猜的,目前只能通過窮舉法一個個試錯。根據協議,Nonce 是一個32位的二進制值,即最大可以到21.47億。第 100000 個區塊的 Nonce 值是274148111,可以理解成,礦工從0開始,一直計算了 2.74 億次,才得到了一個有效的 Nonce 值,使得算出的哈希能夠滿足條件。
運氣好的話,也許一會就找到了 Nonce。運氣不好的話,可能算完了21.47億次,都沒有發現 Nonce,即當前區塊體不可能算出滿足條件的哈希。這時,協議允許礦工改變區塊體,開始新的計算。
七、難度系數的動態調節
正如上一節所說,采礦具有隨機性,沒法保證正好十分鍾產出一個區塊,有時一分鍾就算出來了,有時幾個小時可能也沒結果。總體來看,隨著硬體設備的提升,以及礦機的數量增長,計算速度一定會越來越快。
為了將產出速率恆定在十分鍾,中本聰還設計了難度系數的動態調節機制。他規定,難度系數每兩周(2016個區塊)調整一次。如果這兩周裡面,區塊的平均生成速度是9分鍾,就意味著比法定速度快了10%,因此接下來的難度系數就要調高10%;如果平均生成速度是11分鍾,就意味著比法定速度慢了10%,因此接下來的難度系數就要調低10%。
難度系數越調越高(目標值越來越小),導致了采礦越來越難。
八、區塊鏈的分叉
即使區塊鏈是可靠的,現在還有一個問題沒有解決:如果兩個人同時向區塊鏈寫入數據,也就是說,同時有兩個區塊加入,因為它們都連著前一個區塊,就形成了分叉。這時應該採納哪一個區塊呢?
現在的規則是,新節點總是採用最長的那條區塊鏈。如果區塊鏈有分叉,將看哪個分支在分叉點後面,先達到6個新區塊(稱為六次確認)。按照10分鍾一個區塊計算,一小時就可以確認。
由於新區塊的生成速度由計算能力決定,所以這條規則就是說,擁有大多數計算能力的那條分支,就是正宗的區塊鏈。
九、總結
區塊鏈作為無人管理的分布式資料庫,從2009年開始已經運行了8年,沒有出現大的問題。這證明它是可行的。
但是,為了保證數據的可靠性,區塊鏈也有自己的代價。一是效率,數據寫入區塊鏈,最少要等待十分鍾,所有節點都同步數據,則需要更多的時間;二是能耗,區塊的生成需要礦工進行無數無意義的計算,這是非常耗費能源的。
因此,區塊鏈的適用場景,其實非常有限。
不存在所有成員都信任的管理當局
寫入的數據不要求實時使用
挖礦的收益能夠彌補本身的成本
如果無法滿足上述的條件,那麼傳統的資料庫是更好的解決方案。
目前,區塊鏈最大的應用場景(可能也是唯一的應用場景),就是以比特幣為代表的加密貨幣。
3. 一文看懂互聯網區塊鏈
一文看懂互聯網區塊鏈
一文看懂互聯網區塊鏈,要了解區塊鏈,就不得不從互聯網的誕生開始研究區塊鏈的技術發展簡史,從中發掘區塊鏈產生的動因,並由此推斷區塊鏈的未來。下面讓我們一文看懂互聯網區塊鏈。
區塊鏈的鼻祖就是麻將,最早的區塊鏈是中國人發明的!區塊鏈就跟麻將一樣,只不過麻將的區塊比較少而已,麻將只有136個區塊,各地麻將規則不同可視作為比特幣的硬分叉。
麻將作為最古老的區塊鏈項目,四個礦工一組,最先挖出13位正確哈希值的獲得記賬權以及獎勵,採用願賭服輸且不能作弊出老千的共識機制!
麻將去中心化,每個人都可以是庄,完全就是點對點。
礦池=棋牌室的老闆抽佣。
不可篡改,因為說服其他三個人需要消耗太多算力和體力。
典型的價值互聯網。我兜里的價值用不了八圈,就跑到他們兜里去了。
中國人基本上人手打得一手好麻將,區塊鏈方面生產了全球70%~80%的礦機,並擁有全世界最多的算力,約佔77%的算力
麻將其實是最早的的區塊鏈項目:
1,四個礦工一組,先碰撞出13個數字正確哈希值的礦工可以獲得記賬權並得到獎勵。
2,不可篡改。因為說服其他三個人需要消耗太多算力和體力。
3,典型的價值互聯網。我兜里的價值數字貨幣www.gendan5.com/digitalcurrency/btc.html用不了八圈,就跑到他們兜里去了。
4、去中心化,每個人都可以是庄,完全就是點對點。
5、UTXO,未花費的交易支出。
還有另外一種賒賬的區塊鏈玩法,假設大家身上都沒現金
細究一下,在大家達成共識時,我們看不到任何中介或者第三方出來評判丙贏了,大家給丙的獎勵也不需要通過第三方轉交給丙,都是直接點對點交易,這一過程就是去中心化,牌友們(礦工)各自記錄了第一局的戰績,丙大胡自摸十三幺,乙杠了甲東風,記錄完成後就生成了一個完整的區塊,但要記住,這才只是第一局,在整個區塊鏈上,這才僅僅是一個節點,開頭說的8局打完,也就是8個節點(區塊),8個區塊連接在一起就形成了一個完整賬本,這就是區塊鏈。因為這個賬本每人都有一個,所以就是分布式賬本,目的就是為了防止有人篡改記錄,打到最後,誰輸誰贏一目瞭然。
4個男士(甲乙丙丁)湊在一塊打麻將來錢,大家都沒帶現金,於是請一美女(中心化)用本子記賬,記錄每一局誰贏了多少錢、誰輸了多少錢?最後結束時,大家用支付寶或微信支付結總賬,但是如果這位美女記賬時記錯了或者預先被4人中的某人買通了故意記錯,就保證不了這個游戲結果的公正公平合理性,你說是不是?那怎麼辦呢?如果你「打麻將」能用「區塊鏈」作為游戲規則改編為如下:
4個男士(甲乙丙丁)湊在一塊打麻將來錢,大家都沒帶現金,乙說讓她帶來的美女記賬,甲說這位美女我們都不認識,於是甲乙丙丁4人一致約定每個人每局牌都在自己的手機上(區塊鏈節點)同時記賬(去中心化),最後打完麻將,直接手機上以電子貨幣結賬時,大家都對一下記賬的的結果,本來應該是一樣的記賬結果。
假設本來結果是甲手機上記的賬:乙欠甲10元。但乙手機上的記錄卻是不欠,可是其餘2人(丙、丁)和甲的記賬一樣,那還是按照少數服從多數規則結算,另外大家心裡對乙的誠信印象就差評了,下次打麻將就不會帶乙一起玩了。
除非乙預先買通(丙、丁)2人讓其故意作假,但乙買通他們2人的代價是10萬元(賴賬10元的1萬倍),那常理上乙只能選擇放棄,因為做假成本太高了。
假設即使乙在打牌的過程中,偷偷願意以高價10萬元預先買通丙、丁做這筆巨虧的傻貓交易,但區塊鏈的規則是按時間戳記賬的,原來是下午1點鍾記賬乙欠甲10元的,即丙和丁下午3點鍾再改賬時,時間是不可逆的,只能記下午3點鍾,那就又不吻合游戲規則了。
實際上在2017年博主已經開發出了一套麻將幣
中國最早的區塊鏈項目:四個礦工一組,最先從 148 個隨機數字中碰撞出 14 個數字正確哈希值的礦工,可以獲得一次記賬權激勵,由於分布式記賬需要得到其他幾位礦工的共識,因此每次記賬交易時間長約十幾分鍾。
一、比特幣誕生之前,5個對區塊鏈未來有重大影響的互聯網技術
1969年,互聯網在美國誕生,此後互聯網從美國的四所研究機構擴展到整個地球。在應用上從最早的軍事和科研,擴展到人類生活的方方面面,在互聯網誕生後的近50年中,有5項技術對區塊鏈的未來發展有特別重大的意義。
1、1974誕生的TCP/IP協議:決定了區塊鏈在互聯網技術生態的位置
1974年,互聯網發展邁出了最為關鍵的一步,就是由美國科學家文頓瑟夫和羅伯特卡恩共同開發的互聯網核心通信技術--TCP/IP協議正式出台。
這個協議實現了在不同計算機,甚至不同類型的網路間傳送信息。所有連接在網路上的計算機,只要遵照這個協議,都能夠進行通訊和交互。
通俗的說,互聯網的數據能穿過幾萬公里,到達需要的計算機用戶手裡,主要是互聯網世界形成了統一的信息傳播機制。也就是互聯網設備傳播信息時遵循了一個統一的法律-TCP/IP協議。
理解TCP/IP協議對掌握互聯網和區塊鏈有非常重要的意義,在1974年TCP/IP發明之後,整個互聯網在底層的硬體設備之間,中間的網路協議和網路地址之間一直比較穩定,但在頂層應用層不斷涌現層出不窮的創新應用,這包括新聞,電子商務,社交網路,QQ,微信,也包括區塊鏈技術。
也就是說區塊鏈在互聯網的技術生態中,是互聯網頂層-應用層的一種新技術,它的出現,運行和發展沒有影響到互聯網底層的基礎設施和通訊協議,依然是按TCP/IP協議運轉的眾多軟體技術之一。
2、1984年誕生的思科路由器技術:是區塊鏈技術的模仿對象
1984年12月,思科公司在美國成立,創始人是斯坦福大學的一對夫婦,計算機中心主任萊昂納德·波薩克和商學院的計算機中心主任桑蒂·勒納,他們設計了叫做「多協議路由器」的聯網設備,放到互聯網的通訊線路中,幫助數據准確快速從互聯網的一端到達幾千公里的另一端。
整個互聯網硬體層中,有幾千萬台路由器工作繁忙工作,指揮互聯網信息的傳遞,思科路由器的一個重要功能就是每台路由都保存完成的互聯網設備地址表,一旦發生變化,會同步到其他幾千萬台路由器上(理論上),確保每台路由器都能計算最短最快的路徑。
大家看到路由器的運轉過程,會感到非常眼熟,那就是區塊鏈後來的重要特徵,理解路由器的意義在於,區塊鏈的重要特徵,在1984年的路由器上已經實現,對於路由器來說,即使有節點設備損壞或者被黑客攻擊,也不會影響整個互聯網信息的傳送。
3、隨萬維網誕生的B/S(C/S)架構:區塊鏈的對手和企圖顛覆的對象
萬維網簡稱為Web,分為Web客戶端和伺服器。所有更新的信息只在Web伺服器上修改,其他幾千,上萬,甚至幾千萬的客戶端計算機不保留信息,只有在訪問伺服器時才獲得信息的數據,這種結構也常被成為互聯網的B/S架構,也就是中心型架構。這個架構也是目前互聯網最主要的架構,包括谷歌、Facebook、騰訊、阿里巴巴、亞馬遜等互聯網巨頭都採用了這個架構。
理解B/S架構,對與後續理解區塊鏈技術將有重要的意義,B/S架構是數據只存放在中心伺服器里,其他所有計算機從伺服器中獲取信息。區塊鏈技術是幾千萬台計算機沒有中心,所有數據會同步到全部的計算機里,這就是區塊鏈技術的核心,
4、對等網路(P2P):區塊鏈的父親和技術基礎
對等網路P2P是與C/S(B/S)對應的另一種互聯網的基礎架構,它的特徵是彼此連接的多台計算機之間都處於對等的地位,無主從之分,一台計算機既可作為伺服器,設定共享資源供網路中其他計算機所使用,又可以作為工作站。
Napster是最早出現的P2P系統之一,主要用於音樂資源分享,Napster還不能算作真正的對等網路系統。2000 年3月14 日,美國地下黑客站點Slashdot郵寄列表中發表一個消息,說AOL的Nullsoft 部門已經發放一個開放源碼的Napster的克隆軟體Gnutella。
在Gnutella分布式對等網路模型中,每一個聯網計算機在功能上都是對等的,既是客戶機同時又是伺服器,所以Gnutella被稱為第一個真正的對等網路架構。
20年裡,互聯網的一些科技巨頭如微軟,IBM,也包括自由份子,黑客,甚至侵犯知識產權的犯罪分子不斷推動對等網路的發展,當然互聯網那些希望加強信息共享的理想主義者也投入了很大的熱情到對等網路中。區塊鏈就是一種對等網路架構的軟體應用。它是對等網路試圖從過去的沉默爆發的標桿性應用。
5、哈希演算法:產生比特幣和代幣(通證)的關鍵
哈希演算法將任意長度的數字用哈希函數轉變成固定長度數值的演算法,著名的哈希函數如:MD4、MD5、SHS等。它是美國國家標准暨技術學會定義的加密函數族中的一員。
這族演算法對整個世界的運作至關重要。從互聯網應用商店、郵件、殺毒軟體、到瀏覽器等、,所有這些都在使用安全哈希演算法,它能判斷互聯網用戶是否下載了想要的東西,也能判斷互聯網用戶是否是中間人攻擊或網路釣魚攻擊的受害者。
區塊鏈及其應用比特幣或其他虛擬幣產生新幣的過程,就是用哈希演算法的函數進行運算,獲得符合格式要求的數字,然後區塊鏈程序給予比特幣的獎勵。
包括比特幣和代幣的挖礦,其實就是一個用哈希演算法構建的小數學游戲。不過因為有了激烈的競爭,世界各地的人們動用了強大的伺服器進行計算,以搶先獲得獎勵。結果導致互聯網眾多計算機參與到這個小數學游戲中,甚至會耗費了某些國家超過40%的電量。
二、區塊鏈的誕生與技術核心
區塊鏈的誕生應該是人類科學史上最為異常和神秘的發明和技術,因為除了區塊鏈,到目前為止,現代科學史上還沒有一項重大發明找不到發明人是誰。
2008年10月31號,比特幣創始人中本聰(化名)在密碼學郵件組發表了一篇論文——《比特幣:一種點對點的電子現金系統》。在這篇論文中,作者聲稱發明了一套新的不受政府或機構控制的電子貨幣系統,區塊鏈技術是支持比特幣運行的基礎。
論文預印本地址在http://www.bitcoin.org/bitcoin.pdf,從學術角度看,這篇論文遠不能算是合格的論文,文章的主體是由8個流程圖和對應的解釋文字構成的, 沒有定義名詞、術語,論文格式也很不規范。
2009年1月,中本聰在SourceForge網站發布了區塊鏈的應用案例-比特幣系統的開源軟體,開源軟體發布後, 據說中本聰大約挖了100萬個比特幣.一周後,中本聰發送了10個比特幣給密碼學專家哈爾·芬尼,這也成為比特幣史上的第一筆交易。伴隨著比特幣的蓬勃發展,有關區塊鏈技術的研究也開始呈現出井噴式增長。
向大眾完整清晰的解釋區塊鏈的確是困難的事情,我們以比特幣為對象,盡量簡單但不斷深入的介紹區塊鏈的技術特徵。
1、區塊鏈是一種對等網路(P2P)的軟體應用
我們在前文提過,在21世紀初,互聯網形成了兩大類型的應用架構,中心化的B/S架構和無中心的對等網路(P2P)架構,阿里巴巴,新浪,亞馬遜,網路等等很多互聯網巨頭都是中心化的B/S架構,簡單的說,就是數據放在巨型伺服器中,我們普通用戶通過手機,個人電腦訪問阿里,新浪等網站的伺服器。
21世紀初以來,出現了很多自由分享音樂,視頻,論文資料的軟體應用,他們大部分採用的是對等網路(P2P)架構,就是沒有中心伺服器,大家的個人計算機都是伺服器,也都是客戶機,身份平等。但這類應用一直沒有流行起來,主要原因是資源消耗大,知識版權有問題等。區塊鏈就是這種領域的一種軟體應用。
2、區塊鏈是一種全網信息同步的對等網路(P2P)軟體應用
對等網路也有很多應用方式,很多時候,並不要求每台計算機都保持信息一致,大家只存儲自己需要的的信息,需要時再到別的計算機去下載。
但是區塊鏈為了支持比特幣的金融交易,就要求發生的每一筆交易都要寫入到歷史交易記錄中,並向所有安裝比特幣程序的計算機發送變動信息。每一台安裝了比特幣軟體的計算機都保持最新和全部的.比特幣歷史交易信息。
區塊鏈的這個全網同步,全網備份的特徵也就是常說的區塊鏈信息安全,不可更改來源。雖然在實際上依然不是絕對的安全,但當用戶量非常大時,的確在防範信息篡改上有一定安全優勢。
3、區塊鏈是一種利用哈希演算法產生」通證(代幣)」的全網信息同步的對等網路(P2P)軟體應用
區塊鏈的第一個應用是著名的比特幣,討論到比特幣時,經常會提到的一個名詞就是「挖礦」,那麼挖礦到底是什麼呢?
形象的比喻是,區塊鏈程序給礦工(游戲者)256個硬幣,編號分別為1,2,3……256,每進行一次Hash運算,就像拋一次硬幣,256枚硬幣同時拋出,落地後如果正巧編號前70的所有硬幣全部正面向上。礦工就可以把這個數字告訴區塊鏈程序,區塊鏈會獎勵50個比特幣給礦工。
從軟體程序的角度說,比特幣的挖礦就是用哈希SHA256函數構建的數學小游戲。區塊鏈在這個小游戲中首先規定了一種獲獎模式:給出一個256位的哈希數,但這個哈希數的後70位全部是0,然後游戲者(礦工)不斷輸入各種數字給哈希SHA256函數,看用這個函數能不能獲得位數有70個0的數字,找到一個,區塊鏈程序會獎勵50個比特幣給游戲者。實際的挖坑和獎勵要更復雜,但上面的舉例表達了挖礦和獲得比特幣的核心過程。
2009年比特幣誕生的時候,每筆賞金是50個比特幣。誕生10分鍾後,第一批50個比特幣生成了,而此時的貨幣總量就是50。隨後比特幣就以約每10分鍾50個的速度增長。當總量達到1050萬時(2100萬的50%),賞金減半為25個。當總量達到1575萬(新產出525萬,即1050的50%)時,賞金再減半為12.5個。根據比特幣程序的設計,比特幣總額是2100萬。
從上述介紹看,比特幣可以看做一個基於對等網路架構的猜數小游戲,每次正確的猜數結果獎勵的比特幣信息會傳遞給所有游戲者,並記錄到每個游戲者的歷史資料庫中。
4、區塊鏈技術因比特幣的興起產生的智能合約,通證、ICO與區塊鏈基礎平台
從上面的介紹看,比特幣的技術並不是從天上掉下來的新技術,而是把原來多種互聯網技術,如對等網路架構,路由的全網同步,網路安全的加密技術巧妙的組合在一起,算是一種組合創新的演算法游戲。
由於比特幣通過運作成為可以兌換法幣,購買實物,通過升值獲得暴利,全世界都不淡定了。抱著你能做,我也能做的態度,很多人創造了自己的仿比特幣軟體應用。同時利用政府難以監管對等網路的特點,各種山寨幣與比特幣一起爆發。這其中出現了很多欺詐和潛逃事件,逐步引起各國政府的關注。
區塊鏈基礎平台:用區塊鏈技術框架創建貨幣還是有相當的技術難度,這時區塊鏈基礎平台以太坊等基礎技術平台出現了,讓普通人也可以方便的創建類「比特幣」軟體程序,各顯神通,請人入局挖幣,炒幣,從中獲得利益。
通證或代幣:各家「比特幣」、「山寨幣」如果用哈希演算法創建的猜數小游戲,產生自己的「貨幣」時,這個「貨幣」統稱「通證」或「代幣」。
ICO:由於比特幣和以太幣已經打通與各國法幣的兌換,其他新虛擬幣發幣時,只允許用比特幣和以太幣購買發行的新幣,這樣的發幣過程就叫ICO,ICO的出現放大了比特幣,以太幣的交易量。同時很多ICO項目完全建立在虛無的項目上,導致大量欺詐案例頻發。進一步加深了社會對區塊鏈生成虛擬貨幣的負面認識。
智能合約:可以看做區塊鏈上的一種軟體功能,是輔助區塊鏈上各種虛擬幣交易的程序,具體的功能就像淘寶上支付寶的資金託管一樣,當一方用戶收到的貨物,在支付寶上進行確認後,資金自動支付個給買家貨主,智能合約在比特幣等區塊鏈應用上也是承擔了這個中介支付功能。
三、區塊鏈技術在互聯網中的歷史地位和未來前景
1、區塊鏈處於互聯網技術的什麼位置?是頂層的一種新軟體和架構。
我們在前面的TCP/IP介紹中提到,區塊鏈與瀏覽器、QQ、微信、網路游戲軟體、手機APP等一樣,是互聯網頂層-應用層的一種軟體形式。它的運行依然要靠TCP/IP的架構體系傳輸數據。只是與大部分應用層軟體不同,沒有採用C/S(B/S)的中心軟體架構。而是採用了不常見的對等網路架構,從這一點說,區塊鏈並不能顛覆互聯網基礎結構。
2、區塊鏈想要顛覆誰?想顛覆萬維網的B/S(C/S)結構。
它試圖要顛覆其實是89年年誕生的萬維網B/S,C/S結構。前面說過。由於89年年歐洲物理學家蒂姆· 伯納斯· 李發明萬維網並放棄申請專利。此後近30年中,包括谷歌,亞馬遜,facebook,阿里巴巴,網路,騰訊等公司利用萬維網B/S(C/S)結構,成長為互聯網的巨頭。
在他們的總部,建立了功能強大的中心伺服器集群,存放海量數據,上億用戶從巨頭伺服器中獲取自己需要的數據,這樣也導致後來雲計算的出現,而後互聯網巨頭把自己沒有用完的中心伺服器資源開放出來,進一步吸取企業,政府,個人的數據。中心化的互聯網巨頭對世界,國家,互聯網用戶影響力越來越大。
區塊鏈的目標是通過把數據分散到每個互聯網用戶的計算機上,試圖降低互聯網巨頭的影響力,由此可見區塊鏈真正的對手和想要顛覆的是1990年誕生的B/S(C/S)結構。但能不能顛覆掉,就要看它的技術優勢和瓶頸。
3、區塊鏈的技術缺陷:追求徹底平等自由帶來的困境
區塊鏈的技術缺陷首先來自與它的對等網路架構上,舉個例子,目前淘寶是B/S結構,海量的數據存放在淘寶伺服器集群機房裡,幾億消費者通過瀏覽器到淘寶伺服器網站獲取最新信息和歷史信息。
如果用區塊鏈技術,就是讓幾億人的個人電腦或手機上都保留一份完整的淘寶資料庫,每發生一筆交易,就同步給其他幾億用戶。這在現實中是完全無法實現的。傳輸和存儲的數據量太大。相當於同時建立幾億個淘寶網站運行。
因此區塊鏈無法應用在數據量大的項目上,甚至小一點的網站項目用區塊鏈也會吃力。到2018年,比特幣運行了近10年,積累的交易數據已經讓整個系統面臨崩潰。
於是區塊鏈採用了很多變通方式,如建立中繼節點和閃電節點,這兩個概念同樣會讓人一頭霧水,通俗的說,就是區塊鏈會向它要顛覆的對象B/S結構進行了學習,建立數據伺服器中心成為區塊鏈的中繼節點,也用類瀏覽器的終端訪問,這就是區塊鏈的閃電節點。
這種變動能夠緩解區塊鏈的技術缺陷,但確讓區塊鏈變成它反對的樣子,中心化。由此可見,單純的區塊鏈技術由於技術特徵有重大缺陷,無法像萬維網一樣應用廣泛,如果技術升級,部分採用B/S(C/S)結構,又會使得區塊鏈有了中心化的信息節點,不在保持它誕生時的夢想。
4、從互聯網大腦模型看區塊鏈的未來前景
我們知道互聯網一般是指將世界范圍計算機網路互相聯接在一起的網際網路,在這基礎上發展出覆蓋全世界的全球性互聯網路稱互聯網,即是互相連接一起的網路結構。
從1969年互聯網誕生以來,人類從不同的方向在互聯網領域進行創新,並沒有統一的規劃將互聯網建造成什麼結構,當時間的車輪到達2017年,隨著人工智慧,物聯網,大數據,雲計算,機器人,虛擬現實,工業互聯網等科學技術的蓬勃發展,當人類抬起頭來觀看自己的創造的巨系統,互聯網大腦的模型和架構已經越來越清晰。
通過近20年的發展依託萬維網的B/S,C/S結構,騰訊QQ,微信,Facebook,微博、twitter亞馬遜已經發展出類神經元網路的結構。互聯網設備特別是個人計算機,手機在通過設備上的軟體在巨頭的中心伺服器上映射出個人數據和功能空間,相互加好友交流,傳遞信息。互聯網巨頭通過中心伺服器集群的軟體升級,不斷優化數億台終端的軟體版本。在神經學的體系中,這是一種標準的中樞神經結構。
區塊鏈的誕生提供了另外一種神經元模式,不在巨頭的集中服務中統一管理神經元,而是每台終端,包括個人計算機和個人手機成為獨立的神經元節點,保留獨立的數據空間,相互信息進行同步,在神經學的體系中,這是一種沒有中心,多神經節點的分布式神經結構。
有趣的是,神經系統的發育出現過這兩種不同類型的神經結構。在低等生物中,出現過類區塊鏈的神經結構,有多個功能相同的神經節,都可以指揮身體活動和反應,但隨著生物的進化,這些神經節逐步合並,當進化成為高等生物時,中樞神經出現了,中樞神經中包含大量神經元進行交互。
四、關於區塊鏈在互聯網未來地位的判斷
1、對比特幣的認知:一個基於對等網路架構(P2P)的猜數小游戲,通過高明的金融和輿論運作,成為不受政府監管的」世界性貨幣」。
2、對區塊鏈的認知:一個利用哈希演算法產生」通證(代幣)」的全網信息同步的對等網路(P2P)軟體應用。
3、區塊鏈有特定的用途,如大規模選舉投票,大規模賭博,規避政府金融監管的金融交易等等領域,還是有不可替代的用處。
4、在更多時候,區塊鏈技術會依附於互聯網的B/S,C/S結構,實現功能的擴展,但總體依然屬於互聯網已有技術的補充。對於區塊鏈目前設想的絕大部分應用場景,都是可以用B/S,C/S結構實現,效率可以更高和技術也可以更為成熟。
5、無論是從信息傳遞效率和資源消耗,還是從神經系統進化看,區塊鏈無法成為互聯網的主流架構,更不能成為未來互聯網的顛覆者和革命者。
6、當然B/S,C/S結構發展出來的互聯網巨頭也有其問題,但這些將來可以通過商業的方式,政治的方式逐漸解決。
4. 區塊鏈分類有哪些區塊鏈組成結構是什麼
區塊鏈的概念最近一段時間可謂是相當火爆,它來自於比特幣等加密貨幣的實現,但是目前這項技術已經逐步運用在各個領域。那麼大家是否知道區塊鏈分類有哪些?區塊鏈組成結構是什麼?下面大家就跟隨我們一起來了解下吧。
區塊鏈分類有哪些?
1、公有區塊鏈(PublicBlockChains)
公有區塊鏈是指:世界上任何個體或者團體都可以發送交易,且交易能夠獲得該區塊鏈的有效確認,任何人都可以參與其共識過程。公有區塊鏈是最早的區塊鏈逗知,也是目前應用最廣泛的區塊鏈,各大bitcoins系列的虛擬數字貨幣均基於公有區塊鏈,世界上有且僅有一條該幣種對應的區塊鏈。
2、聯合(行業)區塊鏈(ConsortiumBlockChains)
行業區塊鏈:由某個群體內部指定多個預選的節點為記賬人,每個塊的生成由所有的預選節點共同決定(預選節點參與共識過程),其他接入節點可以參與交易,但不過問記賬過程(本質上還是託管記賬,只是變成分布式記賬,預選節悶渣點的多少,如何決定每個塊的記賬者成為該區塊鏈的主要風險點),其他任何人可以通過該區塊鏈開放的API進行限定查詢。
3、私有區塊鏈(privateBlockChains)
私有區塊鏈:僅僅使用區塊鏈的總賬技術進行記賬,可以是一個公司,也可以是個人,獨享該區塊鏈的寫入許可權,本鏈與其他的分布式存儲方案沒有太大區別。目前(Dec2015)保守的巨頭(傳統金融)都是想實驗嘗試私有區塊鏈,而公鏈的應用例如bitcoin已經工業化,私鏈的應用產品還在摸索當中。
4、側鏈(Sidechain)
側鏈是用於確認來自於其它區塊鏈的數據的區塊鏈,通過雙向掛鉤(TwoWayPeg)機制使比特幣、Ripple幣等多種資產在不同區塊鏈上以山罩消一定的匯率實現轉移。
區塊鏈組成結構是什麼?
1、基礎網路層:基礎網路層由數據層、網路層組成,其中數據層包括了底層數據區塊以及相關的數據加密和時間戳等技術;網路層則包括分布式組網機制、數據傳播機制和數據驗證機制等。
2、中間協議層:中間協議層由共識層、激勵層、合約層組成,其中共識層主要包括網路節點的各類共識演算法;激勵層將經濟因素集成到區塊鏈技術體系中來,主要包括經濟激勵的發行機制和分配機制等;合約層主要包括各類腳本、演算法和智能合約,是區塊鏈可編程特性的基礎。
3、擴展層:這個層面類似於電腦的驅動程序,是為了讓區塊鏈產品更加實用。目前有兩類,一是各類交易市場,是法幣兌換加密貨幣的重要渠道,實現簡單,來錢快,成本低,但風險也大。二是針對某個方向的擴展實現,比如基於億書側鏈,可為第三方出版機構、論壇網站等內容生產商提供定製服務等。
4、應用服務層:應用服務層作為區塊鏈產業鏈中最重要的環節,則包括區塊鏈的各種應用場景和案例,包括可編程貨幣、可編程金融和可編程社會。
以上就是小編為您帶來的區塊鏈分類有哪些?區塊鏈組成結構是什麼?的全部內容。
5. 區塊鏈技術概念
區塊鏈技術概念
區塊鏈技術概念,現如今,區塊鏈已經成為大部分人關注的領域,很多企業也早已深入其中研究該技術情況,但是還有人對於它不是很了解,下面我分享一篇關於區塊鏈技術概念的相關信息。
區塊鏈的基本概念和工作原理
1、基本概念
區塊鏈是分布式數據存儲、點對點傳輸、共識機制、加密演算法等計算機技術的新型應用模式。所謂共識機制是區塊鏈系統中實現不同節點之間建立信任、獲取權益的數學演算法。
區塊鏈Blockchain、是比特幣的一個重要概念,它本質上是一個去中心化的資料庫,同時作為比特幣的底層技術。區塊鏈是一串使用密碼學方法相關聯產生的數據塊,每一個數據塊中包含了一次比特幣網路交易的信息,用於驗證其信息的有效性防偽、和生成下一個區塊。
狹義來講,區塊鏈是一種按照時間順序將數據區塊以順序相連的方式組合成的一種鏈式數據結構, 並以密碼學方式保證的不可篡改和不可偽造的分布式賬本。
廣義來講,區塊鏈技術是利用塊鏈式數據結構來驗證與存儲數據、利用分布式節點共識演算法來生成和更新數據、利用密碼學的方式保證數據傳輸和訪問的安全、利用由自動化腳本代碼組成的智能合約來編程和操作數據的一種全新的分布式基礎架構與計算方式。
2、工作原理
區塊鏈系統由數據層、網路層、共識層、激勵層、合約層和應用層組成。 其中,數據層封裝了底層數據區塊以及相關的數據加密和時間戳等基礎數據和基本演算法;網路層則包括分布式組網機制、數據傳播機制和數據驗證機制等;共識層主要封裝網路節點的各類共識演算法;激勵層將經濟因素集成到區塊鏈技術體系中來,主要包括經濟激勵的發行機制和分配機制等;合約層主要封裝各類腳本、演算法和智能合約,是區塊鏈可編程特性的基礎;應用層則封裝了區塊鏈的各種應用場景和案例。該模型中,基於時間戳的鏈式區塊結構、分布式節點的共識機制、基於共識算力的經濟激勵和靈活可編程的智能合約是區塊鏈技術最具代表性的創新點。
區塊鏈主要解決的交易的信任和安全問題,因此它針對這個問題提出了四個技術創新:
1、分布式賬本,就是交易記賬由分布在不同地方的多個節點共同完成,而且每一個節點都記錄的是完整的賬目,因此它們都可以參與監督交易合法性,同時也可以共同為其作證。
跟傳統的分布式存儲有所不同,區塊鏈的分布式存儲的獨特性主要體現在兩個方面:一是區塊鏈每個節點都按照塊鏈式結構存儲完整的數據,傳統分布式存儲一般是將數據按照一定的規則分成多份進行存儲。二是區塊鏈每個節點存儲都是獨立的、地位等同的,依靠共識機制保證存儲的一致性,而傳統分布式存儲一般是通過中心節點往其他備份節點同步數據。 [8]
沒有任何一個節點可以單獨記錄賬本數據,從而避免了單一記賬人被控制或者被賄賂而記假賬的可能性。也由於記賬節點足夠多,理論上講除非所有的節點被破壞,否則賬目就不會丟失,從而保證了賬目數據的安全性。
2、非對稱加密和授權技術,存儲在區塊鏈上的交易信息是公開的,但是賬戶身份信息是高度加密的,只有在數據擁有者授權的情況下才能訪問到,從而保證了數據的安全和個人的隱私。
3、共識機制,就是所有記賬節點之間怎麼達成共識,去認定一個記錄的有效性,這既是認定的手段,也是防止篡改的手段。區塊鏈提出了四種不同的共識機制,適用於不同的應用場景,在效率和安全性之間取得平衡。
區塊鏈的共識機制具備「少數服從多數」以及「人人平等」的特點,其中「少數服從多數」並不完全指節點個數,也可以是計算能力、股權數或者其他的計算機可以比較的特徵量。「人人平等」是當節點滿足條件時,所有節點都有權優先提出共識結果、直接被其他節點認同後並最後有可能成為最終共識結果。以比特幣為例,採用的是工作量證明,只有在控制了全網超過51%的記賬節點的情況下,才有可能偽造出一條不存在的記錄。當加入區塊鏈的節點足夠多的時候,這基本上不可能,從而杜絕了造假的可能.
4、智能合約,智能合約是基於這些可信的不可篡改的數據,可以自動化的執行一些預先定義好的規則和條款。以保險為例,如果說每個人的信息包括醫療信息和風險發生的信息、都是真實可信的,那就很容易的在一些標准化的保險產品中,去進行自動化的理賠.
3、其它
互聯網交換的是信息,區塊鏈交換的是價值。人類歷史和互聯網歷史可以用八個字理解:分久必合合久必分,到了分久必合的時代,網路信息全部散在互聯網上面,大家要挖掘信息非常不容易,這時會出現像谷歌和臉 書等的平台,它做的唯一的事情就是把我們所有的信息重新組合了一下。互聯網時代壟斷巨頭們重組的就是信息,並不是產生自己的信息,產生的信息完全是我們個人。一旦信息重組,就會出現一個新的壟斷巨人,所以就到了分久必合的時代。現在由於區塊鏈技術產生又到了合久必分時代,又是新的多中心化,新的多中心化之後賦能產生新的價值,這些數據會在我們自己的手上,個人數據產生價值是歸自己所有,這是這個時代最最激動人心的時代。
區塊鏈的價值有哪些?低成本建立信任的機制,確立數權,解決數據的.產權。
目前區塊鏈技術不斷發展,包括現在的單鏈向多鏈發展,而且技術能夠在進一步擴展,我想未來還是可能會出現,特別是在交易等方面出現顛覆性的,特別是對現有產業的很多顛覆性的場景。
區塊鏈的本質是在不可信的網路建立可信的信息交換。
一帶一路+一鏈。區塊鏈更大的不是製造信任,而是讓信任產生無損的傳遞,整個降低社會的摩擦成本,從而提高整個效益。
現在區塊鏈本身還是初始階段,所以包括區塊鏈的信息傳遞、加密,這個過程中出現量子加密和其他加密,實際上對區塊鏈本身所採用的加密演算法攻擊現象也時有發生。包括區塊鏈也是作為一種資產的認定,數字資產的一個認定,但是現在我們很多都是用密碼演算法,或者是作為我們來解密的鑰匙,但是如果密碼忘記了,很可能你現在的資產就丟掉了,你不能夠在得到你原來的這些資產,所以在資產管理,包括信息傳遞和一些安全這些方面,應該說都還是存在著一些隱患。當然那麼從技術角度,現在我們區塊鏈本身處理的速度,或者說本身的擴展性,因為從工作機理的角度來看,是要把整個賬本要復制給所有的參與人員,所以在區塊鏈本身的運作效率和擴展性方面還是比較受限的。這些我們覺得都還是需要進一步在技術方面有進一步的發展。
區塊鏈平台這些底層技術,又形成包括區塊鏈錢包、區塊鏈瀏覽器、節點競選、礦機、礦池、開發組件、開發模塊、技術社區及項目社群等一系列的生態系統,這些生態系統的完善程度直接決定著區塊鏈底層平台的使用效率和效果。
4、蒙代爾的不可能三角
去中心化、高效、安全,不可能實現三者全部同時達到極致。
區塊鏈的本質是一種分布式記賬技術,與之相對的是中心式記賬技術,中心式記賬技術在我們目前的生活中廣泛存在。區塊鏈是分布式數據存儲、點對點傳輸、共識機制、加密演算法等計算機技術的新型應用模式。
區塊鏈Blockchain、,是比特幣的一個重要概念,它本質上是一個去中心化的資料庫,同時作為比特幣的底層技術,是一串使用密碼學方法相關聯產生的數據塊,每一個數據塊中包含了一批次比特幣網路交易的信息,用於驗證其信息的有效性防偽、和生成下一個區塊。
狹義來講,區塊鏈是一種按照時間順序將數據區塊以順序相連的方式組合成的一種鏈式數據結構, 並以密碼學方式保證的不可篡改和不可偽造的分布式賬本。
廣義來講,區塊鏈技術是利用塊鏈式數據結構來驗證與存儲數據、利用分布式節點共識演算法來生成和更新數據、利用密碼學的方式保證數據傳輸和訪問的安全、利用由自動化腳本代碼組成的智能合約來編程和操作數據的一種全新的分布式基礎架構與計算方式。
區塊鏈技術通俗的理解就是:把「物」的前、後、左、右區塊用一種技術連接成一個鏈條,但每個區塊的原始數據不可篡改,是一種物聯網范疇的、可以讓參與者信任的「各個模塊鏈動」的技術。區塊鏈技術的應用,離不開互聯道網,也離不開物聯網,是建立在二者融合互動基礎上的、但又讓參與者各自保持獨回立的去中心化、、並共同擁有這套價值鏈共建共享、的技術。
區塊鏈的特徵:去中心化、開放性、自治性、信息不可篡改,匿名性。
區塊鏈是一個能夠傳遞價值的網路,對可以傳遞價值的網路的需求是推動區塊鏈技術產生的重要原因。在對於保護帶有所有權或者其他價值的信息需求的推動下,區塊鏈出現了。區塊鏈通過公私鑰密碼學、分布式存儲等技術手段,一方面保證了帶有價值的信息的高效傳遞,另一方面保證了這些信息在傳遞的過程中不會被輕易的復制篡改。
從區塊鏈誕生的必然性來理解區塊鏈的內涵,區塊鏈是解決了中心化記賬缺點、解決了分布式一致性問題的分布式記賬技術,同時也是連接互聯網升級為保證帶有價值的信息安全高效傳遞的價值網路。
區塊鏈: 區塊鏈就像是一個全球唯一的帳簿,或者說是資料庫,記錄了網路中所有交易歷史。
以太坊虛擬機(EVM): 它讓你能在以太坊上寫出更強大的程序比特幣上也可以寫腳本程序、。它有時也用來指以太坊區塊鏈,負責執行智能合約以及一切。
節點:你可以運行節點,通過它讀寫以太坊區塊鏈,也即使用以太坊虛擬機。完全節點需要下載整個區塊鏈。輕節點仍在開發中。
礦工:挖礦,也就是處理區塊鏈上的區塊的節點。這個網頁可以看到當前活躍的一部分以太坊礦工:stats.ethdev.com。
工作量證明:礦工們總是在競爭解決一些數學問題。第一個解出答案的(算出下一個區塊)將獲得以太幣作為獎勵。然後所有節點都更新自己的區塊鏈。所有想要算出下一個區塊的礦工都有與其他節點保持同步,並且維護同一個區塊鏈的動力,因此整個網路總是能達成共識。(注意:以太坊正計劃轉向沒有礦工的權益證明系統(POS),不過那不在本文討論范圍之內。)
以太幣:縮寫ETH。一種你可以購買和使用的真正的數字貨幣。這里是可以交易以太幣的其中一家交易所的走勢圖。在寫這篇文章的時候,1個以太幣價值65美分。
Gas:在以太坊上執行程序以及保存數據都要消耗一定量的以太幣,Gas是以太幣轉換而成。這個機制用來保證效率。
DApp: 以太坊社區把基於智能合約的應用稱為去中心化的應用程序(Decentralized App)。DApp的目標是(或者應該是)讓你的智能合約有一個友好的界面,外加一些額外的東西,例如IPFS可以存儲和讀取數據的去中心化網路,不是出自以太坊團隊但有類似的精神)。DApp可以跑在一台能與以太坊節點交互的中心化伺服器上,也可以跑在任意一個以太坊平等節點上。(花一分鍾思考一下:與一般的網站不同,DApp不能跑在普通的伺服器上。他們需要提交交易到區塊鏈並且從區塊鏈而不是中心化資料庫讀取重要數據。相對於典型的用戶登錄系統,用戶有可能被表示成一個錢包地址而其它用戶數據保存在本地。許多事情都會與目前的web應用有不同架構。)
以太坊客戶端,智能合約語言
編寫和部署智能合約並不要求你運行一個以太坊節點。下面有列出基於瀏覽器的IDE和API。但如果是為了學習的話,還是應該運行一個以太坊節點,以便理解其中的基本組件,何況運行節點也不難。
運行以太坊節點可用的客戶端
以太坊有許多不同語言的客戶端實現即多種與以太坊網路交互的方法、,包括C++, Go, Python, Java, Haskell等等。為什麼需要這么多實現?不同的實現能滿足不同的需求例如Haskell實現的目標是可以被數學驗證、,能使以太坊更加安全,能豐富整個生態系統。
在寫作本文時,我使用的是Go語言實現的客戶端geth (go-ethereum),其他時候還會使用一個叫testrpc的工具, 它使用了Python客戶端pyethereum。後面的例子會用到這些工具。
關於挖礦:挖礦很有趣,有點像精心照料你的室內盆栽,同時又是一種了解整個系統的方法。雖然以太幣現在的價格可能連電費都補不齊,但以後誰知道呢。人們正在創造許多酷酷的DApp, 可能會讓以太坊越來越流行。
互動式控制台:客戶端運行起來後,你就可以同步區塊鏈,建立錢包,收發以太幣了。使用geth的一種方式是通過Javascript控制台。此外還可以使用類似cURL的命令通過JSON RPC來與客戶端交互。本文的目標是帶大家過一邊DApp開發的流程,因此這塊就不多說了。但是我們應該記住這些命令行工具是調試,配置節點,以及使用錢包的利器。
在測試網路運行節點: 如果你在正式網路運行geth客戶端,下載整個區塊鏈與網路同步會需要相當時間。你可以通過比較節點日誌中列印的最後一個塊號和stats.ethdev.com上列出的最新塊來確定是否已經同步。) 另一個問題是在正式網路上跑智能合約需要實實在在的以太幣。在測試網路上運行節點的話就沒有這個問題。此時也不需要同步整個區塊鏈,創建一個自己的私有鏈就勾了,對於開發來說更省時間。
Testrpc:用geth可以創建一個測試網路,另一種更快的創建測試網路的方法是使用testrpc. Testrpc可以在啟動時幫你創建一堆存有資金的測試賬戶。它的運行速度也更快因此更適合開發和測試。你可以從testrpc起步,然後隨著合約慢慢成型,轉移到geth創建的測試網路上 - 啟動方法很簡單,只需要指定一個networkid:geth --networkid "12345"。這里是testrpc的代碼倉庫,下文我們還會再講到它。
接下來我們來談談可用的編程語言,之後就可以開始真正的編程了。寫智能合約用的編程語言用Solidity就好。
要寫智能合約有好幾種語言可選:有點類似Javascript的Solidity, 文件擴展名是.sol. 和Python接近的Serpent, 文件名以.se結尾。還有類似Lisp的LLL。Serpent曾經流行過一段時間,但現在最流行而且最穩定的要算是Solidity了,因此用Solidity就好。聽說你喜歡Python? 用Solidity。
solc編譯器: 用Solidity寫好智能合約之後,需要用solc來編譯。它是一個來自C++客戶端實現的組件又一次,不同的實現產生互補、,這里是安裝方法。如果你不想安裝solc也可以直接使用基於瀏覽器的編譯器,例如Solidity real-time compiler或者Cosmo。後文有關編程的部分會假設你安裝了solc。
web3.js API. 當Solidity合約編譯好並且發送到網路上之後,你可以使用以太坊的web3.js JavaScript API來調用它,構建能與之交互的web應用。
6. 簡要理解區塊鏈
區塊鏈(Blockchain)是比特幣的一個重要概念,是比特幣的底層技術和基礎架構,是分布式數據存儲、點對點傳輸、共識機制、加密演算法等計算機技術的新型應用模式。
狹義來講,區塊鏈是一種按照時間順序將數據區塊以順序相連的方式組合成的一種鏈式數據結構, 並以密碼學方式保證的不可篡改和不可偽造的分布式賬本。
一句話,它是一種特殊的分布式資料庫。
一個很重要的理解就是去中心化
區塊鏈的世界裡面,沒有中心節點,每個節點都是平等的,都保存著整個資料庫,任何讀取都是平行的和透明的。
區塊鏈沒有管理員,區塊鏈格式作為一種使資料庫安全而不需要行政機構的授信的解決方案首先被應用於比特幣。
那麼ta是如何取得防偽的呢?
區塊與 Hash 是一一對應的,有人修改了一個區塊,該區塊的 Hash 就變了。
所以ta是唯一的!
計算 Hash 的機器就叫做礦機,操作礦機的人就叫做礦工。
區塊頭包含一個難度系數(difficulty),這個值決定了計算 Hash 的難度。
大概計算10億次,才算中一次。
區塊鏈主要解決的交易的信任和安全問題,因此它針對這個問題提出了四個技術創新:
第一個叫分布式賬本,就是交易記賬由分布在不同地方的多個節點共同完成,而且每一個節點都記錄的是完整的賬目,因此它們都可以參與監督交易合法性,同時也可以共同為其作證。不同於傳統的中心化記賬方案,沒有任何一個節點可以單獨記錄賬目,從而避免了單一記賬人被控制或者被賄賂而記假賬的可能性。另一方面,由於記賬節點足夠多,理論上講除非所有的節點被破壞,否則賬目就不會丟失,從而保證了賬目數據的安全性。
第二個叫做非對稱加密和授權技術,存儲在區塊鏈上的交易信息是公開的,但是賬戶身份信息是高度加密的,只有在數據擁有者授權的情況下才能訪問到,從而保證了數據的安全和個人的隱私。
第三個叫做共識機制,就是所有記賬節點之間怎麼達成共識,去認定一個記錄的有效性,這既是認定的手段,也是防止篡改的手段。區塊鏈提出了四種不同的共識機制,適用於不同的應用場景,在效率和安全性之間取得平衡。以比特幣為例,採用的是工作量證明,只有在控制了全網超過51%的記賬節點的情況下,才有可能偽造出一條不存在的記錄。當加入區塊鏈的節點足夠多的時候,這基本上不可能,從而杜絕了造假的可能。
最後一個技術特點叫智能合約,智能合約是基於這些可信的不可篡改的數據,可以自動化的執行一些預先定義好的規則和條款。以保險為例,如果說每個人的信息(包括醫療信息和風險發生的信息)都是真實可信的,那就很容易的在一些標准化的保險產品中,去進行自動化的理賠。
一個署名為中本聰的人,提出了革命性的構想:讓我們創造一種不受政府或其他任何人控制的貨幣!
----比特幣的起源。
區塊鏈技術應用前景極為廣泛,尤其是金融領域的數字貨幣、跨境支付等等,此前消息稱,中國央行有望成為首個研發數字貨幣並開展真實應用的中央銀行。
三五互聯:公司與中金在線已簽署了合作意向書,擬共同開展比特幣項目,而區塊鏈技術正是比特幣的核心。
恆生電子:正在嘗試建立運用區塊鏈技術實現基於聯盟鏈的數字票據系統。
飛天誠信:公司曾在互動平台表示目前在區塊鏈技術有一定的技術儲備和研究。公司未來將積極參與數字貨幣及其他區塊鏈技術產業。
贏時勝:4月11日在投資者關系互動平台上表示,公司目前有這方面的技術儲備,但處初始階段。
從目前情況看,我國上市公司區塊鏈技術應用絕大多數還停留在研究階段,項目落地與推廣應用尚有待時間檢驗。
7. 區塊鏈節點是什麼意思
區塊鏈節點的意思是一個連接在區塊鏈網路上的智能設備,都可以稱之為一個節點,只是這個節點根據設備的特性可能起到不同的作用。這是分布式網路的一個很大的特點,並且整個區塊鏈網路上節點越多,意味著這個區塊鏈網路分布得越廣泛,越穩定以及越安全。節點包含了手機,礦機和伺服器等等。操作一個節點的可以是普通的錢包用戶,礦工和多個人協作的礦池用戶。」
【拓展資料】
節點就是一個區域的伺服器。在互聯網區域,一個企業所有運行的數據都在一個伺服器里,那麼這個伺服器就是節點。
就像是我們每天使用的微信,每天處理著這么多的聊天信息、轉賬等。這些數據的存儲和運行都在騰訊的公司的伺服器裡面。那麼這個處理數據的伺服器,我們就可以稱之為「節點」。再說區塊鏈的世界,大家都已經知道區塊鏈是去中心化的分布式資料庫,它不依託於哪一個中心化的伺服器,是由千千萬萬個「小伺服器」組成。只要我們下載一個區塊鏈客戶端,我們就變成了那千千萬萬個「小伺服器」中的一員。
這樣來說,如果我們要玩區塊鏈的話,我們自己就相當於是一個節點。
節點也分輕節點和全節點。全節點就是擁有全網所有的交易數據的節點,那麼輕節點就是只擁有和自己相關的交易數據節點。而且節點分布越多、越廣泛,區塊鏈網路就更加的去中心化,網路運行也就越安全穩定。比如說鏈信,現在鏈信用戶有1600萬,這樣就說明,現在鏈信節點也是有很多。現在想玩區塊鏈的朋友可以去試試鏈信。鏈信是一個不錯的區塊鏈應用。
節點的存在就是區塊鏈分布式的表徵,也是區塊鏈的魅力所在。
區塊鏈是個分布式系統,系統里有很多節點,這些節點你只要單純地理解為通過互聯網相連的電腦或者伺服器就好了。然後根據區塊鏈性質的不同,成為節點的方式也不同,當然,對於節點的定義也不同。對於像比特幣這樣的公有鏈,理論上來講,你下載完整的區塊鏈,參與交易和挖礦,才算是節點。
然而,在現在的比特幣里,礦工,完全節點,輕量節點,甚至普通用戶,在不同的語境下都可能被稱為節點。但無論如何,比特幣的系統與其說是「連入網路就會自動更新區塊鏈」,不如說是你想要挖礦或者是交易(同時你不信任其他人的驗證結果),就必須更新整條區塊鏈,這不是一個自動義務的事情,而是自願的事情。
8. 區塊鏈的組成部分
區塊鏈的組成部分如下:
開放性:區塊鏈的系統數據是公開透明的,每個人都可以參與進來,比如租房子,你可以知道這個房子以前的出租信息,有沒出現過問題,當然這里頭的一些個人私有信息是加密的。
自治性:區塊鏈採用基於協商一致的規范和協議(比如一套公開透明的演算法),然後各個節點就按照這個規范來操作,這樣就是所有的東西都有機器完成,就沒有人情成分。 使得對人的信任改成了對機器的信任,任何人為的干預不起作用。
信息不可篡改:如果信息存儲到區塊鏈中就被永久保存,是沒辦法去改變,至於 51% 攻擊,基本不可能實現。
匿名性:區塊鏈上面沒有個人的信息,因為這些都是加密的,是一堆數字字母組成的字元串,這樣就不會出現你的各種身份證信息、電話號碼被倒賣的現象。
9. 區塊鏈中為什麼一筆交易需要6個區塊的確認,是硬性規定嗎
這不是硬性規定,這和區塊鏈不存在任何的關系。這個幣的演算法存在關系,每一種幣的確認方式都是不同的,所以這不是一個硬性規定。
比特幣和瑞泰幣、萊特幣、狗狗幣的確認次數都是不同的。