比特币资金密码是多少位数比特币资金密码是多少位数的

大家好,今天来为大家解答比特币资金密码是多少位数这个问题的一些问题点,包括比特币资金密码是多少位数的也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

本文目录

一文看懂互联网区块链[译]你知道ECDSA是如何保护你的数据的么比特币的价值是由什么决定的一文看懂互联网区块链一文看懂互联网区块链

一文看懂互联网区块链,要了解区块链,就不得不从互联网的诞生开始研究区块链的技术发展简史,从中发掘区块链产生的动因,并由此推断区块链的未来。下面让我们一文看懂互联网区块链。

一文看懂互联网区块链1区块链的鼻祖就是麻将,最早的区块链是中国人发明的!区块链就跟麻将一样,只不过麻将的区块比较少而已,麻将只有136个区块,各地麻将规则不同可视作为比特币的硬分叉。

麻将作为最古老的区块链项目,四个矿工一组,最先挖出13位正确哈希值的获得记账权以及奖励,采用愿赌服输且不能作弊出老千的共识机制!

麻将去中心化,每个人都可以是庄,完全就是点对点。

矿池=棋牌室的老板抽佣。

不可篡改,因为说服其他三个人需要消耗太多算力和体力。

典型的价值互联网。我兜里的价值用不了八圈,就跑到他们兜里去了。

中国人基本上人手打得一手好麻将,区块链方面生产了全球70%~80%的矿机,并拥有全世界最多的算力,约占77%的算力

麻将其实是最早的的区块链项目:

1,四个矿工一组,先碰撞出13个数字正确哈希值的矿工可以获得记账权并得到奖励。

2,不可篡改。因为说服其他三个人需要消耗太多算力和体力。

3,典型的价值互联网。我兜里的价值数字货币www.gendan5.com/digitalcurrency/btc.html用不了八圈,就跑到他们兜里去了。

4、去中心化,每个人都可以是庄,完全就是点对点。

5、UTXO,未花费的交易支出。

还有另外一种赊账的区块链玩法,假设大家身上都没现金

细究一下,在大家达成共识时,我们看不到任何中介或者第三方出来评判丙赢了,大家给丙的奖励也不需要通过第三方转交给丙,都是直接点对点交易,这一过程就是去中心化,牌友们(矿工)各自记录了第一局的战绩,丙大胡自摸十三幺,乙杠了甲东风,记录完成后就生成了一个完整的区块,但要记住,这才只是第一局,在整个区块链上,这才仅仅是一个节点,开头说的8局打完,也就是8个节点(区块),8个区块连接在一起就形成了一个完整账本,这就是区块链。因为这个账本每人都有一个,所以就是分布式账本,目的就是为了防止有人篡改记录,打到最后,谁输谁赢一目了然。

4个男士(甲乙丙丁)凑在一块打麻将来钱,大家都没带现金,于是请一美女(中心化)用本子记账,记录每一局谁赢了多少钱、谁输了多少钱?最后结束时,大家用支付宝或微信支付结总账,但是如果这位美女记账时记错了或者预先被4人中的某人买通了故意记错,就保证不了这个游戏结果的公正公平合理性,你说是不是?那怎么办呢?如果你“打麻将”能用“区块链”作为游戏规则改编为如下:

4个男士(甲乙丙丁)凑在一块打麻将来钱,大家都没带现金,乙说让她带来的美女记账,甲说这位美女我们都不认识,于是甲乙丙丁4人一致约定每个人每局牌都在自己的手机上(区块链节点)同时记账(去中心化),最后打完麻将,直接手机上以电子货币结账时,大家都对一下记账的的结果,本来应该是一样的记账结果。

假设本来结果是甲手机上记的账:乙欠甲10元。但乙手机上的记录却是不欠,可是其余2人(丙、丁)和甲的记账一样,那还是按照少数服从多数规则结算,另外大家心里对乙的诚信印象就差评了,下次打麻将就不会带乙一起玩了。

除非乙预先买通(丙、丁)2人让其故意作假,但乙买通他们2人的代价是10万元(赖账10元的1万倍),那常理上乙只能选择放弃,因为做假成本太高了。

假设即使乙在打牌的过程中,偷偷愿意以高价10万元预先买通丙、丁做这笔巨亏的傻猫交易,但区块链的规则是按时间戳记账的,原来是下午1点钟记账乙欠甲10元的,即丙和丁下午3点钟再改账时,时间是不可逆的,只能记下午3点钟,那就又不吻合游戏规则了。

实际上在2017年博主已经开发出了一套麻将币

中国最早的区块链项目:四个矿工一组,最先从148个随机数字中碰撞出14个数字正确哈希值的矿工,可以获得一次记账权激励,由于分布式记账需要得到其他几位矿工的共识,因此每次记账交易时间长约十几分钟。

一文看懂互联网区块链2一、比特币诞生之前,5个对区块链未来有重大影响的互联网技术

1969年,互联网在美国诞生,此后互联网从美国的四所研究机构扩展到整个地球。在应用上从最早的军事和科研,扩展到人类生活的方方面面,在互联网诞生后的近50年中,有5项技术对区块链的未来发展有特别重大的意义。

