主頁 > 區塊鏈 > 02 區塊鏈的安全和隱私

02 區塊鏈的安全和隱私

2021-10-16 09:40:29 區塊鏈

原文標題:Security and Privacy on Blockchain
原文作者:RUI ZHANG, RUI XUE,,LING LIU
原文地址:https://doi.org/10.1145/3316481
發表會議:2019 ACM Computing Surveys, Vol. 52, No. 3, Article 51
筆記整理:doxbwx@163.com

1.簡介

作者通過調研分析過去五年內數千篇區塊鏈論文中,發現有12篇關于區塊鏈的安全和隱私威脅的研究報告,發現大多數關于區塊鏈的安全和隱私研究都集中在兩個方面:

  • 揭示目前基于區塊鏈的系統所遭受的一些攻擊;
  • 提出使用一些最先進的對策來對付這些攻擊的子集的具體建議

作者描述了用于在線交易的區塊鏈的概念,并討論了區塊鏈的基本和額外的安全性和隱私屬性,然后討論一套相應的安全技術,尤其是加密解決方案,以實作基本和額外的安全目標,這篇調查文章的主要目標有以下兩點:

  • 為非安全專家提供一個入口點,以更好地了解區塊鏈技術的安全性和隱私屬性
  • 幫助專家和研究人員探索區塊鏈的前沿安全和隱私技術

2.區塊鏈概述

2.1 區塊鏈是如何作業的
位元幣網路中,客戶a想發送位元幣給客戶b,它將由客戶a創建一個位元幣交易,該交易得到礦工的批準后才由位元幣網路提交,那些礦工節點將把交易收集到一個區塊中,驗證區塊中的交易,并使用共識協議廣播區塊及其驗證,以獲得網路的批準,當其他節點驗證該塊中包含的所有交易都是有效的時,可以將該塊添加到區塊鏈,
下圖給出了這個程序的說明,只有當包含交易的“區塊”被其他節點批準并添加到區塊鏈時,從A到B的位元幣轉移才會最終確定并合法,區塊鏈是如何作業的
2.2 區塊鏈級別的交易模式
有兩種代表性的區塊鏈級交易模型:由位元幣引入的未消費交易產出(UTXO)模型和由以太坊引入的基于賬戶的交易模型,

  • UTXO模型:
需要滿足的條件
交易中每個被參考的輸入都必須由其所有者(發送者)簽名,并且尚未花費
如果交易有多個輸入,那么每個輸入都必須有與輸入的所有者相匹配的簽名
交易的輸入總價值等于或超過其輸出總價值

下面是UTXO模型的一個例子

如果Bob和Mary都給Alice發送了5個BTC,而Alice沒有花掉它們,那么就有5個BTC從Bob那里簽署給Alice,另外5個BTC從Mary那里簽署給Alice,如果Alice想把她的兩個單一的5BTC實體合并成10BTC的實體,Alice必須執行另一個交易,其方式類似于她需要把她的兩張5美元的鈔票換成10美元的鈔票

在線交易中適用UTXO模型有以下這些優點:

  1. 潛在的高度隱私,UTXO模型定義了一個資料結構,使每個用戶可以持有多個BTC實體,不像銀行的賬戶合為一個總金額,只需要在交易程序中揭示自己的實體,而不需要揭示賬戶的地址,
  2. 潛在的高度可擴展性,UTXO模型沒有用戶的賬戶概念,這消除了基于賬戶的交易模型的一些限制,交易之間可以平行,而不需擔心順序問題,
  3. 潛在的高安全性,UTXO模型為每個用戶的所有BTC實體維護了一個Merkle的所有權證明,可以解決雙重消費問題,

相應地,他也會有一些缺點:

如果Alice收到100個BTC,并希望向Carlo發送10個BTC,Alice必須通過創建兩個輸出來消耗100個BTC的輸出:10個BTC給收款人Carlo,90個BTC回傳給自己作為變化,

在這樣的一種情況下,可能會向觀察者泄露私人資訊,這也使得余額計算成為UTXO模型的一個核心特征,也是導致錢包復雜性的一個重要因素,盡管付款人可以并行應用交易,但由于需要嚴格執行總排序約束,如輸入的總和應等于或超過輸出的總和,因此很難實作真正的并行,

  • 基于賬戶的交易模型

