首页 > 其他分享 >NTP时钟服务器(NTP授时服务器)系统应用

NTP时钟服务器(NTP授时服务器)系统应用

时间:2024-08-05 18:27:54浏览次数:13  
标签:找到 NTP 授时 证明 工作 哈希 服务器 区块 时钟

NTP时钟服务器(NTP授时服务器)系统应用

NTP时钟服务器(NTP授时服务器)系统应用

京准电子科技官微——ahjzsz

本文主要解释了区块链中的重要功能:工作证明(Proof-of-Work)。主要说明工作证明对于区块链是一个重要特征,而且是必须的;区块链中其他经常被提及特征(如安全性)反而是次要的,虽有用但非必须。

本文的解释主要是基于区块链工作证明的一些有趣特性,这些特性其实不能显而易见,有时甚至与直觉相反,例如区块链的参与者可以在不需要沟通的情况下共同解决问题。

 在了解了这些特性之后,人们应该容易得出结论:工作证明主要是完成分布式或分散式的时间机制(如时钟)。

 请注意,这篇文章不是关于工作证明本身解释,它只是说明了区块链是如何利用它的。如果您对工作证明不了解,那么这个链接可能是一个好的开始。

 分散账本的时间排序问题

 

 

在进一步描述解释之前,让我们先把重点放在这个问题上,也就是时间排序问题。关于工作证明的许多文献都很混乱,因为它们总是试图解释问题的结果而不是首先确定问题本身。

 

任何分类账都绝对需要顺序。一个人不能花没有收到的钱,也不能花已经花了的钱。区块链交易(或称区块链事务)必须明确顺序,并且不需要可信任的第三方来协调顺序。

 

即使区块链不是分类账,而只是某种如顺序日志的数据,但对于每个节点都有相同的区块链复制副本,顺序也是必需的。区块链的顺序不同就意味着不同的区块链。

 

 

但是,如果交易是由世界各地的匿名参与者产生的,并且没有中心化组织负责交易之间的顺序排列,但事实需要一个排序,那么该怎么办呢?虽然一个交易(或块)可能包括时间戳,但这些时间戳怎么可信?

 

时间只是人的概念,时间的衡器比如一个原子钟对于人来说是一个“可信赖的第三方”。但是,由于网络延迟以及时间相对性的影响,依靠时间戳来确定事件顺序在分散系统中是不可能的。

 

我们感兴趣的“时间”不是我们习惯的像年、月、日等时间概念。我们需要的是一种机制,通过这种机制我们可以验证一个事件发生在另一个事件之前或者可能同时发生。(banq注:事件的顺序性)

 

首先,对于什么是之前和什么是之后的等概念,需要建立一个时间点。建立一个时间点起初在理论上似乎是不可能的,因为没有足够精确的技术来测量 普朗克时间。但正如你所看到的,比特币通过创建自己的时间概念来解决这个问题,在这个时间点上,确定精确的时间点实际上是有可能的。

 

Leslie Lamport在 1978年的论文 “分布式系统中的时间,时钟和事件顺序”中很好地描述了这个问题 , 除了“正确同步的物理时钟”之外,该文实际上并没有提供全面的解决方案。在1982年,Lamport还描述了“拜占庭将军问题”,而Satoshi在他的第一封电子邮件中解释了工作证明是如何解决这个问题的,因为比特币文件指出“要在对等网络上实现分布式时间戳服务器,我们将需要使用工作证明系统“,这表明工作证明主要就是解决时间戳问题的。

 

时间是根本问题

 

必须强调的是, 在分布式系统中不可能将事件与时间点关联起来,这是一个未解决的问题,直到中本聪发明了区块链的工作证明这个解决方案之后,分散的分类帐才可能得以实现。区块链还有许多其他技术细节,但时间选择是基础性和重要的。没有时间就没有区块链。

 

工作证明文件

 

简而言之,区块链的工作证明是一个符合某个要求的SHA-2哈希值,这个值是非常难以找到的。困难之处在于哈希小于一个特定数字,数字越小,输入值越稀少并且发现它的难度就越高。

 

它被称为“工作证明”,因为已知具有这种哈希的值非常罕见,这意味着找到这样的值需要大量的试错,即“工作”。反过来,这意味着 "时间"。

 

通过改变需求,我们可以改变难度,从而改变发现这种哈希的可能性。比特币难度动态调整,以便每十分钟平均能找到一个正确的哈希值。

 

在块之间什么也不会发生

 

