欧美中文字幕第一页-欧美中文字幕一区-欧美中文字幕一区二区三区-欧美中文字幕在线-欧美中文字幕在线播放-欧美中文字幕在线视频

關于區塊鏈,程序員需要了解些什么?

我是創始人李巖:很抱歉!給自己產品做個廣告,點擊進來看看。  

如果說比特幣是對傳統貨幣的一種顛覆,那么比特幣的基礎技術——區塊鏈則是對傳統編程范式的一種顛覆。區塊鏈技術被看作是一次Paradigm Shift。

也許很多人對 “顛覆”這種說法不以為然,因為現在這個詞已經被用濫了(如今哪個好一點兒的詞沒有被用濫呢?)。但是明眼人在匆忙做出”這又是一個噱頭”這樣的結論之前會謹慎的去了解一下背后的東西。

這篇文章的目的就是為一般程序員介紹區塊鏈的一些獨特技術,以及這些技術如何運用到一般程序員的項目或者產品的開發過程中。

即使你不想進入全新的區塊鏈應用開發大潮之中,你也會發現區塊鏈相關的底層技術對平日的應用開發有不少啟發和借鑒作用。一個新技術的誕生是有它順應時代的合理性的(黑格爾語”存在就是合理的“)。

作為程序員我們應該去了解它的合理性所在之處,取而用之。我們不一定非要用新技術去顛覆一個老應用,但可以用新技術去重塑一個老應用。

本篇主要討論區塊鏈在三個方面的獨特性:去中心和去中介,隱私保護,時間戳。

  去中心和去中介

1994年凱文?凱利(國內稱KK)出版了一本預言式的巨著《失控》,書中充滿了關于智慧生命及其社會進化機制的真知灼見。書中提到的很多概念,比如云計算、物聯網、網絡社區等等,在二十多年后的今天已經成為普遍的事實。

“去中心化”是凱文?凱利在書中提出的“九律”中的一條。一個去中心化的系統,沒有一個中央的、至上而下的控制主體,而完全是由大量的、相互聯結的、看似無組織的小個體構成,這些個體有一定的獨立性,可以相互作用,他們自發地形成一個整體以后,由量變引起質變,結果整體的能力、整體的智慧、整體的適應性和靈活性,都大大超過了個體的簡單相加。這樣的去中心化系統生命力極強,遭到破壞可以自我修復,因而很難被完全摧毀。

互聯網就是一個典型去中心化的例子,極強的適應性和抗破壞性是互聯網的根本。不過如今的互聯網卻有了中心化的趨勢。中心化的后果見仁見智,對崇尚多種選擇的人來說,中心化代表著選擇自由的喪失,服務質量的下降,活力的倒退和創新的萎縮。

微博做為新一代互聯網媒體的翹楚,它的興起、沒落以及再次復興,從內容的產生和傳播來說,就是一個從一開始的去中心化,到由大V們控制的中心化,再到去中心化的歷程??傊?,只有那些賦予其中每個個體充分發展的自由的系統,那些抗拒中心化趨勢的系統,才是生機勃勃、有創新力、能夠不斷進化的系統。

站在2016-2017年之交,智能機器時代似乎離我們不遠了。芯片技術、存儲技術、網絡技術、移動技術、物聯網技術,這些都極大的增強了各種網絡終端( edge)的能力,無論這些終端是人、手機、汽車、機器人,或是其他設備。

以前由于存儲、網絡或者計算能力等限制而選擇中心化的應用程序設計,現在的程序員則有更大的自由去選擇一種去中心化的設計。去中心化的系統更加靈活,更具適應性,更有活力。

另一方面,現實社會中的各種交易活動,由于交易雙方缺乏信任、信息不對稱、搜尋成本、匹配效率、交易費用等因素,需要有交易雙方共同信任的中介參與。比如銀行間的跨境支付,中間需要通過SWIFT網絡和代理銀行,而不能直接進行點對點交易。

中介的產生源自于降低交易成本的目的,但是隨著新技術的出現和普及,交易雙方直接交易成為可能,而且交易成本更低。在這樣的情況下中介變得多余了,交易雙方通過去中介化來降低交易成本。

去中心和去中介有多種不同層次,可以體現在業務模式方面、業務數據的產生和傳播方面、應用系統的架構方面、應用系統的開發、運行、維護、升級方面等等。比特幣和區塊鏈是一種比較徹底的去中心和去中介的應用,它包含以下幾種去中心和去中介技術:

   ●點對點網絡( P2P network)。 點對點網絡并不是什么新概念,網上的很多文件共享服務和視頻直播服務就是用P2P網絡協議實現的。 P2P網絡是一個對等網絡,網絡中每個節點的地位相當,沒有任何節點處于中央控制的地位,也沒有任何節點扮演交易中介的角色;每個節點既是server,又是client;節點可以選擇隨時加入,隨時退出;節點可以選擇運行所有的功能( full node),也可以選擇運行部分的功能;節點越多,整個系統的運算能力越強,數據安全性越高,抗破壞能力越強。

  ● 去中心化數據庫, 這就是區塊鏈,例如 Bitcoin的分布式總帳。

  ● 去中心化應用 (Decentralized App, 簡稱 DApp),例如在Ethereum上運行的智能合約應用。

  ● 共識算法 。無中心、無中介、無需相互信任的對等網絡的節點間需要協調一種共識算法,以便共同維護一個統一的分布式數據庫,以及協同工作以保障整個系統的安全性和適應性。有多種共識算法,包括: PoW – Proof of Work 工作量證明、 PoS – Proof of Stake 權益證明、 DPoS – Delegated Proofof Stake授權權益證明、 PBFT - Practical ByzantineFault Tolerance實用拜占庭容錯、 PoET - Proof of Elapsed Time流逝時間量證明等等。

