1. 程式人生 > >DREP小龍 | 數字ID,如何推動區塊鏈下一波浪潮(上)

DREP小龍 | 數字ID,如何推動區塊鏈下一波浪潮(上)

 

我們在網際網路上“被”擁有很多個身份。每個網站或者App都希望你註冊它們,於是你不得不多出了若干個使用者名稱和密碼。據GlobalWebIndex在2017年統計顯示,一個人平均擁有7-6個賬戶,不過你可以看看手機上App的數目,一般是隻多不少。

很多人嫌這些使用者名稱和密碼難以記憶,從而將相同的使用者名稱密碼用在多個應用。這確實方便了使用,但在撞庫事件頻繁的現在,非常不安全:只要安全性最差的資料庫被攻破,原本安全的賬戶資訊也不再安全。採用常見欄位作為密碼的賬戶則更不安全,黑客在撞庫成功後很容易通過儲存的個人資訊刻畫社工群肖像,有不小可能性猜出安全賬戶的密碼。為此,各國政府需要付出大量資金以預防或挽救:

源:2017 Global CODB Report by IBM

 

到2018年,全球因資料洩露需要付出38.6億美元的高昂代價。值得注意的是,各個企業、政府部門和網站分別擁有你的個人資訊,但實際上它們形成了一個個資料孤島,很多資訊是重複而低效的,大量冗餘資料的儲存增加了洩露造成危害的同時,更加精確的肖像刻畫由於關鍵資料缺少或未被深度聯合分析而受阻。與此同時,個人資料被販賣給第三方的情況屢見不鮮。今年爆出的“Facebook洩密門”事件已經證明中心化機構想洩露個人資訊是很難及時得知的。

 

凡此種種,都可以歸結為以下幾點:

  • 中心化機制不僅造成了孤島,同時還會滋生隱私洩露等違法行為。

  • 單點崩潰在孤島上更加容易發生也更加危險。

  • 個人缺乏具有安全性同時便於使用的ID方案。

對這方面的探索與解決方案,目前比較徹底的思路是去中心化數字ID技術。

 

數字ID技術其實很簡單,賦予一個實體以ID,這個ID應該是唯一而不可溯源的。分散式ID的出現已有超過20年時間,有UID、snowflake和ObjectID等方法可用。

 

區塊鏈由於採用Hash函式作為密碼學安全基礎,而Hash值正有不可溯源性、強抗碰撞性等諸多ID需要的特性,於是一拍即合,將身份上鍊,自然就會有獨一無二的數字ID。相比於上述方法,Hash的分佈隨機性與唯一性無疑是最佳的,而且溯源極其困難。

不過整個事情沒有這麼簡單,去中心化數字ID已經遠遠超出數字ID的範疇。我的理解,去中心化數字ID應該具有以下特徵:

 

  • 全過程去中心化,指不僅生成過程的分佈化,其資料的使用過程也是去中心化。

  • 不僅是簡單的ID等資料,可以將更多的個人資料進行去中心化儲存。

  • 可以通過數字ID對各項個人資訊進行互動與管理。

很明顯,單純賦予一個Hash並不能解決上面提到的種種特性

 

問題一:安全與許可權控制

這是所有數字ID專案必須面對和解決的問題,如果資料的安全性不能保證,那麼就不可能有應用空間。區塊鏈本身具有不可篡改性,上鍊的個人資訊不會被輕易增加刪除與篡改。但區塊鏈仍然有多種攻擊方法需要應對。

 

Nothing-at-stake攻擊

 

在數字ID專案中,消耗巨大的PoW系挖礦並不被支援,更多采用的是PoS或者PBFT系共識。這些共識都存在一個問題:可以從過去的區塊進行挖礦,來延伸出一條比現有鏈更長的鏈,來將寫入的個人資訊進行篡改或者非法獲取。

 

Sybil攻擊

 

 

由於KYC的成本巨大,在公鏈數字ID專案中,產生虛假使用者進行攻擊變得可取,造成的破壞也更大。部分專案採用的是PBFT,PBFT對Sybil攻擊的抵禦不存在天生的防禦機制(不像PoW挖礦過程自動排除了偽造ID奪取記賬權的可能性)這個問題顯得更加嚴峻。PoS共識一樣可以抵禦Sybil攻擊,但因為容易造成貧富差距拉大,話語權落到少量持有大量籌碼的人手中而不符合數字ID公平性普惠性的預期。

 

 智慧合約漏洞攻擊

數字ID的相關授權很多都需要智慧合約作為基礎,而ERC20等智慧合約並不是天衣無縫,如果沒有對智慧合約進行安全檢測,對其漏洞進行事先防護,造成的後果將十分惡劣。報告表明目前已知智慧合約漏洞可能多達數千個。

 

如果是自主開發智慧合約,還存在程式碼注入等問題。由於人力的限制,在經過長期驗證之前一般都會有難以發現的bug,在bug爆發之前很難預測bug造成的危害範圍與後果。

 

問題二:資料保護

個人隱私保護是數字ID技術的重中之重,它大致分為兩個方面:資料呼叫過程中的隱私保護和資料處理過程的脫敏保護。

 

資料呼叫的過程中,由於區塊鏈本身只是偽匿名性(或者說只有化身),對於身份經常呼叫的人/可能重要的人,其資料很可能會受到監聽,導致資料的洩露。

 

除此之外,一個現實的事情在於,雙方提供的資訊,往往為了保證資料的可靠性而造成資料提供的冗餘,這也在一定程度上洩露了資訊。舉個例子,提供身份證驗證ID的時候實際上地址往往是不需要提供的資訊,這就造成了居住地的洩露——雖然一般不會造成問題。

 

