数字货币对区块链是必要的吗

摘要:在过去的几年中,比特币的价格飞涨,超过了任何一种投资,因此它的底层技术——区块链也进入了人们的视线,越来越多的机构和个人对区块链进行了研究,进而发现这是一种革命性的技术。

谈到区块链,不可避免的要谈到比特币,但区块链仅仅意味着数字加密货币吗,或者区块链必须使用虚拟币吗?在讨论这些问题前,我们需要对区块链和比特币从本质上有一定程度的认识。

拜占庭问题

早在1982年就有后来的图灵奖得主莱斯利·兰伯特(Leslie Lamport)就提出了著名的拜占庭问题(Byzantine Generals Problem)。

拜占庭,是东罗马帝国的别称,位于现在的土耳其伊斯坦布尔,由于拜占庭国土辽阔,出于防御目的,拜占庭的将军们分别镇守在相隔很远的地方,在战争期间,由于敌军数量很多,需要拜占庭军队的将军们同时进攻才能获得胜利。将军与将军间就要统一进攻的具体时间,但如果进攻敌军的将军中间出现背叛,将错误的进攻时间传递给其他忠诚的将军,则战争就会失败。

这就是拜占庭问题。

错误的信息传递有多种情况,我们先考虑最基础的情况,假设有三个将军,a是背叛的将军,a告诉b自己要去进攻,告诉c自己不去进攻,但是实际上a却没有进攻,就导致战争失败。为解决这一问题,PBFT(Practical Byzantine Fault Tolerance)协议首先出现了,意为拜占庭容错算法,是一种经典的共识算法(consensus plugin),核心是进行状态副本复制,采用这种算法后每个将军都将自己得到其他将军进攻与否的信息和其他所有将军得到的信息进行验证。

这样当a告诉b和告诉c的信息不一致的时候,b会从c那里得知a告诉自己的和告诉c的信息不一致,得出a是叛徒的结论。PBFT算法本质上就是利用通信次数换取信用,这种算法的复杂度是将军数目的平方级。

那么,当b是叛徒的时候呢,a向b,c,d分别发送进攻的信息,虽然b却向c和d发送不进攻的消息,但c和d接收到的消息依然是两条进攻一条不进攻的消息,最后结果依然大多数将

军发起进攻。由此也可得出结论,如果叛徒的数量大于或等于1/3,拜占庭问题不可解。

于是,在一个分布式系统中,默认大多数节点是好人,基于这个前提,就完全有可能去中心化的实现共识(consensus)。

拜占庭问题本质上是一个协议问题,将这个问题演变到计算机领域,就是在互联网中决定谁来发起信息,如何将不同计算机的通讯信息达成一致,在过去,互联网依赖中心化的机构,中心化的网络对网络信息通信起到了促进作用,中心化的机构,列如银行,支付宝等都具备强大的技术实力,由他们汇总信息,在接到b端请求后,对信息进行处理。

但在实际过程中,这种依赖中心机构的信息传输也是会出现一些错误,机构可能遭到黑客攻击,机构内部员工可能对公众信息进行非法操作,机构本身可能遭受不可抗力的因素导致信息损坏或泄露。

于是中本聪带来了区块链技术。

中本聪和比特币

中本聪(Satoshi Nakamoto)是谁?他被誉为比特币之父,既是编程高手,也是密码学专家,“我希望人们能够有一种区别,即人们认为‘我是第一次知道我们在尝试一个无信任第三方为基础的系统’”他说。中本聪并不是虚拟货币的先驱者,但他从Beenz、Flooz、E-cash、B-money的失败中汲取了经验,认识到中心化是这些虚拟币的失败根源,将密码学和编程结合带来了一套全新的去中心化的信息传递体系。

他最先发布了比特币的白皮书《Bitcoin: A Peer-to-Peer Electronic Cash System》,这篇文章,次年,中本聪在位于芬兰赫尔辛基的一个小型服务上挖出了比特币的第一个区块——创世区块里,并在留下一句永不可修改的话:“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”,这句话正是泰晤士报当天的头版文章标题当时正是英国的财政大臣达林被迫考虑第二次出手纾解银行危机的新闻。

中本聪带来的区块链解决了上面的拜占庭问题,拜占庭问题有几个难点,首先PBFT算法是很耗资源的,需要对每笔交易(相当于将军间的每次信息传递)进行记录,那么其他的计算机,凭什么浪费自身算力给其他人的交易记账呢,于是比特币被发明出来了,比特币本身代表着一种奖励机制,参与记账的计算机都有可能获得比特币,也就是通常称的“挖矿”。

