普及区块链技术

来源:互联网 发布:手机网络代理ip 编辑:程序博客网 时间:2024/05/17 20:34

超火的区块链技术究竟是什么?

简单的说,区块链是比特币的底层加密协议,比特币诞生的时候,并没有区块链这个名词,然后业界从比特币中提取了技术架构和体系,将其称之为区块链技术,它有去中心化、不可伪造等诸多优点,可以应用于各行各业,在介绍区块链之前,先看看比特币的原理:

一. 背景知识:比特币原理

传统的网站或网络服务都有集中的服务器,所有的内容和用户信息都储存在服务器中,一旦服务器挂掉或被黑客攻击,网站就无法提供服务,内容还有被删除、篡改的风险。

比特币是一种去中心化的数字货币,没有集中式的服务器,它采取了一种看起来比较“傻”的做法:使用比特币需要下载比特币客户端,比特币客户端会把比特币诞生以来世界上所有的交易记录下载到本地,有了交易记录,就能计算出每个比特币账号的余额了,下面是具体的细节:

1.公钥和私钥的概念

在非对称加密中,分成公开密钥和私有密钥,公开密钥是公开的,可以发布在网络上,私有密钥只有持有人自己拥有。如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。

公钥加密传输可以防止信息窃取,私钥加密可以用作身份认证。比特币主要用了椭圆曲线签名算法,这是一种非对称加密算法:

1、只要知道私钥,可以算出相应的公钥
2、你用私钥签名过的东西,可以用公钥算一下是不是你签的
比特币的账户就是一段公钥,可以公开,私钥只有比特币账户持有者才有,用于签名和校验身份。

2. 比特币的核心:交易记录

如果我要向另一个比特币账户转账,交易记录会是如下的样子,把数据结构用易懂的中文解释如下:

FROM(谁发送的,包括两部分)Previous tx: 我要花的这笔钱的来源账单的id, 也就是说,你花的任何一笔钱都应该有人转给你过,需要出示那个账单的idscriptSig: 我对这笔交易的签名,就是把单子用我的私钥做hash,只有你能做这个hashTO(谁接受,包括两部分)Value: 要发多少scriptPubKey: 对方的公钥,比特币账户就是一段公钥

每一个比特币客户端都是一台“服务器”,当你启动客户端的时候,会接收到周围的有公网IP的客户端地址,就是“服务器”列表,这个列表也不断的刷新。

我的比特币客户端会把这个账单发给其他的比特币客户端(也是服务器),所有收到这个单子的客户端会效验这个单子对不对,比如会效验签名,是不是我发的,是否有那么多钱(根据历史交易可以推算出我有多少钱可以花)如果这个交易大家算过没问题了,就算转账成功了。

现在对方已经接受了比特币,但是要想花的话,他得有那个地址(公钥)对应的私钥。于是他就能填下一个单子的 FROM头部,Previous tx就是刚才这笔交易的序号,scriptSig 填用他私钥签名过的 hash,如此往复

3. 挖矿

区块是很多交易数据的集合,有效的区块获得全网络的共识认可后会被追加到主区块链中。区块链是有包含交易信息的区块从后向前有序链接起来的数据结构。

在比特币领域中,存在“矿工”这样一个概念。矿工们需要竞争完成一种基于加密哈希算法的数学难题,答案存在于新的区块中,谁优先解出这个答案,谁就能在网络中广播声明自己已经获得这个区块,其他的旷工就会意识到在这局里已经输了,就会立马开始下一个区块的挖掘工作。每个矿工在他的区块中都有一笔特殊的交易,他们会将新生成的比特币(当前每块25个比特币,2016年也就是今年减半)作为报酬,然后支付到自己的比特币地址中。一旦这个区块被认可被验证,他的这笔报酬就可以变为可用可消费的状态。

二. 比特币的特点

1. 去中心化

从前面的流程中可以看出,比特币的所有账单存储在每个客户端当中,客户端同时也是服务端,每个节点都可以参与交易的校验,解决了集中式服务器被攻击和篡改的风险

2. 不可伪造

账簿在某个人或某几人手上,造假的可能性就非常高,但每个人手里都有一本账簿,除非你说服了整个网络里超过 51% 的人都更改某一笔账目,否则你的篡改都是无效的,这也是大众玩家集体维护和监督的优越性。

3. 不可修改

比特币的系统是开源的,整个系统都必须是公开透明的,因此某笔交易被全网广播以后,达到6个确认以上就成功记录在案了,且不可逆转不可撤销。所以你打出去的钱,即使后来发现地址打错了,你想要重新重新撤回来,是不可行的。

理解了比特币,就理解了区块链,它是一种以密码学方法为基础的分布式数据库,具有去中心化、不可伪造、不可撤销、内容公开的特点。

转载自
作者:耗子吴
链接:http://www.jianshu.com/p/83a68c87d61e
來源:简书

原创粉丝点击