区块链解读一

区块链解读一
解读区块链,一般都会提到两个重要词汇:“中本聪”“比特币”。毫无疑问中本聪创造的比特币是时下最火爆的虚拟货币,没有之一。
笔者虽没有参与比特币挖矿,但个人兴趣对区块链一直很好奇,何谓“区块”,何谓“链”,处于好奇的心理,对计算机有一定的基础知识,翻阅了一些区块链资料,也和一些所谓的大神有过简单交流。心血来潮,斗胆作下一篇区块链解读,作为学习笔记。
区块链起源于中本聪大神的比特币,比特币表面理解是一种虚拟货币,今天比特币的收盘价是人民币:19161元,比特币最小单位Satoshi 聪,1聪=0.00000001比特币,1Satoshi = 0.00000001比特币,具体价值可以计算下。那对比特币的稍微深入理解是:一种P2P形式的数字货币系统,P2P点对点网络,意味着去中心化,但中本聪在他的创世论文上decentration一词,并没有绝对说明是去中心化,目前国内翻译过来都是“去中心化”,个人认为这是一个需要二次理解的单词,比特币通过一定的协议(后续具体说明),各个节点之间达成协议后交易写入区块内,没有第三方认证机构来处理申请和操作。大多数人通过“去中心化”,了解到它是一个权力被极大分散且权力结构平等的扁平化组织系统。而该系统能经受住权力争夺,因为权力属于参与其中的大多数人,而不是特权人。在区块链技术越来越多的应用中,特别在联盟链和私有链中“去中心化”这个概念被演变成“弱中心化”或者“多中心化”。当然比特币的去中心化是很聪明和成功的,比特币系统中的信任和不可篡改虽然有过危机但一直被踏实实现着。中本聪是一个神秘人物,他在创世区块中的coinbase写下:“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”,中本聪和比特币的奇迹开始于2009-01-03。(注:Nakamoto Satoshi 中文翻译为中本聪,在日本多用中本哲也为译名)
这里写图片描述

