简述区块链(1)- 也许只有这一篇

一、唠叨两句

最近一直在考虑一个事情,就是怎么给不太了解技术的人讲清楚区块链。我先试着写下来,然后在逐步打磨吧,目标就是能让人能让哪些说看区块链看的云里雾里的同学能对区块链有一些认知。

二、定义

简单的给区块链下个定义:基于加密算法的,去中心化的分布式账本技术。这里有三个关键词:加密算法、去中心化、分布式账本,下面我就尝试从三个关键词为线索,介绍一下区块链的概念。

三、分布式账本

比特币是一个点对点的电子现金系统,既然是现金系统,那么就得记账呗,这大概就是这个账本的由来,就是流水账嘛,张三给了李四一百块钱,王五给了张三五十块钱,blabla。这种东西,就是一条一条的数据,记录在文件里,数据库里等等。区块链的账本存储,当然就是区块和链了。分布式账本,就是在说不仅存一份数据,每个全节点都存一份数据,只要不是全部节点挂掉,总有节点可提供数据的。

1. 区块:块分成区块头,和区块体,区块头包含一些前一个区块的Hash啊,当前区块中所有交易的默克尔树根啊,时间戳啊,随机数啊,等等。区块体里就是一笔笔的交易。

简单说下默克尔树,比如当前区块有4比交易A,B,C,D,AB取hash,CD取hash,两个Hash结果再取hash,就形成了默克尔树,树根可以理解为一个水印,任何一个交易改一点,整棵默克尔树就都变化了,可以保证没有篡改,这个树还可以支持轻钱包SPV验证。

2. 交易:每一笔交易主要包含了Input和Output,Input记录的是引用到的前一笔未花费交易的索引,Output记录的是将资产转移到那个地址。这里讲地址的时候,还要讲。

3. 链:刚才讲了区块头包含了前一个区块的Hash,这东西就是为了把区块连接起来,成为一个链,链上的交易顺序不能认为严格的前后关系,但是基本可以认为是有一个追溯的结构。作为程序猿,你会想需要遍历链,怎么整,拿到创世块,它没有前一个区块Hash,取到它的默克尔树根作为key去存储里面找下一个区块,如此往复。

四、去中心化

我想把这部分通过和一般NoSql数据库的一些方式做对比,NoSql数据库为了达到读的并发性能和数据的安全,通常都会保存多个副本,ReplicaSet的概念。同时对于写的数据,总要先找个主节点写,写完了再同步给副本集,选主的时候,数据一致的时候,都需要几个节点达成共识,通常会有Paxos,Raft这样的算法来保证。把这部分放大到公网上,就基本可以映射到区块链上了,区块链的各个全节点都保持一个完整账本,全网的ReplicaSet;获得记账权要记账写块了,谁来写,区块链上通过PoW,PoS,DPos等等共识算法来达成共识,又和Paxos,Raft对应上了。

说到共识了,我们想一下记账权这个事,就是挖矿,首先是个经济问题,我干嘛要挖啊,你得给我奖励,比特币系统中获得了记账权生成了区块,就能获得比特币的奖励,比特币价格高,当然可以激励记账这个事了,那么问题来了,这个经济问题变成了一个博弈问题了,这么赚钱,凭啥你挖啊。这时候就得有个算法来规定好游戏玩法,比特币怎么个玩法PoW,就是来个数学谜题,谁算出来谁记账。这个数学谜题可以简单这么理解,就是你生成的块,加上一个随机数位可以调节,然后基于一种Hash算法,你生成出来的结果必须小于某某数,这个某某数就是难度,可以动态调节的,现在比特币的这个难度很高,所以你也就别跟矿主彪啦。那为什么叫PoW了,就是工作量证明,因为这个Hash之间没有关联型,我上次随机数计算的结果和我这次随机数计算的结果之间没有半分钱关联,这也就是为啥算力规模越来越大了,可以并行计算,算力越大,概率越大。你要非较真说,其实理论上,你可能很少计算就刚好碰到了正确结果,没错,这事就可以类比高考了,你说有没有神蒙,蒙得高分,有,但是大体上这个考分大概其能证明你努力过吧。

五、加密算法

非对称加密大伙都明白,不多讲了,利用非对称加密的签名验签可以实现区块链最关键的特点,确权。只有我用我的私钥签名过的数据,你用我的公钥才能验证通过,其他谁想仿造都不行,所以这钱就只能是我来花了。说到确权,这事可大了,区块链为啥火,就是因为确权,数字资产能确权了,这意味着什么?意味着互联网变成了价值互联网了,价值可以传递了。

