-
-
[原创]分享加密货币(的一种:比特币)从零开始学(1)
-
发表于:
2019-11-26 04:36
2232
-
[原创]分享加密货币(的一种:比特币)从零开始学(1)
2008年,一个神秘的名为中本聪的人(到现在也不知道这个人究竟是谁,为什么要做这个事情,有知道的老哥可以留言)发布了一篇论文:比特币,一种p2p的电子现金系统。然后这个神秘的人继而发布了一连串的规则,怎么发币,怎么撒币,怎么管理等等。一开始大家都不以为然,觉得这又是一场骗人的大戏,可没想到,这恰是引起了一场金融界的腥风血雨。
以上不是本文重点,(默认看本文的人都知道,比特币采用了一种去中心化的结算体系)作为引入,那么更多的人会思考一个问题:比特币的安全问题。
比特币是否安全,目前,在学术上还没有被真正的证明。但是我们可以先来探讨一个问题,究竟什么是真正的安全?
学过密码学的同学一定知道,我们加密就是为了不让心存恶意的人看到或者伪造我们的明文,然后就有了例如数字签名的东西。那么这里我将提出一个前提,在这个前提不被打破的情况下,我假设他是安全的。那么就有了这么一个模型。
这个模型看起来非常简单,但是我们在现代密码学中,针对安全,做了非常严格的定义,上图就是一个很好的例子,这里举个例子。比方说md5存在碰撞,这是一个概率事件,所以我们从学术上去定义的时候,首先可以确定的是,他不是一个绝对安全的哈希函数,但是他真的不安全吗,因为他碰撞产生碰撞的概率非常低,所以我们可以姑且认为他是安全的。但从学术角度来说,我们不能姑且的说,所以必须得规定一个模型出来,精确的定义,什么是绝对安全。借由这个md5碰撞的例子来说,普通的用户无法确定他的攻击者,是否有无限的计算力,或者说在比特币中鼎鼎大名的51%算力攻击,当然这是两个概念,只是举个例子,就是想表明,如果恶意攻击者拥有无穷算力和无穷时间,我们是否还能保证策略的安全性。这对于加密货币来说,至关重要。
这里我想提一个微小函数的概念,因为在现实生活中我们几乎无法做到绝对完美的安全,只能基于概率来说,只要这个概率非常非常的小,也就是小于等于一个微小函数,那么我们可以认为他是还比较安全的。
说到这里就不得不提哈希函数了,哈希函数我们也有翻译one-way function,也就是所谓的单向陷门函数。那为啥会有这个函数的出现呢,答案当然也是围绕着这个安全的定义。现在我假设明文m,密文c,密文是有可能被恶意的人在信道上监听到的,(想象一下以前战争的时候发电报,如今我们虽然有ssl,但http的。。不扯开了),发送者最希望的是即使有人获取了c也不能根据c推出m,总之就是不能被别人知道m。那么好,就有聪明的学者提出了,利用离散对数的特性,我们计算7的10次方是很容易的,但是现在直接告诉你282475249,你就一下蒙了,这样不就满足了这个条件,换句话来说就是,计算c很容易,但是计算m非常难,于是有了这个“利器”,可以完成很多事情。还是回到比特币上来,区块链区块链,其实就是一个链表,这个链表里面是哈希值,也就是所谓的连在一起的哈希指针。查的资料,目前比特币用的是双重sha256。
第一次发帖就差不多到这里了,看到感兴趣的朋友,欢迎在下面留言和提问,当然也欢迎指出我的错误,大家一起讨论学习,我也是刚开始正式从零学习比特币的相关知识,请大家多多指教,谢谢。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)