作為一個程序員或者架構師,這些思路和技術有什么幫助呢?你的應用需要去中心或者去中介嗎?你的下一個應用需要采用去中心化的架構嗎?設計去中心化的架構需要作哪些改變?需要哪些基礎設施?

在時下這股區塊鏈的淘金熱里,已經有很多創業公司準備顛覆傳統的中心化應用。幾乎所有的應用,都開始有相應的基于區塊鏈技術的去中心化版本。如果你認為目前沒有必要或者不可能去中心化,未雨綢繆總是不會錯的。

  隱私保護

個人隱私信息泄露現在在中國是一個非常嚴重的現象。盜取、販賣個人信息已經有完整的黑市產業鏈,部分互聯網征信公司和數據公司,從黑市上購買數據,甚至雇傭黑客去盜取數據?;ヂ摼W用戶普遍意識到個人隱私信息的重要,對隱私保護的要求會更高。程序員有責任從技術上加強個人隱私的保護。

在傳統的應用架構設計中,隱私的保護或者安全性設計的優先級并不是很高,現在這種情況必須有所改變,架構師需要提升隱私保護設計的優先級。

區塊鏈應用領域采用了很多密碼學的技術,例如哈希算法、加密算法、公鑰密碼學、默克爾樹、和零身份證明。 Bitcoin在保護用戶身份方面,它使用哈希過的公鑰作為個人賬號,這樣在交易時隱藏了個人信息。另外,個人賬號可以設計成一次性的,每次交易都使用新的賬號,這樣就很難通過追蹤某個賬號的交易來推測用戶身份。

Bitcoin的總帳是公開的,上面每筆交易記錄包含付費賬號、收費賬號以及轉賬金額。如果覺得這樣的隱私保護還不夠的話,另一個數字貨幣Zcash在Bitcoin之上增加了一些協議,將付費賬號、收費賬號以及轉賬金額都隱藏了起來,采用的方法仍然是加密、哈希、默克爾樹和零知識證明。

盡管比特幣出自于一群無政府主義者之手,但他們秉承的一些諸如保護個人隱私的信念,在這個信息泛濫的互聯網時代還是非常可取的。對于你的應用,你是否收集了超越應用需要的個人信息?(保護隱私的最好辦法就是不收集它們)在處理交易時,是否可以傳遞盡可能少的個人身份信息?或者使用一次性賬號?在日志中是否可以記錄盡可能少的個人身份信息?或者完全不需記錄?緩存數據庫中的個人信息是否安全?消息傳遞時不僅采用Session Key加密,是否還可以采用Message Key?

如今,哈希算法、公鑰加密,默克爾樹,這些加密技術唾手可得。程序員應該養成新的習慣,在應用設計中采用各種加密技術保護個人隱私信息,包括個人賬戶信息,交易信息,瀏覽信息,日志信息等。

時間戳

傳統關系型數據庫在設計表時一般會有一個或多個時間戳(timestamp)字段,用來標記一行記錄添加或修改時的時間?;旧?,這些時間戳是給應用內部使用的。當數據被共享給其他應用時,這些時間戳并沒有多大意義,因為時間戳可以偽造。

在數據黑市上,一個數據掮客可以將一份銀行VIP客戶數據進行注水,摻入一半的假數據。一家保險公司為了攪亂市場上競爭對手的視線,故意污染數據,將高凈值用戶放入騙保用戶黑名單,將騙保用戶放入高凈值用戶名單,然后讓污染后的數據故意泄露出去。

如果每條數據都帶有一個真實可信的時間戳(這條數據產生的真實時間點),這樣的造假行為就比較難奏效,因為假數據的時間戳一般都是最近的。

以前我們很少關心數據的時間戳,很少去了解這個時間戳對數據的意義,一個原因也許是我們不知道如何用技術去實現這樣的時間戳。如果技術上實現這樣一個時間戳是完全可行的,那么這個時間戳對我們來說就有了全新的意義。

首先,我們有了真正可以信任的歷史數據。第二,這些數據因為可信變得更有價值,可以在應用之外被其他應用或者分析工具使用。第三,我們可以基于這些可信的歷史記錄生成信用。最后,我們真正進入一個信用社會。

