微眾銀行區塊鏈張開翔:區塊鏈上隱私保護的挑戰和應對

買賣虛擬貨幣

近日,微眾銀行區塊鏈首席架構師張開翔做客香港人工智慧與機器人學會HKSAIR《AI金融》系列線上講座,以“區塊鏈上隱私保護的挑戰和應對”為主題,探討區塊鏈如何為資料隱私和資訊開放構建一座天平。

以下為張開翔演講全文,雷鋒網《AI金融評論》做了不改變原意的整理:

我是微眾銀行的張開翔,我們團隊從2015年開始研究區塊鏈。

在講區塊鏈和隱私保護之前,先簡單過一下區塊鏈的概念和分類。

首先,真正的區塊鏈必須是在分散式網路上的。區塊是有序號、有高度,一個區塊接一個區塊地互相依賴生成,這樣可以做到資料的嚴格校驗,不丟、不錯、不亂。再用密碼學來校驗資料的穩定性、可靠性、完整性。

下面兩層加起來,更像一個分散式資料庫或分散式網路。行業裡有個玩笑,說它是最慢的分散式資料庫。像比特幣的TPS就是7(筆/秒),以太坊大概是10+。我們聯盟鏈其實還是快很多,單鏈TPS目前是兩萬左右。這裡就涉及到效能最佳化的課題了。

分散式這麼慢,它還有什麼價值?它的價值就在於多方協作。

區塊鏈的靈魂與核心是什麼?共識。沒有多方智慧合約與共識演算法來達成透明、高效、可信的合作,那它就只是個分散式資料庫。

那多方合作是為了什麼?肯定是為了資產交易,資料分享。計算和資料共享基於智慧合約透明的規則,大家共同執行,這就是區塊鏈。

區塊鏈的基本特性是什麼?介紹隱私保護之前,我們先來了解區塊鏈怎麼組織這些資料和規則。

首先,在每個節點裡,都有相同的區塊的資料結構。簡單來說,就是每個block裡都包含一批交易。每個交易可能體現的是一次資產轉移,比如a給b轉了100塊錢。

這個交易必須是事務性的,交易執行結果在所有節點上一致,怎麼做到這一點?即透過共識和資料同步,意味著所有資料都會存到鏈上所有節點。

如果這個連結入了10個節點,資料存了10份一模一樣的;如果是1萬個節點,那資料存了1萬份,它也是一模一樣的,一個位元組不錯、不丟,說明所有人都可以看到這個資料,也能驗證資料。

(如果)有少量的人篡改資料,其他人可以透過共識和驗證來拒絕修改,並且在發現修改之後懲戒篡改者。

所以,區塊鏈可以達成這樣幾個效果:

第一,資料難以篡改。要改,則必須算力達到50%以上,或者與鏈上所有或大部分共識記賬節點串謀,還是可以做到篡改,但這非常難,幾乎不可能實現。

第二,規則透明。因為智慧合約在所有列的節點上是同樣的虛擬機器和程式碼,對同樣的輸入執行結果肯定是一樣的,是可驗證的。

第三,可追溯。既然大家都有所有資料,而且資料是含括了block 0到block最近高度,這就意味著可以追溯。

因為以上幾點,從而達成了區塊鏈最重要的特點——信任。但是,任何事情都具有兩面性。

說到區塊鏈上的隱私挑戰,首先定義一下隱私是什麼?你的個人資料和資訊是隱私:除了你有多少資產、銀行存款、不動產等,還包括你跟誰交易,也就是銀行流水。

我之前遞交出國簽證申請,需要附上最近半年銀行流水和交稅記錄。當時我很詫異,也很難接受,我覺得這些交易關係是我的隱私資料。

從流水中的交易資訊,可以分析出交易時間、地點、交易物件、常用的交易型別是零售還是轉賬,這些都是你的行為模式。

現在所謂的大資料營銷,更多的就是基於你的身份、擁有資產、交易關係、交易頻率、行為模式等資訊,來對你進行使用者畫像,分析出你的習慣喜好。

還有一種是大容量資料檔案,在商業場景較為常見。比如刷臉會留下影片,籤合同會留下PDF檔案,大量使用者行為產生一堆大資料集,這其實都是隱私的、個人的、商業的資料。

所以,隱私是立體化的,它包含很多維度,各種場景、時間、行為都會產生隱私資料。

區塊鏈上隱私保護的實現

那區塊鏈上的隱私是怎麼表達的呢?

以前,大家都說比特幣和以太坊本來就是隱私的,但它隱私基礎的重點是匿名。在比特幣、以太坊上轉賬,用的是一個私鑰和私鑰生成的地址,並不包含使用者聯絡電話、真實姓名、郵箱等個人資訊,大家看到的就是一串密碼串。