為此,常見兩種思路:一是零知識證明,二是環簽名。零知識證明可以解決多餘資料洩露的問題,而環簽名則在概率上減少了身份洩露的問題。

零知識證明的概念比較拗口,簡要來說:

  • 正確的事實總有極大概率被證實。

  • 錯誤的事實僅有極小概率能成功矇騙。

  • 除了事實的對錯,其他一無所知。



     

在區塊鏈中的應用目前有兩種:一是zk-SNARK,利用zk-SNARk可以保證在驗證過程中,驗證者除了知道證明者的陳述是正確有效的,不能學習到任何關於該論述的內容,同時不需要反覆互動。二是Bulletproof,與SNARKs或STARKs相當,不過它們原生支援橢圓曲線。此外,與SNARK不同的是,Bulletproofs在典型的計算機硬體上足以快速證明和驗證合理大小的問題。

環簽名相對簡單,每次將傳送者的地址和其他人的地址通過公鑰進行混合,構造一個多重簽名,以這個多重簽名進行資料獲取。環簽名的意思來源於將多個地址構造成環狀結構進行簽名而得。環簽名可以將監聽者所需要監聽的目標群體擴大,從而大大降低猜出真正傳送者的概率。當然,環簽名還存在合約付gas的真正付費者問題。

 

問題三:隱私資料脫敏

資料脫敏這個問題在現實中就存在。很多地方對個人資訊進行打*處理,但打得不好或者將相似人員列在一起時可以從中窺測出不該公開的資訊,這就是資料沒有成功脫敏。資料脫敏的目的是去掉暴露資訊和模糊可能會導致暴露的資訊,通常的方法是歸類和壓縮。

對於大型資料庫,常見k-anonymity、l-diversity和t-closeness。T隱私方法效果最佳,但定義t難度較大,前兩者往往還是有隱私暴露的威脅,但相對容易實現。

近年來出現的新方法是差分隱私。差分隱私是一種比較強的隱私保護技術,滿足差分隱私的資料集能夠抵抗任何對隱私資料的分析,因為它具有資訊理論意義上的安全性。

差分隱私的目標是這個問題:1個人的資料因受到保護而無法得知,但通過獲取50個人和除目標外其餘49人的資料,將兩者進行差分處理就得到目標資料。在差分隱私之下,由於適當噪音的存在,50個人和49個人的資料差別將無法得出,從而保護了單一目標資料的安全。不過現階段差分隱私還需要技術實用化的推進。

 

問題四:儲存結構與成本

 

儲存結構的問題在這些問題中是最簡單的,因為區塊鏈本身就可以給出一個儲存資料的區塊結構。不過對於擴充套件數字ID(即不只是基礎資訊,還將大量個人資訊均儲存在一個ID下,列為子項)的情況,仍然需要專門的儲存結構。

 

BTC的PoW挖礦機制天生不適合數字ID這類需要普惠性的專案,同時交易費用之高導致即使資料儲存在交易附加欄位中也無法接受——每條資訊20美元。ETH確實能提供相應的儲存資源,但高昂的gas和有限的TPS導致它無法承擔大量數字ID資料的上傳需求。中心化儲存機制的成本固然較低,不過它還算去中心化數字ID麼?更重要的是如果資料庫被攻擊,那和其他中心化數字ID並無本質區別。如果不找到足夠廉價而安全的去中心化儲存平臺,那麼去中心化數字ID專案將成為無本之木。

 

去中心化儲存

一般的去中心化儲存有IPFS、SIA和Storj等專案。它們都有一個特點:礦工提供儲存空間來挖礦,提供給使用者的空間費用很低

 

採用去中心化儲存最重要的原因是通常的Http域名中檔案存在隸屬於域名。網站資料庫搬家或者網站關停都會直接導致檔案損失。同時中心化伺服器存在頻寬限制,在大量需求下顯得捉襟見肘。伺服器本身也易被攻擊。

 

SIA和Storj更接近應用層面,可以看作區塊鏈+BitTorrent。資料在付費後切片儲存於礦工提供的雲端硬碟上,以Hash值進行標記,並儲存若干份。這樣資料即使受到攻擊也能恢復,同時P2P網路在需求越大下速度越快,能夠突破中心伺服器。

 

而IPFS則是偏向基礎層面,希望替代Http作為新一代超媒體互動協議。它將GitBitTorrent SFS和DHT等多種功能整合並組合成一個整體系統。

 

特別值得一提的是DHT,分散式Hash表。Kademlia作為一個成熟的DHT,可以將資料的Hash異或處理後構建一棵樹,使查詢效率提高到O(logn)。S/Kademlia則加強了對Sybil攻擊的抵抗力,同時提高誠實節點間的連線效率。這不僅用於IPFS,數字ID的儲存也可以採用類似架構。

 

To be continued

 

動態回顧

 

 

掃描二維碼,新增官方微信小助手

 

DREP_Foundation(小助手)

輸入連結,瞭解更多DREP官方資訊

官網: www.drep.org

Medium: bit.ly/2sAtSqS

Linkedin: bit.ly/2sygh3r

Twitter: bit.ly/2JaGWL0

Telegram中文社群:https://t.me/drep_china

Telegram全球社群:https://t.me/drep_foundation

Steemit: bit.ly/2lEH8rD

Reddit: bit.ly/2yShJEh

新浪微博: http://weibo.com/u/6611430468