1、1974诞生的TCP/IP协议:决定了区块链在互联网技术生态的位置

1974年,互联网发展迈出了最为关键的一步,就是由美国科学家文顿瑟夫和罗伯特卡恩共同开发的互联网核心通信技术--TCP/IP协议正式出台。

这个协议实现了在不同计算机,甚至不同类型的网络间传送信息。所有连接在网络上的计算机,只要遵照这个协议,都能够进行通讯和交互。

通俗的说,互联网的数据能穿过几万公里,到达需要的计算机用户手里,主要是互联网世界形成了统一的信息传播机制。也就是互联网设备传播信息时遵循了一个统一的法律-TCP/IP协议。

理解TCP/IP协议对掌握互联网和区块链有非常重要的意义,在1974年TCP/IP发明之后,整个互联网在底层的硬件设备之间,中间的网络协议和网络地址之间一直比较稳定,但在顶层应用层不断涌现层出不穷的创新应用,这包括新闻,电子商务,社交网络,QQ,微信,也包括区块链技术。

也就是说区块链在互联网的技术生态中,是互联网顶层-应用层的一种新技术,它的出现,运行和发展没有影响到互联网底层的基础设施和通讯协议,依然是按TCP/IP协议运转的众多软件技术之一。

2、1984年诞生的思科路由器技术:是区块链技术的模仿对象

1984年12月,思科公司在美国成立,创始人是斯坦福大学的一对夫妇,计算机中心主任莱昂纳德·波萨克和商学院的计算机中心主任桑蒂·勒纳,他们设计了叫做“多协议路由器”的联网设备,放到互联网的通讯线路中,帮助数据准确快速从互联网的一端到达几千公里的另一端。

整个互联网硬件层中,有几千万台路由器工作繁忙工作,指挥互联网信息的传递,思科路由器的一个重要功能就是每台路由都保存完成的互联网设备地址表,一旦发生变化,会同步到其他几千万台路由器上(理论上),确保每台路由器都能计算最短最快的路径。

大家看到路由器的运转过程,会感到非常眼熟,那就是区块链后来的重要特征,理解路由器的意义在于,区块链的重要特征,在1984年的路由器上已经实现,对于路由器来说,即使有节点设备损坏或者被黑客攻击,也不会影响整个互联网信息的传送。

3、随万维网诞生的B/S(C/S)架构:区块链的对手和企图颠覆的对象

万维网简称为Web,分为Web客户端和服务器。所有更新的信息只在Web服务器上修改,其他几千,上万,甚至几千万的客户端计算机不保留信息,只有在访问服务器时才获得信息的数据,这种结构也常被成为互联网的B/S架构,也就是中心型架构。这个架构也是目前互联网最主要的架构,包括谷歌、Facebook、腾讯、阿里巴巴、亚马逊等互联网巨头都采用了这个架构。

理解B/S架构,对与后续理解区块链技术将有重要的意义,B/S架构是数据只存放在中心服务器里,其他所有计算机从服务器中获取信息。区块链技术是几千万台计算机没有中心,所有数据会同步到全部的计算机里,这就是区块链技术的核心,

4、对等网络(P2P):区块链的父亲和技术基础

对等网络P2P是与C/S(B/S)对应的另一种互联网的基础架构,它的特征是彼此连接的多台计算机之间都处于对等的地位,无主从之分,一台计算机既可作为服务器,设定共享资源供网络中其他计算机所使用,又可以作为工作站。

Napster是最早出现的P2P系统之一,主要用于音乐资源分享,Napster还不能算作真正的对等网络系统。2000年3月14日,美国地下黑客站点Slashdot邮寄列表中发表一个消息,说AOL的Nullsoft部门已经发放一个开放源码的Napster的克隆软件Gnutella。

在Gnutella分布式对等网络模型中,每一个联网计算机在功能上都是对等的,既是客户机同时又是服务器,所以Gnutella被称为第一个真正的对等网络架构。

20年里,互联网的一些科技巨头如微软,IBM,也包括自由份子,黑客,甚至侵犯知识产权的犯罪分子不断推动对等网络的发展,当然互联网那些希望加强信息共享的理想主义者也投入了很大的热情到对等网络中。区块链就是一种对等网络架构的软件应用。它是对等网络试图从过去的沉默爆发的标杆性应用。

5、哈希算法:产生比特币和代币(通证)的关键

哈希算法将任意长度的数字用哈希函数转变成固定长度数值的算法,著名的哈希函数如:MD4、MD5、SHS等。它是美国国家标准暨技术学会定义的加密函数族中的一员。

这族算法对整个世界的运作至关重要。从互联网应用商店、邮件、杀毒软件、到浏览器等、,所有这些都在使用安全哈希算法,它能判断互联网用户是否下载了想要的东西,也能判断互联网用户是否是中间人攻击或网络钓鱼攻击的受害者。

区块链及其应用比特币或其他虚拟币产生新币的过程,就是用哈希算法的函数进行运算,获得符合格式要求的数字,然后区块链程序给予比特币的奖励。

