攻破区块链?也许你该读点密码学
币界网报道:
密码学是区块链技术的核心。所有交易信息都被编码进区块当中,而这些区块连接在一起则形成区块链结构。在本文中,我们将呈递区块链密码学的基础知识。
01
密码学的历史
02
SHA-256和区块创建过程
- 前一个区块头的哈希
- Merkle根哈希
- 时间戳
- 难度目标
- 随机数值
Merkle根显示当前区块交易的哈希值,并根据Merkle树算法进行计算,也被称为二进制哈希树。其工作原理如下:
- 首先,系统计算区块内所有交易的哈希值;
- 其次,系统将这些交易成对划分,并计算出每个交易对的哈希;
- 最后,系统再次将所有这些交易对的哈希按对配对,并依次反复计算,直到计算出唯一的哈希码,即得到所谓的根。
下图展示的就是Merkle二进制哈希树结构:
可以看出,Merkle树的结构是两两配对的,因此它必须拥有偶数个元素。如果Merkle树内的元素数量是奇数,那么系统会将落单的元素加倍以满足配对条件。
具有奇数元素数量的Merkle树如下所示:
03
用于验证比特币和以太坊交易的密码学知识
- 计算z = hash( 交易 ) mod n;
- 选择随机整数k,其等于或大于1且小于或等于n-1(1≤k≤n-1);
- 通过将k乘以G得到点(x, y);需要注意的是,k 是一个临时的秘密值,其必须在步骤5之后立即销毁。泄漏秘密值 k 等同于泄漏私钥:如果攻击者知道 k 和签名,那么她(或他)就可以计算私钥。
- 计算r = x mod n。如果r = 0则返回步骤1;函数x mod p 仅返回除法的余数,例如78 mod 33 = 12 等同于 78 = (33*2)+12,98 mod 31 = 5 等同于 98 = (31*3)+5。注意,s 模 n的乘法逆表示为1/k mod n,并且1/k mod n 等于等式 kx = 1(mod n) 的解。这个方程在欧几里德算法的帮助下以下列方式求解:假设 s = 3且 n = 5,则方程显示为3x = 1(mod 5) ,或者利用欧几里德算法,得3x = b(mod 5) 。如果我们将其扩展到线性丢番图方程ax – by = c,或sx – ny = b,或 3x – 5y = 1,其中 x = 2且 y = 1(6–5=1) 中,那么 s-1将为2。
- 计算 s = (1/k mod n) × (z + r × Keypriv) mod n。如果s = 0,则返回步骤1;
- 计算对 (r, s) 将成为交易的签名。
在交易签名生成并被接收后,任何第三方都可以使用公钥通过以下方式对其进行验证:
- 确认签名元素,数字 r 和 s 均落在1到n-1的范围内;
- 计算 z = hash(交易) mod n;
- 计算 w = 1/s mod n;
- 计算 u = z × w mod n;
- 计算 v = r × w mod n;
- 计算点 (x, y) = (u × G) + (v × Keypub);
- 确认 r = x mod n。 如果r≠x mod n,则验证的签名无效。
如上所述,ECDSA算法的安全性依赖于整数 k 的随机性以及使用普通算力在合理时间内不可能导出私钥的特性。 这种全新的加密方式赋予区块链技术最高级别的安全性,打破它的唯一方法是创建一个具有超过2000个量子比特算力的量子计算机——这种做法,至少在目前看来,是不可能的。
【文章版权归原作者所有,其内容与观点不代表Unitimes立 场。转载文章仅为传播更有价值的信息,合作或授权联系请发邮件至 [email protected]或添加微信unitimes2017】
上一篇:
USDT大逃亡
推荐专栏
热门币种
更多
币种
美元价格
24H涨跌幅
热搜币种
更多
币种
美元价格
24H涨跌幅
最新快讯
更多
2024-06-28 20:53:27
2024-06-28 20:49:54
2024-06-28 20:48:47
2024-06-28 20:46:14
2024-06-28 20:33:04
2024-06-28 20:32:54
2024-06-28 20:31:14