通過基于賬戶余額的交易模式,其運作方式類似于今天物體銀行的銀行賬戶,用戶的全部余額資訊都存盤在以太坊中,

需要滿足的條件
代幣由資訊撰寫者(發送者)簽署
撰寫者對代幣價值的所有權可以得到證明
撰寫者的支出賬戶有足夠的余額用于交易

基于賬戶的交易模型有許多明顯的好處:

  1. 比UTXO模型有更大的空間節省,因為每筆交易都只需要一個參考和一個簽名來產生輸出,
  2. 更加簡單,coin不會根據來源而被分開,所有不需要維護coin的來源資訊,
  3. 不允許在每筆交易中改變參考,但它提供了對賬戶相關資料的輕松訪問,

賬戶nonce與每個賬戶相關聯,并且作為賬戶發送交易的計數,以防止同一交易行為被多次執行,
作業證明nonce:這是一個區塊中的隨機值,用來通過挖礦獲得作業證明,這是一種去中心化記錄的授權機制,
2.3 區塊鏈中的CAP屬性
位元幣系統似乎已經違反了CAP定理,因為它實作了一致性、可用性和磁區容忍,然而,區塊鏈的一致性是在一段時間后實作的,位元幣挖礦結合共識協議和至少六個確認,通過達成共識來確保最終的一致性,

CAP定理指出,任何分布式系統只能有以下兩個屬性,

  • 一致性:每一個計算節點都會收到最近的寫入,
  • 可用性:其中任何請求的一些資料總是可用的,
  • 磁區容忍度:即使某些子集的節點無法運行,分布式系統始終在運行,

2.4 區塊鏈的演變
區塊鏈可以分為三類:

  • 公共區塊鏈
  • 聯盟區塊鏈
  • 私有區塊鏈

數字貨幣(區塊鏈1.0),發展到智能合約(區塊鏈2.0),以及許多其他形式的去中心化合作,具有高度的問責制和高度的安全和信任(區塊鏈3.0)下圖顯示了區塊鏈的架構,其中紅色虛線的內容是由區塊鏈2.0開發的
區塊鏈架構

3.區塊鏈的安全和隱私屬性

在線交易餓嘟安全和隱私要求大致分為以下幾種:

  • 各機構之間賬本的一致性
  • 交易的完整性
  • 系統和資料的可用性
  • 防止雙重浪費
  • 交易的保密性
  • 用戶身份的匿名性
  • 交易的無關聯性

下圖對安全和隱私要求、屬性和技術總結
安全和隱私要求、屬性和技術總結

4. 共識演算法

拜占庭將軍問題(BGP):一個壞的行為者可能秘密地創造沖突資訊使得組內成員不能表現統一,這會摧毀團隊合作他們行為的效率,

  • PoW
    1.任何的證人產生一個達到確定要求的證據都應該是困難并且花費時間的,
    2.其他人可以通過它的正確性來驗證證據應該是簡單并且快速的,

用BGP闡述PoW的作業程序:
1.Append一個nonce(通常從0開始)到原始資訊中,這是一個隨機的十六進制值,
2.為nonce增強訊息應用hash,并且檢查hash結果是否小于等于預設值(比如以5個0開頭)
3.如果滿足哈希條件,城市一邊的軍隊會派帶有hash資訊和nonce的訊息使者給城市另一邊的軍隊,如果不滿足哈希條件,然后nonce值+1,一直迭代這個程序,直到獲取到了滿意的結果,發現正確的nonce值是花費時間的并且計算昂貴的,
4.由于hash的抗碰撞特性,即時訊息使者被抓了,還是很難篡改訊息的hash值,因為篡改后訊息的hash會徹底地不同于原始訊息地hash值,城西地將軍會核實訊息是否以5個0開頭,如果不是就會忽略這條訊息,
5.重復上述迭代程序,以至于大量的訊息使者從城東軍隊穿過城市發送到城西軍隊,