包括比特币和代币的挖矿,其实就是一个用哈希算法构建的小数学游戏。不过因为有了激烈的竞争,世界各地的人们动用了强大的服务器进行计算,以抢先获得奖励。结果导致互联网众多计算机参与到这个小数学游戏中,甚至会耗费了某些国家超过40%的电量。

二、区块链的诞生与技术核心

区块链的诞生应该是人类科学史上最为异常和神秘的发明和技术,因为除了区块链,到目前为止,现代科学史上还没有一项重大发明找不到发明人是谁。

2008年10月31号,比特币创始人中本聪(化名)在密码学邮件组发表了一篇论文——《比特币:一种点对点的电子现金系统》。在这篇论文中,作者声称发明了一套新的不受政府或机构控制的电子货币系统,区块链技术是支持比特币运行的基础。

论文预印本地址在http://www.bitcoin.org/bitcoin.pdf,从学术角度看,这篇论文远不能算是合格的论文,文章的主体是由8个流程图和对应的解释文字构成的,没有定义名词、术语,论文格式也很不规范。

2009年1月,中本聪在SourceForge网站发布了区块链的应用案例-比特币系统的开源软件,开源软件发布后,据说中本聪大约挖了100万个比特币.一周后,中本聪发送了10个比特币给密码学专家哈尔·芬尼,这也成为比特币史上的第一笔交易。伴随着比特币的蓬勃发展,有关区块链技术的研究也开始呈现出井喷式增长。

向大众完整清晰的解释区块链的确是困难的事情,我们以比特币为对象,尽量简单但不断深入的介绍区块链的技术特征。

1、区块链是一种对等网络(P2P)的软件应用

我们在前文提过,在21世纪初,互联网形成了两大类型的应用架构,中心化的B/S架构和无中心的对等网络(P2P)架构,阿里巴巴,新浪,亚马逊,百度等等很多互联网巨头都是中心化的B/S架构,简单的说,就是数据放在巨型服务器中,我们普通用户通过手机,个人电脑访问阿里,新浪等网站的服务器。

21世纪初以来,出现了很多自由分享音乐,视频,论文资料的软件应用,他们大部分采用的是对等网络(P2P)架构,就是没有中心服务器,大家的个人计算机都是服务器,也都是客户机,身份平等。但这类应用一直没有流行起来,主要原因是资源消耗大,知识版权有问题等。区块链就是这种领域的一种软件应用。

2、区块链是一种全网信息同步的对等网络(P2P)软件应用

对等网络也有很多应用方式,很多时候,并不要求每台计算机都保持信息一致,大家只存储自己需要的的信息,需要时再到别的计算机去下载。

但是区块链为了支持比特币的金融交易,就要求发生的每一笔交易都要写入到历史交易记录中,并向所有安装比特币程序的计算机发送变动信息。每一台安装了比特币软件的计算机都保持最新和全部的.比特币历史交易信息。

区块链的这个全网同步,全网备份的特征也就是常说的区块链信息安全,不可更改来源。虽然在实际上依然不是绝对的安全,但当用户量非常大时,的确在防范信息篡改上有一定安全优势。

3、区块链是一种利用哈希算法产生”通证(代币)”的全网信息同步的对等网络(P2P)软件应用

区块链的第一个应用是著名的比特币,讨论到比特币时,经常会提到的一个名词就是“挖矿”,那么挖矿到底是什么呢?

形象的比喻是,区块链程序给矿工(游戏者)256个硬币,编号分别为1,2,3……256,每进行一次Hash运算,就像抛一次硬币,256枚硬币同时抛出,落地后如果正巧编号前70的所有硬币全部正面向上。矿工就可以把这个数字告诉区块链程序,区块链会奖励50个比特币给矿工。

从软件程序的角度说,比特币的挖矿就是用哈希SHA256函数构建的数学小游戏。区块链在这个小游戏中首先规定了一种获奖模式:给出一个256位的哈希数,但这个哈希数的后70位全部是0,然后游戏者(矿工)不断输入各种数字给哈希SHA256函数,看用这个函数能不能获得位数有70个0的数字,找到一个,区块链程序会奖励50个比特币给游戏者。实际的挖坑和奖励要更复杂,但上面的举例表达了挖矿和获得比特币的核心过程。

2009年比特币诞生的时候,每笔赏金是50个比特币。诞生10分钟后,第一批50个比特币生成了,而此时的货币总量就是50。随后比特币就以约每10分钟50个的速度增长。当总量达到1050万时(2100万的50%),赏金减半为25个。当总量达到1575万(新产出525万,即1050的50%)时,赏金再减半为12.5个。根据比特币程序的设计,比特币总额是2100万。

从上述介绍看,比特币可以看做一个基于对等网络架构的猜数小游戏,每次正确的猜数结果奖励的比特币信息会传递给所有游戏者,并记录到每个游戏者的历史数据库中。

4、区块链技术因比特币的兴起产生的智能合约,通证、ICO与区块链基础平台

从上面的介绍看,比特币的技术并不是从天上掉下来的新技术,而是把原来多种互联网技术,如对等网络架构,路由的全网同步,网络安全的加密技术巧妙的组合在一起,算是一种组合创新的算法游戏。

