区块链的技术原理是什么?
- 时间:
- 浏览:0
大家好,今天我来为大家揭开“区块链的技术原理是什么?”的神秘面纱。为了让大家更好地理解这个问题,我将相关资料进行了整合,现在就让我们一起来探索吧。
文章目录列表:
区块链的技术原理是什么?
区块链(Blockchain)是比特币的一个重要概念,本质上是一个去中心化的数据库,同时作为比特币的底层技术。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
区块链在网络上是公开的,可以在每一个离线比特币钱包数据中查询。比特币钱包的功能依赖于与区块链的确认,一次有效检验称为一次确认。通常一次交易要获得数个确认才能进行。轻量级比特币钱包使用 确认,即不会下载区块链数据到设备存储中。
比特币的众多竞争币也使用同样的设计,只是在工作量证明上和算法上略有不同。如,采用权益证明和SCrypt等等。
研究前沿|建筑中的区块链:它将如何改变行业
区块链技术是一种革命性的工具,用于记录交易并将它们链接在一起形成一个“链”,即分布式账本。
建筑公司使用区块链来控制供应链和合同,即使是非常大的建筑项目也将变得更容易管理。
区块链是一系列相互关联的数据“块”,它们构成了一个分布式账本,它可以被认为是一个文字链,每个链接一个项目中的一个单独的事务。
如果一个供应商完成交付并履行其合同,则完成的合同将最终确定并添加为新的“块”或链中的链接。这为区块链提供了一种在查找信息时易于遵循的自然顺序。
区块链的三个原则将其定义为安全、去中心化和可扩展到任何规模的项目。
由于区块链项目是分散的,它们带走了项目中典型的信息层次结构。这提高了项目透明度,减少了对简单目标的来回沟通的需要。结果是任何项目都可以通过区块链技术提 率。
虽然区块链对许多行业都有影响,但在建筑行业,它简化了项目管理。
区块链技术为建筑行业提供了六个直接的好处:
区块链带来的好处是令人兴奋的,但实施的成本可能很高,因为它需要参与项目的所有各方进行投资。
行业的怀疑是大规模实施的另一个挑战,这些挑战并非不可能克服,安全性、去中心化和可扩展性可以使任何规模的建设项目受益,前景实在诱人。
深入了解区块链的共识机制及算法原理所谓“共识机制”,是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认;对一笔交易,如果利益不相干的若干个节点能够达成共识,我们就可以认为全网对此也能够达成共识。再通俗一点来讲,如果中国一名微博大V、美国一名虚拟币玩家、一名非洲留学生和一名欧洲旅行者互不相识,但他们都一致认为你是个好人,那么基本上就可以断定你这人还不坏。
要想整个区块链网络节点维持一份相同的数据,同时保证每个参与者的公平性,整个体系的所有参与者必须要有 的协议,也就是我们这里要将的共识算法。比特币所有的节点都遵循 的协议规范。协议规范(共识算法)由相关的共识规则组成,这些规则可以分为两个大的核心:工作量证明与最长链机制。所有规则(共识)的最终体现就是比特币的最长链。共识算法的目的就是保证比特币不停地在最长链条上运转,从而保证整个记账系统的一致性和可靠性。
区块链中的用户进行交易时不需要考虑对方的信用、不需要信任对方,也无需一个可信的中介机构或中央机构,只需要依据区块链协议即可实现交易。这种不需要可信第三方中介就可以顺利交易的前提是区块链的共识机制,即在互不了解、信任的市场环境中,参与交易的各节点出于对自身利益考虑,没有任何违规 的动机、行为,因此各节点会主动自觉遵守预先设定的规则,来判断每一笔交易的真实性和可靠性,并将检验通过的记录写入到区块链中。各节点的利益各不相同,逻辑上将它们没有合谋欺骗 的动机产生,而当网络中有的节点拥有公共 时,这一点尤为明显。区块链技术运用基于数学原理的共识算法,在节点之间建立“信任”网络,利用技术手段从而实现一种创新式的信用网络。
目前区款连行业内主流的共识算法机制包含:工作量证明机制、权益证明机制、股份授权证明机制和Pool验证池这四大类。
工作量证明机制即对于工作量的证明,是生成要加入到区块链中的一笔新的交易信息(即新区块)时必须满足的要求。在基于工作量证明机制构建的区块链网络中,节点通过计算随机哈希散列的数值解争夺记账权,求得正确的数值解以生成区块的能力是节点算力的具体表现。工作量证明机制具有完全去中心化的优点,在以工作量证明机制为共识的区块链中,节点可以自由进出。大家所熟知的比特币网络就应用工作量证明机制来生产新的货币。然而,由于工作量证明机制在比特币网络中的应用已经吸引了全球计算机大部分的算力,其他想尝试使用该机制的区块链应用很难获得同样规模的算力来维持自身的安全。同时,基于工作量证明机制的挖矿行为还造成了大量的资源浪费,达成共识所需要的周期也较长,因此该机制并不适合商业应用。
2012年,化名SunnyKing的网友推出了Peercoin,该加密电子货币采用工作量证明机制发行新币,采用权益证明机制维护网络安全,这是权益证明机制在加密电子货币中的 应用。与要求证明人执行一定量的计算工作不同,权益证明要求证明人提供一定数量加密货币的所有权即可。权益证明机制的运作方式是,当创造一个新区块时,矿工需要创建一个“币权”交易,交易会按照预先设定的比例把一些币发送给矿工本身。权益证明机制根据每个节点拥有代币的比例和时间,依据算法等比例地降低节点的挖矿难度,从而加快了寻找随机数的速度。这种共识机制可以缩短达成共识所需的时间,但本质上仍然需要网络中的节点进行挖矿运算。因此,PoS机制并没有从根本上解决PoW机制难以应用于商业领域的问题。
股份授权证明机制是一种新的保障网络安全的共识机制。它在尝试解决传统的PoW机制和PoS机制问题的同时,还能通过实施科技式的民主抵消中心化所带来的 效应。
股份授权证明机制与董事会投票类似,该机制拥有一个内置的实时股权人投票系统,就像系统随时都在召开一个永不散场的股东大会,所有股东都在这里投票决定公司决策。基于DPoS机制建立的区块链的去中心化依赖于一定数量的代表,而非全体用户。在这样的区块链中,全体节点投票选举出一定数量的节点代表,由他们来 全体节点确认区块、维持系统有序运行。同时,区块链中的全体节点具有随时罢免和任命代表的权力。如果必要,全体节点可以通过投票让现任节点代表失去代表资格,重新选举新的代表,实现实时的民主。
股份授权证明机制可以大大缩小参与验证和记账节点的数量,从而达到秒级的共识验证。然而,该共识机制仍然不能 解决区块链在商业中的应用问题,因为该共识机制无法摆脱对于代币的依赖,而在很多商业应用中并不需要代币的存在。
Pool验证池基于传统的分布式一致性技术建立,并辅之以数据验证机制,是目前区块链中广泛使用的一种共识机制。
Pool验证池不需要依赖代币就可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础之上,可以实现秒级共识验证,更适合有多方参与的多中心商业模式。不过,Pool验证池也存在一些不足,例如该共识机制能够实现的分布式程度不如PoW机制等
这里主要讲解区块链工作量证明机制的一些算法原理以及比特币网络是如何证明自己的工作量的,希望大家能够对共识算法有一个基本的认识。
工作量证明系统的主要特征是客户端要做一定难度的工作来得到一个结果,验证方则很容易通过结果来检查客户端是不是做了相应的工作。这种方案的一个核心特征是不对称性:工作对于请求方是适中中的,对于验证方是易于验证的。它与验证码不同,验证码是易于被人类解决而不是易于被计算机解决。
下图所示的为工作量证明流程。
举个例子,给个一个基本的字符创“hello,world!”,我们给出的工作量要求是,可以在这个字符创后面添加一个叫做nonce(随机数)的整数值,对变更后(添加nonce)的字符创进行SHA-256运算,如果得到的结果(一十六进制的形式表示)以“0000”开头的,则验证通过。为了达到这个工作量证明的目标,需要不停地递增nonce值,对得到的字符创进行SHA-256哈希运算。按照这个规则,需要经过4251次运算,才能找到前导为4个0的哈希散列。
通过这个示例我们对工作量证明机制有了一个初步的理解。有人或许认为如果工作量证明只是这样一个过程,那是不是只要记住nonce为4521使计算能通过验证就行了,当然不是了,这只是一个例子。
下面我们将输入简单的变更为”Hello,World!+整数值”,整数值取1~1000,也就是说将输入变成一个1~1000的数组:Hello,World!1;Hello,World!2;...;Hello,World!1000。然后对数组中的每一个输入依次进行上面的工作量证明—找到前导为4个0的哈希散列。
由于哈希值伪随机的特性,根据概率论的相关知识容易计算出,预计要进行2的16次方次数的尝试,才能得到前导为4个0的哈希散列。而统计一下刚刚进行的1000次计算的实际结果会发现,进行计算的平均次数为66958次,十分接近2的16次方(65536)。在这个例子中,数学期望的计算次数实际就是要求的“工作量”,重复进行多次的工作量证明会是一个符合统计学规律的概率事件。
统计输入的字符创与得到对应目标结果实际使用的计算次数如下:
对于比特币网络中的任何节点,如果想生成一个新的区块加入到区块链中,则必须解决出比特币网络出的这道谜题。这道题的关键要素是工作量证明函数、区块及难度值。工作量证明函数是这道题的计算方法,区块是这道题的输入数据,难度值决定了解这道题的所需要的计算量。
比特币网络中使用的工作量证明函数正是上文提及的SHA-256。区块其实就是在工作量证明环节产生的。旷工通过不停地构造区块数据,检验每次计算出的结果是否满足要求的工作量,从而判断该区块是不是符合网络难度。区块头即比特币工作量证明函数的输入数据。
难度值是矿工们挖掘的重要参考指标,它决定了旷工需要经过多少次哈希运算才能产生一个合法的区块。比特币网络大约每10分钟生成一个区块,如果在不同的全网算力条件下,新区块的产生基本都保持这个速度,难度值必须根据全网算力的变化进行调整。总的原则即为无论挖矿能力如何,使得网络始终保持10分钟产生一个新区块。
难度值的调整是在每个完整节点中独立自动发生的。每隔2016个区块,所有节点都会按照 的格式自动调整难度值,这个公式是由最新产生的2016个区块的花费时长与期望时长(按每10分钟产生一个取款,则期望时长为20160分钟)比较得出来的,根据实际时长一期望时长的比值进行调整。也就是说,如果区块产生的速度比10分钟快,则增加难度值;反正,则降低难度值。用公式来表达如下:
新难度值=旧难度值*(20160分钟/过去2016个区块花费时长)。
工作量证明需要有一个目标值。比特币工作量证明的目标值(Target)的计算公式如下:
目标值=最大目标值/难度值,其中最大目标值为一个恒定值0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
目标值的大小与难度值成反比,比特币工作量证明的达成就是矿中计算出来的区块哈希值必须小于目标值。
我们也可以将比特币工作量的过程简单的理解成,通过不停变更区块头(即尝试不同nonce值)并将其作为输入,进行SHA-256哈希运算,找出一个有特定格式哈希值的过程(即要求有一定数量的前导0),而要求的前导0个数越多,难度越大。
可以把比特币将这道工作量证明谜题的步骤大致归纳如下:
该过程可以用下图表示:
比特币的工作量证明,就是我们俗称“挖矿”所做的主要工作。理解工作量证明机制,将为我们进一步理解比特币区块链的共识机制奠定基础。
区块链的技术原理是什么?
区块链技术涉及的关键点包括:去中心化(Decentralized)、去信任(Trustless)、集体维护(Collectivelymaintain)、可靠数据库(ReliableDatabase)、时间戳(Timestamp)、非对称加密(AsymmetricCryptography)等。
区块链技术重新定义了网络中信用的生成方式:在系统中,参与者无需了解其他人的背景资料,也不需要借助第三方机构的担保或保证,区块链技术保障了系统对价值转移的活动进行记录、传输、存储,其最后的结果一定是可信的。
扩展资料
区块链技术原理的来源可归纳为一个数学问题:拜占庭将军问题。拜占庭将军问题延伸到互联网生活中来,其内涵可概括为:在互联网大背景下,当需要与不熟悉的对手方进行价值交换活动时,人们如何才能防止不会被其中的恶意破坏者欺骗、迷惑从而做出错误的决策。
进一步将拜占庭将军问题延伸到技术领域中来,其内涵可概括为:在缺少可信任的中央节点和可信任的通道的情况下,分布在网络中的各个节点应如何达成共识。区块链技术解决了闻名已久的拜占庭将军问题——它提供了一种无需信任单个节点、还能创建共识网络的方法。
百度百科-区块链
区块链设计原则到目前为止,我们的团队所学到的——关于区块链特定的业务和用户需求——为我们的设计工作提供了信息。
目前,IBM区块链设计团队正在设计从供应链流程到文档、从开源开发人员工具到区块链即服务的任何内容。这是该行业的本质:疯狂地探索一项技术的所有可能应用,该技术有可能在金融、医疗保健和政府等领域大幅降低成本和效率低下。
尽管设计有很多不同的方向,但我们用户的需求中有一些共同的主题,这些主题已经影响了我们作为一个团队的设计原则。这是IBM区块链设计团队对这些原则的 次迭代——我们在批评工作和确定设计决策优先级时所关注的内容。
“仅仅因为区块链技术旨在消除对信任的依赖,并不意味着用户会信任机器或网络。”—?JonnyHowle,UX/UI设计师
我们的许多用户都在处理高度敏感信息的行业,保持他们的信任对我们的业务至关重要。几乎每个人都是区块链的“新手”?,理解和信心程度各不相同。用户必须认为我们的产品(及其背后的人)是可靠、值得信赖和稳定的。我们通过仔细的数据公开、一致性、反馈、预测错误和积极指导来实现这一目标。
一些用户需要比其他用户更多地接触区块链数据——许多用户需要了解区块链技术如何取代他们以前的流程,才能觉得它是值得信赖的。数据的暴露会影响用户对应用程序如何工作的理解。例如,数据表明发生了函数调用,或者它可以证明某些东西在密码学上是安全的。
在决定是否包含数据元素时,我们使用以下层次结构:
1.数据必须是可操作的。
2.如果数据不可操作,则它必须用于建立信任和/或教育目的。
“老派”区块链工具向您展示了许多长加密哈希。它们不是人类可读的。它们对用户毫无用处……但人们却喜欢它们!为什么?这是一种舒适的感觉:“我可以看到一个非人类可读的链码ID,所以我相信我正在查看的这个东西是安全的。—?EdMoffat,设计主管
在产品和客户体验之间建立视觉一致性对于感知可信度至关重要。我们使用基于网格的布局(具有有意义且成比例的负空间)、强大的排版层次结构,并应用有意义的颜色。
拥有一致的用户体验可以让我们的用户感到轻松,这对于新的区块链技术尤为重要,因为这可以促进采用和学习。—?TobiasHunter,用户体验设计师
由于区块链的视觉语言仍在编纂中,我们在使用图像来阐明概念时要小心。虽然我们创建与熟悉元素的关联以帮助用户保留信息,但我们对视觉隐喻持谨慎态度——简化某些概念实际上可能会误导或在以后造成混淆。
我们尽一切努力使用行话少、一致的术语。语言应该简洁、清晰,并符合我们用户的自然交流模式。我们保持对话的语气,但不会过于随意或轻率。我们的团队特别关注像identity、update和network等带有含义的词:虽然许多区块链概念与通常理解的含义相似,但它们可能有很大的不同和混淆。
我们为用户所在的任何地方设计。因为区块链的定义是分布式的,所以我们必须在默认情况下跨界设计:UI扩展、图标含义和翻译等必须始终考虑在内。此外,区块链的许多用途本质上是移动的——我们维护一个无论使用何种设备,都能获得一致的体验。
我们通过设计持续的反馈来帮助我们的用户了解正在发生的事情并减少焦虑。谨慎使用的运动和动画有助于理解正在发生的事情。
当你学习一门外语时,你是通过练习和玩耍来学习的,而不是通过阅读字典。我们正在制作工具和文档,让我们的用户可以玩耍并尝试学习这项新技术。—?SamWinslet,视觉设计师
用户应该始终知道正在发生什么、刚刚发生了什么以及接下来会发生什么。时间是区块链应用程序中的一个重要元素,很多时候简单的加载器是不够的。
高吞吐量分布式系统本质上是异步的,系统的多个组件依赖于超时或轮询间隔。在等待达到最佳块大小时,可以配置事务(通常持续几秒钟)。SDK将轮询、等待并重试创建新 道。—?JasonYellick,软件开发人员
我们确保我们已经考虑(并在发布后测试)活动或功能将花费的时间并通知用户。这也适用于界面中的任何指标——用户看到了多少类别,有多少没有显示,等等。
我们的用户喜欢动手实践的交互式学习,因此他们可以在创造有形的东西的同时学习。—?RaissaXie,用户体验研究员
因为区块链实际上是不可变的,所以我们特别关注不可逆的用户行为。如果发生错误,我们会增加摩擦或确认级别以减少错误并直接进行下一步。
零状态在我们的许多产品中都很常见,因此我们确保提供自然的下一步。用户必须有清晰、持久的导航——他们应该很容易知道如何回到之前的状态以及下一步是什么。
我们的用户希望看到简单的说明,以便尽快进行设置和运行。
—?LucieWu,用户体验设计师
由于对可见性的控制是一项业务需求,因此我们确保根据角色考虑界面的不同视图。如果用户无权访问某些数据,我们不会在界面上留下漏洞。
区块链技术相对较新,大多数用户不一定知道他们需要什么。一个好的设计师应该知道如何过滤他们的意见并提出最佳解决方案。设计师通过指导他们完成整个过程,帮助他们了解这项技术可以为他们的生活带来的好处和可能性。
—?AndreaLee,UI设计师
我们的团队预计需要进一步的帮助并试图减少它,同时认识到我们的角色最有可能去哪里寻求帮助。我们提出见解以创造透明度并消除不确定性,并为用户不记得的事情提供建议。
通过工具提示和进度条向用户展示他们的新词汇,让原本令人生畏的学习任务看起来更轻松。
—?KaylaWhite,UI设计师
无论上下文如何,我们都不包含会使界面混乱或使用户感到困惑的元素——每个元素都有一个目的,没有什么是为了装饰。我们利用常见的设计模式并减少用户必须做的学习量。
在许多情况下,我们的多个角色将成为流程的一部分。为了促进协作,我们设计了用户给定任务之前和之后的步骤。团队采用我们的技术对我们的业务模式至关重要,因此我们重视包容性、可访问的设计是理所当然的。
为复杂性而设计并不意味着让事情变得简单。使任务更容易,但不要剥夺他们的控制权。
—?DanteGuintu,UI设计师
对区块链技术的兴奋增加了关注机器需求而不是人类需求的趋势。作为设计师,我们必须不断地重新集中精力解决问题并为人类创造愉快的体验。我们必须平衡区块链的本质和以人为本的设计之间的张力。
即使对于非技术用户感兴趣,区块链的技术概念似乎也异常诱人。-
EdMoffat
因为区块链的许多应用程序都具有非常强大的潜力,所以我们必须注意以合乎道德的方式行事和设计。这意味着确保多样性融入我们的设计——从用户研究参与者到我们的团队本身。
我们的设计团队保持持续协作的状态:研究、测试和警惕不断变化的用户需求和设计模式。我们致力于保护和倡导我们的用户,考虑极端情况和异常值,并考虑用户的情绪。我们努力改善用户的生活,同时不给他们制造新的问题。
设计不是一成不变的。这个群体的主要口头禅是我们追求 ,而不是 。
——肖恩·巴克莱,创意总监
转自:
好了,今天关于“区块链的技术原理是什么?”的话题就到这里了。希望大家通过我的介绍对“区块链的技术原理是什么?”有更全面、深入的认识,并且能够在今后的学习中更好地运用所学知识。