那这签名验签的用哪儿了,也没见哪儿使啊,别急,刚才咱介绍交易的时候不是留了一个箭头么,这交易上记的不仅仅是转移到对方的地址,而是一个脚本。如果就一地址搁那,都说是自己的,那不乱套了,这钱谁能用,得确权,这就需要脚本系统了。

首先说说比特币的地址啊,地址咋生成,下图讲的特清楚,我从网上拷的。你说好好一图,我随便用,不能卖钱,为啥,不就是因为没法确权嘛。

然后我们简单说说这个比特币的脚本系统,它是基于栈的脚本系统。这里我暂时不展开,仅已最常用的比特币锁定脚本P2PKH脚本作为例子讲讲。

锁定脚本

DUP HASH160 [Public Key Hash] EqualVerify CheckSig

花钱的时候你得通过锁定脚本的验证,这个就是一个确权的过程,你要想验证通过你得提供解锁脚本

[Sig] [Public Key]

简单说下验证过程吧,下面这堆脚本基于栈执行

[Sig] [Public Key] DUP HASH160 [Public Key Hash] EqualVerify CheckSig

1. [Sig]入栈

2. [Public Key]入栈

3. DUP复制栈顶[Public Key]再入栈

4. 拿出栈顶[Public Key]执行HASH160(这个正是Public Key Hash的算法),入栈

5. 锁定脚本里的常量[Public Key Hash]入栈

6. 取出栈顶里脚本里的[Public Key Hash]和计算出来的比较,相等就继续

7. 这下栈里从底到顶分别是[Sig][Public Key],CheckSig拿出栈里这俩验签,通过钱就是你的,请用。

比特币的脚本指令很多,你可以自己写脚本出来,就是有点麻烦,写汇编似的,但是这东西也是个好东西,直接就引出了后面的智能合约来了,

六、小结

今天主要从加密算法,去中心化和分布式账本三个方面简单介绍了一下区块链,感觉没达到我的预期让没接触过的突然开窍的感觉,后面打磨打磨吧的再。本文里主要以比特币作为实例进行介绍的,我觉得比特币最牛逼的地方就是确权和智能合约,打开了无限遐想。公链上开发,很多选择,我其实不太喜欢比特币,开发起来太麻烦,而且就现在这个币值,搞些大宗交易,跨境大额转账啥的还成,其他的,呵呵吧,但是币王还是币王,这里面的原理还是值得细细琢磨的。

原文地址:https://www.cnblogs.com/DexterDi/p/8689095.html

时间: 2024-10-17 12:02:30

简述区块链(1)- 也许只有这一篇的相关文章

区块链从概念到落地,多样化应用激活大数据经济

随着比特币在今年创下一轮又一轮令人咋舌的新高,比特币的底层技术区块链也迎来了爆发式的阶段.麦肯锡公司最近向美国联邦保险咨询委员会提交了一份区块链技术报告,报告把2009年以2016年称为"黑暗时代",其间所有区块链解决方案都基于比特币,而区块链的新时代将从2016年开始,超过100种区块链技术解决方案已被探索.麦肯锡认为,基于区块链目前的发展速度,区块链解决方案也许会在未来5年达到全部潜力. 在今年5月的Consensus 2017全球区块链大会上,来自全球数百位区块链专家和数千位从业

区块链开发公司 区块链对银行业意味这什么?

目前,国际上对区块链.分布式账户技术的主要看法大致可归纳为:一,尚处于初步发展阶段,应用效果还有待实践检验.二,若在金融领域广泛采用,可能会对金融业务模式和支付清算体系等金融基础设施产生根本性影响.三,对金融稳定的影响尚不明确,未来可能对监管形成重大挑战.虽然充满着争议,但区块链技术也许是继蒸汽机.电力.信息和互联网技术之后,能与大数据.移动互联网.云计算等新技术共同推动经济金融转型升级.最有潜力触发第五轮颠覆式产业革命浪潮的核心技术.可以这么说,区块链经济今天正处于爆发的前夜,谁能在这一轮重大

第6讲 | 理解区块链之前,先上手体验一把数字货币