除此之外,如果每个将军同时发起信息,也会导致系统的混乱,所以区块链引入了竞争的机制,每个节点通过自身的算力去计算一个区块(block)里的数学问题,根据哈希(hash)运算来确定需要找到的答案(hash值),最先找到符合要求的的字符串才能获得奖励(每个区块所包含的奖励每隔一段时间减少一倍,本文写作时,根据btc.com数据显示,每个区块所包含比特币数量为12.8左右),这就是PRW(proof of work)工作量证明,越强大的算力越可能抢先找到对应的正确字符串。获得奖励后,要让所有人知道这个奖励是属于你的,就会广播给其他所有的节点,广播的时候就附带的时间戳就可以证明自己是最先解决问题的人,其他计算机接受验证了这个计算结果是正确的,网络就将这个信息记录下来保存为一个区块记录在最后,每个区块包含近期交易,前一个区块的引用以及其他数据。最终很多个区块形成一个链状的结构。这就是区块链,也就是分布式记账。

分布式记账有什么好处呢?

我们知道,传统意义上的数据库有四种操作,增删改查CRUD(CREAT READ UPDATE DELETE),在中心数据库进行这四种操作是很方便的,但是它成本过高,不透明且容易发生欺诈和滥用,于是分布式数据库放弃了其中的UD操作,去掉数据库中的更新和删除操作换来“无法篡改”“不可抵赖”的特点。利用其透明,无法篡改,去中心化等特性避免了这些源于集中化的第三方系统的产生信任问题。而且因为没有了中心化的服务器的存在,相关的维护,备份,容灾,管理成本将会大大降低。

密匙和哈希算法

密码学作为保护信息的手段,已经有了悠久的历史,密码学发展到现在,相关技术已经深入现代社会的各个领域。 

加密简单而言就是通过一种算法手段将对原始信息进行转换,信息的接收者能够通过秘钥对密文进行解密从而得到原文的过程。他们的理论共识都是遵循奥古斯特•柯克霍夫在19世纪提出“柯克霍夫原则”—— 密码系统应该即使被所有人知道其运作步骤,仍然是安全的。即算法是公开的,唯一需要保护的是密钥。

密钥在区块链中也是一个很重要的概念,密钥是什么呢,简单的说,密钥就是加密算法的参数,比如凯撒密码,加密算法就是将字母循环后移n位,n就是这个加密算法的密钥。掌握了这个密钥用户才能正确的解密密文,密钥分为私钥(privatekey)和公钥(publickey),用公钥对数据进行加密后,只有对应的私钥才能解密;反之如果私钥用于加密,则只有对应的公钥才能解密。通信双方无须交换密钥就可以建立保密通信。

互联网信息传输广泛采用了加密算法对信息进行加密,常见的加密算法有SHA算法和MD5算法。SHA(secure hash algorithm)安全散列算法,是美国国家安全(NSA)设计,美国国家标准与技术研究院(NIST)发布的一系列密码散列函数。MD5算法,是由Rivest开发出来的,基于md4增加了“安全-带子(safety-belts)”的更成熟安全的算法。但无论那种算法都是通过特定的运算将一个数字计算出另一个特定的数字。

用数学公式表示:Y=H(X),Y=H(X)必须包含以下性质:

1,有X可以很容易算出Y;

2,由Y不可能算出X;

3,由Y不可能找到另一个X'使得H(X')=Y;4,如果X和X'相差很小,H(X)和H(X')则完全不相关。

算式Y=H(X)即哈希函数,hash,英文中的意思是混乱,弄杂,把...弄乱,在计算机中译作散列,“把任意长度的输入数据计算成固定长度的输出数据,该输出数据就是散列值”,不同的输入可能会散列出相同的输出,所以不可能根据散列值来计算唯一的确定输入数值。

比特币采用的SHA256算法,该算法属于SHA-2系列,Hash值是由大小写字母或者数字构成的字符串,每一位有六十二种可能性,包括二十六个大写字母,二十六个小写字母,十个数字。为了提高难度,hash值必须至少以18个0开头才能被其他节点承认,每位出现0的概率是六十二十分之一。

可以想象,计算出开头连续出现18个0的hash值是一个非常庞大的计算量,庞大到全球参与计算的整个网络加在一起也需要十分钟才能解决一个区块。

计算的不可逆性,在保证了安全性的同时也产生了额外的风险,这也是比特币技术的一个缺点,一旦用户丢失自己的私钥(32bytes随机数字,大小介于0x1 到0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4140),如果没有其他的备份手段恢复,丢失的比特币将永远找不回来了。

那么回到文章开头的问题,区块链仅仅意味着数字货币吗?显然不是,数字货币,比特币只是一种让区块链得以延展的奖励机制,分布式账本可以做的事情有很多,同样,在尚未找到一种替代加密货币作为记账奖励的方法之前,数字加密货币对于区块链是不可缺少的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • 前言 在之前的博客android如何给整个视图view圆角显示中有提到过如何实现对View显示进行圆角裁剪,其原理...
    Ihesong阅读 1,770评论 1 15
  • 七月底无意中看到好报的写作召集令,“每天写500个字能改变你的生活。”我鼓起勇气,交钱入群,心情十分复杂,知道接...
    Apple树阅读 294评论 2 1
  • 5月19日是全国开游节,那天爸爸妈妈带我去游玩网红桥——兴宁廊桥。 我们来到徐霞客大道时,已是傍晚...
    潘仪宸阅读 1,468评论 0 2