区块链:baidu对区块链的解释,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法.。简而言之,区块链是一种底层技术和技术架构,比特币是区块链技术最成功的应用,区块链技术集成了密码学、点对点网络、共识机制,分布式数据库的众多概念,当然每一块技术都有自身一些经典应用,但中本聪很好的把这一系列技术结合在一起,从而创造了区块链技术架构。
数字货币:数字货币是区块链中最为经典和成功的应用案例,当然数字货币在90年代初就出现了,目前比特币、以太币等数字货币的成功是结合了之前众多数字货币、密码学技术、共识算法的经验上才产生的。1990年密码朋克的主教人物David Chaum就创立了数字现金公司(DigiCash),但是由于在技术理念转化为实用系统的过程中缺失了很多实际应用的东西,无法说服银行和商家大量使用,故1998年就宣布了倒闭。Adam Back则发明HashCash,其中使用了POW工作量证明。Haber、Stornetta提出了时间戳数字文件安全协议。P2P网络技术的发展。最终中本聪结合上述技术成功的创造了比特币。
分布式数据库:在比特币的架构体系中称为分布式账本或者更为合适,分布式账本具有以下几个特点:Decentralized(笔者对去中心一直有一定的疑问,故不翻译为去中心化),表明账本没有强中心化特征,这和传统金融行业的中心化特征有了本质的区别,没有中介机构,交易节点权利和义务均等,没有所谓的信任机构和特权机构的存在,最为关键一点,任意节点的宕机都不影响整个系统的正常运作。Trustless(去信任或信任),系统每个节点之间不需要信任也可以进行交易,更不需要第三方的中介机构来处理交易,整个账本和系统的运行完全公开透明,在系统约定的协议和规定时间内,所有交易节点无法欺骗双花,交易间的信任建立在数学模型的基础上,账本的写入也由所有节点通过共识机制写入,账本中的纪录信息也可确保可信,所谓交易的去信任又可理解为全网信任交易。Reliable Database(可靠数据库),每一个节点都有最新的一份完整的数据库拷贝,单个节点修改了数据在全网中是不被认可和无效的,系统自动比对最多出现的相同纪录为真,当然有人会产生疑问,大量的完整数据保存在每个节点上,数据量磁盘空间的要求,目前比特币完整交易库已到几十G针对这个问题出现MultiBit,个人节点选择保存轻量数据,通过SPV simplified payment verification简单支付协议只保存block header纪录即可保证交易的有效性。
加密算法:算法是笔者在学习区块链中最为头疼的一块,也是最为让人信服的一块,非对称加密,简单理解为,加密和解密的过程中分别使用两套密码,加密时候的密码是公钥,公钥对外公开,每个人都可以用公开的公钥来加密一段字符,但在解密时需要个人自己保存的另一套密码,也就是私钥,个人用私钥来解密解读用公钥加密的字符。目前区块链中用到加密算法有hash算法、merkle tree哈希树算法、椭圆曲线算法、SHA-256哈希算法、Base58编码、varInt编码、DER编码等。数学算法保证信任问题。(针对加密算法接下来想专门写一篇介绍)
共识机制:所有的共识机制都不是完美的,或多或少都会发现共识机制在特定条件下都会出现一些不可避免的缺陷,所以根据各个共识机制的优缺点选择不停的应用场景。共识机制是解决各个独立节点之间互相信任的问题,在众多节点中达到一种较为平衡的一致性状态就是所谓的共识机制,共识机制是保障区块链一直稳定运行的关键。目前常用的有POW(proof of work)工作量证明,这个简单理解就是多劳多得的概念,它依赖计算节点通过数学运算来或者对分布式账本记账的权利,也就是形成下一个区块,在比特币中或许下一个区块的记账权就会有相应的记账利益(目前是12.5个比特币,参考目前比特币价格)。POS(proof of stake)权益证明,简单来说就是拥有越多获得更多,这个相对来说减少了计算节点对数学计算的资源浪费,主要是电费,同时也也带来了监管力度的减弱。PBFT,Fabric使用的经典算法,拜占庭容错,这个重点说明下,这个来源于拜占庭将军叛徒问题,拜占庭将军问题百度说明是,拜占庭将军问题是一个协议问题,拜占庭帝国军队的将军们必须全体一致的决定是否攻击某一支敌军。问题是这些将军在地理上是分隔开来的,并且将军中存在叛徒。叛徒可以任意行动以达到以下目标:欺骗某些将军采取进攻行动;促成一个不是所有将军都同意的决定,如当将军们不希望进攻时促成进攻行动;或者迷惑某些将军,使他们无法做出决定。如果叛徒达到了这些目的之一,则任何攻击行动的结果都是注定要失败的,只有完全达成一致的努力才能获得胜利,拜占庭假设是对现实世界的模型化,由于硬件错误、网络拥塞或断开以及遭到恶意攻击,计算机和网络可能出现不可预料的行为。拜占庭容错协议必须处理这些失效,并且这些协议还要满足所要解决的问题要求的规范。这些算法通常以其弹性t作为特征,t表示算法可以应付的错误进程数。算法问题只有在f ≥ 3t+1时才有解,假设节点总数为3f+1,f为拜占庭错误节点:当节点发现leader作恶时,通过算法选举其他的replica为leader。leader通过pre-prepare (第一个协议阶段)消息把它选择的 value广播给其他replica节点,其他的replica节点如果接受则发送 prepare(第二个协议阶段),如果失败则不发送。一旦2f个节点接受prepare消息,则节点发送commit(第三个协议阶段)消息。当2f+1个节点接受commit消息后,代表该value值被确定 如下图表示了4个节点,0为leader,同时节点3为fault节点,该节点不响应和发出任何消息。最终节点状态达到commited时,表示该轮共识成功达成。
这里写图片描述
目前其他的共识机制还有:PAXOS、paft、pool验证池等,共识机制是保证区块链正常运行的重要因素。
区块链的基本概念先大概写这些,区块链复杂而有序,逐步学习和摸索,如概念解释有误望及时提出,笔者初学区块链,很多东西也是慢慢摸索,之所以写下这些基本概念一方面作为自己学习的整理,另一方面也希望更多交流学习的机会。

发布了49 篇原创文章 · 获赞 12 · 访问量 5万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览