由于比特币通过运作成为可以兑换法币,购买实物,通过升值获得暴利,全世界都不淡定了。抱着你能做,我也能做的态度,很多人创造了自己的仿比特币软件应用。同时利用政府难以监管对等网络的特点,各种山寨币与比特币一起爆发。这其中出现了很多欺诈和潜逃事件,逐步引起各国政府的关注。

区块链基础平台:用区块链技术框架创建货币还是有相当的技术难度,这时区块链基础平台以太坊等基础技术平台出现了,让普通人也可以方便的创建类“比特币”软件程序,各显神通,请人入局挖币,炒币,从中获得利益。

通证或代币:各家“比特币”、“山寨币”如果用哈希算法创建的猜数小游戏,产生自己的“货币”时,这个“货币”统称“通证”或“代币”。

ICO:由于比特币和以太币已经打通与各国法币的兑换,其他新虚拟币发币时,只允许用比特币和以太币购买发行的新币,这样的发币过程就叫ICO,ICO的出现放大了比特币,以太币的交易量。同时很多ICO项目完全建立在虚无的项目上,导致大量欺诈案例频发。进一步加深了社会对区块链生成虚拟货币的负面认识。

智能合约:可以看做区块链上的一种软件功能,是辅助区块链上各种虚拟币交易的程序,具体的功能就像淘宝上支付宝的资金托管一样,当一方用户收到的货物,在支付宝上进行确认后,资金自动支付个给买家货主,智能合约在比特币等区块链应用上也是承担了这个中介支付功能。

三、区块链技术在互联网中的历史地位和未来前景

1、区块链处于互联网技术的什么位置?是顶层的一种新软件和架构。

我们在前面的TCP/IP介绍中提到,区块链与浏览器、QQ、微信、网络游戏软件、手机APP等一样,是互联网顶层-应用层的一种软件形式。它的运行依然要靠TCP/IP的架构体系传输数据。只是与大部分应用层软件不同,没有采用C/S(B/S)的中心软件架构。而是采用了不常见的对等网络架构,从这一点说,区块链并不能颠覆互联网基础结构。

2、区块链想要颠覆谁?想颠覆万维网的B/S(C/S)结构。

它试图要颠覆其实是89年年诞生的万维网B/S,C/S结构。前面说过。由于89年年欧洲物理学家蒂姆·伯纳斯·李发明万维网并放弃申请专利。此后近30年中,包括谷歌,亚马逊,facebook,阿里巴巴,百度,腾讯等公司利用万维网B/S(C/S)结构,成长为互联网的巨头。

在他们的总部,建立了功能强大的中心服务器集群,存放海量数据,上亿用户从巨头服务器中获取自己需要的数据,这样也导致后来云计算的出现,而后互联网巨头把自己没有用完的中心服务器资源开放出来,进一步吸取企业,政府,个人的数据。中心化的互联网巨头对世界,国家,互联网用户影响力越来越大。

区块链的目标是通过把数据分散到每个互联网用户的计算机上,试图降低互联网巨头的影响力,由此可见区块链真正的对手和想要颠覆的是1990年诞生的B/S(C/S)结构。但能不能颠覆掉,就要看它的技术优势和瓶颈。

3、区块链的技术缺陷:追求彻底平等自由带来的困境

区块链的技术缺陷首先来自与它的对等网络架构上,举个例子,目前淘宝是B/S结构,海量的数据存放在淘宝服务器集群机房里,几亿消费者通过浏览器到淘宝服务器网站获取最新信息和历史信息。

如果用区块链技术,就是让几亿人的个人电脑或手机上都保留一份完整的淘宝数据库,每发生一笔交易,就同步给其他几亿用户。这在现实中是完全无法实现的。传输和存储的数据量太大。相当于同时建立几亿个淘宝网站运行。

因此区块链无法应用在数据量大的项目上,甚至小一点的网站项目用区块链也会吃力。到2018年,比特币运行了近10年,积累的交易数据已经让整个系统面临崩溃。

于是区块链采用了很多变通方式,如建立中继节点和闪电节点,这两个概念同样会让人一头雾水,通俗的说,就是区块链会向它要颠覆的对象B/S结构进行了学习,建立数据服务器中心成为区块链的中继节点,也用类浏览器的终端访问,这就是区块链的闪电节点。

这种变动能够缓解区块链的技术缺陷,但确让区块链变成它反对的样子,中心化。由此可见,单纯的区块链技术由于技术特征有重大缺陷,无法像万维网一样应用广泛,如果技术升级,部分采用B/S(C/S)结构,又会使得区块链有了中心化的信息节点,不在保持它诞生时的梦想。

4、从互联网大脑模型看区块链的未来前景

我们知道互联网一般是指将世界范围计算机网络互相联接在一起的网际网络,在这基础上发展出覆盖全世界的全球性互联网络称互联网,即是互相连接一起的网络结构。

从1969年互联网诞生以

paypal账户可以连港股账号

来,人类从不同的方向在互联网领域进行创新,并没有统一的规划将互联网建造成什么结构,当时间的车轮到达2017年,随着人工智能,物联网,大数据,云计算,机器人,虚拟现实,工业互联网等科学技术的蓬勃发展,当人类抬起头来观看自己的创造的巨系统,互联网大脑的模型和架构已经越来越清晰。