初次接触到区块链的你,肯定是一头雾水:“区块链是什么,这玩意到底怎么回事”. 其实对于区块链的原理,你大可不必着急,咱们可以直接上手体验一下目前区块链的第一大应用:数字货币. 本篇的内容面向所有区块链的小白,我会教你如何使用数字货币,来帮你从另外一个维度理解区块链技术. 本篇内容包括但不限于:数字货币钱包介绍.下载安装.转账.数字货币交易所充币.提币等等. 首次接触数字货币 区块链其实是从生产者的角度讨论一个抽象出来的概念.如果把区块链比作车辆设计图纸,那么数字货币就是正在跑的汽车.所以理解区块

怎么配置电脑才能开发区块链?

区块链爆红以后,越来越多人想要自己开发区块链.那么区块链开发需要怎样的电脑配置?简析开发区块链的环境搭建.由于区块链技术迭代很快,此篇环境搭建仅供参考. 此处介绍的是基于Ubuntu14.04系统上搭建平台的过程,推荐使用Linux和Mac OS X操作系统,Windows不建议使用,因为目前开发区块链还是比较复杂的,Windows容易出现问题导致安装失败. 软件安装时使用ubuntu系统官方的apt源.国内阿里.网易.腾讯.汉全等免费提供的apt源可以加快安装软件的速度,不过安装此篇所介绍的软

区块链上的共识机制

前言 区块链上的共识机制有多种,没有一种共识机制是完美无缺的,同时也意味着没有一种共识机制是适合所有应用场景的. PoW:Proof of Work,工作量证明 依赖机器进行数学运算来获取记账权,资源消耗相比其他共识机制高.可监管性弱,同时每次达成共识需要全网共同参与运算,性能效率比较低,容错性方面允许全网50%节点出错1. 优缺点2: 优点:完全去中心化,节点自由进出: 缺点:目前bitcoin已经吸引全球大部分的算力,其它再用Pow共识机制的区块链应用很难获得相同的算力来保障自身的安全:挖矿

美国费城联邦储备银行主席称赞区块链的验证功能

本周美国费城联邦储备银行主席向宾夕法尼亚大学工程学学生发表演讲,以金融科技为主题.充分赞扬区块链技术的巨大潜力,同时提出该技术的真正价值不是数字货币,而是数据存储.风险管理和验证.同时第三方的角色是不会被替代的,尤其是区块链数字货币以太币不会达到法定货币的地位,除非由政府发行. 美国费城联邦储备银行主席在本周的演讲中重点提到区块链技术的可能性.https://www.okcoin.cn 演讲主题为"金融科技:革命还是进化"(Fintech:Revolution or Evolution

涅盘而生后的区块链正在如何影响金融,甚至全社会

互联网金融经历了野蛮生长之后也迎来了跑路.倒闭现象潮,同时人工智能.大数据.区块链等新科技正在引领互联网金融新的发展方向.尤其是区块链,这个从比特币中涅盘而生的创新技术,正在被人们认为可以重塑整个金融.与此同时,区块链也受到了风投与创业者的共同追逐,2015年,区块链成为了美国创投中获得融资最高的板块,突破10亿美元,投资比特币及区块链领域初创项目的风险投资公司已近200家. 在国内,"区块链"2016年底首度写入<"十三五"国家信息化规划>:2017年

一位AI研究员+区块链创业者的终极展望:AI DAO将统治世界

一位AI研究员+区块链创业者的终极展望:AI DAO将统治世界 [日期:2017-01-09] 来源:infoq.com  作者:杨赛 [字体:大 中 小] Trent McConaghy是一位资深的AI研究员,从上世纪90年代开始从事AI方面的研究.截止到2016年年底,Trent已经在相关领域发布过35篇论文.出版过2本书籍.注册过20项专利.并先后创办过3家公司.2013年的一天,当时正为比特币技术狂热的Trent跟他的艺术家夫人Masha在柏林逛了一次画展,在参观回家后的闲聊中,两人展开

比特币下车, 区块链不死: 资本下一站, 请关注这些公司

ICO被封杀,比特币也就随之被普遍认为是"死了".问题是下一步会怎样?不管市场如何变化,资本是永远不会"死"的.在这个流动性早就严重过剩的时代,人们实际上关心的并不是哪个项目的死与活,而是资本将会往哪个方向流动?这才是最具本质性的问题. 这些年来随着比特币的炒作,多数人似懂非懂地都知道了另一个词:区块链.甚至有不少人以为比特币就是区块链,而区块链也就是比特币本身.比特币死了,区块链是不是也跟着死了?笔者的意见是区块链不会死. A. 区块链不是比特币,而是一种新兴的技