cdg是區塊鏈
發布時間: 2024-05-26 06:04:20
A. 椋庨櫓璇勪及cdg鏄浠涔堟剰鎬濓紵
棣栧厛錛孋DG (Complexity and Dependency Graph)鏄涓縐嶅垎鏋愯蔣浠跺紑鍙戣繃紼嬩腑浠g爜鐨勫簲鐢ㄧ▼搴忋傚叾鐩鐨勬槸涓轟簡璇勪及浠g爜鐨勫嶆潅鎬у拰渚濊禆鎬э紝浠ヤ究甯鍔╁紑鍙戝洟闃熶紭鍖栦唬鐮佷互鎻愰珮杞浠剁殑璐ㄩ噺鍜屽彲緇存姢鎬с傚洜姝わ紝CDG瀵逛簬璇勪及杞浠跺紑鍙戦庨櫓鍏鋒湁鏋佸叾閲嶈佺殑浣滅敤銆
鍏舵★紝鍒╃敤CDG鍙浠ュ湪寮鍙戠殑鏃╂湡闃舵佃瘑鍒浠g爜鐨勬綔鍦ㄩ棶棰橈紝騫跺姞浠ユ敼榪涳紝浠ラ伩鍏嶅湪鍚庢湡鍑虹幇闂棰樺強澧炲姞淇澶嶇殑浠d環銆傞氳繃CDG鐨勯庨櫓璇勪及錛屽紑鍙戝洟闃熷彲浠ユ洿濂藉湴鎺у埗銆佺$悊鍜屾帶鍒跺紑鍙戞祦紼嬶紝鍑忓皯閿欒鍜屼笉鑹璁捐″歸」鐩鐨勫獎鍝嶃
CDG鐨勯庨櫓璇勪及鑳藉熷甫鏉ヨ稿氬ソ澶勩傞栧厛錛孋DG鍙浠ュ府鍔╁紑鍙戝洟闃熸洿鍏ㄩ潰鍦頒簡瑙h蔣浠跺紑鍙戠殑鐘舵佸拰榪涘害錛屽強鏃惰瘑鍒闂棰樺苟鍔犱互瑙e喅銆傚叾嬈★紝CDG鍙浠ユ彁楂樹唬鐮佽川閲忓拰鍙緇存姢鎬э紝鍑忓皯鍚庢湡緇存姢鎴愭湰鍜岄庨櫓錛屼粠鑰屾彁楂樿蔣浠跺紑鍙戠殑鏁堢巼鍜屾垚鍔熺巼銆傚洜姝わ紝鍦ㄨ蔣浠跺紑鍙戣繃紼嬩腑錛孋DG鐨勯庨櫓璇勪及鏄闈炲父閲嶈佺殑銆
B. 比特幣如何防止篡改
比特幣網路主要會通過以下兩種技術保證用戶簽發的交易和歷史上發生的交易不會被攻擊者篡改:
非對稱加密可以保證攻擊者無法偽造賬戶所有者的簽名;
共識演算法可以保證網路中的歷史交易不會被攻擊者替換;
- 非對稱加密演算法3是目前廣泛應用的加密技術,TLS 證書和電子簽名等場景都使用了非對稱的加密演算法保證安全。非對稱加密演算法同時包含一個公鑰(Public Key)和一個私鑰(Secret Key),使用私鑰加密的數據只能用公鑰解密,而使用公鑰解密的數據也只能用私鑰解密。
- 1使用如下所示的代碼可以計算在無限長的時間中,攻擊者持有 51% 算力時,改寫歷史 0 ~ 9 個區塊的概率9:
- #include
- #include
- double attackerSuccessProbability(double q, int z) {
- double p = 1.0 - q;
- double lambda = z * (q / p);
- double sum = 1.0;
- int i, k;
- for (k = 0; k <= z; k++) {
- double poisson = exp(-lambda);
- for (i = 1; i <= k; i++)
- poisson *= lambda / i;
- sum -= poisson * (1 - pow(q / p, z - k));
- }
- return sum;
- }
- int main() {
- for (int i = 0; i < 10; i++) {
- printf("z=%d, p=%f\n", i, attackerSuccessProbability(0.51, i));
- }
- return 0;
- }
- 通過上述的計算我們會發現,在無限長的時間中,佔有全網算力的節點能夠發起 51% 攻擊修改歷史的概率是 100%;但是在有限長的時間中,因為比特幣中的算力是相對動態的,比特幣網路的節點也在避免出現單節點佔有 51% 以上算力的情況,所以想要篡改比特幣的歷史還是比較困難的,不過在一些小眾的、算力沒有保證的一些區塊鏈網路中,51% 攻擊還是極其常見的10。
- 防範 51% 攻擊方法也很簡單,在多數的區塊鏈網路中,剛剛加入區塊鏈網路中的交易都是未確認的,只要這些區塊後面追加了數量足夠的區塊,區塊中的交易才會被確認。比特幣中的交易確認數就是 6 個,而比特幣平均 10 分鍾生成一個塊,所以一次交易的確認時間大概為 60 分鍾,這也是為了保證安全性不得不做出的犧牲。不過,這種增加確認數的做法也不能保證 100% 的安全,我們也只能在不影響用戶體驗的情況下,盡可能增加攻擊者的成本。
- 研究比特幣這樣的區塊鏈技術還是非常有趣的,作為一個分布式的資料庫,它也會遇到分布式系統經常會遇到的問題,例如節點不可靠等問題;同時作為一個金融系統和賬本,它也會面對更加復雜的交易確認和驗證場景。比特幣網路的設計非常有趣,它是技術和金融兩個交叉領域結合後的產物,非常值得我們花時間研究背後的原理。
- 比特幣並不能 100% 防止交易和數據的篡改,文中提到的兩種技術都只能從一定概率上保證安全,而降低攻擊者成功的可能性也是安全領域需要面對的永恆問題。我們可以換一個更嚴謹的方式闡述今天的問題 — 比特幣使用了哪些技術來增加攻擊者的成本、降低交易被篡改的概率:
比特幣使用了非對稱加密演算法,保證攻擊者在有限時間內無法偽造賬戶所有者的簽名;
比特幣使用了工作量證明的共識演算法並引入了記賬的激勵,保證網路中的歷史交易不會被攻擊者快速替換;
- 通過上述的兩種方式,比特幣才能保證歷史的交易不會被篡改和所有賬戶中資金的安全。
非對稱加密
圖 4 - 51% 攻擊
總結
熱點內容