通过近20年的发展依托万维网的B/S,C/S结构,腾讯QQ,微信,Facebook,微博、twitter亚马逊已经发展出类神经元网络的结构。互联网设备特别是个人计算机,手机在通过设备上的软件在巨头的中心服务器上映射出个人数据和功能空间,相互加好友交流,传递信息。互联网巨头通过中心服务器集群的软件升级,不断优化数亿台终端的软件版本。在神经学的体系中,这是一种标准的中枢神经结构。

区块链的诞生提供了另外一种神经元模式,不在巨头的集中服务中统一管理神经元,而是每台终端,包括个人计算机和个人手机成为独立的神经元节点,保留独立的数据空间,相互信息进行同步,在神经学的体系中,这是一种没有中心,多神经节点的分布式神经结构。

有趣的是,神经系统的发育出现过这两种不同类型的神经结构。在低等生物中,出现过类区块链的神经结构,有多个功能相同的神经节,都可以指挥身体活动和反应,但随着生物的进化,这些神经节逐步合并,当进化成为高等生物时,中枢神经出现了,中枢神经中包含大量神经元进行交互。

四、关于区块链在互联网未来地位的判断

1、对比特币的认知:一个基于对等网络架构(P2P)的猜数小游戏,通过高明的金融和舆论运作,成为不受政府监管的”世界性货币”。

2、对区块链的认知:一个利用哈希算法产生”通证(代币)”的全网信息同步的对等网络(P2P)软件应用。

3、区块链有特定的用途,如大规模选举投票,大规模赌博,规避政府金融监管的金融交易等等领域,还是有不可替代的用处。

4、在更多时候,区块链技术会依附于互联网的B/S,C/S结构,实现功能的扩展,但总体依然属于互联网已有技术的补充。对于区块链目前设想的绝大部分应用场景,都是可以用B/S,C/S结构实现,效率可以更高和技术也可以更为成熟。

5、无论是从信息传递效率和资源消耗,还是从神经系统进化看,区块链无法成为互联网的主流架构,更不能成为未来互联网的颠覆者和革命者。

6、当然B/S,C/S结构发展出来的互联网巨头也有其问题,但这些将来可以通过商业的方式,政治的方式逐渐解决。

[译]你知道ECDSA是如何保护你的数据的么每个人都可能以某种形式听说过ECDSA。当我说“数字签名”时,有些哥们会更好地认识到这一点,当然有些哥们根本不知道我在说什么。

我曾经试着去了解ECDSA是如何工作的,但很难搞清楚,因为大多数在线参考文献是不够的。他们要么是太基本了-他们只是解释算法的基础知识,或者他们太牛叉-“它是如何工作的?”。所以你在“它是如何工作的”和“我们是如何到达这里的?”之间挣扎着。所以,如果你没有数学或密码学的学位,但仍然想知道它是如何工作的(除非“奇迹发生,或者你是天才”),那么,恭喜你,你来对地方了。

ECDSA全称“EllipticCurveDigitalSignatureAlgorithm”,它用于创建数据的数字签名(例如文件),以便在不影响安全性的情况下验证其真实性。把它想象成一个真实的签名,你可以识别某人的签名,但是如果没有其他人知道你就不能伪造它。ECDSA签名与真实签名之间的区别在于,伪造ECDSA签名是不可能的。

理解ECDSA要注意区分其与用于加密数据的AES(高级加密标准)的区别。ECDSA不会加密或阻止某人查看或访问你的数据,但它可以防止数据被篡改。

在“ECDSA”这里有两个词值得注意,那就是“曲线”和“算法”,因为这意味着ECDSA基本上都是关于数学的。所以我认为首先要说:“嗨,兄弟们,你现在还在扯学的那些高数完全没有什么卵用么!“ECDSA涉及到的数学是相当复杂的,所以我尽量庸俗化,让非技术人员可以理解,但你仍然可能需要一些在数学知识正确理解。下面,我将分两部分来处理,一部分是关于它是如何工作的一个高层次的解释,另一部分是深入理解其内部的工作原理。

其实原理很简单,你拿出纸来,绘制一个数学上的曲线方程,然后你在该曲线上随机选择一点作为你起始的点,然后你生成一个随机数,这是你的私钥,你用这个随机数和“起点”来做一些神奇的数学方程,并且在曲线上得到第二个点,那就是你的公钥。

当你想签署一个文件时,你将使用这个私钥(随机数)和一个散列的文件(一个唯一的数字来表示文件)为一个神奇的方程,这会给你你的签名。签名本身分为两部分,分别称为R和S.为了验证签名是否正确,您只需要公钥(使用私钥生成的曲线上的那个点),然后将其放入另一个神奇的方程与签名的一部分(S),如果它使用私钥正确签名,它会给你另一部分的签名(R)。所以为了简短起见,一个签名由两个数字R和S组成,你用一个私钥生成R和S,如果一个使用公钥和S的数学方程给你R,那么签名是有效的。没有办法知道私钥或仅使用公钥创建签名。