PoW可以有效的解決BGP問題,但是他也有三個限制:

  • 因為高計算復雜度和作業證明成功生成的低可能性,協議是一個極其低效率的程序
  • PoW安全主要都是來源于挖礦的回報,這就要求有強的鼓勵機制來吸引礦工,
  • 參與者有各種各樣的能力,于是產生PoW有不同的成功能力,

總之,PoW共識演算法更加傾向于依賴去中心化激勵和經濟激勵來保證安全性,

  • PoS
    每個驗證者都可以通過共識演算法參與提議創建和驗證新區塊,這需要一組驗證者將賭注放在下一個區塊上,并輪流投票,誰將成為下一個區塊的驗證者的決定是根據每個驗證者的賭注大小計算的投票權重做出的,被選中的概率與他們的賭注成正比,
    主要有基于BFT和基于鏈的PoS

chain-based PoS,該演算法在每個時間段(例如,每10秒)偽隨機地選擇一個驗證者,并賦予該驗證者創建一個區塊的權限,并將該區塊與之前的一些區塊(通常是之前最長的鏈的末端的區塊)連接起來,因此,隨著時間的推移,大多數區塊會匯聚成一個不斷增長的單一鏈

BFT被定義為一個系統對BGP的故障容忍能力[75],考慮一組玩家之間的協議場景:每個玩家持有可能不同的初始值,所有玩家需要通過遵守共識協議來達成一個單一的值,在一個系統中,如果大多數玩家是嚴格遵守協議的誠實玩家,即使少數玩家是惡意的,可能任意偏離協議,也能達成這樣的協議,我們認為這個系統是拜占庭容錯的

其他的共識演算法還有

  • Sleepy共識
  • 經過時間證明(PoET)
  • 權威證明(PoA)
  • 聲譽證明(PoR)

下圖表示共識演算法的比較
共識演算法的比較

5.區塊鏈中使用的隱私和安全技術

作者總結了可以利用來加強現有和未來區塊鏈系統的安全和隱私的一些技術,以及他們的優缺點,

  1. Mixing
  2. 匿名簽名
  3. 同態加密(HE)
  4. 基于屬性的加密(ABE)
  5. 安全的多方計算
  6. 非互動式零知識(NIZK)證明
  7. 基于可信執行環境(TEE)的智能合約
  8. 基于游戲的智能合約
    隱私安全技術的優缺點

作者對于這些技術有一些意見:

  1. 沒有一種技術是區塊鏈安全和隱私的萬能藥,應該根據具體情況選擇合適的技術,一般來說,多種技術的結合比使用單一技術更有效
  2. 沒有任何技術沒有缺陷或在所有方面都是完美的,所以我們仔細關注將一些安全和隱私技術整合到區塊鏈中所帶來的隱患和潛在危害
  3. 安全、隱私和效率之間總是有一個權衡,要提倡完善安全和隱私的技術,但是也要保證性能是可以實際部署使用的情況,

6. 結論

本文描述了實作這些安全和隱私屬性的安全和隱私技術,并且說明Mixing、匿名簽名、加密、安全的多方計算、非互動式零知識證明和智能合約等技術可以應用在區塊鏈中,區塊鏈在業界的關注度越來越高,在實踐中應該保證安全和效率之間的一個平衡,所以未來開發輕量級的加密演算法會是一個關鍵性的使能技術,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/318067.html

標籤:區塊鏈

上一篇:我怎樣才能反復做一個異步函式?

