很多朋友对于比特币算法原理及应用论文和比特币算法原理及应用论文题目不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
本文目录
比特币算法原理区块链技术的意义区块链技术的原理比特币是啥,它是如何产生的收益的呢高中生如何理解比特币加密算法比特币算法原理比特币算法主要有两种,分别是椭圆曲线数字签名算法和SHA256哈希算法。
椭圆曲线数字签名算法主要运用在比特币公钥和私钥的生成过程中,该算法是构成比特币系统的基石。SHA-256哈希算法主要是运用在比特币的工作量证明机制中。
比特币产生的原理是经过复杂的运算法产生的特解,挖矿就是寻找特解的过程。不过比特币的总数量只有2100万个,而且随着比特币不断被挖掘,越往后产生比特币的难度会增加,可能获得比特币的成本要比比特币本身的价格高。
比特币的区块由区块头及该区块所包含的交易列表组成,区块头的大小为80字节,由4字节的版本号、32字节的上一个区块的散列值、32字节的MerkleRootHash、4字节的时间戳(当前时间)、4字节的当前难度值、4字节的随机数组成。拥有80字节固定长度的区块头,就是用于比特币工作量证明的输入字符串。不停的变更区块头中的随机数即nonce的数值,并对每次变更后的的区块头做双重SHA256运算,将结果值与当前网络的目标值做对比,如果小于目标值,则解题成功,工作量证明完成。
比特币的本质其实是一堆复杂算法所生成的一组方程组的特解(该解具有唯一性)。比特币是世界上第一种分布式的虚拟货币,其没有特定的发行中心,比特币的网络由所有用户构成,因为没有中心的存在能够保证了数据的安全性。
区块链技术的意义区块链技术的原理区块链原理要了解透彻就必须从它的诞生与发展来进行系统的了解,从而从多个角度来更清晰的辨别区块链原理。区块链技术(BlockChain)是指通过去中心化的方式集体维护一个可靠数据库的技术方案。该技术方案主要让区块(Block)通过密码学方法相关联起来,每个数据块包含了一定时间内的系统全部数据信息,并且生成数字签名以验证信息的有效性并链接到下一个数据块形成一条主链(Chain)。
区块(Block)是区块链中的一条记录,包含并确认待处理的交易。
挖矿(Mining)指通过计算形成新的区块,是交易的支持者利用自身的计算机硬件为网络做数学计算进行交易确认和提高安全性的过程。以比特币为例:交易支持者(矿工)在电脑上运行比特币软件不断计算软件提供的复杂的密码学问题来保证交易的进行。作为对他们服务的奖励,矿工可以得到他们所确认的交易中包含的手续费,以及新创建的比特币。
对等式网络(Peer-to-PeerNetwork)是指通过允许单个节点与其他节点直接交互,从而实现整个系统像有组织的集体一样运作的系统。以比特币为例:网络以这样一种方式构建——每个用户都在传播其他用户的交易。而且重要的是,不需要银行或其他金融机构作为第三方。
哈希散列(Hash)是密码学里的经典技术,把任意长度的输入通过哈西算法,变换成固定长度的由字母和数字组成的输出。
数字签名(DigitalSignature)是一个让人可以证明所有权的数学机制。
私钥(PrivateKey)是一个证明你有权从一个特定的钱包消费电子货币的保密数据块,是通过数字签名来实现的。
双重消费指用户试图非法将电子货币同时支付给两个不同的收款人,是电子货币的最大风险之一。
?
区块链的起源:一种支持比特币运行的底层技术
区块链的概念首次在2008年末由中本聪(SatoshiNakamoto)发表在比特币论坛中的论文《Bitcoin:APeer-to-PeerElectronicCashSystem》提出。论文中区块链技术是构建比特币数据结构与交易信息加密传输的基础技术,该技术实现了比特币的挖矿与交易。中本聪认为:第一,借助第三方机构来处理信息的模式拥有点与点之间缺乏信任的内生弱点,商家为了提防自己的客户,会向客户索取完全不必要的信息,但仍然不能避免一定的欺诈行为;第二,中介机构的存在,增加了交易成本,限制了实际可行的最小交易规模;第三,数字签名本身能够解决电子货币身份问题,如果还需要第三方支持才能防止双重消费,则系统将失去价值。基于以上三点现存的问题,中本聪在区块链技术的基础上,创建了比特币。
2009年1月3日,中本聪制作了比特币世界的第一个区块“创世区块”并挖出了第一批比特币50个。
2010年5月21日,佛罗里达程序员用1万比特币购买了价值25美元的披萨优惠券,随着这笔交易诞生了比特币第一个公允汇率。
2010年7月,第一个比特币平台成立,新用户暴增,价格暴涨。
2011年2月,比特币价格首次达到1美元,此后与英镑、巴西雷亚尔、波兰兹罗提汇兑交易平台开张。
2012年,瑞波(Ripple)发布,其作为数字货币,利用区块链转移各国外汇。
2013年,比特币暴涨。美国财政部发布了虚拟货币个人管理条例,首次阐明虚拟货币释义。
2014年,以中国为代表的矿机产业链日益成熟,同年,美国IT界认识到了区块链对于数字领域的跨时代创新意义。
2015年,美国纳斯达克证券交易所推出基于区块链的数字分类账技术Linq进行股票的记录交易与发行。
区块链原理从一个个应用案例中就可以了解清晰了,关于区块链原理的应用也是越来越火热,近期,花旗集团、日本三菱日联金融集团、瑞士联合银行和德意志银行等全球大型金融机构,也将应用“区块链”技术,打造快捷、便利、成本低廉的交易作业系统。在金融领域之外,区块链技术也开始应用于保护知识产权、律师公证、网络游戏等有信息透明公开并永久记录需求的领域。
比特币是啥,它是如何产生的收益的呢比特币其实是由p2p批软件产生出来的电子币数据币,它是属于一种网络虚拟资产。所以比特币也叫做比特金,它是由一套密码编码通过复杂算法产生的,这一个规则是不受任何人或者组织干扰的。任何人也可以去下载并且运行或者是参与制造比特币,比特币有一个最大的特点就是它是不可能被伪造。可以通过投入时间和金钱在比特币市场上赚钱。
以特币其实不是一种货币,它是不经过任何的货币银行发布的,比特币是在特定算法的大量基础上面产生的,它有一个特点是不能够人为来操控币值。因为比特币在交易的过程中是不受第三方机构的制约的,所以它也称为是区块链。那么想要得到比特币的话,就要运转一个特别的软件,叫做挖矿工,这个挖矿工盐城一起来保持这个区域链的运行。这个运行的过程中,比特币也会产生一些新的货币。这个比特币其实是可以赚钱的,因为在国内外是由很多比特币交易的机构,他们接受法定的货币兑换成比特币的。如果想要在这里获得一些收益的话,只有两条路,一是付出时间,二是付出金钱。但是后者的是要前期投入是有一定的风险的。
付出时间主要是在网站上面完成一些小任务,而且可以每隔几分钟去访问这些网站,那么就会获取少量的比特币。所以这个是有时间的话是可以去这样做的。如果想要赚多一点的话,那应该就是前期投入金钱,比特币也有专门的赌场的,所以这个可以靠运气去赚得更多一点。
高中生如何理解比特币加密算法加密算法是数字货币的基石,比特币的公钥体系采用椭圆曲线算法来保证交易的安全性。这是因为要攻破椭圆曲线加密就要面对离散对数难题,目前为止还没有找到在多项式时间内解决的办法,在算法所用的空间足够大的情况下,被认为是安全的。本文不涉及高深的数学理论,希望高中生都能看懂。
密码学具有久远的历史,几乎人人都可以构造出加解密的方法,
比如说简单地循环移位。古老或简单的方法需要保密加密算法和秘钥。但是从历史上长期的攻防斗争来看,基于加密方式的保密并不可靠,同时,长期以来,秘钥的传递也是一个很大的问题,往往面临秘钥泄漏或遭遇中间人攻击的风险。上世纪70年代,密码学迎来了突破。RalphC.Merkle在1974年首先提出非对称加密的思想,两年以后,WhitfieldDiffie和WhitfieldDiffie两位学者以单向函数和单向暗门函数为基础提出了具体的思路。随后,大量的研究和算法涌现,其中最为著名的就是RSA算法和一系列的椭圆曲线算法。
无论哪一种算法,都是站在前人的肩膀之上,主要以素数为研究对象的数论的发展,群论和有限域理论为基础。内容加密的秘钥不再需要传递,而是通过运算产生,这样,即使在不安全的网络中进
行通信也是安全的。密文的破解依赖于秘钥的破解,但秘钥的破解面临难题,对于RSA算法,这个难题是大数因式分解,对于椭圆曲线算法,这个难题是类离散对数求解。两者在目前都没有多项式时间内的解决办法,也就是说,当位数增多时,难度差不多时指数级上升的。那么加解密如何在公私钥体系中进行的呢?一句话,通过在一个有限域内的运算进行,这是因为加解密都必须是精确的。一个有限域就是一个具有有限个元素的集合。加密就是在把其中一个元素映射到另一个元素,而解密就是再做一次映射。而有限域的构成与素数的性质有关。
前段时间,黎曼猜想(与素数定理关系密切)被热炒的时候,有一位区块链项目的技术总监说椭圆曲线算法与素数无关,不受黎曼猜想证明的影响,就完全是瞎说了。可见区块链项目内鱼龙混杂,确实需要好好洗洗。
比特币及多数区块链项目采用的公钥体系都是椭圆曲线算法,而非RSA。而介绍椭圆曲线算法之前,了解一下离散对数问题对其安全性的理解很有帮助。
先来看一下费马小定理:
原根定义:
设(a,p)=1(a与p互素),满足
的最下正整数l,叫作a模p的阶,模p阶为(最大值)p-1的整数a叫作模p的原根。
两个定理:
基于此,我们可以看到,{1,2,3,…p-1}就是一个有限域,而且定义运算gi(modp),落在这个有限域内,同时,当i取0~p-2的不同数时,运算结果不同。这和我们在高中学到的求幂基本上是一样的,只不过加了一层求模运算而已。
另一点需要说明的是,g的指数可以不限于0~p-2,其实可以是所有自然数,但是由于
所以,所有的函数值都是在有限域内,而且是连续循环的。
离散对数定义:
设g为模p的原根,(a,p)=1,
我们称i为a(对于模p的原根g)的指数,表示成:
这里ind就是index的前3个字母。
这个定义是不是和log的定义很像?其实这也就是我们高中学到的对数定义的扩展,只不过现在应用到一个有限域上。
但是,这与实数域上的对数计算不同,实数域是一个连续空间,其上的对数计算有公式和规律可循,但往往很难做到精确。我们的加密体系里需要精确,但是在一个有限域上的运算极为困难,当你知道幂值a和对数底g,求其离散对数值i非常困难。
当选择的素数P足够大时,求i在时间上和运算量上变得不可能。因此我们可以说i是不能被计算出来的,也就是说是安全的,不能被破解的。
比特币的椭圆曲线算法具体而言采用的是secp256k1算法。网上关于椭圆曲线算法的介绍很多,这里不做详细阐述,大家只要知道其实它是一个三次曲线(不是一个椭圆函数),定义如下:
那么这里有参数a,b;取值不同,椭圆曲线也就不同,当然x,y这里定义在实数域上,在密码体系里是行不通的,真正采用的时候,x,y要定义在一个有限域上,都是自然数,而且小于一个素数P。那么当这个椭圆曲线定义好后,它反应在坐标系中就是一些离散的点,一点也不像曲线。但是,在设定的有限域上,其各种运算是完备的。也就是说,能够通过加密运算找到对应的点,通过解密运算得到加密前的点。
同时,与前面讲到的离散对数问题一样,我们希望在这个椭圆曲线的离散点阵中找到一个有限的子群,其具有我们前面提到的遍历和循环性质。而我们的所有计算将使用这个子群。这样就建立好了我们需要的一个有限域。那么这里就需要子群的阶(一个素数n)和在子群中的基点G(一个坐标,它通过加法运算可以遍历n阶子群)。
根据上面的描述,我们知道椭圆曲线的定义包含一个五元祖(P,a,b,G,n,h);具体的定义和概念如下:
P:一个大素数,用来定义椭圆曲线的有限域(群)
a,b:椭圆曲线的参数,定义椭圆曲线函数
G:循环子群中的基点,运算的基础
n:循环子群的阶(另一个大素数,<P)
h:子群的相关因子,也即群的阶除以子群的阶的整数部分。
好了,是时候来看一下比特币的椭圆曲线算法是一个怎样的椭圆曲线了。简单地说,就是上述参数取以下值
的椭圆曲线:椭圆曲线定义了加法,其定义是两个点相连,交与图像的第三点的关于x轴的对称点为两个点的和。网上这部分内容已经有很多,这里不就其细节进行阐述。
但细心的同学可能有个疑问,离散对数问题的难题表现在求幂容易,但求其指数非常难,然而,椭圆曲线算法中,没有求幂,只有求乘积。这怎么体现的是离散对数问题呢?
其实,这是一个定义问题,最初椭圆曲线算法定义的时候把这种运算定义为求和,但是,你只要把这种运算定义为求积,整个体系也是没有问题的。而且如果定义为求积,你会发现所有的操作形式上和离散对数问题一致,在有限域的选择的原则上也是一致的。所以,本质上这还是一个离散对数问题。但又不完全是简单的离散对数问题,实际上比一般的离散对数问题要难,因为这里不是简单地求数的离散对数,而是在一个自定义的计算上求类似于离散对数的值。这也是为什么椭圆曲线算法采用比RSA所需要的(一般2048位)少得多的私钥位数(256位)就非常安全了。
关于比特币算法原理及应用论文的内容到此结束,希望对大家有所帮助。