OK,目前你只了解了一点基础知识,你或许没意识到,ECDSA是复杂的,公钥、私钥又是什么鬼?别担心,你马上就会明白,但首先解释一下,为什么使用ECDSA以及它可能有什么用?

除了上述提到的“我需要签署合同/文件”之外,下面是一些别的用例:例如,我们不希望其数据被用户破坏或修改,例如只允许用户你加载官方地图但不可以进入国防部或电话或其他类型的设备,只允许你安装官方的应用程序。

在这种情况下,文件(应用程序,游戏地图,数据)将用ECDSA签名,公钥将与应用程序/游戏/设备捆绑在一起并验证签名,以确保数据没有被修改,而私钥被锁在一个安全的地方。虽然你可以使用公钥验证签名,但是你不能用它创建/伪造一个新的签名,那么这个公钥就可以随应用/游戏/设备一起分发,而不用担心。

这与AES加密系统不同,后者允许您对数据进行加密,但您需要密钥进行解密,而这样的应用程序需要捆绑你的密钥。

一个很好的例子就是PlayStation3游戏机被打开了,所有的文件都可以被解密,PS3文件中的所有密钥都可以被提取出来,但是还有一件东西需要破解,就是ECDSA签名,它可以防止任何人使应用程序运行在最新的固件上

再通俗一点的解释,http与https的区别,我们拥有一个SA认证机构,私钥拿在自己手里,公钥广播出去,我拿私钥验证公钥(这个仅仅是用来理解公钥和私钥,到此为止啊)。

OK,接下来建议你备好垃圾桶,可能会感到恶心或者不适。

让我们从基本知识开始(对于知道这个知识的人可能是无聊的,但对于那些不了解的人是必须的):ECDSA只使用整数数学,没有浮点数(这意味着可能的值是1,2,3等等,但不是1.5,2.5等),而且数字的范围受到签名中使用多少比特的限制(更多比特意味着更大的数字,更高的安全性,因为猜测变得更难(在这个等式中使用的关键数字)。计算机使用“位”来表示数据,一位是二进制符号(0和1)中的“数字”,而8位代表一个字节。每增加一位,可以表示的最大数量加倍,4位可以表示0到15(总共16个可能的值),5位可以表示32位数值,6位,您可以表示64个值等。一个字节(8位)可以表示256个值,32位可以表示4294967296个值(4千兆)。通常ECDSA将使用总共160位,嗯哼,一个49位大的数字.....

你需要知道的另一个数学结构是模数,可以通过说它是整数的其余部分来简化模数。例如,xmod10意味着x除以10的其余部分,它将始终是0和9之间的数字,所以142mod10例如给出2。另一个例子是xmod2,其中偶数和0分别为0和1。

ECDSA与消息的SHA1加密散列一起使用来签名(文件)。哈希是另一个数学方程式,适用于每个数据字节,这将给一个数据唯一的数字。例如,所有字节的值的总和可以被认为是非常low的散列函数。所以如果消息(文件)有任何变化,那么哈希将是完全不同的。在SHA1哈希算法的情况下,它总是20个字节(160位)。这对于验证文件没有被修改或损坏是非常有用的,对于任何大小的文件,你都会得到20字节的哈希值,你可以轻松地重新计算哈希值以确保匹配。ECDSA所标记的实际上就是散列,所以如果数据发生变化,散列会发生变化,而且签名不再有效。

为了理解,我们来一个例子。我们将使用最简单的(和最low的)散列函数,其中我们将所有数据的总和

安阳人工智能公司

作为结果的模数10。

首先,你需要明白一点,世间万物将被用一个数字来表示。一个文本文件是一系列的字节,正如我们前面所解释的,它代表了8位,这意味着它可以表示一个介于0和255之间的数字。所以,如果我们将每个字节作为一个数字并添加文件的每个字节,那么我们结果为10的模数,我们将以0到9之间的数字作为结果散列。数据相同,我们将总是得到相同的哈希值,如果更改了文件中的一个字节,结果可能会不同。当然,你也会明白,为了获得相同的散列值,改变文件将是非常容易的,因为只有10种可能性(0到9),那么就有十分之一的机会获得相同的散列值通过改变文件的内容。

这就是SHA1起作用的地方,SHA1算法比我们简单的“模数10”散列函数复杂得多,它将给出非常大的数字(160位,所以是一个十进制的49位数),它的特殊性使得我们如果从文件中修改了一位数据,结果就会彻底改变。

这使得SHA1成为一个非常好的哈希算法,这种算法是不可预知的,这是非常安全的,并且几乎不可能得到“冲突”(当两个不同的文件具有相同的哈希),并且不可能伪造数据来获得特定的哈希,如果你OK的话,不要听我逼逼了,建议你参加最强大脑。

那么,它是如何工作的呢?ECDSA是基于下面的一个方程等式:

y^2=(x^3+a*x+b)modp

你首先需要注意的是有一个模(mod),并且'y'是平方的(不要忘记这是图上曲线的方程)。这意味着对于任何x坐标(不要忘记,我们只使用整数),您将有两个y值,并且曲线在X轴上是对称的。该模是一个素数,并确保所有的值在160位的范围内,它允许使用“modularsquareroot”和“modularmultiplicativeinverse”

的数学,使计算的东西更容易。由于我们有一个模(p),这意味着y^2的可能值在0和p-1之间,这之间便是所有可能的值。因为,ECDSA规定只能是整数,只有那些值较小的子集才能构成一个“完美平方”(两个整数的平方值),这给了N个可能的点,其中N<p(N是数字0和p之间的完美平方)。到目前为止,你确定还能跟着我的思路么?哈哈,不着急,刚刚开始。。。)