比特幣網路的建立者中本聰,到現在也沒有人知道他是誰。聽起來這是一個很成功的隱私保護方案。但是,如果你不注意私鑰保管,或者自己把地址公佈到某個論壇上,讓別人去給你轉賬,那就意味著這個地址在論壇上跟你的賬號繫結了。

如果你參與了某種交易所,登陸交易所需要個人手機號註冊、上傳身份證,這時你的地址就跟身份繫結;又或者是透過反洗錢、反恐融資策略——總之可以利用一些方法,將賬戶跟你的個人身份聯絡上。

從技術手段來看,IP對映是指無論你在哪臺計算機,發出哪個通訊包,只要能被抓包下來,就可以分析包裡的很多資訊,對映到你這臺電腦,獲取你的賬號、地址等。社工分析也可以基於你論壇上的行為、個人朋友關係、動賬的交易關係進行跟蹤。如上圖所示,只要轉賬,就有關係網,這都是公開可追蹤的。

區塊鏈的特徵是透明、共享、可追溯、廣泛參與:

透明就意味著拓展了資訊暴露的維度;

共享就意味著增加了資料儲存的位置,所有節點都儲存資料;

可追溯就意味著你的隱私資料儲存可能是永久的,並不是儲存一段時間後就刪掉丟棄,延長了隱私儲存時間,就很難被遺忘;

廣泛參與,是說區塊鏈作為分散式網路,一定是有各方共識的,這時,參與的網路裡就可能有短板,而公開的網路環境更容易摻入非信任角色,聯盟鏈在這一點上相對會好些。

所以,區塊鏈其實帶來了更大的隱私挑戰。有種說法是區塊鏈大量使用了密碼學,所以它是可信可驗證的,但其實這裡的因果關係要調換一下——是因為區塊鏈本身追求公開透明,為了在公開透明的基礎上達成信任和驗證,才要引入更多密碼學演算法。

在工作中,我們會遇到很多靈魂拷問:

作為一個金融機構,每天的交易資訊都是透明的嗎?

怎麼做到上鍊的資料可驗證,但又不被看到,更不會被竊取?

資料上鍊後,能不能刪掉?

加密資料會不會被暴力破解?

現在都用橢圓曲線、RSA演算法、對稱非對稱加密,用很長的金鑰來保護資料。從數學理論上來說這些都可確保資料安全,但量子計算出來之後該怎麼辦?

……

個人認為,量子計算技術成熟到應用可能還沒這麼快,目前來看,量子計算的形態可以交換金鑰,但想要處理和破解大量資料還是比較難。

可是,對金融業來說,如果資料保留二、三十年,甚至永久保留,即使使用長金鑰加密,鏈上資料也可能被破解。父親的資料被破解,影響了兒子,影響幾代人,(這種現象)理論上是存在的。

當然,密碼學保護和攻擊的兩個陣營,是呈交叉螺旋上升式:你有矛,我就有盾,只是看矛和盾哪個硬,要用多少成本去保護資料。

隱私保護在實際場景中的應用金融典型場景一:風控

假設一個借貸服務,涉及多機構共同參與,這些機構聯合為借貸人提供資質證明和資金,這就意味著這些機構要投票判斷使用者信用、決定貸款利率等。

但金融有風控獨立的要求,就是a機構與b機構的規則應該是互相獨立、各自運作的,如果只有一套規則且全部透明就有可能被人猜到。

這還涉及到使用者隱私問題,比如使用者在a機構發生的交易資料,不應該直接交給b機構,a機構和b機構都應該用自己的資料和資料來對使用者進行判斷。這些都是隱私保護。

徵信和風控有相似之處,但其中的不同是徵信要用大量的、多維度的有效資料,涉及到社保、銀行、稅務各機構的多方參與。怎麼把不同維度、不同機構的資料連線在一起,整理出風控模型,這就自然而然聯想到聯邦學習。

金融典型場景二:資產流轉

下圖左側展示的場景類似二級市場:有發行、代理銷售,代理機構a不希望代理機構b知道自己的代理情況,使用者不希望別人知道自己買入賣出,這都是個人賬務資產變化,屬於隱私資訊。

隱私保護策略,哪個更好?

現在確實有很多隱私保護的策略,像是零知識證明、安全多方計算、可信硬體環境、全同態密文計算等,還有相關規範標準,那是不是就能完整保護隱私了?我的觀點是,每種隱私保護策略各有所長,各有所短,它的長短可能都體現在效能、功能、複雜度和中心化程度上。

零知識證明和安全多方計算,就是隱私保護的核武器,非常有潛力。

但其也有侷限,比如零知識證明重點在於證明一個事物的有效性,而不在於運算,但使用者的賬目、風控模型都涉及計算。