区块链的状态由其块体现,每个新块都会产生一个新状态。区块链状态一次向前移动一个区块的距离,而一个区块需要花费平均10分钟,这个时间是区块链时间的最小量度。

 

SHA是无记忆Memoryless,无进展的Progress-Free

 

安全哈希算法是统计和概率中的无记忆Memoryless。这是一个对我们人类来说特别违反直觉的概念。

 

无记忆的最好例子是掷硬币。如果一枚硬币连续出现10次同一面,这是否意味着下一次投掷更可能是反面?我们的直觉说是的,但实际上每次投掷都是50/50的机会,无论前面发生了多少次巧合现象。

 

无记忆对于无进展的Progress-Free是需要的。无过程意味着,随着矿工们试图解决对随机数进行迭代以找到下一个块的哈希值(解决方案),每次尝试都是一个独立的事件,无论过去做了多少工作,每次尝试都找到解决方案的概率是不变的。换句话说,在每一次尝试中,参与者都没有更接近解决方案或没有取得任何进展。一位一直在寻找哈希值一年的矿工在下一次尝试时不会比一个刚刚开矿的矿工更有可能找到哈希值。

 

因此,在给定的时间段内找到给定解决方案(哈希值)的可能性仅由所有参与者在哈希中迭代的速度决定。不是以前的历史,不是数据,只是哈希率。

 

哈希率又是参与者数量和用于计算哈希的设备速度的函数。

 

SHA输入是不相关的

 

在比特币区块链中,输入是区块头部。但是如果我们只给它随机值,那么找到一致性散列的概率仍然是一样的。无论输入是有效的块头还是来自/ dev / random的字节,平均需要10分钟才能找到下一块的哈希值。

 

当然,如果你发现一个符合要求的哈希,但你的输入不是一个有效的块,这样的解决方案不能被添加到区块链,但它仍然是工作量验证(尽管无用)。

 

难度是银河系

 

奇怪的是,困难是普遍的,这意味着它横跨整个宇宙。 我们可以让在火星上的矿工帮忙寻找,他们不需要与地球矿工沟通,关键还是每10分钟才会找到答案。(好吧,他们需要以某种方式告诉地球人他们是否解决了这个问题,否则我们永远都不会知道)。

 

值得注意的是,远方的参与者之间没有真正的交流沟通,因为他们共同解决相同的统计问题,但他们甚至不知道彼此的存在。

 

这种“普遍性”虽然起初看起来很神奇,但实际上很容易解释。我使用了“通用universal”一词,因为它用一个词来形容它,但它确实意味着“每个参与者都知道”。

 

SHA-256的输入可以被认为是0到2的 256平方之间的一个整数(因为输出是32字节,也就是说0和2的 256平方之间,任何更大的值都可以保证碰到,比如变为冗余)。即使它非常大( 比可感知宇宙中的原子数目大得多),它是一组数字,每个参与者都知道,参与者只能从这组数据中挑选出来。

 

如果输入集是众所周知的,函数(SHA-256)是众所周知的,并且难度要求是众所周知的,那么找到解决方案的可能性也确实是“普遍的”。

 

尝试SHA会使您成为参与者

 

如果确定的问题是要找到符合的哈希值,那么您只需要尝试一次,而且Bingo,您也已经影响了全局哈希率,并且对于那个尝试您是参与者帮助其他人解决问题的人。你不需要告诉别人你做了这件事(除非你真的找到了解决方案),其他人不需要知道它,但是你的尝试确实影响了结果。对于整个宇宙来说,no less。

 

如果上述情况仍然令人怀疑,一个很好的比喻可能是寻找大质数的问题。找到最大的质数是很难的,一旦找到,它就变成“被发现”或“已知”。有无数的质数,但宇宙中每个数字只有一个实例。 因此,试图找到最大素数的人正在研究同一个问题。你不需要告诉任何人你决定寻找最大素数,你只需要在你找到一个时发布它。如果没有人找到最大的素数,那么它永远不会被发现。因此,只要最终被发现(如果被发现的话)被公布,参与(即试图找到一个)者,即使它是完全保密的,仍然影响结果。

 

想想这个令人难以置信的统计现象,即任何参与者即使在完全保密的情况也会影响结果,即使并没有成功也会,这正是让中本聪的发明显得如此辉煌原因。

 

值得注意的是,由于寻找SHA是没有进展的概念问题,每次尝试都可以被认为是一个参与者努力加入并立即离开。因此,矿工每秒钟加入和离开五十次。

 

参与是一种统计显示

 

