初识比特币与区块链

想知道更多区块链技术知识,请百度【链客区块链技术问答社区】
链客,有问必答!

在这里插入图片描述
第1章 初识比特币与区块链1

  1. 比特币发展简史
    1、2008年全球金融危机,以美国为首的货币超发引起金融危机,这也就是比特币产生的原因和动机。

2008年金融危机,美国政府无限增发货币(因为有记账权)。
区块链是新型支付体系,区块链网络中的每个人都具有记账权,货币不能超发,整个账本完全公开透明,非常公平。
2、2008年10月,中本聪Satoshi Nakamoto发表比特币论文《bitcoin:A peer to peer electronic cash system》,描述了一种被他称为“比特币”的电子货币及其算法;

中本聪的整体思想是开创性的。其中的技术是已经存在的。P2P、分布式存储、Hash算法、非对称加密等。他将这些技术集成化、系统化、实现了一个可供实践的解决方案。
从发表论文以来,中本聪的真实身份长期不为外界所知,维基解密创始人朱利安·阿桑奇(Julian Assange)宣称中本聪是一位密码朋克(Cypherpunk)。另外,有人称“中本聪是一名无政府主义者,他的初衷并不希望数字加密货币被某国政府或中央银行控制,而是希望其成为全球自由流动、不受政府监管和控制的货币。”
3、2009年1月3日,中本聪开发出首个实现了比特币算法的客户端程序并进行了首次“采矿”(mining)。北京时间2009年1月4日 2:15:05 AM(英国时间约2009年1月3日 18:15:05 PM) 比特币的第一个区块,这就是创世区块产生。

中本聪获得了第一批50个比特币。挖矿奖励比特币数并不是固定的,每产生21万个区块奖励就减半。截止到目前每挖到一个区块奖励为12.5个比特币。

在第一个区块中,没有交易记录。而是将《泰晤士报》2009年1月3日的一条新闻永远记录在了其中。

每个区块都有一个固定的编号,创世区块的编号为0,这个编号叫做该区块的高度,该区块后续区块的个数为区块的深度。

2010年,中本聪销声匿迹,将项目移交给比特币社区的核心成员嘉文.安德烈森。中本聪据信持有约一百万个比特币。目前价值约79.3亿。

中本聪是密码朋克(CypherPunk)组织的成员,强调匿名和隐私,不重视物质。密码朋克的成员约1400人,讨论话题:数学、加密、计算机、政治、哲学。成员中包括很多IT精英。wiki创始人阿桑奇,BT下载作者布拉奇.科恩,万维网发明者蒂姆.博纳斯,Facebook创始人肖恩.帕克。
2010年5月22日,美国程序员拉斯勒用10000个比特币购买25美元的Pizza。这是比特币第一次有了价值,引起轰动。每年5月22日被比特币爱好者成为:比特币披萨日。

比特币不是任何银行或金融机构发行的,使用比特币不需要绑定银行卡,不需要任何身份证明,不需要手机短信认证。只要能上网,只要安装了比特币客户端软件(钱包),就可以转账、收款,甚至是挖矿。比特币的生产就是靠挖矿。

1、挖矿

挖矿是重复计算区块头的hash,不断修改随机数nonce,直到与难度目标值匹配。
挖矿就是在争取记账权,对一段时间内比特币网络中的交易进行确认,并记录在区块链上的过程。
挖矿的人是矿工,挖矿过程就是争取记账的过程;矿工是记账员,区块链是账本,每个区块就是整个账本中的每一个账页。
挖矿成功,比特币系统会新产生一笔比特币,目前是12.5BTC,将次奖励给挖矿成功的矿工。
挖矿成功,矿工争取到了区块的记账权,这10分钟内被打包的所有未确认的交易的手续费都会奖励给该矿工。

2、比特币钱包

“钱包”一词在比特币中有多重含义。

广义上,钱包是一个应用程序,为用户提供交互界面。 钱包控制用户访问权限、管理比特币地址及其密钥、跟踪余额、创建交易和签名交易。
狭义上,即从程序员的角度来看,“钱包”是指用于存储和管理用户密钥的数据结构。
钱包是私钥的容器,一般是通过结构化文件或简单数据库来实现。
一个常见误解是,比特币钱包里含有比特币。 事实上,钱包里只含有钥匙。 “钱币”被记录在比特币网络的区块链中。 用户通过钱包中的密钥签名交易,从而来控制网络上的钱币。 在某种意义上,比特币钱包是密钥链。

每个比特币钱包都是一个节点。
全节点
拥有完整区块链账本的节点叫做全节点,负责比特币转账交易的广播和验证。
同步整个区块链并对交易做验证,同时中继区块的在网络上的传播
轻节点
不保存所有区块,依赖全节点做交易验证
挖矿节点
带挖矿功能的全节点。
转账交易发生后由所有节点共同广播至全网,挖矿节点验证该交易正确后会记录至区块链账本。
因为不需要全节点也可以进行比特币转账,所以比特币全节点个数只占全部节点数的一小部分。