由于每个x将产生两个点(y^2的平方根的正值和负值),这意味着有N/2个可能的“x”坐标是有效的,并在曲线上给出一个点。因为整数计算和模数的限制,所以符合这些条件的点在椭圆曲线上是有限的。

总结一下,然后再继续。ECDSA方程为我们提供了一个有限数量的有效点的曲线(N),因为Y轴受模量(p)的约束,并且需要是在X轴上具有对称性的完美平方(y^2)。我们总共有N/2个可能的,有效的x坐标,不要忘记N<p。

关于椭圆曲线你需要知道的另一件事是“点加法”的概念。它被定义为增加一个点P到另一个点Q将导致一个点S,使得如果你绘制一条线从P到Q,它将与第三个点R上的曲线相交,这是S的负值(记住该曲线在X轴上是对称的)。在这种情况下,我们定义了R=-S来表示R在X轴上的对称点。看上面的图来理解。

所以你可以看到一个形式为y^2=x^3+ax+b(其中a=-4和b=0)的曲线,它在X轴上是对称的,其中P+Q是对称点R点是从P到Q的直线的第三个交点。

同样的,如果你做P+P,它将是R的对称点,它是与点P相切的线的交点。P+P+P是所得点之间的相加点由于P+P+P可以写成(P+P)+P,这就定义了“点乘法”,其中k*P是点P到点K的相加点。看看上面的两个图像点乘法的例子。

在这里,你可以看到两条椭圆曲线和一条从中画出切线的点P,它与曲线相交于第三点,其对称点是2P,然后从那里你从2P和P画出一条直线,会与曲线相交,对称点为3P。等等...你可以继续做点乘法。现在是否明白了为什么在进行加法时需要取R的对称点,因为相同点的多次加法总会给出相同的直线和相同的三个交点。

点乘法的一个特殊性是,如果你有一个点R=k*P,那么你知道R并且知道P,但是没有办法找出'k'的值是什么。由于没有点减法或点除法,所以不能只求解k=R/P。另外,由于你可能做了数百万次的增加,你只能在曲线上的另一个点上,你不知道你是怎么到达的。你不能扭转这个操作,而且你找不到与你的点P相乘的值“k”,给你的结果点R.

即使你知道原始点和终点也不能找到被乘数的东西是ECDSA算法背后安全的基础,这个原理被称为“陷阱门函数“。

上面是对ECDSA的铺垫,接下来让我们认识一下ECDSA签名算法的庐山真面目。

对于ECDSA,首先需要知道曲线参数,参数是a,b,p,N和G.您已经知道a和b是曲线函数的参数(y^2=x^3+ax+b),即'p'是质量模数,'N'是曲线的点数,但也有'G'是ECDSA所需要的,它代表一个'参考点'或者你可以理解为一个起点。参考点可以是曲线上的任何点。

曲线上的参数是非常重要的,不知道它们,你显然不能签名或验证签名。是的,验证签名不仅仅是知道公钥,还需要知道公钥的派生参数。NIST(美国国家标准技术研究院)和SECG(高效密码学标准组织)提供已知安全和高效的预制和标准化曲线参数。

所以首先,你将拥有一个私钥和一个公钥。私钥是一个随机数(也是160位),并且公钥是由G的点乘所生成的曲线上的一个点与私钥。我们把'dA'作为私钥(随机数)和'Qa'作为公钥(一个点),所以我们有:Qa=dA*G(其中G是曲线参数中的参考点)。

那么你如何签署一个文件/消息?

首先,你需要知道签名是40个字节,并且用两个20字节的值来表示,第一个被称为R,第二个被称为S..所以这个对(R,S)一起是你的ECDSA签名..现在这里是如何创建这两个值,以签署一个文件..首先你必须生成一个随机值'k'(20个),并使用点乘法来计算点P=k*G。那个点的x值将代表'R'。由于曲线P上的点由其坐标(x,y)表示(每个坐标长度为20个字节),因此只需要签名的“x”值(20个字节),该值将被称为“R”。现在你需要的是“S”值。

为了计算S,你必须做一个消息的SHA1哈希值,这会给你一个20字节的值,你会认为它是一个非常大的整数,我们称它为'z'。现在你可以用下面的公式计算S:

S=k^-1(z+dA*R)modp

这里注意到k^-1是k的“模乘法逆”,它基本上是k的倒数,但由于我们正在处理整数,所以这是不可能的,所以它是一个数字,使得(k^-1*k)modp等于1.再次提醒,k是用于生成R的随机数,z是要签名的消息的哈希,dA是私钥,R是k的x坐标*G(其中G是曲线参数的原点)。

