区块链总账
A. 区块链的"区块"是何含义
“区块链,就相当于这个账本,区块就相当于这个账本的一页,区块中所承载的信息,就是这一页上记载的交易内容。区块链是一块一块的,每一块写满了交易记录,连在一起成了一条链就是区块链。”
以比特币为例,大约每十分钟就行一次「算力竞赛」来竞争这个记账的权利。就好比说,你的算力牛逼,算得多,就像肌肉更结实,更会打,大家都服你,让你来记这个帐,即向区块链这个总账本写入一个区块(注意不是区块里的内容)的权利。不过需要说明的一点是,计算能力只能决定赢得竞争的概率。就好比说,一共有若干张彩票,算力多的可以买更多张提高中奖概率,然而买得多的人,也不一定最后就中奖了
区块链即为一个个用这样的计算力保障的数据块链条。从第一块开始,每一个区块依照一定规则收集数据,然后将这些数据附上一个值,使得形成的数据块经过类似的单向函数计算后的结果落到一定范围内。通过估算全网的算力以及控制结果范围的大小,来保障符合要求数据块在足够长的时间内才能被找到。这个计算结果会被下一个区块包含,而这样形成的链式数据结构则称为区块链。
每一个小账本被称为区块,每一个不同的区块链协议(产生不同的加密货币)都会规定每一个区块的大小(最初比特币为1M)账本组成区块,区块构成链表,区块的头包含前一块的哈希值,这就是区块链。如此一来,任何人就不能随意修改其中的内容,或者交换顺序。如果你这么做,意味着你需要重新计算所有的特殊数字。
规定,允许世界上的每一个人建造区块。每一个新建区块的人(找到了这个特殊数字 - SHA256值有30个零)都能获得奖励,对于新建区块的这部分人(矿工)来说:
1.没有发送者信息,不需要签名
2.每一个新区块都会给整个币种增加新的虚拟(加密)货币
3.新建区块的过程又被称为“挖矿”:需要大量工作量并且可以向整个经济体注入新的货币
4.挖矿的工作是:接受交易信息,建造区块,把区块广播出去,然后得到新的钱作为奖励
对每个矿工来说,每个区块就像一个小彩票,所有人都在拼命快速猜数字,直到有一个幸运儿找到了一个特殊数字,使得整个区块的哈希值开头有许多个零,就能得到奖励。我记得有一个知乎答主给了一个形象的比喻,区块链就像一个拥有貌美如花女儿(区块)的国王,有很多的青年翘首以盼,而国王的方法是出了一道很难得题目让所有的青年计算(学习改变人生),谁算的快(在计算哈希值过程也可能是运气好)就能抱得美人归
对于想用这个系统来收付款的用户来说,他们不需要收听所有的交易,而只要收听矿工们广播出来的区块,然后更新到自己保存的区块链中就可以了
“区块”也可以想象为一个盒子,区块里放着一些数字货币以及一张小纸条,小纸条上记录了这十分钟内产生的那唯一一笔交易信息, 比如说——“小A转账给了小B100元”;当然,这段信息肯定是被加密处理过的,为的就是保证只有小A和小B(通过他们手上的钥匙)才有能力解读里面真正的内容。
这个神奇的区块被创造出来之后,很快被埋在了地底下,至于埋在哪里?没有一个人不知道,需要所有计算机节点一起参与进来掘地三尺后才有可能找到(找到一个有效的工作量证明)。显然,这是一件工作量巨大、成果随机的事件。但是呢,对于计算机节点来说,一旦从地底下挖出这个区块,他将获得区块内价值不菲的数字货币,以及“小A转账给了小B100元”过程中小A所支付的小费。同时,对于这个节点来说,也只有他才有权利真正记录小纸条里的内容,这是一份荣耀,而其他节点相当于只能使用它的复制品,一个已经没有数字货币加持的副本。当然这个神奇的区块还有一些其他很特别的地方,
可以将计算机节点从地底下挖出区块的过程叫做「挖矿」,刚才说了,这是一件工作量巨大、运气成分较多、但收益丰厚的事儿。来自中国上海浦东新区张衡路上的一个节点突然跳出来很兴奋的说:“ 我挖到区块了!里面的小纸条都是有效的!奖励归我!” 。虽然此刻张衡路节点已经拿到了数字货币,但对于其他计算机节点来说,因为这里面还涉及到其他一些利益瓜葛,他们不会选择默认相信张衡路节点所说的话;基于陌生节点彼此不信任的原则,他们拿过张衡路节点所谓挖到的区块(副本),开始校验区块内的小纸条信息是否真实有效等等。在区块链世界里,节点们正是通过校验小纸条信息的准确性,或间接或直接判断成功挖出区块的节点是否撒谎。(如何定义小纸条信息真实有效,后面会讲解,这里暂不做赘述)。在校验过程中,各个节点们会直接通过下面两个行为表达自己对张衡路节点的认同(准确无误)和态度:停止已经进行了一半甚至80%的挖矿进程;将张衡路节点成功挖出的区块(副本)追加到自己区块链的末尾。你可以稍微有点困惑:停止可能已经执行了80%的挖矿行为,那之前80%的工作不是就白做了嘛?!然后,区块链的末尾又是个什么鬼东西?对于第一个困惑。我想说,你说的一点没错,但是没办法,现实就是这么残酷,即便工作做了80%,那也得放弃,这80%的工作劳苦几乎可以视为无用功,绝对的伤财劳众。第二个困惑,区块链和区块链的末尾是什么鬼?这里因为事先并没有讲清楚,但是你可以简单想象一下:区块是周期性不断的产生和不断的被挖出来,一个计算机节点可能事先已经执行了N次“从别人手上拿过区块 -> 校验小纸条有效性”的流程,肯定在自己的节点上早已经存放了N个区块,这些区块会按照时间顺序整齐的一字排列成为一个链状。没错,这个链条,就是你一直以来认为的那个区块链。如果你还是不能够理解,没关系,文章后面还会有很多次机会深入研究。
进入到区块内更微观的世界里一探究竟,看看小纸条到底是怎么一回事,它的产生以及它终其一生的使命:发起交易的时候,发起人会收到一张小纸条,他需要将交易记录比如说“盗盗转账给张三40元”写在纸上。说来也神奇,当写完的那一刹那,在小纸条的背面会自动将这段交易记录格式化成至少包含了“输入值”和“输出值”这两个重要字段;“输入值”用于记录数字货币的有效来源,“输出值”记录着数字货币发往的对象。刚刚创建的小纸条立马被标记成为“未确认”的小纸条。从地下成功挖出区块并最终连接到区块链里的小纸条一开始会被标记为“有效”。若这条有效的小纸条作为其他交易的输入值被使用,那么,这个有效的小纸条很快会被标记为“无效”。因为各种原因,区块从链上断开、丢弃,曾经这个区块内被标记为“有效”的小纸条会被重新标记为“未确认”。区块链里面没有账户余额的概念,你真正拥有的数字资产实际上是一段交易信息;通过简单的加减法运算获知你数字钱包里的余额。上面的1、2、3仅仅作为结论一开始强行灌输给你的知识点,其中有几个描述可能会有点绕,让你觉得云里雾里,只有了解整体区块链你才能更全面认知其中奥妙。
区块容量,比特币从被创建时,或者说源代码中规定了,区块容量是1M。最初设计成1M的原因一方面,防止DOS攻击。另一方面,当年中本聪在创建区块链的时候的容量是32M,但是他通过一个说明为”Clear up“这样毫不起眼的Commit把区块容量改成了1M,为防止区块链体积增长过快,为区块容量这个问题添加了些神秘色彩。1M的容量意味着比特币最大的处理交易数量在约2400(486882区块1034.39的大小很接近了)。
区块链说白了,就是一个分布式的记账的一个小本本,用来记账的一个工具,并且基于密码学加密学的技术铺垫,一旦数据交易记录在区块链这个本本上了,数据是不可篡改和抵赖的。互联网是价值的传递,那区块链呢就是信任的传递。在区块链技术作为信用背书的前提下,区块链中的各节点从各自单一的中心变为多方参与的统一多中心,不需要第三方机构的参与便可实现交易传递,效率提高。
B. 区块链总共有哪些
区块链主要解决的交易的信任和安全问题,因此它针对这个问题提出了四个技术创新:
(1)分布式账本,就是交易记账由分布在不同地方的多个节点共同完成,而且每一个节点都记录的是完整的账目,因此它们都可以参与监督交易合法性,同时也可以共同为其作证。
跟传统的分布式存储有所不同,区块链的分布式存储的独特性主要体现在两个方面:一是区块链每个节点都按照块链式结构存储完整的数据,传统分布式存储一般是将数据按照一定的规则分成多份进行存储。二是区块链每个节点存储都是独立的、地位等同的,依靠共识机制保证存储的一致性,而传统分布式存储一般是通过中心节点往其他备份节点同步数据。 [8]
没有任何一个节点可以单独记录账本数据,从而避免了单一记账人被控制或者被贿赂而记假账的可能性。也由于记账节点足够多,理论上讲除非所有的节点被破坏,否则账目就不会丢失,从而保证了账目数据的安全性。
(2)非对称加密和授权技术,存储在区块链上的交易信息是公开的,但是账户身份信息是高度加密的,只有在数据拥有者授权的情况下才能访问到,从而保证了数据的安全和个人的隐私。
(3)共识机制,就是所有记账节点之间怎么达成共识,去认定一个记录的有效性,这既是认定的手段,也是防止篡改的手段。区块链提出了四种不同的共识机制,适用于不同的应用场景,在效率和安全性之间取得平衡。
区块链的共识机制具备“少数服从多数”以及“人人平等”的特点,其中“少数服从多数”并不完全指节点个数,也可以是计算能力、股权数或者其他的计算机可以比较的特征量。“人人平等”是当节点满足条件时,所有节点都有权优先提出共识结果、直接被其他节点认同后并最后有可能成为最终共识结果。以比特币为例,采用的是工作量证明,只有在控制了全网超过51%的记账节点的情况下,才有可能伪造出一条不存在的记录。当加入区块链的节点足够多的时候,这基本上不可能,从而杜绝了造假的可能.
(4)智能合约,智能合约是基于这些可信的不可篡改的数据,可以自动化的执行一些预先定义好的规则和条款。以保险为例,如果说每个人的信息(包括医疗信息和风险发生的信息)都是真实可信的,那就很容易地在一些标准化的保险产品中,去进行自动化的理赔.
C. 什么是区块链技术区块链技术的核心构成是什么
从技术的角度,架构的角度,用通俗的语言来跟大家讲讲,我对区块链的一些理解。
究竟啥是区块链?Block chain,一句话来说,区块链是一个存储系统,存储系统更细一点,区块链是一个没有管理员,每个节点都拥有全部数据的分布式存储系统。
那常见的存储系统,是什么样子的呢?
首先看一下如何保证高可用?
普通的存储系统通常是用“冗余”的方式来解决高可用问题的。图上图所示如果能够把数据复制成几份,冗余到多个地方,就能够保证高可用。一个地方的数据挂了,另外的地方还存有数据,例如MySQL的主从集群就是这个原理,磁盘的RAID也是这个原理。
这个地方需要强调的两点是:数据冗余,往往会引发一致性的问题
1、例如MySQL的主从集群中中其实读写会有延时的,它其实就是有一个短的时间内读写不一致。这个是数据冗余,带来的一个副作用。
2、第二个点是数据冗余往往会降低写入的效率,因为数据同步也是需要消耗资源的。你看单点写入,如果加了两个从库之后,其实写入的效率会受影响。普通的存储系统,就是采用冗余的方式,保证数据的高可用的。
那么第二个问题,普通的存储系统,能否多点写入呢?
答案是可以的,比如说以这个图为例:
其实MySQL的话可以做一个双主的主从同步,双主的主从同步,两个节点,同时可以写入。如果要做多机房多活的数据中心,其实多机房多活也是进行数据同步的。这里要强调的是多点写入,往往会引发写写冲突的一致性问题,以MySQl为例,假设有一个表的属性是自增ID,那么现在数据库中的数据是1234,那么其中一个节点写入,插入了一条数据,那它可能变成5了,然后这5条数据,向另外一个主节点进行数据同步,同步完成之前,如果另外一个写入节点,也插入了一条数据,也生成了一条这个自增id为5的数据。那么,生成之后,往另外一个节点同步,然后同步数据到达之后会与本地的这两条5冲突,就会同步失败,会引发写写的一致性冲突问题。这个多点写入的话都会出现这个问题。
多点写入,如何保证一致?
维新“天鹅大咖课”给你更多的技术干活
D. 区块链是什么意思,区块链在跨境支付方面有什么应用
为什么说互联网时代将要结束,区块链时代即将来临?
区块链一旦发展起来,将会迸发更多的创新。作为区块链的第一款产品的比特币自从诞生以后,就相继诞生许多创新。比如小额跨境支付,记录货币间的转账交易,记录各种股票,登记房屋产权,记录程序代码等
蒸汽时代解放了社会生产力,电气时代盘活了社会协作能力,互联网时代把世界联系在一起,而区块链时代,将让我们真正实现自由。
E. 区块链是什么概念
区块链是一个可以共同记账的数字账本,会记录所有曾经发生并经过系统一致认可的交易。相当于全家总动员的方式记账,你在记账,你爸爸和妈妈也在记账,他们都能看到总账,但是已经被保存的信息就无法再被篡改。
2008年由中本聪第一次提出了区块链的概念。随后区块链成为了电子货币比特币的核心组成部分,是作为所有交易的公共账簿。通过利用点对点网络和分布式时间戳服务器,区块链数据库能够进行自主管理。
(5)区块链总账扩展阅读:
区块链的类型
1、公有区块链
世界上任何个体或者团体都可以发送交易,且交易能够获得该区块链的有效确认,任何人都可以参与其共识过程。公有区块链是最早的区块链,也是应用最广泛的区块链,各大bitcoins系列的虚拟数字货币均基于公有区块链,世界上有且仅有一条该币种对应的区块链。
2、联合(行业)区块链
行业区块链(Consortium Block Chains):由某个群体内部指定多个预选的节点为记账人,每个块的生成由所有的预选节点共同决定(预选节点参与共识过程),其他接入节点可以参与交易,但不过问记账过程(本质上还是托管记账,只是变成分布式记账,预选节点的多少,如何决定每个块的记账者成为该区块链的主要风险点),其他任何人可以通过该区块链开放的API进行限定查询。
3、私有区块链
仅仅使用区块链的总账技术进行记账,可以是一个公司,也可以是个人,独享该区块链的写入权限,本链与其他的分布式存储方案没有太大区别。