精华内容
下载资源
问答
  • 通过连接分散的存储资源,构成一个具有自修复能力的规模浩瀚的全球共享的统一存储池,确保每个人的数据主权,在存储效率、数据可靠性、数据安全性和存储成本等方面都做到极致。 为什么YottaChain能让存储服务器数据...
  • 区块链不仅是一个流行词。它也不限于加密货币和比特币。凭借其创造透明度和公平性的能力,这项技术正在革新各个领域。...而且,为了使其更具挑战性,我将在不使用任何数据库或服务器的情况下做到这一点。 该解决..

    区块链不仅是一个流行词。它也不限于加密货币和比特币。凭借其创造透明度和公平性的能力,这项技术正在革新各个领域。应用范围从跟踪系统到保护数据,再到执行在线投票系统。它可以帮助实施反洗钱跟踪系统,或者简单地跟踪您在商店购买的产品的来源。

    就像信息科学中经常发生的那样,许多区块链平台管理着所有的复杂性,使我们可以像保存一个简单的数据库一样简单地保存数据。

    在本文中,我想实现一个区块链数据库,以了解此类解决方案的关键要素。而且,为了使其更具挑战性,我将在不使用任何数据库或服务器的情况下做到这一点。

    该解决方案可以轻松地使您拥有可以验证并安全存储的不可变数据。

    这篇文章的结构如下:

    什么是区块链数据库及其使用方式

    如何仅使用DNS服务来实现区块链

    让我们开始吧!

    什么是区块链数据库以及如何使用

    像往常一样,我们可以从Wikipedia定义开始:

    “A blockchain,[ ...],是一个越来越多的记录,称为块,正在使用链接加密。每个块都包含前一个块的加密哈希,即时间戳[..]。通过设计,区块链可以抵抗其数据的修改。这是因为一旦记录,任何给定块中的数据都不能追溯更改,而无需更改所有后续块。

    “对于用作分布式总账,一个blockchain通常由管理对等网络的网络共同地粘附到协议用于节点间通信和验证新块”。

    换句话说,区块链的主要特征是:

    通过将一条记录连接到上一条记录来存储数据

    做到这一点,因此您不能在不使所有数据顺序不一致的情况下更改一条记录

    将数据存储在分布式数据库中

    那么,如何创建呢?

    我想的是,一个节点的链或多或少是一个链表,其中每个块都有一个不可变的哈希。完成此操作后,您只需要一个安全的分布式数据库即可存储数据。什么是古老的分布式数据库?好吧,每个人都有一个分布式数据库,没人知道!我说的是DNS。是的,它是分布式的,它存储数据。每个人都有一个DNS服务。我意识到这不是预期的用途,但让我们一起玩吧。

    该协议的工作流程是受信任的机构将数据写入DNS。每个记录都有一个唯一的键,该键是内容的哈希值。这意味着,通过更改数据,您将更改ID,并且指向该ID的所有子代都将不一致。此外,DNS协议是分布式的,因此许多服务器之间共享数据的许多副本,这意味着您的一个DNS将脱机,而另一个将继续为数据提供服务。还请考虑DNS被广泛缓存,这使您的通信性能高(使用不可变数据缓存永远不会成为问题)。

    该系统使用所有公司都已经拥有的DNS作为存储,因此无需任何额外费用。DNS本身是一个分布式数据库。

    现在我们已经定义了存储数据的位置,我们只需要了解如何存储数据即可。下一步是定义一个通信协议,使所有各方都可以扮演自己的角色。下图显示了流程。

    DNS区块链工作流程。

    在上图中,我们有:

    在DNS上发布的推力实体。它是写作的关键-其他人可以写记录,但是它们是无法理解的。

    一个消费者,即推力生产者和读取数据

    数据,其 可以是任何JSON数据。您可以选择将其公开或不公开。

    如何实施

    现在我们知道该怎么做,并且已经有了启动该工具的工具,我们只需要使用源代码即可。

    为了使用DNS实现区块链,我们必须面对一些重要问题:

    DNS限制-DNS并非旨在存储大数据。我们想使用TXT记录,但是它们只有254个字符。如果我们要存储一个大的JSON对象,这是一个很大的限制。

    安全性-即使我们想保持数据公开,DNS使用的UDP协议也存在问题。它没有经过加密,并且没有像HTTPS协议中那样可以推动授权的证书机制。

    数据是按设计公开的—这可能是一个问题。

    所有这些方面都有一个解决方案,并且您将看到,它很容易实现。实际上,通过使用加密技术和独创性,我们将为上述所有问题找到一个明智的解决方案。

    让我们看看它是如何工作的。

    创建沙盒环境

    第一步是创建一个我们想玩的沙盒环境。我们需要启动该工作的是带有API系统的本地DNS服务器。我们通过创建一个托管该文件的docker-compose文件来实现这一目标。我使用了一个Visual Studio项目,在其中创建了一个我们将用于验证数据的Web应用程序,一个将成为我们核心的库以及一个测试项目。结果如下:

    DNS区块链项目

    通过运行docker-compose up,所有启动并准备好进行测试。对于DNS部分,我使用了非常轻巧且具有HTTP API可用的DNS。它使用以下配置运行:

    这里xxx是您要用于身份验证的令牌,并且DNS已配置为接受来自所有主机的请求(0.0.0.0:port)。

    使用运行它之后docker-compose up,您可以使用控制台对其进行测试:

    现在我们有了一个可以正常工作的本地DNS,我们可以创建一个可以通过API管理DNS记录的客户端。

    DNS客户端

    第二步是包装要在应用程序中使用的DNS客户端功能。我想在这里做的是将来有能力更改DNS服务,因此我创建了一个接口和一个类实现。以下代码片段显示了该界面:

    如您所见,客户端实现执行HTTP调用来存储记录。您可以在本文末尾的GitHub项目中找到完整的类实现。我们仅为萨满实施了本地提供商,但很容易对其进行扩展以支持大多数现代托管提供商上的任何商业DNS。

    区块链服务

    现在我们已经有了执行部分,是时候实现业务逻辑了。所有工作都在客户端完成,客户端将计算要存储的数据并调用DNS客户端方法以保留记录。服务层由两部分组成:

    BlockChainNode:节点的表示形式

    BlockChainService:实现逻辑的服务

    让我们详细了解这些类如何工作。

    区块链节点

    这是带有JObject属性的简单类,用户可以在其中存储任何数据。它计算密钥哈希数据。数据包含历史记录,该历史记录是到父项的链接。仅更改数据的字节将更改密钥,这将导致以下节点不一致。以下代码显示了该类最重要的部分。

    该代码最相关的部分是:

    数据对象:用户可以在其中存储数据的JSON对象

    历史记录:与数据同步的可观察列表(“历史记录”中的任何更改都会更改_history节点,反之亦然。)

    哈希:根据数据的文本表示形式的MD5计算得出的哈希。结果以Base32算法编码-类似于Base 64,但仅使用四个字节且仅包含小写字符。这是因为DNS不区分大小写,并且使用广泛使用的Base64编码产生了不一致的数据。

    现在我们有了模型,我们必须继续下一步:由服务实现的业务逻辑。

    区块链服务

    从上一个调用的片段中可以看到WriteDNSFragmentedText,输入文本被拆分,数据被保存在许多DNS条目中。

    读取数据是相反的。我尝试获取子记录0,1,2,依此类推,直到有数据为止。一旦我收集了所有Base64块,过程就是将它们连接,解码并获取纯JSON。

    客户端可以轻松地验证所获取的数据是否生成密钥并且是否有效,因为客户端可以获取数据,哈希并比较结果。此外,客户端可以递归验证以检查所有父节点是否都是真实的。这就是验证过程所要做的。它由下一部分代码表示:

    如您在上一个片段中看到的那样,将验证记录,然后下载所有层次结构并检查数据一致性。

    现在我们了解了如何从DNS写入和读取数据,下一步是如何确保它们的安全。

    密码学和密钥

    我们的系统可以向DNS读取和写入数据,现在该注意安全了。我们假设写给我们的DNS的人是受信任的,但是我们不能确保恶意的DNS服务器不会给我们伪造数据或有人不会读取它(请记住,DNS数据是公共的)。

    我在这里所做的就是对协议进行了以下改进:使用非对称算法对存储的数据进行加密存储。这样可以确保只有数据生产者才能生成消费者可以理解的数据。任何人都可以创建伪造的DNS服务器,但是他们将无法对待您伪造数据。而且,数据现在已加密,没有人可以读取。

    非对称算法是完美的,因为它只允许一定数量的读者理解消息,但是只有消息源才能产生消息。为此,客户端生成一对密钥。公钥用于加密数据,因此生产者可以安全地保护它。与使用者共享用于解密的私钥。可以手动共享它,例如通过电子邮件将其发送到加密的存档中,或者发布在HTTPS网站上,证书可以在该网站上向用户展示权限。

    顺便说一下,这个概念很简单:现在数据已加密,没有人可以代表我们写入数据。但是还有另一个问题。对称算法只处理少量数据(1024-4096字节),但我们必须处理巨大的JSON有效负载。我们有两种方法:

    将完整的消息分成小字节块,并一一加密/解密它们。

    创建一个对称密钥,使用生成的密钥对数据加密,然后使用非对称对对生成的密钥进行加密。这样,每个记录都具有用于加密数据的不同对称密钥。该密钥是公开共享的,但只有拥有私有密钥的人才能使用。

    考虑到对所有字节块进行编码的计算量,我使用了第二种解决方案。这将我们带到下一个有效负载:

    在上面的代码段中,我们可以看到存储在JSON有效负载中的加密数据和解密密钥。读取器将使用私钥解密对称密钥,然后将其用于解密数据。

    代码中的更改是最小的:所需的只是包装\展开数据的附加步骤。

    在下一个代码段中,我显示了完成数据生成的步骤:

    在下一个代码段中,我们具有阅读过程:

    既然我们已经完成了有关区块链实现的说明,那么我们就拥有了将数据存储在DNS区块链中的所有详细信息。

    结论

    即使将DNS服务器用作数据库看起来似乎很聪明,但事实并非如此。DNS并非旨在以这种方式存储数据。

    如果我们必须处理安全的不可变数据,则解决方案是使用标准的区块链平台,我的意思是需要使用一个真正的区块链系统。

    无论如何,尝试实现无服务器的区块链非常有趣,我希望它教会了我们区块链平台背后的原理。

    展开全文
  • 在过去的一年多里,我们六家发起单位的技术团队一起奋斗,经过艰辛的研究和开发,终于让区块链服务网络(BSN)在今天上线,进入了试运营阶段。今天,由我代表六家的技术团队给大家解释一下服务网络是怎么组成的,它...
  • 区块链知识点

    2021-01-07 19:27:36
    这意味着没有中心的服务器,不受某个人的控制,整个系统直接由用户端的电脑构成。这样的技术难度是非常大的,并不像手机 App 或是小网站一样,你想发布就发布,这需要有人来跟你一起玩。 数据防篡改。 所有交易记录...
  • 区块链工作流程

    千次阅读 2019-10-06 21:44:00
    区块链的工作流程主要包括如下步骤。 ①发送节点将新的数据记录向全网进行广播。 ②接收节点对收到的数据记录信息进行检验,比如记录信息是否合法,通过检验后,数据记录将被纳入一个区块中。 ③ 全网所有接收...

    区块链的工作流程主要包括如下步骤。

    ①发送节点将新的数据记录向全网进行广播。

    ②接收节点对收到的数据记录信息进行检验,比如记录信息是否合法,通过检验后,数据记录将被纳入一个区块中。

    ③ 全网所有接收节点对区块执行共识算法(工作量证明、权益证明等。

    ④区块通过共识算法过程后被正式纳入区块链中存储,全网节点均表示接受该区块,而表示接受的方法,就是将该区块的随机散列值视为最新的区块散列值,新区块的制造将以该区块链为基础进行延长。

    节点始终都将最长的区块链视为正确的链,并持续以此为基础验证和延长它。如果有两个节点同时广播不同版本的新区块,那么其他节点在接收到该区块的时间上将存在先后差别,它们将在先收到的区块基础上进行工作,但也会保留另外一个链条,以防后者变成长的链条。该僵局的打破需要共识算法的进一步运行,当其中的一条链条被证实为是较长的一条,那么在另一条分支链条上工作的节点将转换阵营,开始在较长的链条上工作。以上就是防止区块链分叉的整个过程。

    所谓“新的数据记录广播”,实际上不需要抵达全部的节点。只要数据记录信息能够抵达足够多的节点,那么将很快地被整合进一个区块中。而区块的广播对被丢弃的信息是具有容错能力的。如果一个节点没有收到某特定区块,那么该节点将会发现自己缺失了某个区块,也就可以提出自己下载该区块的请求。

    现在我们都知道了区块链网络里的记账者是节点,节点负责把数据记录记到数据区块里,为了鼓励节点记账,系统会按照规则随机地对记账的节点进行奖励。那么如何保证不会有人制造假数据记录或者说如何保证造假数据记录不被通过验证?这就涉及时间戳。这也正是区块链与众不同的地方。区块链不仅关注数据区块里的内容,也关注数据区块本身,把数据区块的内容与数据区块本身通过时间戳联系起来。时间戳为什么会出现?这是由区块链的性质规定的。节点把数据记入了区块,因此一个区块就相当于一页账簿,每笔数据在账簿中的记录可以自动按时间先后排列,那么账簿的页与页怎么衔接起来?也就是说,这一个区块与下一个区块的继承关系如何断定就成为问题。于是时间戳就出现了。

    时间戳的重要意义在于其使数据区块形成了新的结构。这个新的结构使各个区块通过时间线有序连接起来,形成了一个区块的链条,因此才称为区块链。区块按时间的先后顺序排列使账簿的页与页的记录也具有了连续性。通过给数据记录印上时间标签,使每一条数据记录都具有唯一性,从而使数据记录本身在区块和区块上的哪个位置上发生可以被精确定位且可回溯,也给其他的校验机制协同发挥作用提供了极大的便利和确定性,使整个区块链网络能够确定性地验证某条数据记录是否真实。由于区块链网络是公开的,意味着系统知道过去发生的所有数据记录,而任何新的数据记录都继承于过去的数据记录,因为过去的数据记录是真实的,而且链条的各个区块记录由时间戳连接起来使之环环相扣,所以如果想要制造一个假的数据记录,就必须在区块链上修改过去的所有数据记录。尽管在挖矿的过程中,形成了多个链条,但因为最长的那个被诚实的节点所控制,所以想要修改过去的数据记录,首先就要从头构造出一个长度比之前最长的那个还要长的链条,在这个新的链条超过原来的那个链条后,才能制造双重支付的虚假数据。然而随着时间推移,制造新链条的难度和成本都是呈指数级上升的,而且随着链条越来越长,其难度也变得越来越大,成本也就越来越高。同时,因为去中心化的设置,区块链的各个核心客户端同时又是服务器,保存了区块链网络的完整数据,因此使对区块链网络的攻击很难像对传统的中央处理节点那样有效,一般情况下很难对区块链网络构成重大冲击。最终,区块链网络成为一个难以攻破的、公开的、不可篡改数据记录和制造虚假数据的诚实可信系统。

    区块链保证数据安全、不可篡改以及透明性的关键技术包括两个方面:一是数据加密签名机制;二是共识算法。在数据加密签名机制中,首先,要有一个私钥,私钥是证明个人所有权的关键,比如证明某人有权从一个特定的钱包消费数字货币,是通过数字签名来实现的。其次,要使用哈希(Hash)算法。哈希散列是密码学里的经典技术,把任意长度的输入通过哈希算法计算,变换成固定长度的由字母和数字组成的输出,具有不可逆性。共识算法是区块链中节点保持区块数据一致、准确的基础,现有的主流共识算法包括工作量证明(PoW)、权益证明(PoS)、瑞波共识协议(RCP)等。以PoW为例,是指通过消耗节点算力形成新的区块,是节点利用自身的计算机硬件为网络做数学计算进行交易确认和提高安全性的过程。交易支持者(矿工)在电脑上运行比特币软件不断计算软件提供的复杂的密码学问题来保证交易的进行。作为对他们服务的奖励,矿工可以得到他们所确认的交易中包含的手续费,以及新产生的比特币。

    转载于:https://www.cnblogs.com/lianquan/p/9041107.html

    展开全文
  • Ockam是一个无服务器平台,旨在让物联网开发人员可以更容易在其物联网设备中添加基于区块链的身份识别、信任和互操作性。Ockam最近开源了Golang SDK。通过将Ockam SDK嵌入到设备中,开发人员可以让设备成为Ockam...

    Ockam是一个无服务器平台,旨在让物联网开发人员可以更容易在其物联网设备中添加基于区块链的身份识别、信任和互操作性。Ockam最近开源了Golang SDK

    通过将Ockam SDK嵌入到设备中,开发人员可以让设备成为Ockam区块链网络的一部分。Ockam区块链网络是一个去中心化的开放平台,可以基于去中心化标识符(DID)W3C标准实现安全的加密身份管理。

    去中心化标识符(DID)是用于“自主”数字身份的新型标识符。DID完全受控于DID主体,独立于其他集中式的注册表、身份识别提供商或证书颁发机构。DID是将DID主体与可信任的交互方式相关联的URL。

    自主身份识别的概念源于20世纪70年代,但真正成为现实要归功于区块链。

    InfoQ采访了Ockam首席执行官兼创始人Matthew Gregory。

    在描述Ockam时,你使用了“物联网的Heroku”一词。你能介绍一下Ockam背后的愿景吗?

    Ockam的核心优势之一是SDK如何抽象出复杂的基础设施。开发人员基于Ockam将简单的函数调用集成到代码库中,而不是手动去构建复杂的加密基础设施,以此来获得公钥基础设施的优势,而无需掌握特殊的专业知识。就像Heroku的“git push master”解锁了云的魔力一样,Ockam将帮助开发人员解锁物联网创新。

    Ockam为物联网开发人员提供的最重要功能是什么?它试图解决什么样的问题?

    每个开发者现在都可以在项目中明确指定如何在其物联网设备中添加身份识别、信任和互操作性。而在之前,他们只能:

    1. 什么也不做:这是非常常见的,将导致出现僵尸网络和设备中的大量安全漏洞。
    2. 建立自己的端到端物联网基础设施:这是一项艰巨的任务,耗资数百万美元,需要特定的专业知识。
    3. 购买物联网平台供应商解决方案:端到端平台实施起来很复杂,转换成本高,导致供应商锁定,从而限制了互操作性

    今天,因为有了Ockam SDK,开发人员也就有了更好的选择:编写几行代码,为设备提供一个安全的不可变身份,可与其他技术栈互操作。

    Ockam通过区块链来提供不可变的安全加密设备身份识别。你能详细说明并解释你在平台中使用区块链的具体方式吗?Ockam如何确保用户数据的隐私?

    区块链与Ockam是两个东西,区块链只是Ockam一个组成部分。区块链的杀手锏是身份识别。Ockam使用加密安全身份识别来确定哪个物联网设备发送了哪些数据。作为Ockam区块链网络协议的一部分,我们使用DID标准来识别身份,并且每个数据交换都必须使用发送数据的设备的密钥进行签名。

    用户数据的隐私可以通过很多广泛使用的数据加密方法和访问权限来实现。

    我在博文“The Nine-Factors of a well tuned IoT network”中深入探讨了这个问题。

    最近推出的Ockam SDK是用Golang编写的。为什么会做出这样的选择?会支持更多语言吗?

    Ockam的底层代码库是用Golang编写的。因此,SDK中的首选语言也是Golang,这是很自然的事情。我们将在不久的将来支持各种语言,C语言、C++和Python都在支持列表中。

    为了实现安全的互操作性,Ockam SDK支持以下这些基本操作:

    • .register,用于向Ockam网络发送数字身份标识。

    • .claim,用于将可信数据从一台设备发送到另一台设备。

    • .verify,用于从网络获取可信数据,这些数据时通过.register或.claim操作放置在网络中的。

    这些命令可通过Go API以及支持与Ockam网络交互的CLI工具进行调用,可以从项目GitHub代码库下载。

    查看英文原文https://www.infoq.com/news/2019/01/ockam-blockchain-iot-identity

    展开全文
  • 简单说说区块链

    千次阅读 2020-01-16 10:31:56
    区块链--Block chain 目录 一.区块链的定义 二.区块链核心技术 三.区块链的特点 四.区块链的成功应用 五.比特币 六.区块链对我们的影响 正文 一、区块链的定义 定义一: 区块链就是把加密数据...

                                           区块链--Block chain

    目录

    一.区块链的定义

    二.区块链核心技术

    三.区块链的特点

    四.区块链的成功应用

    五.比特币

    六.区块链对我们的影响

    正文

    一、区块链的定义

    定义一:

    区块链就是把加密数据(区块)按照时间顺序进行叠加(链)生成的永久、不可逆向修改的记录

    定义二:

    区块链本质上是一个分布式的公共账本

    二.区块链核心技术

    1.哈希算法(大学学计算机的必然学过)

    2.公钥加密技术

    3.工作量证明

    三.区块链的特点

    1.去中心化

    这是区块链颠覆性特点,不存在任何中心机构和中心服务器,所有交易都发生在每个人电脑或手机上安装的客户端应用程序中。

    2.开放性

    区块链可以理解为一种公共记账的技术方案,系统是完全开放透明的,账簿对所有人公开,实现数据共享,任何人都可以查账

    3.安全性

    区块链采取单向哈希算法,每个新产生的区块严格按照时间线形顺序推进,时间的不可逆性、不可撤销导致任何试图入侵篡改区块链内数据信息的行为易被追溯,导致被其他节点的排斥,造假成本极高,从而可以限制相关不法行为。只要不能掌控全部数据节点的51%,就无法肆意操控修改网络数据,这使区块链本身变得相对安全,避免了主观人为的数据变更

    4.独立性

    基于协商一致的规范和协议(类似比特币采用的哈希算法等各种数学算法),整个区块链系统不依赖其他第三方,所有节点能够在系统内自动安全地验证、交换数据,不需要任何人为的干预

    5.匿名性

    除非有法律规范要求,单从技术上来讲,各区块节点的身份信息不需要公开或验证,信息传递可以匿名进行

    四.区块链的成功应用

    比特币和以太坊。区块链处于技术的萌发期,没有太多合适的应用场景。

    五.比特币-- BitCoin

    比特币:是一种P2P形式的虚拟的加密数字货币,点对点的传输意味着一个去中心化的支付系统。与所有的货币不同,比特币不依靠特定货币机构发行,它依据特定算法,通过大量的计算产生,比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学的设计来确保货币流通各个环节安全性。

     

    比特币值值钱吗,好赚吗?我不知道,我查到的一点数据可以供大家了解一下:

    2017-12-17:一个比特币=19850刀, 人民币136591.82

    2019-5-14:一个比特币=8000刀, 人民币55049.6

              总数比特币2100W:168000000000刀, 人民币1156041600000

    比特币的技术构成

    比特币的系统包括三层:底层技术——区块链;中层链接——协议;上层——货币。

    货币指的就是比特币;

    协议就是基于区块链的资金转账系统;

    底层技术就是区块链,即去中心化、分布式记录的公开透明的交易记录总账,其交易数据 全网节点共享。矿工负责记录,全网监督;

    六.区块链对我们的影响

    1. 金融清算不在依赖于某个第三方

    2 . 区块链的溯源对我们生活会起到非常重要的作用

    3 . 区块链技术还在懵懂时期,对于普通人真没啥太多直接的影响。如果有,那就是炒币,股价,诈骗

       仅此而已。新的技术出现都会第一时间被骗子用来进行产品的包装

    区块链中的hash哈希算法

    Hash算法早于区块链已经存在无数年了,是密码学的重要算法。

    例子:

    比较 hello 和 hellp是否相等, 字符串很少,可以循环一个一个字符串比较。

    同上比较 hello...hello 和 hello...hellp, 字符串很多,如果循环一个一个比较,效率会很低。

    把每一位字符转换为数字,并根据所在位数乘以10的次方,然后计算各位数字的和。

    hello ==> h(104) e(101) l(108) l(108) o(111)104*10^4 + 101*10^3 + 108*10^2 + 108*10 + 111= 1152991

    hellp ==> h(104) e(101) l(108) l(108) p(112)104*10^4+101*10^3+108*10^2+108*10+112= 1152992

    通过比较 1152991 != 1152992 ,可以判断这两个字符串不同。

    哈希算法,简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数

    应用场景:

    1 传输或下载的文件有没有在传输下载过程中遭到破坏?计算一下,看看和官方的Hash值是否相同(MD5)。

    2 领导已经签章过的文件,是不允许修改的。这个是做数字签章。

    3 比特币的区块链要保证不可修改。每个区块都计算生成了一个唯一的数字。

    在区块链中如果需要验证交易的信息是否未被篡改,就是通过hash的算法,将很大的文件或者字符串转化成一个数字,直接进行一次数字比较效率就变得很高了。

    A要交易比特币给B,交易中包含3部分信息:

    1- A的比特币地址(A的公钥)

    2- 交易的比特币数量

    3- B的比特币地址(B的公钥)

    4- 数字签名文件:是A通过自己掌握的私钥对自己的比特币地址(公钥)和他向B发送的交易比特币数量的组合的哈希值进行加密得到的

    A将这些数据以及加密数字签名都会通过网络发送进行全网验证。当矿工收到这个数据后,就会进行验证,并同时做两项工作:

    1- 把所有公开数据(交易金额、两个人的公钥)放入哈希算法中,得到一个哈希值(例如为Hash1)

    2- 使用A的公钥对数字签名进行解密,得到一个哈希值(例如为Hash2)

    对比Hash1和Hash2,如果两者相同,那么它就是一个合法的交易

    工作量证明机制

    区块链中每个人都平等的账本,那么谁来向区块链添加区块?如何信任这个人呢?

    为此,有了工作量证明POW这个概念,可以理解为解一道复杂的题,需要付出大量的计算。他们的工作就是验证交易并解决与创建块相关的复杂数学难题。

    每一个区块都有一个哈希值,是几项数据的组合,包括:

    前一个区块的哈希值交易数据的哈希值nonce,最终的哈希值必须以指定数量的0开头才行。

    举个例子,字符串Hello World!,我们给出的工作量要求是:可以在这个字符串后面添加一个叫做nonce的整数值,对变更后的字符串进行SHA256哈希算法,如果得到的哈希结果(以16进制的形式表示)是以"0000"开头的,则通过验证。

    为了达到这个工作量证明的目标。我们需要不停的递增nonce值,对得到的新字符串进行SHA256哈希运算。

    按照这个规则,我们需要经过4251次计算才能找到恰好前4位为0的哈希散列。

    说明:本文部分内容来源于转载莫法

    展开全文
  • 区块链

    2020-11-21 07:00:36
    1、它的价值在哪里呢? 回顾历史,人类最早为什么能够战胜其他物种,其实是由于言语的呈现,让人类互相有了协谐和信赖机制,所以人类的经验、智慧得到...现在有了区块链技能,咱们将以数据为载体,将社会的信赖成本
  • 区块链基础

    2020-09-29 15:15:35
    1 区块链基础 1.1 概念 区块链是一个去中心化的分布式数据库,该数据库由一串使用密码学方法产生的数据区块有序链接而成,区块中包含有一定时间内产生的无法被篡改的数据记录信息。 区块中包含数据记录、当前区块根...
  • 物联网安全与区块链

    万次阅读 多人点赞 2018-03-04 00:00:00
    每个区块链都是一个分布的分类账, 也就是说, 每个区块链链都是一个独立的、透明的、永久的数据库, 可以同时存在于多个地点, 但并不是所有的 MDL都是区块链。 在最简单的层面上, 区块链是一个持续的交易分类账。 每...
  • java玩转区块链-基础篇-环境搭建

    千次阅读 2021-09-29 21:56:45
    java玩转区块链-基础篇-...区块链网络: 提供区块链交易的网络,测试网和正式网由以太坊提供,开发网络可以本地安装,ganache,Hardhat是两个可以本地安装的区块链服务器,ganache是本教程使用的开发区块链服务器。 w
  • 区块链入门

    2018-02-27 10:45:12
    区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来。可是,简单易懂的入门文章却很少。区块链到底是什么,有何特别之处,很少有解释。下面,我就来尝试,写一篇最好懂的区块链教程。毕竟它也...
  • 认识区块链

    2021-04-20 10:57:26
    认识区块链 区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。 分布式数据库的技术特性 密码学特性 共识机制 智能合约 1 区块链上的分布式存储技术特性 传统的关系型...
  • 区块链军事应用探析

    2021-09-22 19:44:47
    为进一步探索区块链在军事领域的应用场景,从区块链技术基础出发,分析了军事区块链发展需求,从信息安全、数据存证、数据协同和综合应用四个方向重点探讨了区块链技术在军事领域的应用场景。在此基础上,给出了区块链在...
  • BM认为区块链是更好的应用服务器/数据库架构,未来会成为很多企业的必备技术,这会是超级大的潜在市场吗?大家如何看?本文由蓝狐笔记的社群“DoTi”翻译。 传统的web应用基础架构在设计时考虑了安全性,并且二十五...
  • 区块链与商业银行中的区块链运用

    千次阅读 2021-01-12 22:17:00
    区块链与商业银行中的区块链运用 区块链与商业银行中的区块链运用 1. 区块链的本质是链表,以去中心化加密机制为信任机制 传统的数据库管理系统基本上都是由单一的机构与进行维护与管理,单一机构对数据库的...
  • 区块链环境安装

    2021-05-12 14:31:11
    通过利用点对点网络和分布式时间戳服务器区块链数据库能够进行自主管理。为比特币而发明的区块链使它成为第一个解决重复消费问题的数字货币。比特币的设计已经成为其他应用程序的灵感来源。   2014年,...
  • 从经济分析的角度来看,制度的产生源于降低交易成本的需求。其通过对符合制度规定的行为进行认可与鼓励,对违反制度规 定的行为进行惩戒,引导人们将自己的行为控制在一定的范围内,从而减少社会的不确定性和风险,...
  • 区块链服务平台设计

    万次阅读 2019-05-17 18:39:46
    用户无需在意底层实现细节,通过简单的操作,即可获得可用的计算资源,节约大量运维管理的时间成本区块链平台作为分布式基础设施,其部署和维护过程需要多方面的技能,这对很多应用开发者来说都是不小的挑战。...
  • 区块链基本概念

    2021-05-12 06:07:34
    什么是区块链? 近年来,区块链这个名词越来越频繁地进入公众视野,各行各业都在讨论它将怎样改变这个社会。 区块链最初发源于金融业,作为金融从业者,很有必要了解一下有关区块链的常识。如此,才能结合各自的业务...
  • 区块链技术综述

    万次阅读 2017-10-31 22:32:38
    一篇区块链的综述文章,将区块链的基本概念讲述清楚。
  • 区块链两种推广思路

    千次阅读 2019-05-23 10:53:56
    从推广区块链的方式看,当下区块链服务于实体经济,可以分为两种基本思路,即提供解决方案的思路,和做技术与应用平台的思路。 银行等金融机构偏爱行业解放方案的形式 提供技术解决方案的思路,是针对区块链技术...

空空如也

空空如也

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

区块链服务器成本