精华内容
下载资源
问答
  • 区块链技术基本原理

    2020-12-02 10:12:59
    区块链技术基本原理要理解清楚就必须去深入的了解它,区块链技术基本原理也是随着各方面的应用而越来越清晰,区块链概念在国内逐渐热了起来。具有去中心化、无须中心信任、不可篡改和加密安全特点的区块链技术正在...

    区块链技术基本原理要理解清楚就必须去深入的了解它,区块链技术基本原理也是随着各方面的应用而越来越清晰,区块链概念在国内逐渐热了起来。具有去中心化、无须中心信任、不可篡改和加密安全特点的区块链技术正在走进政府决策、金融机构、大型企业的视野,至少已在数字货币、支付清算、信贷融资、金融交易、证券、保险、租赁等七个领域从理论探讨走向实践应用。

       区块链的应用阶段,区块链1.0是分布式的数据布置架构,其实,现在任何IT技术变化的底层是人类对于数据的储存、调用、应用的变化,导致后来一系列的相关的IT方面的变化。区块链同样如此,新的分布式、公开化的基于密码学的数据库的布置架构重新设计。同时在区块链2.0时代,会出现类似于SAAS、PAAS、IAAS,普通的消费者根本不用花时间理解区块链上面的东西,只要使用基于区块链的BaaS应用解决问题,创造价值就行,而开发人员,只需要调用各种未来会出现的区块链平台,以及各种中间件和API,在区块链上开发各种各样的应用,区块链2.0将是区块链真正进入应用的时代,真正进入各行各业的时代。区块链3.0时代,因为数据库的布置架构发生变化,开发平台发生变化,商业范式也将发生变化,自然而然,生产关系会发生变化,举个例子,在媒体行业,现在各种各样的纸媒、杂志已经被互联网媒体,以及被各种自媒体颠覆,其他行业会不会这样?我们现在中心化生产,中心化资源调度的形式,会不会被自生产、自管理、自组织的新生产和分工形式颠覆?目前的各类中心化平台或者组织的角色是信用的被托付方,个体将信用托付于组织和平台,由中心化的组织和平台代为管理生产资料,组织生产过程,分配分配生产收益。在区块链时代,主体和主体、设备和设备自成点对点分布式的生产和合作体系的时候,平台的角色是什么?区块链时代平台不会少,但是平台以什么状态存在?那个时候的平台将退到后台,但是影响力比现在中心平台更重要,因为它的角色是价值定义,以及维护价值网络的存在、运行和稳定。想象一下,有人能够定义什么是价值,一块宝石,就算是钻石,也不过是一块矿物,但为什么能够有价值?背后其实是社会大众赋予其价值,而区块链时代,通过技术和商业,就可以实现价值的个性化定义。
    
      在这样的情况下,我们现在很多习以为常的商业范式都会发生变化,分布式自动化组织,这种是自生产的新商业模式,有一个区块链企业正在住宿业部署其应用,如果按照传统的商业眼光来看,其实就是一个智能门锁,但开发者通过区块链使智能门锁成为一个房屋使用权的转移媒介,租赁者先支付租金,然后通过区块链获得交易确认,然后租赁者获得智能门锁的密码,到期后,智能门锁的密码会自动更换。由此案例可见,平台企业的角色慢慢从生产资料的管理者、生产过程的组织者,生产产品的分销者,以及生产收益的分配者,退到了价值网络的后面。企业角色变成定义价值,设计协议的机构,但是又获得超额的收益,这个收益在于价值网络的定义权。
    
      可以大胆展望一下未来十年整个区块链革命的路线图会是什么样,可以把2014到2016年称为区块链从0到1的过程,这两年内,区块链从比特币中被抽象出来,并且得到完善和升华,以金融机构为代表的传统组织开始审视区块链,并且开始在内部研究部署私链作为试验,有前瞻性的企业组成联盟,共同部署区块链。
    
       2017年到2020年是概念验证的过程,金融企业开始在有限的业务中采用区块链作为概念验证,其他行业也开始认识区块链,先行者开始同步试验采用区块链开发行业应用,同时平台型区块链独角兽出现。而我们能源区块链实验室,作为世界首个专注于开发区块链+能源应用的机构,将和在座所有企业和团队携手开发区块链+能源的应用。
    
       2020-2025年我们将初见颠覆,由于区块链得天独厚的技术优势,区块链将在部分新兴行业内开始出现颠覆现象,例如众筹、共享经济、电动汽车、分布式光伏、储能等,在这个阶段内,大批应用型区块链独角兽将出现。
    
       2025年以后区块链新经济将出现,就像目前的互联网经济一样,基于区块链、AI、物联网的下一代信息网络将演化出新的经济模式,基于区块链和人工智能的DAO和Dapp大量涌现,区块链+AI,区块链+物联网,区块链+量子计算,将会形成合力,以排山倒海的态势冲击所有行业,就像当初互联网对于传统行业的改造一样,新经济重塑生产关系,企业和商业模式的定义需要重新定义。但是我们认为这样的改造必然有成功,肯定会有大量的失败,就像O2O最火的时候,恨不得把上厕所都滴滴一下。所以区块链需要有人试错,需要有人预见问题会发生在哪里,我们能源区块链实验室的另一重要工作将是做行业研究,帮助有志于区块链的企业提前发现问题,同时通过“区块链+”创造价值,解决问题。
    
       区块链现在最大的问题是缺少应用价值,很多应用都是为了区块链而区块链,就是因为区块链圈外的人,我们称之为产业人对于区块链理解不够,而区块链圈内人则不理解具体行业,不理解具体行业的诉求和痛点,不理解具体行业的规章制度,因此,很难在区块链+具体产业领域有所突破。我们四个合伙人从能源+金融+IT+区块链四个领域出身,并且每个人都具备多元化背景和能力,很好地结合了能源、IT、区块链、金融、碳市场五大要素,为所有能源企业和区块链提供合作的机会。
    
      我们希望我们能源区块链能够在2017年到2025年产生平台级别的能源区块链,同时和各位企业联手合作,真正带领优秀的企业家共同携手诞生出若干个独角兽的能源企业。
    

    区块链技术将影响多个行业

    “区块链技术在大数据时代有着广泛的应用。”目前除了互联网金融领域,区块链技术已在多个领域展开应用,并展现出了大好前景。

    布比区块链专注于区块链技术和产品的创新,已拥有多项核心技术,开发了自有的区块链服务平台。以去中心化信任为核心,致力于打造开放式价值流通网络,让数字资产都自由流动起来。布比要做的是一项新的技术和产品——实现真正的价值流通,使得互联网到达一个新的高度。如果有了这个技术的应用,在转移资产的时候就可以没有中心机构了,可以实现我们之间资产的直接转移。

    区块链可以做什么?第一,基于区块链的数据公正确保信任,公私钥结合的访问权限保护隐私,真正做到保护隐私,可信计量。第二,区块链防篡改,实现主体间强制信任,实现强制信任下泛在交互。第三,区块链+大数据+人工智能构成可信任预言机签署外部数据,实现虚实交互的自律控制。第四,基于区块链部署的设备间点对点交互式决策,不需要将信任托付于中心化平台代为决策,实现设备民主,分布决策。第五,各主体间基于明确的互动规则进行随机博弈,系统呈现中性演化,通过改良互动规则实现竞争进化,最终实现广域博弈,协调演化。基于区块链,我们真正实现了能源互联网从Beta版到1.0,从纸面版到商业版的过程。

       区块链技术基本原理的广泛应用让各行业对于此种技术应用的达到了新高度,全新的技术与全新的理念促进了各行业的新的发展,这种推动力对于社会的影响,经济活动的促进也是巨大的,很多崭新的行业现象将会陆续发生,而大众也拭目以待,期待这种全新的技术为各行业所用,更好的造福各行业。
    
    展开全文
  • 区块链技术原理

    千次阅读 2018-03-26 20:27:31
    区块链技术最初是由一位化名中本聪的人为比特币(一种数字货币)而设计出的一种特殊的数据库技术,它基于密码学中的椭圆曲线数字签名算法(ECDSA)来实现去中心化的P2P系统设计。但区块链的作用不仅仅局限在...

    区块链是什么?
    “区块链”技术最初是由一位化名中本聪的人为比特币(一种数字货币)而设计出的一种特殊的数据库技术,它基于密码学中的椭圆曲线数字签名算法(ECDSA)来实现去中心化的P2P系统设计。但区块链的作用不仅仅局限在比特币上。现在,人们在使用“区块链”这个词时,有的时候是指数据结构,有时是指数据库,有时则是指数据库技术,但无论是哪种含义,都和比特币没有必然的联系。

    从数据的角度来看:区块链是一种分布式数据库(或称为分布式共享总账,DistributedShared Ledger),这里的“分布式”不仅体现为数据的分布式存储,也体现为数据的分布式记录(即由系统参与者来集体维护)。简单的说,区块链能实现全球数据信息的分布式记录(可以由系统参与者集体记录,而非由一个中心化的机构集中记录)与分布式存储(可以存储在所有参与记录数据的节点中,而非集中存储于中心化的机构节点中)。

    从效果的角度来看:区块链可以生成一套记录时间先后的、不可篡改的、可信任的数据库,这套数据库是去中心化存储且数据安全能够得到有效保证的。

    结论:区块链是一种把区块以链的方式组合在一起的数据结构,它适合存储简单的、有先后关系的、能在系统内验证的数据,用密码学保证了数据的不可篡改和不可伪造。它能够使参与者对全网交易记录的事件顺序和当前状态建立共识。

    如今的区块链技术概括起来是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术。其实,区块链技术并不是一种单一的、全新的技术,而是多种现有技术(如加密算法、P2P文件传输等)整合的结果,这些技术与数据库巧妙地组合在一起,形成了一种新的数据记录、传递、存储与呈现的方式。简单的说,区块链技术就是一种大家共同参与记录信息、存储信息的技术。过去,人们将数据记录、存储的工作交给中心化的机构来完成,而区块链技术则让系统中的每一个人都可以参与数据的记录、存储。区块链技术在没有中央控制点的分布式对等网络下,使用分布式集体运作的方法,构建了一个P2P的自组织网络。通过复杂的校验机制,区块链数据库能够保持完整性、连续性和一致性,即使部分参与人作假也无法改变区块链的完整性,更无法篡改区块链中的数据。

    区块链技术涉及的关键点包括:去中心化(Decentralized)、去信任(Trustless)、集体维护(Collectively maintain)、可靠数据库(ReliableDatabase)、时间戳(Time stamp)、非对称加密(AsymmetricCryptography)等。

    区块链技术重新定义了网络中信用的生成方式:在系统中,参与者无需了解其他人的背景资料,也不需要借助第三方机构的担保或保证,区块链技术保障了系统对价值转移的活动进行记录、传输、存储,其最后的结果一定是可信的。

    区块链技术原理的来源可归纳为一个数学问题:拜占庭将军问题。拜占庭将军问题延伸到互联网生活中来,其内涵可概括为:在互联网大背景下,当需要与不熟悉的对手方进行价值交换活动时,人们如何才能防止不会被其中的恶意破坏者欺骗、迷惑从而做出错误的决策。进一步将拜占庭将军问题延伸到技术领域中来,其内涵可概括为:在缺少可信任的中央节点和可信任的通道的情况下,分布在网络中的各个节点应如何达成共识。区块链技术解决了闻名已久的拜占庭将军问题——它提供了一种无需信任单个节点、还能创建共识网络的方法。

    区块链技术的本质是一种互联网协议。

    设想一下,如果现在我们想要在互联网世界中建立一套全球通用的数据库,那么我们会面临三个亟待解决的问题,这三个问题也是设计区块链技术的核心所在:

    问题一:如何建立一个严谨的数据库,使得该数据库能够存储下海量的信息,同时又能在没有中心化结构的体系下保证数据库的完整性?
    
    问题二:如何记录并存储下这个严谨的数据库,使得即便参与数据记录的某些节点崩溃,我们仍然能保证整个数据库系统的正常运行与信息完备?
    
    问题三:如何使这个严谨且完整存储下来的数据库变得可信赖,使得我们可以在互联网无实名背景下成功防止诈骗?
    

    针对这三个核心问题,区块链构建了一整套完整的、连贯的数据库技术来达成目的,解决这三个问题的技术也成为了区块链最核心的三大技术。此外,为了保证区块链技术的可进化性与可扩展性,区块链系统设计者还引入了“脚本”的概念来实现数据库的可编程性。我们认为,这四大技术构成了区块链的核心技术。

    核心技术1:区块+链

    关于如何建立一个严谨数据库的问题,区块链的办法是:将数据库的结构进行创新,把数据分成不同的区块,每个区块通过特定的信息链接到上一区块的后面,前后顺连来呈现一套完整的数据,这也是“区块链”这三个字的来源。

    区块(block):在区块链技术中,数据以电子记录的形式被永久储存下来,存放这些电子记录的文件我们就称之为“区块(block)”。区块是按时间顺序一个一个先后生成的,每一个区块记录下它在被创建期间发生的所有价值交换活动,所有区块汇总起来形成一个记录合集。
    
    区块结构(BlockStructure):区块中会记录下区块生成时间段内的交易数据,区块主体实际上就是交易信息的合集。每一种区块链的结构设计可能不完全相同,但大结构上分为块头(header)和块身(body)两部分。块头用于链接到前面的块并且为区块链数据库提供完整性的保证,块身则包含了经过验证的、块创建过程中发生的价值交换的所有记录。
    

    区块结构有两个非常重要的特点:第一,每一个区块上记录的交易是上一个区块形成之后、该区块被创建前发生的所有价值交换活动,这个特点保证了数据库的完整性。第二,在绝大多数情况下,一旦新区块完成后被加入到区块链的最后,则此区块的数据记录就再也不能改变或删除。这个特点保证了数据库的严谨性,即无法被篡改。

    顾名思义,区块链就是区块以链的方式组合在一起,以这种方式形成的数据库我们称之为区块链数据库。区块链是系统内所有节点共享的交易数据库,这些节点基于价值交换协议参与到区块链的网络中来。

    区块链是如何做到的呢?由于每一个区块的块头都包含了前一个区块的交易信息压缩值,这就使得从创世块(第一个区块)到当前区块连接在一起形成了一条长链。由于如果不知道前一区块的“交易缩影”值,就没有办法生成当前区块,因此每个区块必定按时间顺序跟随在前一个区块之后。这种所有区块包含前一个区块引用的结构让现存的区块集合形成了一条数据长链。“区块+链”的数据存储结构如下图所示。

    我们引用《区块链:互联网金融的终局》(肖风)的一段话来总结区块链的基本结构:“人们把一段时间内生成的信息(包括数据或代码)打包成一个区块,盖上时间 戳,与上一个区块衔接在一起,每下一个区块的页首都包含了上一个区块的索引数据,然后再在本页中写入新的信息,从而形成新的区块,首尾相连,最终形成了区块链。”这个结构的神奇之处:区块(完整历史)+ 链(完全验证)= 时间戳

    “区块+链”的结构为我们提供了一个数据库的完整历史。从第一个区块开始,到最新产生的区块为止,区块链上存储了系统全部的历史数据。

    区块链为我们提供了数据库内每一笔数据的查找功能。区块链上的每一条交易数据,都可以通过“区块链”的结构追本溯源,一笔一笔进行验证。

    区块+链=时间戳,这是区块链数据库的最大创新点。区块链数据库让全网的记录者在每一个区块中都盖上一个时间戳来记账,表示这个信息是这个时间写入的,形成了一个不可篡改、不可伪造的数据库。我们认为,时间戳是区块链中一项伟大的技术创新,它可以证明什么呢?

    核心技术2:分布式结构——开源的、去中心化的协议

    我们有了区块+链的数据之后,接下来就要考虑记录和存储的问题了。我们应该让谁来参与数据的记录,又应该把这些盖了时间戳的数据存储在哪里呢?在现如今中心化的体系中,数据都是集中记录并存储于中央电脑上。但是区块链结构设计精妙的地方就在这里,它并不赞同把数据记录并存储在中心化的一台或几台电脑上,而是让每一个参与数据交易的节点都记录并存储下所有的数据。

    1.关于如何让所有节点都能参与记录的问题,区块链的办法是:构建一整套协议机制,让全网每一个节点在参与记录的同时也来验证其他节点记录结果的正确性。只有当全网大部分节点(或甚至所有节点)都同时认为这个记录正确时,或者所有参与记录的节点都比对结果一致通过后,记录的真实性才能得到全网认可,记录数据才允许被写入区块中。

    2.关于如何存储下“区块链”这套严谨数据库的问题,区块链的办法是:构建一个分布式结构的网络系统,让数据库中的所有数据都实时更新并存放于所有参与记录的网络节点中。这样即使部分节点损坏或被黑客攻击,也不会影响整个数据库的数据记录与信息更新。

    区块链根据系统确定的开源的、去中心化的协议,构建了一个分布式的结构体系,让价值交换的信息通过分布式传播发送给全网,通过分布式记账确定信息数据内容,盖上时间戳后生成区块数据,再通过分布式传播发送给各个节点,实现分布式存储。

    分布式记账——会计责任的分散化(Distributedaccountability)

    从硬件的角度讲,区块链的背后是大量的信息记录储存器(如电脑等)组成的网络,这一网络如何记录发生在网络中的所有价值交换活动呢?区块链设计者没有为专业的会计记录者预留一个特定的位置,而是希望通过自愿原则来建立一套人人都可以参与记录信息的分布式记账体系,从而将会计责任分散化,由整个网络的所有参与者来共同记录。

    区块链中每一笔新交易的传播都采用分布式的结构,根据P2P网络层协议,消息由单个节点被直接发送给全网其他所有的节点。

    区块链技术让数据库中的所有数据均存储于系统所有的电脑节点中,并实时更新。完全去中心化的结构设置使数据能实时记录,并在每一个参与数据存储的网络节点中更新,这就极大的提高了数据库的安全性。

    通过分布式记账、分布式传播、分布式存储这三大“分布”我们可以发现,没有人、没有组织、甚至没有哪个国家能够控制这个系统,系统内的数据存储、交易验证、信息传输过程全部都是去中心化的。在没有中心的情况下,大规模的参与者达成共识,共同构建了区块链数据库。可以说,这是人类历史上第一次构建了一个真正意义上的去中心化体系。甚至可以说,区块链技术构建了一套永生不灭的系统——只要不是网络中的所有参与节点在同一时间集体崩溃,数据库系统就可以一直运转下去。

    我们现在已经有了一套严谨的数据库,也有了记录并存储这套数据库的可用协议,那么当我们将这套数据库运用于实际社会时,我们要解决最核心的一个问题(问题三)是:如何使这个严谨且完整存储下来的数据库变得可信赖,使得我们可以在互联网无实名背景下成功防止诈骗?

    核心技术3:非对称加密算法

    什么是非对称加密?简单来说,它让我们在“加密”和“解密”的过程中分别使用两个密码,两个密码具有非对称的特点:(1)加密时的密码(在区块链中被称为“公钥”)是公开全网可见的,所有人都可以用自己的公钥来加密一段信息(信息的真实性);(2)解密时的密码(在区块链中被称为“私钥”)是只有信息拥有者才知道的,被加密过的信息只有拥有相应私钥的人才能够解密(信息的安全性)。

    简单的总结:区块链系统内,所有权验证机制的基础是非对称加密算法。常见的非对称加密算法包括RSA、Elgamal、D-H、ECC(椭圆曲线加密算法)等。在非对称加密算法中,如果一个“密钥对”中的两个密钥满足以下两个条件:1、对信息用其中一个密钥加密后,只有用另一个密钥才能解开;2、其中一个密钥公开后,根据公开的密钥别人也无法算出另一个,那么我们就称这个密钥对为非对称密钥对,公开的密钥称为公钥,不公开的密钥称为私钥。在区块链系统的交易中,非对称密钥的基本使用场景有两种:1、公钥对交易信息加密,私钥对交易信息解密。私钥持有人解密后,可以使用收到的价值。2、私钥对信息签名,公钥验证签名。通过公钥签名验证的信息确认为私钥持有人发出。

    我们可以看出,从信任的角度来看,区块链实际上是数学方法解决信任问题的产物。过去,人们解决信任问题可能依靠熟人社会的“老乡”,政党社会的“同志”,传统互联网中的交易平台“支付宝”。而区块链技术中,所有的规则事先都以算法程序的形式表述出来,人们完全不需要知道交易的对手方是“君子”还是“小人”,更不需要求助中心化的第三方机构来进行交易背书,而只需要信任数学算法就可以建立互信。区块链技术的背后,实质上是算法在为人们创造信用,达成共识背书。

    核心技术4:脚本

    脚本可以理解为一种可编程的智能合约。如果区块链技术只是为了适应某种特定的交易,那脚本的嵌入就没有必要了,系统可以直接定义完成价值交换活动需要满足的条件。然而,在一个去中心化的环境下,所有的协议都需要提前取得共识,那脚本的引入就显得不可或缺了。有了脚本之后,区块链技术就会使系统有机会去处理一些无法预见到的交易模式,保证了这一技术在未来的应用中不会过时,增加了技术的实用性。

    一个脚本本质上是众多指令的列表,这些指令记录在每一次的价值交换活动中,价值交换活动的接收者(价值的持有人)如何获得这些价值,以及花费掉自己曾收到的留存价值需要满足哪些附加条件。通常,发送价值到目标地址的脚本,要求价值的持有人提供以下两个条件,才能使用自己之前收到的价值:一个公钥,以及一个签名(证明价值的持有者拥有与上述公钥相对应的私钥)。脚本的神奇之处在于,它具有可编程性:(1)它可以灵活改变花费掉留存价值的条件,例如脚本系统可能会同时要求两个私钥、或几个私钥、或无需任何私钥等;(2)它可以灵活的在发送价值时附加一些价值再转移的条件,例如脚本系统可以约定这一笔发送出去的价 值以后只能用于支付中信证券的手续费、或支付给政府等。

    展开全文
  • 区块链基本原理

    2021-08-08 14:25:01
    区块链基本原理 ...提示:比特币,只是一种通过运用区块链技术对电子现金(数字货币)系统的实现而已。 2008年11月1日,中本聪发表论文描述了一种全新的电子现金(数字货币)系统——比特币。站在技术

    区块链基本原理


    账本

    什么是账本

    提示:比特币,只是一种通过运用区块链技术电子现金(数字货币)系统的实现而已。

    2008年11月1日,中本聪发表论文描述了一种全新的电子现金(数字货币)系统——比特币。站在技术人员的角度去看,要实现一个电子现金(数字货币)系统就是去实现一个账本。简单的说,电子现金(数字货币)系统就是账本。

    实现账本的四大难点

    我们知道,像人民币、美元这样的货币都是在强大的国家机器背书之下才能够被民众接受,并且在日常的生产生活中流通的。很显然,比特币是没有任何国家或机构为其背书的,中本聪面临的挑战就是如何利用技术手段给其发布的比特币进行背书。

    中本聪要实现比特币,或者说要**实现一个电子现金系统(站在技术人员的角度,即要实现一个账本),需要解决以下四个难题:**

    1. 账本不能被篡改。

    2. 账本不能丢失或损坏。

    3. 证明你是你。

    4. 同一份钱,不能花出去2次或多次(即:不能有双花问题)。

      双花问题说明:对于纸质货币,当纸币从A给到B时,整个交易就结束了;但是对于数字货币却有一些不同,假设A有10个比特币,他选择全部转账给B,当这笔交易在网络中执行但还未确认完成时,他选择再给C转10个比特币,对于系统而言,这两笔交易都是合法的,都可以通过验证广播到网络中,但是实际上,这显然是有问题的,这就是双花问题(双花攻击)。

    分布式账本解决难点1、难点2

    简单地说,分布式账本,即:账本让多个人同时记账,也就是账本保留多个备份。这样就不用担心账本丢失或损坏的问题,同时也使得账本不那么容易被篡改了,因为账本在多地都有备份,任何人能直接修改的只是本地的账本,在其它账本保存方不同意的情况下,改不了整体的账本,也就是说它的修改别人不认可。

    密码学解决难点3

    证明你是你,这句话的本意是A账户的余额只能是A才有权管理,A可以选择转账或其它交易,但是在做这些交易的时候,A必须证明这个账号是他的。很显然,采用密码学的知识,设计数字签名就可以做到。对于数字签名的细节要求有两点:

    • 第一,A签名过的交易A不能抵赖,其他人可以验证
    • 第二,其他人不能通过A签名后的交易仿造出A其它的签名交易

    区块链数据结构解决难点4

    我们常说的区块链技术是泛指数字货币技术,这里的区块链数据结构指的是具体的存储数据的结构。

    注:因为截止目前2021-08-08,区块链技术仍然是唯一已知的相对可靠的数字货币技术实现方式,所以就拿区块链技术来代指数字货币技术了,它包括了密码学、网络、数据结构等等。

    中本聪解决双花问题的办法很简单,就是设计一种强时序性的数据结构(这就是区块链结构)。他把若干个交易打包形成一个block块,并强制约束:当存在双花攻击中的两个或多个交易在同一个block块中时,该block块会被校验出不合法,最终两笔交易中只能有一个被打包到block块。接着系统再将新产生的块挂在之前产生的块的后面,这样就整体形成了一个链表结构。对于已经打包在块中的交易就是系统确认过的,此时再收到双花攻击里的第二笔交易时也没有问题,系统(在考虑前面的交易额的前提下)对当前的交易进行余额确认,若余额不足,则系统会认定当前交易为非法交易。

    这种不停的收集交易打包成块,然后挂在之前的块上形成的结构,被叫做chain of blocks,后来大家把它统一叫作blockchain(区块链)

    hash函数(SHA-256)

    hash函数的特性

    SHA-256算法的hash函数:y=hash(x),对于不同的输入x,都可以得到一个固定长度(256bit)的二进制的y值。

    hash函数的特性:

    • 防碰撞

      不是说hash是绝对防碰撞的,只是说碰撞的概率极低,所以认为hash是可以防碰撞的。

      举例:当hash得到的结果是22个字符长度时,300万亿次计算里,发生碰撞的概率时1000亿分之一。随着hash取值空间的增大,这个概率会更低,SHA-256的hash值实际上是一个64位的字符串。因此采用SHA-256算法的hash函数,我们认为它在在这个层面是防碰撞的。

    • 信息隐藏

      y=hash(x)中,你可以通过x得到y,但是你很难通过y得到x。

      注:在区块链网络中,每个用户在申请账户的时候都会获得一个公钥和私钥,私钥用来表示你对这个账户的管理权,公钥是使用私钥通过椭圆曲线算法secp256k1加密生成的,而且这个算法同样也是不可逆的。我们经常看到的比特币地址就是由公钥经过2次hash得到的一个字符串,这样也很好地保护了公钥本身的信息。

    • 易出难题

    hash函数在形成区块链结构时的作用

    提示:在区块链领域所提到的hash函数是指特定的SHA-256算法支持的hash函数。

    前文中我们提到了区块链数据结构是一个一个区块的链表,也提到了形成是通过后一个block块挂到前一个block块上形成的,但是怎么挂的却没有提,实际上,挂这个动作是通过hash函数实现的

    每一个区块的生成都需要填写hash值,这个hash值的输入包括:

    • 区块编号
    • 数据(一条或多条交易信息)
    • 前一个区块的hash值
    • 一个随机数
      在这里插入图片描述

    P2P网络简介

    P2P网络,即为peer to peer网络。

    P2P网络最早来自Napster,这是一个为用户提供免费MP3下载的网络服务。Napster服务器上不存储MP3文件,但是它有一个索引服务器,来记录各个用户具备的MP3歌单信息,这样当用户有需求下载时,可以直接找到对应的主机建立连接并下载文件。

    中本聪在发明比特币的时候,也是站在前人的肩膀上。每个新加入网络的节点,都通过节点内置的DNS种子节点查询网络IP列表,某些种子节点返回一组静态可靠的比特币节点IP,某些种子节点返回动态的比特币节点IP集。新节点选择8个节点进行连接,并彼此比对,同步区块链数据。如果有新交易产生,节点向自己所有相邻节点发送交易广播,后续继续向令居广播,直至全网均收到交易信息。

    共识算法

    什么是共识算法

    区块链系统采用去中心化的设计,网络节点分散且相互独立,所以由不同节点组成的系统之间必须依赖一个制度来维护系统的数据一致性,并奖励提供区块链服务的节点,以及惩罚恶意节点。这个制度的建立需要依赖一套方法和规则,即由谁取得一个区块的打包权(或称记账权),并获取该区块的奖励或者怎样界定谁是作恶者,让他受到怎样的惩罚,这套方法和规则便是共识算法(共识机制)。

    常用的共识算法

    • PoW:工作量证明(Proof of Work)算法
    • PoS:权益证明(Proof of Stake)算法
    • DPoS:股份授权证明(Delegated Proof of Stake)算法
    • PBFT:实用拜占庭容错(Practical Byzantine Fault Tolerance)算法
    • RAFT:一致性共识算法

    UTXO模型

    UTXO即Unspent Transaction Outpou,未花费的交易输出。

    比特币系统其实并不存在"账户",而只有"地址"。这个地址就是前文提到的,用公钥经过2次hash计算得到的地址。只有掌握该私钥的人才算是掌握了这个地址,才可以动用这个地址里的"余额"。

    一个人的比特币余额其实就是看他所掌握的地址里面包含有多少比特币,而计算这个比特币数量的方式或者说它的数据结构就叫UTXO。



    ^_^ 整理自《Go语言区块链应用开发从入门到精通》高野 编著

    ^_^ 本文已经被收录进《程序员成长笔记》 ,笔者JustryDeng

    展开全文
  • 随着区块链的发展普及,区块链技术逐渐走入人们的视野,它无处不在,凡是了解它的人都称赞,那么区块链是什么样的原理呢?  我们知道区块链最大的特点是不可篡改,那么区块链如何实现不可篡改的呢?其实就是大家...

      随着区块链的发展普及,区块链技术逐渐走入人们的视野,它无处不在,凡是了解它的人都称赞,那么区块链是什么样的原理呢?

      我们知道区块链最大的特点是不可篡改,那么区块链如何实现不可篡改的呢?其实就是大家提到区块链最常用的一个词——去中心化。所以去中心不是区块链的目的,只是实现不可篡改的手段,而不可篡改也其实也不是最终的目的,真正的目的是创造信任,达成共识。所以都说,区块链是创造信任的机器。

      区块链的基本原理理解起来并不复杂。
    _005__

      首先包括三个基本概念:

      交易(Transaction):一次对账本的操作,导致账本状态的一次改变,如添加一条转账记录;

      区块(Block):记录一段时间内发生的所有交易和状态结果,是对当前账本状态的一次共识;

      链(Chain):由区块按照发生顺序串联而成,是整个账本状态变化的日志记录。

      在实现上,首先假设存在一个分布式的数据记录账本,这个账本只允许添加、不允许删除。账本底层的基本结构是一个线性的链表,这也是其名字“区块链”的来源。链表由一个个“区块”串联组成,后继区块记录前导区块的哈希(Hash)值。新的数据要加入,必须放到一个新的区块中。而这个块(以及块里的交易)是否合法,可以通过计算哈希值的方式快速检验出来。任意维护节点都可以提议一个新的合法区块,然而必须经过一定的共识机制来对最终选择的区块达成一致。
    _1

      一句话来说就是:区块链是一个多人共同维护的账本,链上显示的是大多数人共同认可并记录的数据,你想在自己的小账本上改数据,是无效的,这样就实现了不可篡改的目的。

    展开全文
  • 区块链技术原理精讲

    千人学习 2019-12-16 10:49:04
    针对区块链技术原理做详细介绍. 按照比特币,以太坊,联盟链+Fabric的演进历程,依次详细介绍每一代区块链所使用的核心技术,对应的主要部分的结构原理分析,以及相应共识的工作原理.并针对常听到的一些区块链基本问题做...
  • 区块链不是一种新技术,而是一种新的技术组合。关键技术包括P2P动态组网、基于密码的共享账户、协商一致机制、智能合同等。  科学技术史上的大部分创新与生产力、提升效率、人少工作、让机器做更多的工作、区块链...
  • 区块链技术原理

    2018-07-03 11:19:59
    区块链技术原理 区块链是什么? “区块链”技术最初是由一位化名中本聪的人为比特币(一种数字货币)而设计出的一种特殊的数据库技术,它基于密码学中的椭圆曲线数字签名算法(ECDSA)来实现去中心化的P2P系统设计...
  • 区块链基本技术原理

    万次阅读 多人点赞 2017-12-19 15:37:44
    今天我还是给大家讲一下区块链的基本原理。我知道很多搞技术的朋友都觉得区块链技术可能不是很难,但实际落地却不多,而且有些人说区块链概念太热了,实际上我觉得是因为他们还没有真正理解区块链的商业价值,只有...
  • 区块链技术原理

    2021-09-07 11:11:37
    其中数据层、网络层和共识层是区块链技术的必需的三层,其它层可以根据不同区块链系统进行取舍。 图3.1 区块链基础架构 (1) 数据层 数据层是区块链六层架构中的最底层,数据层封装了底层数据区块、相关的数据加密、...
  • 第二章 区块链技术原理 整个区块链与密码学大体内容介绍安排如下【这篇博客中可以找到所有章节的链接内容】: https://blog.csdn.net/qq_43479839/article/details/114630163 第二章的目录如下: 目录第二章 区块链...
  • 区块链笔记2-区块链技术原理 本学习笔记为本人从正规合法信息来源获取的信息,且为个人学习笔记,未用于商业用途。并且是关于IT领域区块链知识的介绍,并非违法违规内容。主要信息来源于清华大学出版社 《区块链技术...
  • 区块链基本原理简介

    千次阅读 2019-02-24 21:12:00
    一个简单的区块链模型,学习区块链的笔记,使用python3 实现了区块链基本原理。使用Flask 构建 peer to peer 网络,项目地址 简单区块链系统实现之使用方法 简单区块链系统实现之程序开发 比特币简介: 比特币...
  • 暂时只读了区块链基本然后串读了IOTA的部分功能和构架 DAG确实比较nb的样子,但是毕竟自己代码没上手,就不多说了,这里导师好像也和我这种靠写代码学习的套路不一样,一直ban我写代码(或者说大部分时间都是看各种...
  • 02-区块链技术原理

    2020-04-06 14:47:30
    区块链技术原理1. 区块链是什么1.1 概念2. 区块链基础技术3. 区块链的特性4. 比特币区块链的数据结构5. 区块链将带来什么变革 1. 区块链是什么 1.1 概念 狭义来讲: 区块链是一种按照时间顺序将数据区块以顺序相连...
  • 区块链技术原理简介

    2018-04-12 22:05:54
    一、区块链最主要的技术特点:去中心化、不可篡改、可追溯。 1)去中心化。在区块链的网络中分布着众多的节点,节点和节点之间地位平等,可以自由连接进行数据交换,不存在中心节点。所谓的去中心化和传统的分布式...
  • 区块链技术原理精讲 5年JAVA/Go研发工程师经验。目前作为公司技术负责人...
  • 文章宗旨是为了帮助大家理解区块链技术出现的目的、能够解决什么问题还有数字货币的意义与价值.另外文章后半部分会探讨一下区块链快速发展的今天,开发者群体能做哪些事情. 如今市面上新型的数字货币如雨后春笋...
  • 区块链基本原理概述

    2021-09-15 17:26:46
    1. 简介 有关区块链的介绍文章太多了,自己读了很多篇,... 作为比特币的底层实现技术区块链受到了政府部门和企业的高度关注,并在金融领域和非金融领域展开了广泛研究与应用。区块链本质上是一个由若干区块...
  • 区块链技术原理-分布式数据库

    千次阅读 2019-11-20 23:35:28
    区块链技术最初是由一位化名中本聪的人为比特币(一种数字货币)而设计出的一种特殊的数据库技术,它基于密码学中的椭圆曲线数字签名算法(ECDSA)来实现去中心化的P2P系统设计。但区块链的作用不仅仅局限在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,643
精华内容 3,857
关键字:

区块链技术的基本原理