挖矿三部曲:记录、打包、挂链

1、区块链是比特币的底层技术,比特币是区块链的第一个应用。

2、比特币是钱的话,区块链就是账本,是记录比特币转账记录的。但是区块链不单单是比特币独有,除了数字货币外,区块链将在其他应用领域有更多用武之地。

3、中本聪在其比特币白皮书里面其实并没有提到过区块链(blockchain)这个名词,但是提到了两个概念block和chain。直到2014年金融机构开始重视比特币的底层支撑技术,于是区块链这个概念才被正式确认。

4、区块链并不是新技术,而是一系列技术的集成。包括非对称加密技术、时间戳、共识机制等。几乎所有的技术在比特币出现之前就已经存在了,但是在比特币之前,这些技术都没有产生如此巨大的影响力,所以说比特币是区块链技术的第一个成功的应用。要想学习区块链技术,比特币是绕不开的东西。然而区块链,却并不仅仅是比特币。

区块链的本质是什么?一句话,它是是一个多方参与、共同维护、持续增长的分布式数据库,也称为分布式共享账本。

首先,区块链的主要作用是储存信息。任何需要保存的信息,都可以写入区块链,也可以从里面读取,所以它是数据库。

其次,任何人都可以架设服务器,加入区块链网络,成为一个节点。区块链的世界里面,没有中心节点,每个节点都是平等的,都保存着整个数据库。你可以向任何一个节点,写入/读取数据,因为所有节点最后都会同步,保证区块链一致。

最后,所有节点共同维护一条不断增长的链,只能添加记录,记录不可删除、不可篡改;

区块链的最大特点

区块链没有管理员,它是彻底无中心的。

其他的数据库都有管理员,但是区块链没有。如果有人想对区块链添加审核,也实现不了,因为它的设计目标就是防止出现居于中心地位的管理当局。

正是因为无法管理,区块链才能做到无法被控制。否则一旦大公司大集团控制了管理权,他们就会控制整个平台,其他使用者就都必须听命于他们了。

但是,没有了管理员,人人都可以往里面写入数据,怎么才能保证数据是可信的呢?需要了解区块的设计思想。

这里,你需要理解什么叫 Hash,这是理解区块链必需的。

hash是一种算法, 是将文本转换成具有相同长度的,不可逆的杂凑字符串散列(很多资料也叫指纹或叫消息摘要Message Digest)。本身词义"切碎,剁碎"。

hash算法的特点:

能将任意长度的二进制值(明文)映射为较短的固定长度二进制值(Hash值)
不同的明文很难映射为相同的Hash值
hash算法最大的特点就是不可逆。

安全散列算法SHA:

