FinTech-Blockchain区块链
FinTech-Blockchain區塊鏈
原創?2016年07月07日 21:57:30最近有同事研究Blockchain, 作為曾今在投行打拼過的人事,好吧,投行IT,更加適合來研究介紹新一代的黑科技FinTech-Blockchain,區塊鏈, 另外其實區塊鏈與最近研究的分布式存儲息息相關,正好趁熱打鐵。
總目錄
- BitCoin比特幣
- 創始人-中本聰
- 區塊鏈-Blockchain
- 核心算法
- 技術架構
- 交易過程-程序/數學
- R3 CEV?
- 總結
1. BitCoin比特幣
提到BlockChain不得不先提及比特幣, 其實比特幣的核心就是區塊鏈技術。BitCoin比特幣最初由中本聰2009年提出,并發布開源軟件。之后構建于其開源軟件并 + P2P網絡,逐步形成了P2P形式數字貨幣。點對點的傳輸意味著去中心化的支付系統,說的有點技術化。
總體來說Bitcoin作為一種網絡虛擬貨幣,Bitcoin的發行、流通和管理權不屬于某一個人、組織、公司或者國家。比特幣發行依據特定算法,通過大量的計算產生,比特幣使用整個P2P網絡中眾多節點構成的分布式存儲/分布式數據庫確認并記錄所有的交易行為,并使用密碼學的設計來確保貨幣流通各個環節安全性。同時P2P的去中心化特性與算法本身可以確保無法通過大量制造比特幣來人為操控幣值,造成大量的通漲,而這一點也為其后與很多央行正面沖突埋下伏筆。
2. 創始人
提到其創始人中本聰,這個名字是化名。據可靠推測,中本聰是京都大學數學系教授望月新一。
其貌不揚,1969年出生于東京,16歲進入美國普林斯頓,3年后研究生師從著名德國數學家,23歲獲得數學博士學位, 可見成名要早。
當然目前并無100%確鑿證據說其為創始人,但種種跡象推測有很大可能是這位數學博士。盡管也有人質疑,如一個數學家開發出分布式網絡,以及提出具有顛覆性質的虛擬貨幣,包括掌握高深密碼學知識等等,我們不做貿然猜測。
3. 區塊鏈Blockchain
讓我們來引出區塊鏈Blockchain, 比特幣的核心就是區塊鏈技術。簡單來說,區塊鏈是通過一套嚴謹的加密算法演變而來,通過復雜的公鑰和私鑰設置,區塊鏈網絡將整個金融網絡中所有的交易數據/賬本分布到每個客戶端并打包成一個區塊鏈,在連續6個區塊鏈確認后交易基本確認,當然最終確認的話只有交易被網絡中超過51%的客戶端紀錄后,才算交易成功。夠分布夠安全,當然還能保證每個人只能對自己財產進行修改,據說各位數學大牛甚者可以通過神秘公式證明其安全性,我們知難而退,呵呵。
上圖為Citi的研究報告,我們也簡單說一下區塊鏈的特點:
區塊鏈特點:
1. 去中心化: 正如比特幣以及上圖描述的金融系統特征,區塊鏈正引導金融體系從中心化轉向去中心化金融體系,沒有中介,所有節點的權利與義務都等同,任一節點失效不影響整體運作。
2. 去信任:基于分布式數據庫以及整個體系的運作公開透明化,系統中所有節點之間無需信任也可以交易,換句話說,在系統的規則和時間范圍內,節點間無法欺騙。
3. 集體維護: 系統是由其中所有具有維護功能的節點共同維護。
4. 可靠數據庫:系統中每一個節點都用于最新的完整數據庫拷貝,修改單個節點的數據庫無效,系統會自動比較,最多出現次數的相同數據被識別為真記錄。
越寫越像分布式系統介紹啊,CAP等。來個例子吧:
上圖來自高盛研究報告,可以看出上圖以6個保留數據庫副本的節點舉例,在第三個交易Transaction的位置5節點沒有被驗證通過(假設被惡意修改),但按照我們上邊提到結論4,此例中節點5將被其他節點覆蓋更改。
4. 算法原理
上面簡單提到了區塊鏈的交易,進一步來分析其本質及算法。比特幣本質其實是一堆復雜算法所產生的特解,特解數學術語,即方程組能得到的無限個(當然比特幣算法為有限個)解中的一組。而每一個特解都能解開方程并且唯一。呃,夠抽象。不清楚的話,還是有請我的各位數學博士同學們@林博士, @吳博士@楊博士指導吧。
舉個個例子,以人民幣來解釋的話,比特幣就是人民幣序列號,你知道了這個鈔票的序列號,就算擁有這張鈔票。而挖礦的過程就是通過大量計算來求解這個方程組的特解,而這個方程組目前被設計成只有2100萬個特解。這樣舉例是不是好懂一些?嗯,看到人民幣你就懂了。
5. 技術架構
既然技術解析,讓我們從其架構設計開始逐步深入。
上圖是Bitcoin的分布式交易網絡,可以看出每個P2P節點包涵了一個區塊鏈。
區塊Block:
一個區塊是一些記錄一些或者所有最新比特幣(當然對于我們FinTech可以擴展為所有金融交易)交易信息的地方,數據以文件永久存儲。我們可以簡單認為一個區塊是賬本里面的一頁,區塊一旦添加,不能改變或者刪除。
所以區塊構成了整個一個公開共享的交易記錄,所有已經確認的交易都被包含在塊鏈中。其中,塊鏈的完整性及時序性由加密算法保證。
區塊鏈Blockchain:
有了區塊,很自然,按照雙向鏈表形式鏈接起來就構成了區塊鏈。
每個區塊都會保存上一個節點的hash值,這樣保證順序性,只有創始區塊沒有上一個節點。Block鏈全網唯一,每個節點都有備份replicaiton,區塊鏈一旦有更新則全網廣播通知。
挖礦Miner:
挖礦則是指將待確認交易數據歸并包含到塊鏈的過程,從而完成對交易的確認及分布式系統。挖礦可以同時保證強制塊鏈中的數據按照時間順序存儲,并通過加密算法加密,以防止對已有塊的修改。
用戶賬戶:
如上圖可以看出每個賬戶本質上包含了一對公鑰,私鑰。有私鑰的人為賬戶所有人。
6 . ?交易過程
如A轉賬給B, A就把錢的數量加上B的公鑰,再使用自己的私鑰簽名。整個簽名包含了A所有人的私鑰,以及上次交易信息T1, 轉賬目標B的公鑰或稱之地址,已經當前交易T2。當B看到這個簽名,可以通過A的公鑰結合簽名確認A的身份。為了公正或者大家認可,交易在P2P分布式網絡廣播,最終當交易信息確認后,B就可以使用錢了,或者說交易正式完成。
其中值得提及的是數字簽名包含了上一次交易信息T1, 其目的是要說明當前交易的貨幣來源。而簽名則引入了著名的橢圓曲線數字簽名算法(ECDSA)。
交易流程
總結來說,一筆交易區塊鏈運作流程:
1. 產生一筆交易
????一筆交易產生后,會被廣播到區塊鏈網絡中的其他參與節點
2. 各節點將數筆新交易放進區塊
????每個節點將數筆未驗證的交易Hash值收集到區塊中,每個區塊可以包含數筆或上千筆交易
3. 決定由誰來驗證這些交易
????各節點進行工作量證明的計算來決定誰可以驗證交易,由最快算出結果的節點來驗證交易,取得共識算法。
4.取得驗證權的節點將區塊廣播給所有節點。
???最快完成POW的節點,會將自己的區塊廣播給其他節點
5.?各個節點驗證并接上新的區塊
????其他節點確認這個區塊所含交易是否有效,確認沒被重復話費且具有有效數位簽章后,接受該區塊,此時區塊正式接入區塊鏈,無法再被篡改。
6. 交易驗證完成
????所有節點一旦接受該區塊后,先前沒算完POW工作的區塊會失效,各節點會重新建立一個區塊,繼續下一回POW計算工作
程序流程
看到一段以程序員角度來描述整個交易過程的神邏輯,如下:
發送轉賬付款流程:
1. 把一些有余額已確認的交易拿出來作為發送源
2. 根據目標地址生成支付交易
3.使用私鑰對生成支付交易簽名
4. 廣播出去
清晰明了。
繼續,再來看一下后續所謂的“挖礦”神邏輯:
如我們所講,挖礦實際上就是不斷從比特網絡獲取所有未確認交易并進行計算特解的過程,所以是一個永遠的循環while(true)
找到目前最長,難度最大的區塊鏈,上文提到的全網唯一區塊鏈。
產生一個隨機數作為計算Block哈希散列的seed
從網絡上獲取尚未被確認的交易
把這些未確認交易打包成一個新的區塊(臨時區塊),并掛載到剛獲取的最長區塊鏈
計算新的區塊的散列值sha256(newBlock)
如果計算出的散列滿足挖礦難度(即要求二進制散列值小于某個閥值,閥值越小其挖礦難度越大)則表明挖礦成功;
挖礦成功后進行網絡廣播,如果其他節點確認該區塊后,交易正式被認可。
程序員的語言是不是看起來更親切啊?
數學流程
有了上文的鋪墊,我們再來看看數學家角度的挖礦:
如何?數學家眼里只有方程式,方程式可以解釋一切,包括E=MC^2 以及解釋宇宙本身。
好吧,挖礦在數學家看來就是找到可以滿足上邊方程式的解 x, x要滿足范圍0 - 2^32。
version:block區塊的版本
prev_hash:上一個區塊的hash
merkle_root: 需要寫入的交易記錄hash數的值
ntime: 更新時間戳
nbits:當前難度
TARGET:Target目標是根據當前難度求出的
獲取當前難度: http://blockexplorer.com/q/getdifficulty
下個預估難度:
所以,可以看出整個方程式,除了x,你還可以修改merkle_root, ntime來尋找解x。
7. 其他算法
上邊我們把區塊鏈核心之交易搞清楚了,但還有幾個其他重要算法尚未提到,如比特幣的產生,SHA256 等。
SHA256:
SHA256是一種求解Hash值的算法,屬于密碼學范疇,即將任何一串數據輸入到SH256后其輸出為一個256位的Hash散列值,相同的輸入得到相同的結果。
但是輸入只要有細微變化,則輸出也是一個千差萬別的結果,無法預測,或者術語雪崩效應。對于正向計算非常容易,但反向破解,有Hash值反算輸入值極其困難,至少目前計算科技視作不可能。
比特幣產生:
交易有點類似貨幣發行后的流通以及信用控制與認可,我們來簡單看一下貨幣發行吧。
挖礦的過程,或者說創建新區塊,以及確認交易的過程,其生成過程被認為是難以重現和 proof of work 的,而所謂其付出的回報,即比特幣。注意,這個數量是動態調整遞減的,按照目前速度幾乎每四年自動減半,直至最后2100萬左右耗盡。
8. R3 CEV
呃,差點忘了介紹R3 CEV組織了。R3 CEV - 分布式分類賬聯盟, R3公司是一家位于紐約的金融技術創業公司,專注于研究基于區塊鏈的金融技術解決方案,已經建立了一個由40多家國際銀行機構組成的團體,目標是建立一種定制的跨境區塊鏈解決方案。R3聯盟目前已經有華爾街金融大鱷紛紛加入,包括Citi,BOA,高盛GS,摩根JP,瑞銀,大摩MS; 令人欣慰的還有中國的平安近期也宣布加入。當然作為技術服務金融,少不了技術大家,IBM, 微軟等等。
總結
總體來說,區塊鏈作為一種新興金融技術,跨多領域,多技術,包括密碼學、數學、演算法與經濟模型,并結合了分布式,點對點網路關系,利用數學基礎重建信任市場機制,成為一個自信任,去中心化的的分布式系統,而比特幣便是第一個采用區塊鏈技術而打造出的一套P2P電子現金系統。除此之外,各大金融機構各顯神通,納斯達克已經開始打造基于區塊鏈的自動交易系統。相信未來誕生與比特幣的區塊鏈技術會大放異彩。
最后,上一段以前自己wechat發過的一段介紹,讓大家腦洞繼續:
總結
以上是生活随笔為你收集整理的FinTech-Blockchain区块链的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dplyr和data.table让你的数
- 下一篇: 西点军校最贵一课:没强大内心的人,没资格