從比特幣的起源說起,談談區塊鏈的前世今生
什么是區塊鏈技術?對于區塊鏈你了解多少?文章從比特幣起源說起,幫你更進一步的熱值區塊鏈。
談起區塊鏈前世今生,我們不得不先說一下比特幣。因為比特幣和區塊鏈如魚水之間一樣有著太多的關系。
比特幣的起源
2008年,一位化名為中本聰的人,在一篇為《比特幣:一個點對點的電子現金系統》的論文中首先提出了比特幣。中本聰結合以前的多個數字貨幣發明,如B-money和HashCash,創建了一個完全去中心化的電子現金系統,不依賴于通貨保障或是結算驗證保障的中央權威。
關鍵的創新是利用分布式計算系統(稱為”工作量證明”算法)每隔10分鐘進行一次的全網”選拔”,能夠使用去中心化的網絡同步交易記錄。這個能優雅的解決雙重支付問題(即一個單一的貨幣單位可以使用兩次,此前,雙重支付問題是數字貨幣的一個弱點,并通過一個中央結算機構清除所有交易來處理)。
比特幣打開了區塊鏈大門
- 區塊鏈技術是比特幣原創的核心技術。在比特幣被發明之前世界上并不存在區塊鏈這個東西。
- 比特幣發明之后,很多人參考比特幣中的區塊鏈實現,使用類似的技術實現各種應用,這類技術統稱區塊鏈技術。用區塊鏈技術實現的各種鏈即為區塊鏈。
區塊鏈技術的巨大價值
其實區塊鏈技術最核心的就是解決信任成本的問題,去中心化去中介是區塊鏈技術的核心概念。區塊鏈藐視一切禁錮我們頭腦的舊思維,它將顛覆交易執行的管理方式和集中型控制模式。區塊鏈松開了信任的韁繩,這韁繩曾經牢牢控制在各種中心機構的手中,例如銀行、政策制定者、清算中心、政府、大公司等。
區塊鏈讓人們擺脫了這些老舊的控制節點。例如,交易雙方完全可以在區塊鏈上進行交易的認證,而不再需要一個清算中心。信用的實現應該是無償的,更不應該掌握在某種集中型的權威手中,這種權力要么利用信用收稅,要么肆意操縱,玩弄各種形式的費用、訪問權、許可權等等。所以我相信未來的區塊鏈遍地開花之時,將引爆一個新的紀元。
什么區塊鏈技術?
從本質上講,區塊鏈技術,是一種交易記錄的存儲技術。它對交易記錄進行永久性存儲,而且存儲之后永遠無法刪除,只能按照次序加入新的交易,由此對所有的交易歷史進行永不結束的記載。這個看似簡單的功能描述,實則含義深刻。它促使我們,重新思考如何去創建交易、存儲數據和交換資產。它是一場巨大變革的起點。
一句話描述區塊鏈技術?
基于密碼學安全的分布式賬簿網絡技術。
區塊鏈技術核心點
- 一個點對點分布式網絡(各網絡節點同步數據)
- 一份所有交易的賬簿數據(區塊鏈)
- 一個去中心化的交易驗證(基于密碼學交易安全、腳本驗證交易實現合約或智能合約)
- 一個去中心化的定量貨幣發行(分布式挖礦、礦池挖礦協議、工作量證明生成新區塊)
一、點對點的P2P網絡(Peer to Peer)
1.1 網絡工作原理
- 新的交易向全網進行廣播
- 每一個節點都將收到的交易信息納入一個區塊中
- 每個節點都嘗試在自己的區塊中找到一個具有足夠難度的工作量證明
- 當一個節點找到了一個工作量證明,它就向全網進行廣播
- 當且僅當包含在該區塊中的所有交易都是有效的且之前未存在過的,其他節點才認同 該區塊的有效性
- 其他節點表示他們接受該區塊,而表示接受的方法,則是在跟隨該區塊的末尾,制造 新的區塊以延長該鏈條,而將被接受區塊的隨機散列值視為先于新區快的隨機散列值
1.2 區塊鏈網絡組成部分
1.3 區塊鏈網絡詳細流程圖
二、區塊鏈(Block Chain)
2.1 區塊鏈原理及簡介
區塊鏈的實現方案首先提出一個“時間戳服務器”。時間戳服務器通過對以區塊(block)形式存在 的一組數據實施隨機散列而加上時間戳,并將該隨機散列進行廣播,就像在新聞或世界性新聞組網絡(Usenet)的發帖一樣組成一個樓層鏈條。顯然,該時間戳能夠證實特定數據必然于某特定時刻是的確存在的,因為只有在該時刻存在了才能獲取相應的隨機散列值。每個時間戳應當將前一個時間戳納入其隨機散列值中,每一個隨后的時間戳都對之前的一個時間戳進行增強, 這樣就形成了一個鏈條。
區塊鏈形象圖
2.2 區塊鏈的連接
礦工會根據工作量證明每過特定時間挖到新的區塊(如比特幣:根據難度系數,工作量證明算法全網算力大概10分鐘左右才能產生一個新區塊;難度系數會根據全網算力的增加而調整,永遠保證大概10分鐘產生一個新的區塊)。節點會在”父區塊哈希值“字段找出包含它的父區塊的哈希值。這是節點已知的哈希值,也就是如下圖中第277314塊區塊的哈希值。故這個區塊是這個鏈條里的最后一個區塊的子區塊,因此現有的區塊鏈得以擴展。節點將新的區塊添加到鏈條的尾端,使區塊鏈變長到一個新的高度277315。
下圖展示了三個區塊的連接:
2.3 區塊鏈 – 比特幣創世區塊信息
三、交易(Transactions)
我們定義,一枚電子貨幣(an electronic coin)是這樣的一串數字簽名:每一位所有者通過對前一次交易和下一位擁有者的公鑰(Public key) 簽署一個隨機散列的數字簽名,并將這個簽名附加在這枚電子貨幣的末尾,電子貨幣就發送給了下一位所有者。而收款人通過對簽名進行檢驗,就能夠驗證該鏈條的所有者。
3.1 復式記賬薄式交易
3.2 交易中的輸入與輸出
一筆數字貨幣的交易是一個含有輸入值和輸出值的數據結構。該數據結構植入了將一筆資金從初始點(輸入值)轉移至目標地址(輸出值)的代碼信息。數字貨幣交易的輸入值和輸出值與賬號或才身份信息無關。你應該將它們理解成一種被特定密鑰信息鎖定的一定數量的數字貨幣。只有擁有者這個密鑰信息的人可以解鎖。
交易流程圖
一般交易,最常見的交易形式是從一個地址到另一個地址的簡單支持。這種交易也常常包含給支付者”找零“。
集合型交易,是集合多個輸入到一個輸出的模式,相當于現實生活中將很多硬幣和紙幣兌換為一個 大額面鈔。
分散型交易,是將一個輸入分配給多個輸出,這類交易類似于老板給員工發工資的情形,從一個賬號轉賬給多個賬號。
3.3 交易數據(Transactions Data)
下圖為比特幣的交易數據結構:
四、工作量證明(Proof-of-Work)
4.1 工作量簡介
為了在點對點的基礎上構建一組分散化的時間戳服務器,僅僅像報紙或世界性新聞網絡組 一樣工作是不夠的,我們還需要一個類似于亞當·柏克(Adam Back)提出的哈?,F金(Hashcash) 。在進行隨機散列運算時,工作量證明機制引入了對某一個特定值的掃描工作,比方說 SHA-256 下,隨機散列值以一個或多個0 開始。那么隨著 0 的數目的上升, 找到這個解所需要的工作量 將呈指數增長,但是檢驗結果僅需要一次隨機散列運算。
我們在區塊中補增一個隨機數(Nonce),這個隨機數要使得該給定區塊的隨機散列值出現 了所需的那么多個0。我們通過反復嘗試來找到這個隨機數,找到為止。這樣我們就構建了一 個工作量證明機制。只要該 CPU 耗費的工作量能夠滿足該工作量證明機制,那么除非重新完 成相當的工作量,該區塊的信息就不可更改。由于之后的區塊是鏈接在該區塊之后的,所以想 要更改該區塊中的信息,就還需要重新完成之后所有區塊的全部工作量。
4.2 挖礦
- 挖礦是增加數字貨幣供應的一個過程,挖礦同時還保護著數字貨幣系統的安全。
- 礦工們在挖礦過程會得到兩種類型的獎勵:創建新區塊的新幣獎勵,以及區塊中所含的交易費。
4.3 礦池挖礦
在激烈的算法競爭的環境中,個體礦工獨立工作(solo挖礦)是沒有一點機會。他們可以通過礦池協議合作組成礦池,共同協作挖礦分享獎勵。
五、區塊鏈常用術語
比特幣
首字母大寫的Bitcoin用來表示比特幣的概念或整個比特幣網絡本身。例如:“今天我學了些有關Bitcoin協議的內容?!?/p>
而沒有大寫的bitcoin則表示一個記賬單位。例如:“我今天轉出了10個bitcoin?!痹搯挝煌ǔR埠唽憺锽TC或XBT。
比特幣地址
比特幣地址就像一個物理地址或者電子郵件地址。這是別人付給你比特幣時你唯一需要提供的信息。然而一個重要的區別是,每個地址應該只用于單筆交易。
對等式網絡
對等式網絡是指,通過允許單個節點與其他節點直接交互,從而實現整個系統像有組織的集體一樣運作的系統 。對于比特幣來說,比特幣網絡以這樣一種方式構建——每個用戶都在傳播其他用戶的交易。而且重要的是,不需要銀行作為第三方。
哈希率
哈希率是衡量比特幣網絡處理能力的測量單位。為保證安全,比特幣網絡必須進行大量的數學運算。當網絡達到10Th/秒的哈希率時,就意味著它能夠進行每秒10萬億次的計算。
交易確認
交易確認意味著一筆交易已經 被網絡處理且不太可能被撤銷。當交易被包含進一個塊時會收到一個確認,后續的每一個塊都對應一個確認。對于小金額交易單個確認便可視為安全,然而對于比如1000美元的大金額交易,等待6個以上的確認比較合理。每一個確認都成 指數級地降低交易撤銷的風險。
塊鏈
塊鏈是一個按時間順序排列的比特幣交易公共記錄。塊鏈由所有比特幣用戶共享。它被用來驗證比特幣交易的永久性并防止雙重消費。
密碼學
密碼學是數學的一個分支,它讓我們創造出可以提供很高安全性的數學證明。電子商務和網上銀行也用到了密碼學。對于比特幣來說,密碼學用來保證任何人都不可能使用他人錢包里的資金,或者破壞塊鏈。密碼學也用來給錢包加密,這樣沒有密碼就用不了錢包。
簽名
密碼學簽名是一個讓人可以證明所有權的數學機制。對于比特幣來說,一個比特幣錢包和它的私鑰通過一些數學魔法關聯到一起。當你的比特幣軟件用對應的私鑰為一筆交易簽名,整個網絡都能知道這個簽名和已花費的比特幣相匹配。但是,世界上沒有人可以猜到你的私鑰來竊取你辛苦賺來的比特幣。
錢包
比特幣錢包大致實體錢包在比特幣網絡中的等同物。錢包中實際上包含了你的私鑰,可以讓你消費塊鏈中分配給錢包的比特幣。和真正的錢包一樣,每個比特幣錢包都可以顯示它所控制的所有比特幣的總余額,并允許你將一定金額的比特幣付給某人。這與商家進行扣款的信用卡不同。
區塊
一個塊是塊鏈中的一條記錄,包含并確認待處理的交易。平均約每10分鐘就有一個包含交易的新塊通過挖礦的方式添加到塊鏈中。
雙重消費
如果一個不懷好意的用戶試圖將比特幣同時支付給兩個不同的收款人,就被稱為雙重消費。比特幣挖礦和塊鏈將就兩比交易中那筆獲得確認并被視為有效在網絡上達成一致。
私鑰
私鑰是一個證明你有權從一個特定的錢包消費比特幣的保密數據塊,是通過一個密碼學簽名來實現的 。如果你使用的是錢包軟件,你的私鑰就存儲在你的計算機內;如果使用的是在線錢包,你的私鑰就存儲在遠程服務器上。千萬不能泄露私鑰,因為它們可以讓你消費對應比特幣錢包里的比特幣。
挖礦
比特幣挖礦是利用計算機硬件為比特幣網絡做數學計算進行交易確認和提高安全性的過程。作為對他們服務的獎勵,礦工可以得到他們所確認的交易中包含的手續費,以及新創建的比特幣。挖礦是一個專業的、競爭激烈的市場,獎金按照完成的計算量分割。并非所有的比特幣用戶都挖礦,挖礦賺錢也并不容易。
Satoshi聰
Satoshi是標明一個比特幣的最小單位的常用單位 100,000,000聰等于1 比特幣 (BTC)
作者:陶海軍;騰訊通訊充值與彩票業務部 高級工程師
來源:微信公眾號:騰訊大講堂
題圖來自PEXELS,基于CC0協議
我想哭,一頭霧水啊
完全一臉懵逼
看不太懂??,要是能對比下傳統的交易記錄技術就好了??
??
??