亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        公有鏈上數(shù)據(jù)如何保護?

        2019-01-02 08:24:52賈音
        信息安全與通信保密 2018年12期
        關(guān)鍵詞:合約比特密鑰

        賈音

        (摩石實驗室技術(shù)專家)

        1 引言

        2017年對于區(qū)塊鏈技術(shù)來說是不平凡的一年。人們通過ICO對區(qū)塊鏈項目募集了數(shù)百億資金,極大地壯大了數(shù)字貨幣的規(guī)模。隨著它被廣泛應(yīng)用,區(qū)塊鏈技術(shù)在金融、醫(yī)療等諸多應(yīng)用場景下都顯示出了它的價值和優(yōu)勢,尤其是公有鏈。然而,區(qū)塊鏈技術(shù)尚不成熟,公有鏈在應(yīng)用時還有很多缺陷和問題,如可擴展性、數(shù)據(jù)的隱私性、鏈上數(shù)據(jù)來源的可靠性、智能合約的安全性等,這些問題極大地阻礙了公有鏈技術(shù)的進一步發(fā)展。本文主要對公有鏈上的數(shù)據(jù)如何保護的問題進行探討,參考學(xué)術(shù)界提出的尚未落地的解決思路,結(jié)合工業(yè)界目前已得到應(yīng)用的解決方案,對該問題進行總體的介紹。

        在公有鏈技術(shù)中,每個節(jié)點都可以按照自己的意愿隨時地加入、退出區(qū)塊鏈網(wǎng)絡(luò),網(wǎng)絡(luò)中的全節(jié)點都可以獲得一份完整的賬本數(shù)據(jù)。這就意味著,公有鏈上的所有數(shù)據(jù),如普通的轉(zhuǎn)賬交易、部署的智能合約、合約的內(nèi)部存儲等都是公開的。無論是企業(yè)還是個人,他們都不會樂意將自己的重要數(shù)據(jù),如電子醫(yī)療記錄、交易記錄、業(yè)務(wù)往來信息等公開到區(qū)塊鏈上。因此,如何對公有鏈上的數(shù)據(jù)進行保護,成為公有鏈技術(shù)發(fā)展所面臨的一個重要問題。

        根據(jù)公有鏈上保存的數(shù)據(jù)類型,我們把需要保護的數(shù)據(jù)分為以下兩類:無格式數(shù)據(jù)以及需要進行邏輯運算的數(shù)據(jù)。下面我們將分別介紹針對這兩類數(shù)據(jù)的保護方案。

        2 無格式數(shù)據(jù)及其保護

        無格式數(shù)據(jù)是指保存在區(qū)塊鏈上的,對數(shù)據(jù)格式無要求、無需進行有效性驗證的數(shù)據(jù)。這類數(shù)據(jù)在公有鏈上僅僅是作為交易數(shù)據(jù)中的一個額外字段而存在,如Zcash中的memo域以及Neo中的交易屬性字段。這些字段可以保存一些附加的信息,如交易的備注、發(fā)送方想要告知接收方并將其保存在區(qū)塊鏈上以作存證的信息等。由于這類信息無具體的格式要求、有效性要求,并且面向的群體比較有限,因此可以直接加密,并通過在群體之間共享密鑰的方法來保證消息的可用性。由于這類方案的思路大致相同,我們以Zcash為例來詳細地論證方案的實施過程。

        Zcash中的貨幣以票據(jù)Note的形式存在,Note=(apk,v,ρ,r),其中v表示金額,ρ,r 是兩個隨機數(shù)。交易的發(fā)送方A在向接收者B轉(zhuǎn)賬的時候,需要為接收者B生成新的隨機數(shù)ρ',r',同時需要將這兩個隨機數(shù)告知B,并且不能被其他無關(guān)人員得到。因此,發(fā)送方A會根據(jù)以下方案與接收方B共享密鑰,并使用密鑰來對隨機數(shù)ρ',r',以及備注信息memo進行加密,其具體過程如下:

        (1)加密

        A隨機生成一對密鑰協(xié)商方案的密鑰(epk,esk),然后根據(jù)以下公式生成一個共享秘密,其中pkB為B的公鑰:

        接著,根據(jù)共享的秘密,B的公鑰和一些其他信息,利用密鑰提取函數(shù)KDF生成加密密鑰K,最后使用對稱加密方案來對P進行加密。

        最終傳輸?shù)拿芪募礊?epk,C)。

        (2)解密

        B收到密文(epk,C)之后,首先計算出共享的秘密,其中skB為B的私鑰:

        然后,利用相同的方法計算解密密鑰K,最后使用解密算法對密文C解密:

        由上述過程可以看出,對于鏈上保存的無格式數(shù)據(jù),使用基本的密鑰協(xié)商、加密方案就可以滿足數(shù)據(jù)保護的要求。接下來我們主要介紹需要進行邏輯運算的數(shù)據(jù)在公有鏈上如何保密。

        3 邏輯運算的數(shù)據(jù)及其保護

        保存在公有鏈上的,需要進行某種邏輯運算的數(shù)據(jù)包括:普通的交易數(shù)據(jù)、智能合約的輸入、存儲以及合約本身。對于這類數(shù)據(jù),需要網(wǎng)絡(luò)上的節(jié)點根據(jù)預(yù)先定義的規(guī)則對數(shù)據(jù)進行驗證或運算,如對交易數(shù)據(jù)的有效性進行驗證,對智能合約進行驗證、對發(fā)送給智能合約的數(shù)據(jù)進行運算,并對存儲進行更新等。對于這類數(shù)據(jù)而言,不能通過簡單的加密來達到保護的目的。依照區(qū)塊鏈技術(shù)的不同發(fā)展階段,我們將這部分?jǐn)?shù)據(jù)分為兩類,第一類是以比特幣等數(shù)字貨幣為代表的交易數(shù)據(jù),第二類是以以太坊等平臺為代表的智能合約的相關(guān)數(shù)據(jù),接下來分別介紹這兩類數(shù)據(jù)的保護方式。

        4 比特幣等數(shù)字貨幣的基本交易數(shù)據(jù)

        區(qū)塊鏈技術(shù)發(fā)展初期,主要應(yīng)用集中在以比特幣等為代表的數(shù)字貨幣。對于這類區(qū)塊鏈應(yīng)用,鏈上數(shù)據(jù)主要是一些基本的交易數(shù)據(jù)。以比特幣的UTXO模型為例,其基本數(shù)據(jù)格式如圖1所示:

        圖1 比特幣的數(shù)據(jù)格式

        可以看出,一條基本的交易數(shù)據(jù)包含了上一次未花費輸出的交易號、序號,以及發(fā)送者的完整公鑰,發(fā)送金額,為接收者設(shè)置的鎖定腳本,以及對整筆交易的簽名。由于網(wǎng)絡(luò)上的其他節(jié)點在收到這筆交易后需要對交易進行有效性驗證,即驗證交易的輸入是否合法,簽名是否有效,輸入輸出是否平衡等,簡單地對交易數(shù)據(jù)加密后會造成交易有效性無法得到驗證。因此,需要一些其他的方法,從不同角度、不同程度上對數(shù)據(jù)進行保護。

        目前的保護方法可以分為兩類:一類是從工程角度出發(fā),采用一些原理簡單、便于實現(xiàn)和應(yīng)用的方法,如比特幣的Coinjoin機制,達世幣的匿名發(fā)送機制,以太坊的狀態(tài)通道機制等;另外一類是基于一些比較高級的密碼學(xué)工具,如環(huán)簽名、零知識證明、同態(tài)加密,以及一些困難問題如橢圓曲線離散對數(shù)問題等從本質(zhì)上對數(shù)據(jù)保護方式進行改進,同時又不影響交易的可驗證性,但這類方案實現(xiàn)成本較高,同時也帶來了效率方面的損失。

        4.1 工程方面的解決思路

        工程方面的解決思路著重于考慮方案的易用性和應(yīng)用效率,因此往往會在其他方面有一些犧牲,如保護強度、去中心化等。

        比特幣的Coinjoin機制的基本思想是,如果你想要發(fā)起一筆支付,那么就去找一些跟你一樣的人,然后做一筆聯(lián)合支付。

        如圖2所示,聯(lián)合交易的輸入來自三個人,輸出也由這三個人組成,同時他們先后對于這筆聯(lián)合交易進行簽名,保證了沒有人能夠改變交易的輸入輸出。并且,根據(jù)這筆交易,任何無關(guān)方無法推斷出哪個地址屬于哪個參與方,保證了資金的不可追蹤性,并為交易帶來了一定的匿名性。

        圖2 比特幣的Coinjoin機制

        達世幣的匿名發(fā)送是基于比特幣的Coinjoin機制構(gòu)造的,只是增加了一層主節(jié)點幫助需要參與方進行聯(lián)合交易。同時引入了“鏈?zhǔn)交煜?,即允許經(jīng)過最多8個主節(jié)點來對資金進行多次混淆,降低單一主節(jié)點作惡對交易匿名性的影響。

        以太坊的狀態(tài)通道技術(shù)是為了解決以太坊的網(wǎng)絡(luò)處理能力而存在,隱私保護只是它的一個附加功能。它的主要思想是把大量高頻、小額的交易放到鏈外處理,只有初始創(chuàng)建通道和最終結(jié)算的交易需要在鏈上進行。這樣就保證了只有初始狀態(tài)和最終狀態(tài)為無關(guān)方所知,而中間狀態(tài)只能被交易參與方所掌握。

        4.2 密碼學(xué)工具的運用

        與工程方面的解決思路不同,利用密碼學(xué)工具來實現(xiàn)數(shù)據(jù)保護的方案則力求對數(shù)據(jù)實現(xiàn)本質(zhì)的保護,因此往往能夠提供較好的保護強度,但對方案的效率、易用性影響較大。

        CryptoNote協(xié)議引入可鏈接性環(huán)簽名和一次性地址技術(shù)來力求增強比特幣的匿名性,后來一些數(shù)字貨幣如ByteCoin,門羅幣等都是基于該協(xié)議構(gòu)建的。

        環(huán)簽名方案最早由Rivest等人提出,他們將可能的簽名者集合定義為一個環(huán)。環(huán)簽名的好處在于,簽名者只要拿到所有環(huán)成員的公鑰及自己的私鑰即可產(chǎn)生環(huán)簽名,而無需其他成員主動配合。同時驗證者拿到該簽名,只能判斷該簽名是由這個環(huán)產(chǎn)生的,但不能定位到具體的簽名者??涉溄有原h(huán)簽名則是指如果一個人先后用自己的同一個公私鑰進行了兩次環(huán)簽名,那么這兩次簽名就可以被鏈接起來,指向同一個人。在CryptoNote協(xié)議中,可鏈接環(huán)簽名既可以將交易的發(fā)送地址隱藏在一個環(huán)里,讓人無法根據(jù)區(qū)塊鏈上的交易數(shù)據(jù)判斷交易的發(fā)送方,同時也通過可鏈接性來防止雙花。

        一次性地址技術(shù)則利用了橢圓曲線上離散對數(shù)的困難問題。在交易時,發(fā)送者A可以為接收者B隨機生成一個隨機數(shù)r,并根據(jù)B的地址計算出一個一次性的交易地址,同時將R=rG(橢圓曲線上的點)隨交易信息一起發(fā)送給B。這時,B收到該筆信息,可以利用自己的私鑰以及R的信息將一次性地址對應(yīng)的私鑰計算出來,從而隱藏了真實的接收地址。

        零知識證明系統(tǒng)即為知識復(fù)雜度為零的證明系統(tǒng)。簡單來說,這種證明系統(tǒng)所具有的功能有兩個,一是證明者能夠向驗證者證明某個斷言(如果它為真),二是在整個證明過程中,證明者沒有向驗證者泄露任何額外的信息。因此,從驗證者的角度出發(fā),該系統(tǒng)想要實現(xiàn)的功能是,驗證者所接收到的零知識證明的效果等同于一個可信第三方直接告訴驗證者該斷言為真,如圖3所示。

        圖3 零知識證明的一個圖解

        早些的零知識證明系統(tǒng)都是基于交互式證明系統(tǒng)的模型,即證明者和驗證者之間必須經(jīng)過至少一輪的交互。然而隨著研究的深入,在1988年,Blum等人指出,通過在證明者和驗證者之間共享一個公共字符串,就可以在無交互的情況下實現(xiàn)計算性的零知識證明系統(tǒng)。Zcash所使用的zk-snark即是基于這種公共字符串模型,它允許在證明者和驗證者無交互的條件下,通過由第三方預(yù)先生成的系統(tǒng)參數(shù)(包括證明密鑰、驗證密鑰等信息),來實現(xiàn)零知識證明。

        在Zcash中,保護交易的數(shù)據(jù)格式有所變化,一筆資金使用票據(jù)Note=(apk,v,ρ,r) 來表示。在花費時,發(fā)送方只是公布由Note單向計算出來的否決值,以及為接收方新生成的票據(jù)的承諾值。同時,他還需要提供一個證據(jù),來證明所花費的資金之前已被正確構(gòu)造,同時他擁有相應(yīng)的花費權(quán)限,并且他為接收者生成的新票據(jù)也是按照規(guī)則合法構(gòu)造的。這個證據(jù)由zk-SNARK方案產(chǎn)生,可以幫助網(wǎng)絡(luò)上的其他節(jié)點在不知道詳細交易信息的情況下驗證交易的有效性。

        同態(tài)加密是指,對明文進行某種運算后的結(jié)果,等同于對相應(yīng)密文進行某種運算后再解密的結(jié)果。因此,同態(tài)加密方案允許對交易金額進行加密,同時通過在密文上進行運算來判斷交易的輸入輸出是否平衡,也即輸入輸出的金額是否相等。這種同態(tài)性思想在門羅幣的環(huán)形機密交易中得到應(yīng)用,能夠較好地保護交易的金額。

        5 以太坊等智能合約平臺的相關(guān)數(shù)據(jù)

        隨著區(qū)塊鏈技術(shù)的不斷發(fā)展,比特幣基于腳本語言所提供的可編程性給其上應(yīng)用程序的開發(fā)帶來了限制,以太坊是第一個圖靈完備的分布式智能合約系統(tǒng)。基于此系統(tǒng),企業(yè)和愛好者可以構(gòu)造各種各樣的智能合約應(yīng)用,如市場預(yù)測、供應(yīng)鏈等。此時由于區(qū)塊鏈上的數(shù)據(jù)不僅包括普通的交易數(shù)據(jù),還包括智能合約相關(guān)的輸入、存儲以及合約本身,因此隱私保護就變得更加困難。

        Hawk率先從理論層面對這個問題進行了解決,它仿照Zerocash協(xié)議,使用零知識證明來進行構(gòu)造。該系統(tǒng)由三部分組成,用戶、程序員以及代理人。程序員無需具有專門的密碼學(xué)知識,Hawk編譯器會將程序員編寫的程序編譯成用戶與區(qū)塊鏈之間交互的密碼協(xié)議。代理人不是一個可信第三方,他只需要被信任不會泄露用戶的隱私數(shù)據(jù),并且當(dāng)他有惡意行為時,系統(tǒng)會對其進行懲罰并對相關(guān)用戶進行補償。

        Hawk在Zerocash基本的鑄幣、消費過程的基礎(chǔ)上,加入了合約的計算過程。當(dāng)用戶需要執(zhí)行某一計算時,會將加密后的輸入數(shù)據(jù)、金額,以及一個相關(guān)證明發(fā)給代理人。代理人解密后,按照合約的定義計算輸出,并將輸出再次加密,同時提供一個該過程被正確計算的證明,最終記錄在區(qū)塊鏈上,實現(xiàn)資金、存儲狀態(tài)的記錄。

        6 總結(jié)

        本文針對區(qū)塊鏈上數(shù)據(jù)如何保護的問題,對現(xiàn)有的解決方案進行了梳理,并對方案中所涉及的密碼學(xué)知識進行了簡單的介紹。區(qū)塊鏈技術(shù)由于它自身提供的不可篡改、不可偽造、去中心化等優(yōu)勢,近幾年吸引了社會各行各界的廣泛關(guān)注,在金融、能源、供應(yīng)鏈等領(lǐng)域也逐漸有了應(yīng)用案例。然而,區(qū)塊鏈技術(shù)在發(fā)展過程中也暴露出了一些問題,如可擴展性、合約的形式化驗證、隱私保護等,這些問題在一定程度上制約著區(qū)塊鏈應(yīng)用的蓬勃發(fā)展。同時,業(yè)內(nèi)學(xué)者和工程師們也在不斷摸索著前進,相信未來這些問題得到進一步的解決之后,區(qū)塊鏈技術(shù)一定能得到更好的應(yīng)用和發(fā)展。

        猜你喜歡
        合約比特密鑰
        探索企業(yè)創(chuàng)新密鑰
        密碼系統(tǒng)中密鑰的狀態(tài)與保護*
        一種對稱密鑰的密鑰管理方法及系統(tǒng)
        比特幣還能投資嗎
        海峽姐妹(2017年10期)2017-12-19 12:26:20
        比特幣分裂
        基于ECC的智能家居密鑰管理機制的實現(xiàn)
        比特幣一年漲135%重回5530元
        銀行家(2017年1期)2017-02-15 20:27:20
        蘋果封殺比特幣應(yīng)用另有隱情?
        合約必守,誰能例外!——對“情勢變更”制度不可寄于過高期望
        亚洲一区二区三区中国| 大陆啪啪福利视频| 国产精品99久久久久久98AV| 日韩成人精品一区二区三区| 亚洲中文字幕国产剧情| 亚洲国产精品高清一区| 亚洲国产成人一区二区精品区| 欧美aa大片免费观看视频| 亚洲精品视频久久| 丰满人妻AV无码一区二区三区| 精品av一区二区在线| 凌辱人妻中文字幕一区| 男女裸交无遮挡啪啪激情试看| 99久久人妻无码精品系列蜜桃| 成人性生交大片免费看7| 午夜免费观看国产视频| 国产精品99无码一区二区| 国产女精品视频网站免费| 亚洲中文字幕精品一区二区| 日本a级免费大片网站| 久久久久九九精品影院| 日韩欧群交p片内射中文| 粗大的内捧猛烈进出在线视频| 精品国产一区二区三区香蕉| 中文字幕久久人妻av| 久久久精品人妻一区二区三区游戏| 麻豆免费观看高清完整视频| 草草网站影院白丝内射| 日韩熟女一区二区三区| 久久天堂精品一区二区三区四区| 寂寞少妇做spa按摩无码| 双乳被一左一右吃着动态图| 91精品欧美综合在线观看| 男女做那个视频网站国产| 97人伦影院a级毛片| 国产精品 高清 尿 小便 嘘嘘| 久久精品熟女亚洲av艳妇| 久久亚洲网站中文字幕| 亚洲精品一区二区三区麻豆| 日本老熟妇毛茸茸| 在线播放国产女同闺蜜|