在许多网站上列出的全球哈希率并不是因为每个矿工都在某些“矿工注册办公室”​​注册,他们定期报告哈希率。但是没有这样的东西存在。

 

哈希率是已知的,因为对于在10分钟内找到特定难度的解决方案,平均而言,这种许多尝试(在撰写本文时〜10的21)必须由某处某人实现。

 

我们不知道这些参与者是谁,他们从未宣布他们正在工作,没有找到解决方案的人(实际上他们都是)并没有告诉任何人他们正在工作,他们的位置可能在宇宙中的任何地方,但我们绝对确定地知道它们存在。因为问题需要继续得到解决(哈希值需要被找到)。

 

工作是一个时钟

 

问题的关键在于:找到一致性哈希的难度就像一个时钟。如果你愿意的话,一个通用的时钟,因为宇宙中只有一个这样的时钟,所以没有什么可以同步,任何人都可以“看”它。

 

这个时钟不准确并不重要。重要的是,这对每个人来说都是同一个时钟,并且区块链的状态可以毫不含糊地与时钟的滴答声挂钩。

 

这个时钟是由遍布全球的未知数量的集体参与者的多重效率操作的,彼此完全独立。

 

谜题的最后一部分

 

解决方案必须是区块的哈希(准确说是区块头部)。正如我们所提到的那样,输入并不重要,但如果它是实际的块,那么无论何时找到解决方案,它都发生在我们的工作时间校验时钟的滴答处。不是在此之前,也不是在其之后,而是正好在滴答此刻。我们毫不含糊地知道这一点,因为该块是该机制的一部分。

 

换句话说,如果块不是输入到SHA256函数,我们仍然会有一个分布式时钟,但是我们不能将这个块与这个时钟的滴答连接起来。使用块作为输入解决了这个问题。

 

值得注意的是,我们的工作证明时钟仅为我们提供了滴答计时。没有办法从滴答判断顺序,这就是Merkle树的用途。

 

分布式共识如何?

 

共识意味着协议。所有参与者只能一致认可时钟的滴答别无选择能达成共识。此外,每个人都知道滴答和附加的数据。事实上,正如中本聪在前面引用的电子邮件中解释的那样,这确实解决了拜占庭将军问题。

 

在一个罕见但常见的情况下,有两个连续的滴答与一个块有关联,发生冲突。这个冲突是通过什么块与下一个滴答相关联来解决的,使得有争议的块之一成为“孤儿”。区块链如何继续是一个偶然的事情,所以这也可能间接地归因于工作时间时钟。

 

就是这样

 

这是工作证明为区块链所做的工作。这不是一个“矿工”,矿工是获得解决问题的权利,也不是将真正的能量转化为有价值的概念,而是所有的红鲱鱼。

 

例如,矿工中奖的奖励是鼓励矿工参与的原因,但这并不是使区块链成为可能的原因。区块是一个Merkle树,但它又与工作证明无关,它加密地加强了区块排序的记录。Merkle树也使得以前的滴答“更确定”,“更不可否认”或更简单。

 

工作量证明也是块体实际上不可变的机制,这是一种很好的副作用,可以使隔离见证成为可能,但它也可以通过保留签名(证人)来完成,所以这也是次要的。

 

结论

 

比特币区块链工作证明只是一个分布式的、分散式的时钟。

 

如果你理解了这个解释,那么你应该更好地把握证明工作证明与权益证明Proof-of-Stake的比较,并且很明显这两者不具有可比性:权益证明是关于(随机的分布式)权限,而工作证明是一个时钟。

 

在区块链的背景下,工作证明可能是一种误用。这个术语是Hashcash项目的遗产 ,它确实用于证明工作。在区块链中,却主要是关于可验证的花费时间。当人们发现一个满足难度的哈希值时,人们发现它需要一定时间。完成这个时间的方法就是“工作”,哈希是有趣的,因为它是时间的证明。

 

工作证明完全是关于时间而非工作的事实也表明,可能存在其他类似的统计挑战,这些挑战既费时又耗力。这也可能意味着比特币哈希率过高,而且我们上面描述的比特币时钟可以在一小部分哈希率上可靠地运行,但哈希率是刺激能源消耗的激励结构。

 

如果找到一种方法来减少工作的耗时就会产生万亿美元的问题,请让我知道!

标签:找到,NTP,授时,证明,工作,哈希,服务器,区块,时钟
From: https://www.cnblogs.com/ahjzdz/p/18343817/2332iweijd1