现在你已经签名了,你想验证一下,它也很简单,你只需要公钥(当然是曲线参数)就可以做到这一点。你用这个公式来计算一个点P:

P=S^-1*z*G+S^-1*R*Qa

如果点P的x坐标等于R,表示签名有效,否则不是。

很简单,是吧?现在让我们看看为什么..这将需要一些数学来验证:

我们有:

P=S^-1*z*G+S^-1

外国人

*R*Qa

但是Qa=dA*G,所以:

P=S^-1*z*G+S^-1*R*dA*G=S^-1(z+dA*R)*G

但是P的x坐标必须与R相匹配,而R是k*G的x坐标,这意味着:

k*G=S^-1(z+dA*R)*G

我们可以通过删除G来简化:

k=S^-1(z+dA*R)

通过反转K和S,我们得到:

S=k^-1(z+dA*R)

这就是用来生成签名的公式。所以它是匹配的,这就是为什么你可以用上面第一个方程验证签名的原因。

你可以注意到,为了计算S,您需要'k'(随机数)和'dA'(私钥),但只需要R和Qa(公钥)来验证签名。由于R=k*G和Qa=dA*G,并且由于ECDSA点乘法中的陷阱门函数(在步骤9中说明),所以我们不能通过知道Qa和R来计算dA或k,这使得ECDSA算法是安全的,找不到私钥,没有办法在不知道私钥的情况下伪造签名。

所以你还记得产生一个签名所需的等式吧。R=k*G和S=k^-1(z+dA*R)模p这个等式的强度是事实上你有一个等式未知数(k和dA),所以无法确定其中之一。

然而,算法的安全性是基于其实现的,确保“k”是随机生成的,并且没有办法让某人可以猜测,计算或使用计时攻击或任何其他类型的攻击为了找到随机值'k'。但索尼在实现上犯了一个巨大的错误,他们在每个地方都使用相同的“k”值,这意味着如果你有两个相同的k,那么它们将具有相同的R值,这意味着您可以使用两个文件的两个S签名(分别为哈希z和z'以及签名S和S')来计算k:

S–S’=k^-1(z+dA*R)–k^-1(z’+da*R)=k^-1(z+da*R–z’-dA*R)=k^-1(z–z’)

So:k=(z–z’)/(S–S’)

一旦你知道了k,那么S的方程就变成了一个方程,其中有一个未知数,然后很容易解析为dA:

dA=(S*k-z)/R

一旦你知道了私钥dA,你现在就可以签名你的文件,PS3将把它识别为索尼签署的真实文件。这就是为什么确保用于生成签名的随机数实际上是“密码随机”的原因。这也是为什么不可能拥有高于3.56的自定义固件的原因,仅仅是因为自从3.56版本以来,索尼已经固定了他们的ECDSA算法实现并且使用了现在不可能找到私钥的新密钥。

这个问题的另一个例子是,当一些比特币客户端使用非密码随机数生成器(在某些浏览器和某些Android客户端上)导致他们使用相同的“k”值签名交易时,恶意人员能够找到他们的比特币钱包的私钥和窃取他们的资金。

这显示了每次签名时使用真正的随机数字的重要性,因为如果(R,S)签名对的R值在两个不同的签名上相同,您将公开私钥。

关于这个的一个笑话在xkcd漫画221(见上图)中显示,这成为了解释这个问题的前景。每当这种算法的执行错误发生时,图像经常被重新使用。

ECDSA算法是非常安全的,不可能找到私钥......只要实现正确完成就行了。如果有办法找到私钥,那么每个计算机,网站,系统的安全性可能会受到影响,因为很多系统都依靠ECDSA来保证安全性,这是不可能的。

但愿这能够帮助大家初步理解ECDSA算法,也希望对大家有所帮助。

原文链接:Understanding-how-ECDSA-protects-your-data

比特币的价值是由什么决定的比特币具有价值是因为它作为货币形式的一种是有用的。比特币具有货币的数学特性(持久性,可携带性,可互换性,稀缺性,可分割性和易识别性)而非依赖于物理特性(比如黄金和白银)或中央权力机构的信任(比如法定货币)。简而言之,比特币是由数学支持的。有了这些特性,一种货币形式要具有价值所需要的就是信任和使用。对比特币而言,这可以从它日益增长的用户,商家和初创企业基数上得到体现。同所有货币一样,比特币的价值直接来自于愿意接受它作为支付方式的人们,这也是唯一的来源。

比特币的价格由供需决定。当对比特币的需求增加,比特币价格就上涨;需求减少,价格就下跌。目前只有很少的比特币在流通,新的比特币以一个可预见的逐步下降的速率发行,这表示需求必须遵循这一通胀水平才能保持价格的稳定。和它可能会成为的市场规模相比,比特币目前仍然是一个相对较小的市场,无需大量资金就能促使市场价格上下波动,因此,比特币的价格仍然很不稳定。

资料来源:https://m.tuoluocaijing.cn/blockchain/4559.html

如果你还想了解更多这方面的信息,记得收藏关注本站。

上一篇: 比特币资金密码是什么意思比特币资金密码是什么意思啊
下一篇: 比特币资金来源比特币资金来源包括
相关推荐

猜你喜欢