安全散列算法SHA(Secure Hash Algorithm)是美国国家安全局 (NSA) 设计,美国国家标准与技术研究院(NIST) 发布的一系列密码散列函数,包括 SHA-1、SHA-224、SHA-256、SHA-384 和 SHA-512 等变体。主要适用于数字签名标准(DigitalSignature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。SHA-1已经不是那么安全了,google和微软都已经弃用这个加密算法。为此,我们使用热门的比特币使用过的算法SHA-256作为实例。其它SHA算法,也可以按照这种模式进行使用。

采矿和难度系数
由于必须保证节点之间的同步,所以新区块的添加速度不能太快。试想一下,你刚刚同步了一个区块,准备基于它生成下一个区块,但这时别的节点又有新区块生成,你不得不放弃做了一半的计算,再次去同步。因为每个区块的后面,只能跟着一个区块,你永远只能在最新区块的后面,生成下一个区块。所以,你别无选择,一听到信号,就必须立刻同步。

所以,区块链的发明者中本聪(这是假名,真实身份至今未知)故意让添加新区块,变得很困难。他的设计是,平均每10分钟,全网才能生成一个新区块,一小时也就六个。

这种产出速度不是通过命令达成的,而是故意设置了海量的计算。也就是说,只有通过极其大量的计算,才能得到当前区块的有效 Hash,从而把新区块添加到区块链。由于计算量太大,所以快不起来。

这个过程就叫做采矿(mining),因为计算有效 Hash 的难度,好比在全世界的沙子里面,找到一粒符合条件的沙子。计算 Hash 的机器就叫做矿机,操作矿机的人就叫做矿工。

难度系数

你可能会有一个疑问,人们都说采矿很难,可是采矿不就是用计算机算出一个 Hash 吗,这正是计算机的强项啊,怎么会变得很难,迟迟算不出来呢?

原来不是任意一个 Hash 都可以,只有满足条件的 Hash 才会被区块链接受。这个条件特别苛刻,使得绝大部分 Hash 都不满足要求,必须重算。

原来,区块头包含一个难度系数(difficulty),这个值决定了计算 Hash 的难度。举例来说,第516532个区块的难度系数是 3,511,060,552,899.72。

区块链协议规定,使用一个常量除以难度系数,可以得到目标值(target)。显然,难度系数越大,目标值就越小。

Hash 的有效性跟目标值密切相关,只有小于目标值的 Hash 才是有效的,否则 Hash 无效,必须重算。由于目标值非常小,Hash 小于该值的机会极其渺茫,可能计算10亿次,才算中一次。这就是采矿如此之慢的根本原因。

区块头里面还有一个 Nonce 值,记录了 Hash 重算的次数。第 516532 个区块的 Nonce 值是2099127697,即计算了 20.99 亿次,才得到了一个有效的 Hash,该区块才能加入区块链。

难度系数的调整:

就算采矿很难,但也没法保证,正好十分钟产出一个区块,有时一分钟就算出来了,有时几个小时可能也没结果。总体来看,随着硬件设备的提升,以及矿机的数量增长,计算速度一定会越来越快。

为了将产出速率恒定在十分钟,中本聪还设计了难度系数的动态调节机制。他规定,难度系数每两周(2016个区块)调整一次。如果这两周里面,区块的平均生成速度是9分钟,就意味着比法定速度快了10%,因此难度系数就要调高10%;如果平均生成速度是11分钟,就意味着比法定速度慢了10%,因此难度系数就要调低10%。

难度系数越调越高(目标值越来越小),导致了采矿越来越难。

实际上区块链作为一种新兴技术,价值固然存在,但也显现出了一些劣势。

1、效率低。数据写入区块链,最少要等待十分钟,所有节点都同步数据,则需要更多的时间。拿比特币举例,当前产生的交易有效性受网络传输影响,比特币交易每次的确实时间大约10分钟,6次确认的话需要一个小时。因此区块链的交易数据是有延迟性的。

2、存储数据量少。每个区块只有1至8M。保存数据量有限,如果扩容,则数据同步太费劲。

3、能耗,区块的生成需要矿工进行无数无意义的计算,这是非常耗费能源的。英国一家电力信息网POWER-COMPARE提供的预测数据显示。

4、区块链的去中心、自治化的特点淡化了国家监管的概念。在监管无法触达的情况下一些,市场的逐利等特性会导致区块链技术应用于非法领域,为黑色产业提供了庇护所。

数字货币丢失
区块链技术实现了第一次将资产的所有权、控制权完全交给我们每个人自己受伤,但完整的权利,对应了自己保管资产安全的完整责任。以太坊钱包客户端geth因运行不安全,出现过以太币被盗;除人为盗币风险,用户自身钱包使用不当造成的损失也常有发生。

6、去中心化应用DApp存在缺点

更新或者修改bug困难,网络中的每个节点都需要更新其节点软件;
验证用户身份变得困难,没有中心化的机构来验证用户身份KYC;
创建去中心化应用困难:不能仅仅实现一个想法,然后不断添加功能,使其规模扩大。而必须从最开始就自行创建并扩大规模,否则分布式记账存储、多节点安全性(51%攻击)就无从谈起;
DApp不能依赖中心化应用API,但是可以依赖其他DApp。而目前DApp生态圈太小,所以创建起来困难;
DApp无法做到完全去中心化。
##6. 总结

区块链作为无人管理的分布式数据库,从2009年开始已经运行了8年,没有出现大的问题。这证明它是可行的。

但是,为了保证数据的可靠性,区块链也有自己的代价。一是效率,数据写入区块链,最少要等待十分钟,所有节点都同步数据,则需要更多的时间;二是能耗,区块的生成需要矿工进行无数无意义的计算,这是非常耗费能源的。

区块链按准入机制分三类:公有链、联盟链、私有链

1、公有链:公开透明,开放生态的交易网络。自由加入和退出。世界上任何个体或团队都可以在公有链发送交易,且交易能获得该区块链有效确认。每个人都可以竞争记账权。公有链可以为行业链和私有链提供全球交易网络。典型代表:比特币、以太坊。

2、联盟链:半封闭生态的交易网络,存在对等的不信任节点。通说授权加入和退出。是某个群里或组织内部使用的区块链,需要预先指定几个节点为记账人。每个区块的生成由所有预选记账人共同决定,其他节点可以交易,但是没有记账权。如房地产行业A、B、C、D公司。3、私有链:完全封闭生态的存储网络,仅仅采用区块链技术进行记账,但是所有节点都是可信任的。记账权并不公开,且只记录内部的交易,由公司或个人独享。如某大型集团内部多数公司。

猜你喜欢

转载自blog.csdn.net/weixin_44172023/article/details/89013827