相关文章

  • SqlDbx客户端连接服务器Oracle数据库
    查了很多文章,介绍的不对,走了好多弯路,最后整理一下,供参考一、下载Oracle客户端1、SqlDbx如果是32位的,客户端也要下载32位的2、Oracle客户端版本要和服务端版本一致(本例用的是12.1.0.2.0)3、32位客户端下载地址:https://www.oracle.com/database/technologies/instant-client/mic......
  • 获取第三方GET接口的data数据,服务器需要设置正确的 Access-Control-Allow-Origin
    在现代Web开发中,由于同源策略的限制,浏览器通常不允许从一个域名(origin)直接访问另一个域名的资源,除非服务器端设置了适当的CORS(跨源资源共享)策略。项目中如何直接获取get接口https://api.cp.139.com/cgate/cme/v1/appUpgrade/version?channel=baidu02下的接口相应对象:{"code":......
  • 如何为网络游戏选择理想的服务器?
    网络游戏已成为一种全球性的娱乐方式,而背后支撑这一切的是强大的服务器。为了确保游戏体验的流畅性和安全性,游戏开发者和运营商需要精心挑选服务器。那选择服务器要考虑的因素有哪些呢?我觉得是一下几点:1.高性能与弹性伸缩:无论是大型还是小型游戏,都需要足够的计算能力来处理......
  • 文件服务器rsync
    服务器配置echo"cc:cc2023">/etc/rsync.passwordchmod600/etc/rsync.passwordvi/etc/rsyncd.confuid=rootgid=rootusechroot=nomaxconnections=40pidfile=/var/run/rsyncd.pidlogfile=/var/log/rsyncd.logexclude=lost+found/tran......
  • 《花100块做个摸鱼小网站! 》第一篇—买云服务器和初始化环境
    一、前言大家好呀,我是summo,前面我已经写了我为啥要做这个摸鱼小网站的原因,从这篇文章开始我会一步步跟大家聊聊我是怎么搭起这个网站的。我知道对很多新手来说,建网站可能挺头大的,不知道从哪里开始,所以我会尽量写得简单明了,让大家一看就懂,少走弯路。咱们先从买服务器开始说起。现......
  • “命令行利器:sort、uniq、date、ntpdate详解与实战“
    当今操作系统中的命令行工具不仅是管理和调试系统的利器,也是程序员和系统管理员的重要工具。在Unix和类Unix系统中,sort、uniq、date和ntpdate是几个常用的命令,它们各自拥有独特的功能,可以在日常工作中极大地提高效率。本文将深入探讨这些命令的用法和实际应用。1. sort命令s......
  • dedecms错误警告:连接数据库失败,可能数据库密码不对或数据库服务器出错
    描述:“dedecms错误警告:连接数据库失败,可能数据库密码不对或数据库服务器出错”如图:分析:用织梦程序制作的站点做迁移服务器后容易出现这个问题,原因是程序中设置的数据库连接信息有误连接不到数据库,解决方法:将根目录下/data/common.inc.php文件中的数据库连接信息修改正确,如图,请......
  • 怎么在Ubuntu系统云服务器搭建自己的幻兽帕鲁服务器?幻兽帕鲁搭建教程
    《幻兽帕鲁》是一款备受瞩目的开放世界生存建造游戏,近期在游戏界非常火爆。玩家可以在游戏世界中收集神奇的生物“帕鲁”,并利用它们进行战斗、建造、农耕、工业生产等各种活动。与其他开放世界游戏不同,要想实现多人联机游戏,玩家需要自行搭建服务器。目录基本步骤创建和登录主机......
  • 发现一个宝藏云服务器,年年都是折扣价,不用四处薅羊毛
    发现一个宝藏云服务器,年年都是折扣价,不用四处薅羊毛,如下:[]==点击这里进入==如果您的朋友正需要一个免费的云服务器,请把链接转发给他#概述云主机(VirtualMachines,VM)是CSDN开发云提供的一种基础计算服务单元,提供处理能力可弹性伸缩的计算服务。云主机涉及多种概念,如下......
  • 使用PasteSpider实现类似Jenkins的功能,让你的2G服务器也可以飞起
    或许你接触过Jenkins,在我理解就是拉取源码,然后构建成镜像,最后启动容器!但是这个功能对于小内存的服务器来说就是奢望了!今天介绍一个新版本,把你这个遗憾弥补下!在PasteSpider中,也是支持拉取源码,然后编译发布的!!!以下案例使用svn作为源码管理如果你使用git作为源码管理,道理差不多......