发布网友 发布时间:2024-09-29 19:32
共1个回答
热心网友 时间:2024-10-12 09:32
区块链记账原理区块链是由一个个区块构成的有序列表,每一个区块都记录了一系列交易,并且每一个区块都指向前一个区块从而形成一个链条。
区块链有以下几个特征:
区块链具有不可篡改的特性,是由哈希算法保证的。
什么是哈希算法/Hash:
安全哈希算法的特点:
哈希算法的作用:
假设我们相信一个安全的哈希算法:如果H(x)=H(y),则x=y
常用的哈希算法:
比特币使用两种哈希算法:
假设这个区块有5笔交易,首先,对每一笔交易进行第一hash,也就是2次SHA-256的运算,得到5个哈希值,也就是a1、a2、a3、a4、a5,这五个哈希值也可以看做是数据,将a1和a2拼起来、a3和a4拼起来,再计算出2个哈希值b1和b2。那a5怎么办呢?答案是将a5复制一份在与a5拼起来进行哈希计算得到b3;继续将b1和b2拼起来进行哈希运算得到c1,同样的b3会被复制一份再与b3拼起来进行哈希运算得到c2;最后将c1和c2拼起来进行哈希运算得到最终的哈希值,这个哈希值就是MerkleHash。
从MerkleHash的计算方法可以得出结论:修改任意一笔交易,哪怕是一个字节,或者交换两个交易的顺序,都会导致MerkleHash验证失败,也就会导致这个区块本身是无效的。所以MerkleHash记录在头部,它的作用就是保证交易记录永远不能够被修改。
区块本身用BlockHash来标识:BlockHash是区块唯一标识。一个区块的hash并没有记录在区块头部,而是通过计算区块的hash得到的。
区块的PrevHash记录了上一个区块的Hash,这样就可以通过PrevHash追踪到上一个区块,由于下一个区块的PrevHash又会指向当前区块,这样每一个区块的PrevHash都指向上一个区块,这些区块串起来就形成了区块链。如果一个攻击者恶意攻击了某一个区块的交易记录,那么这个区块的MerkleHash验证就不会通过,所以攻击者只能重新计算MerkleHash,然后把区块头的MerkleHash也修改了,但是这个区块本身的Hash已经改变,那么下一个区块指向该区块的链接也断掉了。由于比特币区块的hash必须满足一定的难度值,所以攻击者只能把后面所以区块全部重新计算,并且伪造出来,才能修改整个区块链。
修改一个区块的成本已经非常高了,如果要修改整个区块链,那么其成本非常非常的高昂。在比特币网络中,伪造区块链需要拥有超过51%的全网算力。所以比特币网络运行了6年,从来没有被攻破过。
区块链入门(一)——大家一起来记账
小时候,我对许多新奇的事物都很好奇,充满渴望想去了解学习,那时自己的脑回路里经常会出现无数的惊叹号。随着年龄的增长与经历的丰富,这种体验越来越少,也对很多人云亦云的新东西见怪不惊。当“区块链”第一次出现时候,自己完全被吸引住了,之后像小时候一样,本能般地被驱动着去深入学习与了解,发现“区块链”就是一个新世界,是即将到来的未来。
第一次听到“区块链(Blockchain)”三个字,是在李笑来老师的《通往财富自由之路》的专栏上,之后多次在专栏文章里看到这个词汇的出现。出于好奇,关注并阅读了了老猫的公众账号《猫说》上的文章,逐渐对区块链有了从0到1的认识。block-块,chain-链,blockchain-把一个一个的块连成链,想象一下DNA在面前无限延伸的样子.....
这段是百度百科上面对区块链的一个解释,换个通俗点的说法,区块链是一种公开、去中心化、去信任的,共同维护的账务系统。
先来看看传统的中心化的银行商业模式。我们在做交易的时候,为什么需要银行、阿里巴巴、腾讯等第三方中心化公司?因为人与人之间是不信任的。A今天借给B100块,明天B不承认这笔借款,A怎么办?银行帮忙解决了这个问题,每个人在银行里创建一个实名认证的户头,借助这个中心化公司,A借给银行100元(存),B从银行拿出100元(取/借),那么银行负责对这笔交易进行记录,A的账户就会多100元,而B则少100元。这样的依靠第三方中心化公司记账的方式在我们生活中随处可见:网购我们需要阿里巴巴的淘宝城和京东;贷款我们需要找靠谱的小贷公司;发行新书要通过某个出版社……归根结底,是因为人与人之间不信任,或者说要维持信任的风险太大,成本太高,所以我们需要这样的中心化的强大的第三方公司来给交易进行信任背书,让它们来承担这些风险,当然,它们也赚足了我们的钱。可是倚靠第三方中心化的商业模式给我们带来的却是低效的服务、繁琐的程序以及价值的分流,例如银行排队办理业务,小贷公司的放贷流程,淘宝、京东对商家的收租,出版社对作家稿费的分羹等等。这就是目前我们所处的中心化的,第三方信任化的世界。
而区块链世界,则是一种新的世界,这里不需要第三方,所有的交易信息都是公开的,并且所有人都参与记账!比特币作为世界上第一个被实证可行的区块链应用,就是运用自动记账且账务公开,信息不可篡改,随时可查询的技术*了传统金融模式,绕开了第三方中心化,买卖方直接进行交易。这样的交易模式一定是高效的,低成本的,并且公开化的。试想一下如果区块链技术未来普及,当你要转账一笔大数额的金钱给国外的朋友,略过冗长的环节,瞬间到账;如果你写了一本书发表,不用担心被人盗版,也不用被出版社赚取属于你的稿费;人与人之间直接搭建点对点的互助保险平台,保险公司将变成咨询公司等等。(事实上,比特币与Press.one正在实现这样的*)
当下互联网蓬勃发展,外勤我们有滴滴打车或共享单车,叫餐我们选择饿了么,餐厅就餐有大众点评,到处都是微信、支付宝的便捷支付。我们在互联网上进行支付的时候,需要倚靠一个买卖双方都信任的第三方平台公司来替我们完成这笔交易。这些第三方公司拥有大量的交易数据以及交易双方的信息,那么,如果发生黑客入侵造成信息丢失,我们将为我们的“信任风险”承担后果;且不提在审核、清算交易数据带来的拖延不便,以及管理这样庞大的数据所要耗费的巨大成本。
那么区块链技术是怎么实现的呢?打个比方,假如有一支军队要去抢占敌方的堡垒,而每一个士兵都带有一个特殊的头盔,头盔有一个红色按钮,每占领一个堡垒,本军总部给予勋章奖励。首先,有一位士兵A率先占领了第一个堡垒1,他通过头盔对其他战友宣布自己已经占领堡垒1,这时候头盔就会把堡垒1的坐标信息记录下来,连同A的喊话一起传递给其他所有士兵,其他人通过头盔听到A的喊话并按下后按下红色按钮表示已经同步记录了这条信息。那么所有人都知道堡垒1已经被A占领,并且A获得勋章奖励。于是其他人就会立马去攻占其他的堡垒,并且按同样的方式广播自己的战功。这样,这场战役中不同堡垒被不同士兵攻占的信息就全部保存在每一个人的头盔中。在这里,头盔就是这个公共账本(严格来说是头盔的程序),所有人都参与记账;每个攻占信息都构成一个区块,所有的信息按照一定顺序排列就构成了一个区块链;参与者除了记账(按下红色按钮),还要争先恐后去抢夺新数据的打包权(攻占堡垒)。
那么来看看这种共同记账方式的优势。1,去中心化。账本是大家共同记录维护的,到底是谁首先记录无所谓,因为有激励(勋章),就会有人去做,不需要第三方介入(不需要将军或是作战部的指挥,减少军队开支与指挥者牺牲的风险)。2,数据不可篡改。已经记账的数据如果要修改,必须修改超过51%的节点信息才能成功。试想一下,这个军队如果有百万人(实际上区块链节点数量远远大于这个数),要修改超过一半军队的头盔,这是个几乎不可能完成的任务。3,信息公开透明。所有人都可以在自己的账本中查询到这条交易信息(所有堡垒攻占信息都已记录在所有人头盔里)。
这是我开始迈向写作的第一篇文章,上一次写这么多字应该是在高考场上了。第一篇文章写的是从来没接触过的新的领域,文字有点混乱平庸,也不知道自己做的类比正确与否,不过终究开始去做了。写作确实是人人都应该具备的技能,并且是可刻意练习而提高的技能,督促自己维持下去。
区块链是什么_区块链技术是什么区块链是什么
区块链最近比较火热,一说的区块链人们就会联系到比特币,但是区块链是区块链,比特币是比特币,两者是完全不同的,很多人虽然听说过区块链,但是他们并不懂区块链是什么,区块链到底是什么意思?
区块链是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。很多人对去中心化还不了解,去中心化就是在区块链没有中心账本,人人都有机会参与记账,人人都是中心,并且系统里的人,人人都有一份账本。一说到区块链大家就会提到比特币,因为区块链是比特币的底层技术,主要是应用在比特币上的,区块链就像是一个数据库大账本,记载所有的交易记录,并且会将更新的记账内容发送给所有系统类的用户。
区块链技术是什么
通俗点来讲,区块链技术就是一种全民参与记账的方式。所有的系统都有相应的一个数据库,若是把数据库比作一个账本,那么记账的人非常关键,这些数据库目前是各自记各自的账,例如淘宝账本是有阿里巴巴进行记账的,而微信账本是由腾讯进行记账的。但在区块链系统中,每个人都有机会参与记账,系统会选择记账最好最快的人,把他的内容记到账本上,并且会把账本的内容发送给系统内的所有人备份,使每个人都有相同的账本,保证记账的过程是透明的,没有*大账本,这大大提升了安全性。以前不信任的双方要进行交易比较难,为了交易的安全,需要一个第三方平台,而区块链技术就解决了用户交易的信用问题,人们可以在没有第三方中介的情况下完成交易,比特币交易的底层技术就是运用了区块链技术,所以有很多人会把比特币跟区块链联系起来,也正是因为比特币运行多年都非常稳定,所以让人们注意到了它的底层技术,人们把比特币的底层技术抽象提取出来,就叫区块链技术。
区块链到底是什么东西?它又有哪些特点?区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,它本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块。区块链技术是指一种全民参与记账的方式,他的核心是去中心化。
这一串标准定义是不是很难理解,如果用一个例子来解释区块链,就是下面这样:
有一个村庄进行了集体合作,他们设置了一个会计,负责记账,也就是谁出了多少工,大家买了多少东西,村里赚了多少钱等。到了年底,村长会根据记录的账本,将结余分给村民。
不过人总是有贪欲的,所以有人发现会计在假账,中饱私囊。为了避免再发生这样的事情,大家进行集体讨论之后,决定不要会计了,让大家轮流记账,防止账本被单独的一个人控制。这就是“去中心化”,即所有人都能接触到账本。
人终归是有贪欲的吗,有人就决定挪用村里*,可是他又怕被别人发现,于是就销毁了账本的部分内容,这就没人能查他了。随着其他人学会了这一招儿,账本没了,村里的公共财产也快没了。
面对这个情况,大家再次进行集体讨论之后,决定使用一种新的记账方法:每个人都能拥有一本自己的账本,任何一个人改动了账本都必须告知其他人,其他人也会在自己的账本上记上同样的内容。如果有人发现账目不对,就可以指出来拒绝接受。到年终分账的时候,以大多数人都认可的账目为合法账目。即使有人真的不小心,将自己的账本损坏了,他只需要找到其他合法账目去复制一下就可以了。这就是区块链的“公开透明化和安全性”。
不过这么搞就需要所有人都每天记账,实在太麻烦、太花时间了。所以大家开了一个会,决定每天早上掷骰子,随机决定谁负责记录当天的账目,其他人在进行核对之后,认为没有问题就能复制到自己的账本里了。这就是区块链记账方法的雏形。