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% 攻击
总结
热点内容