安全多方計算是可以用於聯合計算,但現在它處在從兩方向多方發展的階段,多方安全解決起來比較困難,牽涉成本、計算量、複雜度。

我們都知道,手機有個安全區,把金鑰保護在安全區可以降低安全風險——但一個大企業把成千上萬的資料保護在安全區,就相當於完全依賴安全區。安全軟硬體依舊會有漏洞,還是要及時升級,總的來看,依賴硬體體系的反應速度會比較慢。

同態非常有趣,兩個密文相加得到一個密文,密文解密之後是這兩個密文對應的明文相加的結果。它可以用於多種情況的賬目計算,但只能計算,很難驗證,也就是計算結果如果是錯的,在密文情況下無法得知。

而且,現在同態一般是用於加法計算,乘法計算的速度比較慢。另外,同態的資料量如果是比較大,那麼其資料膨脹和運算速度降低就會非常明顯。

群/環簽名,它很輕也有不錯的效能,但主要面向身份,不面向資料。

規範和標準,依賴很多鏈外管理手段,比如懲罰、司法追責。我們要把這些手段全部綜合起來,在效能、功能、複雜度和中心化中取平衡,在不同的場景下揚長去短,來達到成本和效果的最優。那就要求從多維度考慮隱私保護,它是個立體的場景化問題。

身份、資產、交易,這是我們要保護的基本資訊。

首先,這些資訊是否可見?如果連資料都碰不到,那沒辦法利用這些資料做任何事情。

其次,能看到之後,我們能不能使用?如果看到的是一串密文,那無法使用,還可以運用混淆、脫敏的方式來保證這些資訊不完整性。例如,有賬戶資訊,但沒有身份資訊,這樣就無法被利用。

比如,密碼學有個密碼信封,只有信封金鑰的人才能開啟。又或者是使用很多方式,比如一次一密的假名,來防止關聯,這樣就無法對使用者進行畫像,外人可以看到的只是孤立的資料,沒有辦法對使用者做什麼。

最後,就是你看到的資料能不能被控制。控制資料就是說,你們把我的賬轉給別人,改變我的屬性,我就要做許可權控制,做安全加密的安全策略和多方制衡。

正如前文所述,區塊鏈有個特點:如果你改資料,別人不同意,共識演算法不透過,我有拜占庭容錯,這就是一種多方制衡。

我們要達到幾個效果:看不見資料,不知道資料,不能改,但它在區塊鏈上依舊是可驗證、可監管。

這就是聯盟鏈的特點———要可監管、合法合規,這些要求要覆蓋鏈上整個生命週期,包括收集、傳輸、儲存、使用、遮蔽、銷燬。

生命週期的每個階段都有不同的特點,環境還牽涉網路、儲存、記憶體計算和雲,要用不同的技術手段去應對。所以我們的整個版圖還是很龐雜,圖上的底層就是各種各樣的隱私技術,並不是一兩個演算法、密碼承諾或者簡單的不經意傳輸就能夠涵蓋的。

從可見、可用、可控思維看區塊鏈

聯盟鏈治理

聯盟鏈跟公有鏈最大的區別在於,聯盟鏈有準入機制。所有接入聯盟鏈的人、機構、節點、身份都是可知的,接入前需向運營委員會申請。

委員會是多中心化的,並非單點。如果大家同意你加入這個鏈,給你分配了證書、公私鑰,就可以接入這個鏈。方式是發起連線。如果這個人或節點在鏈上有惡意行為,委員會還可以把他踢掉。

隔離

機構參與業務時,有可能和不同的人發生交易,作為機構,會希望這些人裡沒有交集,這樣同業的傾軋、資料洩露等情況都不會發生。

我們研發的底層平臺有一個群組架構,就是在區塊鏈上拉出一個區域性共識的獨立賬本。群組裡資訊互相隔離,群可以擴容,也就是你可以建立無數個群,覆蓋無數業務,這樣從效能、功能上來說都有極大好處。在不同的群、不同的鏈上的不同資訊需要互相驗證、打通,就走跨鏈的路徑,這項技術安全上是可控的。

角色隔離,首先要定義清楚,不同的人做不同的事情。有個術語叫DO分離,就是開發和運營分離,開發不能做運營的事情,運營也不用去寫程式碼。

擴充套件一下,就是建設、管理和使用是分離的,避免一個角色又當裁判又當運動員,以免他觸達太多資料,可能會侵害隱私,這就是整個聯盟鏈的角色分層理念。

剛才說到了節點、人、許可權的隔離,再看資料隔離。我經常被問到一個問題:要傳輸一個檔案,能不能上鍊共享,但同時上鍊後不讓所有人都看到這個檔案?這時,可以將檔案加密再放上鍊。