下一篇:2021.10.14數字貨幣小計

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • JAVA使用 web3j 進行token轉賬

    最近新學習了下區塊鏈這方面的知識,所學不多,給大家分享下。 # 1. 關于web3j web3j是一個高度模塊化,反應性,型別安全的Java和Android庫,用于與智能合約配合并與以太坊網路上的客戶端(節點)集成。 # 2. 準備作業 jdk版本1.8 引入maven <dependency> < ......

    uj5u.com 2020-09-10 03:03:06 more
  • 以太坊智能合約開發框架Truffle

    前言 部署智能合約有多種方式,命令列的瀏覽器的渠道都有,但往往跟我們程式員的風格不太相符,因為我們習慣了在IDE里寫了代碼然后打包運行看效果。 雖然現在IDE中已經存在了Solidity插件,可以撰寫智能合約,但是部署智能合約卻要另走他路,沒辦法進行一個快捷的部署與測驗。 如果團隊管理的區塊節點多、 ......

    uj5u.com 2020-09-10 03:03:12 more
  • 谷歌二次驗證碼成為區塊鏈專用安全碼,你怎么看?

    前言 谷歌身份驗證器,前些年大家都比較陌生,但隨著國內互聯網安全的加強,它越來越多地出現在大家的視野中。 比較廣泛接觸的人群是國際3A游戲愛好者,游戲盜號現象嚴重+國外賬號安全應用廣泛,這類游戲一般都會要求用戶系結名為“兩步驗證”、“雙重驗證”等,平臺一般都推薦用谷歌身份驗證器。 后來區塊鏈業務風靡 ......

    uj5u.com 2020-09-10 03:03:17 more
  • 密碼學DAY1

    目錄 ##1.1 密碼學基本概念 密碼在我們的生活中有著重要的作用,那么密碼究竟來自何方,為何會產生呢? 密碼學是網路安全、資訊安全、區塊鏈等產品的基礎,常見的非對稱加密、對稱加密、散列函式等,都屬于密碼學范疇。 密碼學有數千年的歷史,從最開始的替換法到如今的非對稱加密演算法,經歷了古典密碼學,近代密 ......

    uj5u.com 2020-09-10 03:03:50 more
  • 密碼學DAY1_02

    目錄 ##1.1 ASCII編碼 ASCII(American Standard Code for Information Interchange,美國資訊交換標準代碼)是基于拉丁字母的一套電腦編碼系統,主要用于顯示現代英語和其他西歐語言。它是現今最通用的單位元組編碼系統,并等同于國際標準ISO/IE ......

    uj5u.com 2020-09-10 03:04:50 more
  • 密碼學DAY2

    ##1.1 加密模式 加密模式:https://docs.oracle.com/javase/8/docs/api/javax/crypto/Cipher.html ECB ECB : Electronic codebook, 電子密碼本. 需要加密的訊息按照塊密碼的塊大小被分為數個塊,并對每個塊進 ......

    uj5u.com 2020-09-10 03:05:42 more
  • NTP時鐘服務器的特點(京準電子)

    NTP時鐘服務器的特點(京準電子) NTP時鐘服務器的特點(京準電子) 京準電子官V——ahjzsz 首先對時間同步進行了背景介紹,然后討論了不同的時間同步網路技術,最后指出了建立全球或區域時間同步網存在的問題。 一、概 述 在通信領域,“同步”概念是指頻率的同步,即網路各個節點的時鐘頻率和相位同步 ......

    uj5u.com 2020-09-10 03:05:47 more
  • 標準化考場時鐘同步系統推進智能化校園建設

    標準化考場時鐘同步系統推進智能化校園建設 標準化考場時鐘同步系統推進智能化校園建設 安徽京準電子科技官微——ahjzsz 一、背景概述隨著教育事業的快速發展,學校建設如雨后春筍,隨之而來的學校教育、管理、安全方面的問題成了學校管理人員面臨的最大的挑戰,這些問題同時也是學生家長所擔心的。為了讓學生有更 ......

    uj5u.com 2020-09-10 03:05:51 more
  • 位元幣入門

    引言 位元幣基本結構 位元幣基礎知識 1)哈希演算法 2)非對稱加密技術 3)數字簽名 4)MerkleTree 5)哪有位元幣,有的是UTXO 6)位元幣挖礦與共識 7)區塊驗證(共識) 總結 引言 上一篇我們已經知道了什么是區塊鏈,此篇說一下區塊鏈的第一個應用——位元幣。其實先有位元幣,后有的區塊 ......

    uj5u.com 2020-09-10 03:06:15 more
  • 北斗對時服務器(北斗對時設備)電力系統應用

    北斗對時服務器(北斗對時設備)電力系統應用 北斗對時服務器(北斗對時設備)電力系統應用 京準電子科技官微(ahjzsz) 中國北斗衛星導航系統(英文名稱:BeiDou Navigation Satellite System,簡稱BDS),因為是目前世界范圍內唯一可以大面積提供免費定位服務的系統,所以 ......

    uj5u.com 2020-09-10 03:06:20 more