想象一下,如果我們想在未來某天證明我們的數據是在今天產生的,我們可以在今天對今天的所有數據進行某種形式的哈希(比如默克爾樹),最終得到一個哈希值,然后在第二天的《參考消息》上登一個廣告,把哈希值發布出去。明天的《參考消息》就成了我們的時間戳。如果明天我們想做同樣的事,我們可以如法炮制,另外有一個關鍵點,那就是要記得把今天的哈希值也給哈希進去。這樣每天的哈希值就包含了以前所有數據的哈希信息。

區塊鏈在P2P網絡上通過節點間的共識算法實現了一個分布式的時間戳服務。區塊鏈是在時間上有序的、由記錄塊(區塊)組成的一根鏈條。一個區塊包含兩個部分:區塊頭( block header)和記錄部分。區塊中的所有記錄通過默克爾樹( Merkle tree)組織起來,默克爾樹根( root)的哈希值做為本區塊里所有記錄的數字指紋被放入區塊頭。

區塊頭還包含以下字段:前一個區塊頭的哈希值(這是前一個區塊的數字指紋,也可以看做是指向前一個區塊的哈希指針),本區塊的時間戳,高度( hight,即從第一個區塊開始數本區塊是第幾個塊),以及一些其他信息。系統的共識算法保證了每過固定的一段時間(Bitcoin是大約10分鐘),參與整個系統記賬的節點會達成共識在區塊鏈上添加下一個新的區塊。

時間戳的這種設計,使得更改一條記錄的困難程度按時間的指數倍增加,越老的記錄越難更改。這是因為,如果改動某個區塊里的一條記錄,意味著該區塊原來的默克爾樹根失效了,需要改動區塊頭,該區塊的數字指紋隨之失效。又由于下一個區塊的區塊頭包含這個哈希指針,這就意味著下一個區塊也需要改動。如此一直下去,直到最新的那個區塊。

可見要想改動一個區塊,必須同時改動該區塊后面的所有區塊。因為將一個區塊放入區塊鏈中需要消耗非常多的資源(資源種類依共識算法的不同而不同,可以是計算力,流逝的時間,擁有的權益等等),隨著后面添加的區塊越來越多,要想改動某個區塊幾乎是不可能的。

對一個普通的應用來說,如何實現這樣一個時間戳服務呢?我們需要自己創建一個區塊鏈嗎?其實沒有必要, Bitcoin就是一個很好的時間戳服務,我們可以把哈希值寫到Bitcoin的區塊鏈中去。這是一種存在證明( Proof of Existence)。 Factom也提供類似的服務,它收集所有的哈希,每隔10分鐘生成一個哈希值,寫到Bitcoin的區塊鏈中。

哪些數據需要有時間戳?必須是不能變更的數據,特別適合存檔文件。需要現在就考慮實施時間戳嗎?這個跟你的數據戰略相關。在大數據時代,擁有高質量的數據就是擁有了價值。時間戳可以一定程度上保證數據的可信度,至少這些數據是經過“時間考驗”的。

   作者簡介 :曹嚴明。架構師,現就職于SAP公司咨詢服務部,專注于保險業核心系統、電子商務、企業移動應用等解 決方案。曾就職于微軟和HCL公司,參與過SQL Server, SharePoint, Visual Studio等產品的研發。

??? 注:本文摘自CSDN,作者曹嚴明,版權著作權屬原創者所有。欲了解更多大數據行業相關資訊,可搜索數據觀(中國大數據產業觀察網www.cbdio.com)進入查看

責任編輯:湯德正

隨意打賞

區塊鏈技術概念區塊鏈是什么布比區塊鏈區塊鏈概念區塊鏈金融萬向區塊鏈區塊鏈應用區塊鏈技術
提交建議
微信掃一掃,分享給好友吧。
主站蜘蛛池模板: 国产成人不卡 | 四虎地址8848在线观看 | 日本高清h色视频在线观看 日本高清不卡二区 | 四虎com| 99热这就是里面只有精品 | 免看一级a毛片一片成人不卡 | 亚洲精品一区二区三区网址 | 伊人成影院九九 | 欧美一区二区三区视频在线观看 | 天天干天天拍天天射天天添天天爱 | 亚洲精品成人7777在线观看 | 亚洲视频一区二区 | 欧美日韩一级大片 | 国产一级一片免费播放 | 欧美精品亚洲人成在线观看 | 久久香蕉国产线看观看精品蕉 | 日日夜夜操操操 | 国产欧美综合精品一区二区 | 久久夜色精品国产噜噜小说 | 日日噜噜夜夜躁躁狠狠 | 草草在线播放 | 国产婷婷丁香久久综合 | 91在线免费播放 | 亚洲精品无码不卡在线播放he | 97色在线视频 | 中文字幕日韩精品在线 | 国产视频福利在线 | 4hu四虎免费影院www | 国产永久免费高清动作片www | 久久久久久久国产精品 | 很很鲁在线视频播放影院 | 女女女女女女bbbbbb级毛片 | 伊人这里只有精品 | 欧美午夜精品一区二区三区 | 在线精品欧美 | 日本高清不卡一区久久精品 | 视色tv| 99国产在线 | 日本高清免费毛片久久看 | 国产精品国产精品 | 中文字幕精品在线视频 |