還有一種檔案不需要上鍊的方法,鏈上儲存的是一些標識或URL,是一些雜湊,它們相當於檔案的指紋。透過鏈上鍊下結合:鏈上建立雜湊指紋,鏈下傳輸檔案,使用者可以在鏈上得到指紋,去驗證檔案。

如果檔案密級不高,可以用IFPS,但它是把檔案分片,依舊可以串謀幾個計算機把檔案分片聚集再拼出檔案。如果是密級較高,還是建議用自有儲存的方式。

交易隔離,鏈下有些私有交易,是高頻、小額、點對點的,可以放到鏈下,像閃電網路就是類似風格。這樣操作一方面可以提高效能和響應速度,更重要的是解決交易關係的問題。區塊鏈上的兩個人透過點對點網路溝通,完全可以不經過伺服器。所以點對點的過程是完全隱私的,只是最終產生了賬目,總賬裡不包含這種點對點交易的隱私資訊。

分散式標識協議(DID協議)

這個協議是由DIF(全球分散式身份基金會)與W3C(全球資訊網聯盟)國際標準化組織共同推進,目標是形成開放網路,大家統一身份、互聯互通,做到資料無縫共享和流轉。這種模型可以連線人、物聯網、資料,服務各種各樣場景,包括金融、政務、醫療。

它是非常開放且通用的標準,參與其中的使用者可以自行控制並擁有資料,這跟之前很多網際網路模型不太一樣。在網際網路模型裡,網際網路巨頭儲存所有資料,我們說的在“雲”上,(其實)都在別人機房裡。使用者只有一個登陸密碼,沒有管理和擁有資料的許可權。

這是非常重要的一點:使用者儲存、控制自己的資料,這個資料是一種憑據,從權威機構,或是使用者業務行為而來,它們不僅僅是資料,而是證明,是可信、可驗證的證明。

怎麼理解分散式DID協議?

首先,使用者要做KYC,比如刷臉,叫KYC生成標識。全域性唯一標識,標識的樣子就是密碼串。中間這條豎線左邊所有東西都是使用者自己持有和控制的,右邊是你要交出去的,中間就起到防火牆作用。

這裡有個隔離,誰找你要什麼資料,必須表明訪問策略,就像你的安卓手機安裝APP時,詢問你開啟攝像頭許可權,也就是使用者同意訪問策略,才會給出一個表述或披露。這個披露可驗證,但它是選擇性的最小化披露。

這就是隱私保護非常重要的模式:你儲存管理自己的資料,明示同意,經過批准、稽覈之後,挑選一些資料,把它生成一個密文證明,給到對方去認證。因為區塊鏈連線了權威機構、使用者、商家,所以在鏈上進行可信的驗證,就是區塊鏈和隱私保護的一個有機結合。

企業資料則涉及人、行為、業務的大量資料,如果要聯合做業務,就會考慮採用聯邦學習,在多家機構做到資料不出自己機構,還能夠訓練出一個有效模型。

這個模型就可以匯入區塊鏈上,鏈上的行為,風控、交易匯率、信用評級、定價等等,都可以採用聯邦學習訓練出的模型,非常有意義。

不同目標要採用不同的演算法,比如收集大量的資料,要做差分隱私;為了防止畫像而做假名化;資料脫敏再做同態加密,彙總到雲上,這都是大批次的群體資料演算法,適用於大資料探勘以及聯邦學習等。

再來看看身份隱秘,其適用在匿名支付、匿名投票、匿名競拍場景。如果可以匿名,又可監管的話,使用者就不用擔心自己的投票行為會招致別人非議。

資料隱秘,資產裡的數字、交易行為,都是資料。支付、投票、競拍,這都是場景。其中可能用到包括同態加密,零知識證明、安全多方計算、TEE等技術。這一系列的技術怎麼為業務所用?

前面提到這麼多隱私保護策略、資料維度和演算法,一個場景不太會每個技術都用到,所以我們把這套技術整合成開發包方案,覆蓋從業務層、服務層、區塊鏈到智慧合約的整體架構,不同的客戶端用不同的金鑰,使用SDK和模板工具生成場景所需的隱私保護工程和策略。

值得一提的是,每個人的隱私偏好有所不同,但我們是以最嚴厲的隱私保護標準來做的,這樣對整個生態的未來才是健康的。我們的技術也是開放的,包括區塊鏈,絕大部分都是開源易用的,可以適配很多場景。

總結一下:隱私保護,機會和挑戰並存。隱私保護是立體化策略,去設計一個通用的隱私保護策略其實很難,我們現在做的是針對大量場景做有效實現,也歡迎大家一起研究實踐,一起達成技術、業務以及整個生態價值的突破。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;