最新发布
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:46:47 more
  • Hyperledger Fabric 使用 CouchDB 和復雜智能合約開發

    在上個實驗中,我們已經實作了簡單智能合約實作及客戶端開發,但該實驗中智能合約只有基礎的增刪改查功能,且其中的資料管理功能與傳統 MySQL 比相差甚遠。本文將在前面實驗的基礎上,將 Hyperledger Fabric 的默認資料庫支持 LevelDB 改為 CouchDB 模式,以實作更復雜的資料... ......

    uj5u.com 2023-04-16 07:28:31 more
  • .NET Core 波場鏈離線簽名、廣播交易(發送 TRX和USDT)筆記

    Get Started NuGet You can run the following command to install the Tron.Wallet.Net in your project. PM> Install-Package Tron.Wallet.Net 配置 public reco ......

    uj5u.com 2023-04-14 08:08:00 more
  • DKP 黑客分析——不正確的代幣對比率計算

    概述: 2023 年 2 月 8 日,針對 DKP 協議的閃電貸攻擊導致該協議的用戶損失了 8 萬美元,因為 execute() 函式取決于 USDT-DKP 對中兩種代幣的余額比率。 智能合約黑客概述: 攻擊者的交易:0x0c850f,0x2d31 攻擊者地址:0xF38 利用合同:0xf34ad ......

    uj5u.com 2023-04-07 07:46:09 more
  • Defi開發簡介

    Defi開發簡介 介紹 Defi是去中心化金融的縮寫, 是一項旨在利用區塊鏈技術和智能合約創建更加開放,可訪問和透明的金融體系的運動. 這與傳統金融形成鮮明對比,傳統金融通常由少數大型銀行和金融機構控制 在Defi的世界里,用戶可以直接從他們的電腦或移動設備上訪問廣泛的金融服務,而不需要像銀行或者信 ......

    uj5u.com 2023-04-05 08:01:34 more
  • solidity簡單的ERC20代幣實作

    // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 <0.9.0; import "hardhat/console.sol"; //ERC20 同質化代幣,每個代幣的本質或性質都是相同 //ETH 是原生代幣,它不是ERC20代幣, ......

    uj5u.com 2023-03-21 07:56:29 more
  • solidity 參考型別修飾符memory、calldata與storage 常量修飾符C

    在solidity語言中 參考型別修飾符(參考型別為存盤空間不固定的數值型別) memory、calldata與storage,它們只能修飾參考型別變數,比如字串、陣列、位元組等... memory 適用于方法傳參、返參或在方法體內使用,使用完就會清除掉,釋放記憶體 calldata 僅適用于方法傳參 ......

    uj5u.com 2023-03-08 07:57:54 more
  • solidity注解標簽

    在solidity語言中 注釋符為// 注解符為/* 內容*/ 或者 是 ///內容 注解中含有這幾個標簽給予我們使用 @title 一個應該描述合約/介面的標題 contract, library, interface @author 作者的名字 contract, library, interf ......

    uj5u.com 2023-03-08 07:57:49 more
  • 評價指標:相似度、GAS消耗

    【代碼注釋自動生成方法綜述】 這些評測指標主要來自機器翻譯和文本總結等研究領域,可以評估候選文本(即基于代碼注釋自動方法而生成)和參考文本(即基于手工方式而生成)的相似度. BLEU指標^[^?88^^?^]^:其全稱是bilingual evaluation understudy.該指標是最早用于 ......

    uj5u.com 2023-02-23 07:27:39 more
  • 基于NOSTR協議的“公有制”版本的Twitter,去中心化社交軟體Damus

    最近,一個幽靈,Web3的幽靈,在網路游蕩,它叫Damus,這玩意詮釋了什么叫做病毒式營銷,滑稽的是,一個Web3產品卻在Web2的產品鏈上瘋狂傳銷,各方大佬紛紛為其背書,到底發生了什么?Damus的葫蘆里,賣的是什么藥? 注冊和簡單實用 很少有什么產品在用戶注冊環節會有什么噱頭,但Damus確實出 ......

    uj5u.com 2023-02-05 06:48:39 more