001-Bitcoin比特币与BlockChain区块链技术

一、比特币历史

2008 年 10 月 31 日,一个网名叫中本聪(英文翻译过来滴)的家伙发布比特币唯一的白皮书:《Bitcoin:A Peer-to-PeerElectronic Cash System/比特币:一种点对点的电子现金系统》,拉开了比特币的序幕。
2009 年 1 月 3 日,中本聪在位于芬兰赫尔辛基的一个小型服务器上挖出了第一批 50 个比特币,并记录下当天泰晤士报的头版标题:“ The Times 03/Jan/2009 Chancellor on brink ofsecond bailout for banks ”。
2010 年 5 月 21 日,第一次比特币交易:佛罗里达程序员 Laszlo Hanyecz 用 1 万 BTC 购买了价值 25 美元的披萨优惠券。这是比特币的首个兑换汇率:1: 0.0025 美金。
2010 年 7 月 17 日,第一个比特币平台成立。
2011 年,开始出现基于显卡的挖矿设备。2011 年底,汇率约为 2 美元。
2012 年 9 月 27 日,比特币基金创立,此时比特币价格为 12.46 美元。
2012 年 11 月 28 日,比特币产量第一次减半,即每个新区块新币奖励为25个。
2013 年 3 月,1/3 的专业矿工已经采用专用 ASIC 矿机进行挖矿。
2013年 4 月 10 日,BTC (比特币)创下历史最高价,266 美元。
2013 年 6 月 27日,德国会议作出决定:持有比特币一年以上将予以免税,被业内认为此举变相认可了比特币的法律地位,此时比特币价格为 102.24 美元。
2013 年 10 月,世界第一台可以兑换比特币的 ATM 在加拿大上线。
2013 年 11 月 29 日,比特币的交易价格创下 1242 美元的历史新高,而同时黄金价格为一盎司 1241.98 美元,比特币价格首度超过黄金。
2014 年 2 月,全球最大比特币交易平台 Mt.Gox 宣告因 85 万个比特币被盗而破产并关闭,造成大量投资者的损失,比特币价格一度暴跌。
2014 年 3 月,中国第一台可以兑换比特币的 ATM 在香港上线。
2014 年 6 月,美国加州通过 AB-129 法案,允许比特币等数字货币在加州进行流通。
2015 年 6 月,纽约成为美国第一个正式进行数字货币监管的州。
2015 年 10 月,欧盟法院裁定比特币交易免征增值税。
2016 年 1 月,中国人民银行在京召开了数字货币研讨会,会后发布公告宣称或推出数字货币。
2016 年 7 月 9 日,比特币产量第二次减半,即每个新区块新币奖励为12.5个。
2017年2月4日,比特币价格为1008美元/枚。
View Code

查看比特币:https://blockchain.info/zh-cn实时价格

二、区块链及比特币的关系

  中本聪开发了一个开源的区块链技术的系统,根据系统规则,他通过解数学难题的方式创建了第一个区块,并拥有这个区块的记账权,这个区块叫创世区块,做为创建报酬,他获得50个比特币及区块中所含交易的交易费奖励,任何人都可以接入这个区块链系统,大家都通过解数学难题的方式创建新的区块并拥有记账权,链接在第一个创世区块上,然后一个接一个向后排,形成一个区块链,一但有人率先解出难题,就向所有接入者广播,当成功得到共识验证后,将创建这个新的区块并拥有这个区块的记账权,同样能得到奖励——50个比特币及区块中所含交易的交易费奖励,不过比特币奖励会约每隔4年减半,到现在只有12.5个的奖励了。比特币可以在参与者之间进行储存和流通,它的总数量固定为2100万枚,约在2140年被挖光,如此这样形成的一个网络叫比特币网络。

  因为解一个新的难题需要巨大算力,需要工作量证明(POW),就像挖矿一样,所以这些专业设备叫矿机(如下图)。

    

  专业地说:比特币是基于密码学和经济博弈的一种数字货币,是一个基于数字货币生态系统而形成的概念与技术的集合,也是历史上首个经过大规模长时间运作检验的数字货币系统。它是区块链技术的衍生品,区块链狭义来讲, 区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构, 并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。

 三、区块链技术的特点:

  • 去中心化:区块数据存储在所有加入这个系统的电脑中,每一个都可以是服务器。
  • 高可靠:因为去中心化,且基于点对点网络,区块链网络中只要还有一台电脑正常工作,服务就不会中断,所以高可靠。
  • 安全性:主要体现在分布式、51%攻击,即使49%节点被攻击或宕机也不会影响网络的运行。
  • 去信任:系统中所有节点之间无需信任也可以进行交易,因为数据库和整个系统的运作是公开透明的,在系统的规则和时间范围内,节点之间无法欺骗彼此,区块链实际上是数学方法解决信任问题的产物。
  • 集体维护:系统是由其中所有具有维护功能的节点共同维护的,系统中所有人共同参与维护工作。
  • 不可篡改:一致提交后的数据会一直存在,几乎不可被销毁或修改。
  • 可追溯:可以追溯区块链中任何时期的记录。
  • 可靠数据库:系统中每一个节点都拥有最新的完整数据库拷贝,修改单个节点的数据库是无效的,因为系统会自动比较,认为最多次出现的相同数据记录为真。
  • 数据透明:全网共享账本,每一个节点都能够存储全网发生的历史交易记录的完整、一致账本。
  • 密码学技术:区块链中使用Hash算法、非对称加密、数字签名、数字证书等密码学技术。
  • 源代码开源:区块链网络中设定的共识机制、规则等都可以通过一致的、开源的源代码进行验证。
  • 通过区块链技术衍生的新特点:
  • 作品确权、数字化证明: 通过时间戳、哈希算法对作品进行确权,证明一段文字、视频、音频等存在性、真实性和唯一性。

 四、区块链分类

公有链:任何人均可自由参加和退出,比如中本聪发起的比特币网络。
联盟链:加入和退出需要经过联盟授权,比如全球多家公司发起的联盟链。
私有链:权力完全控制在一个组织中,比如公司内部使用的私有链。

五、区块和区块链原理及结构:

  • 区块(Block):由记录着区块大小信息、区块头信息、交易计数器、交易具体内容等的区块文件作为基本存储单位,记录着一段时间内发生的交易和状态结果,是对当前账本状态的一次共识;
  • 链(Chain):由每个区块头信息中记录的上一个合法区块值进行链接,构成一个以时间为序的区块链是整个系统状态变化的日志记录。
  • 区块链(BlockChain):由记录着区块大小信息、区块头信息、交易计数器、交易具体内容等的区块文件作为基本存储单位,并通过每个区块头信息中记录的上一个合法区块值进行链接,构成一个以时间为序的区块链。
  • 交易(Transaction):一次操作,导致账本(区块)状态的一次改变,如添加一条记录;

区块结构:

  

区块中区块头结构:

  

区块链,区块的链式连接:

  

六、比特币网络中新区块的产生:

  • 创建一个新区块,对区块头和nonce(挖矿随机数)进行哈希运算(SHA256(SHA256(Version+HashPreBlock + Merkle_root + Timestamp + Bits + Nonce )) ≤ 难度数)将所得哈希值与目标哈希值(难度数)进行比较,这只能通过一个接着一个的尝试完所有的随机数,直到一个产生了想要的哈希值的随机数被找到,这个目标值越低就越难找到合适的随机数。如果当前nonce值计算的哈希值小于目标哈希值,则挖矿成功。成功后将新区块发送给其它结点进行共识验证,并继续传播此块,然后基于这个区块开始寻找下一个区块。
  • 成功创建新区域将得到两种类型的奖励:1)创建新区块的比特币奖励(总量达到之前)。2)区块中所含交易的交易费。
  • 新区块每10分钟出来一个块,每个区块大小是1MB,全网每秒7笔的交易速度(这个是相当的慢),为了交易安全,每次交易需要等待 6个块的可信确认,导致约1个小时的最终确认时间(双花问题引起)。
  • 挖矿就是挨个测试nonce值,使得本区块的哈希值(markle根)不断变化,只到找到一个满足目标的值,这个区块就可以创建,具体步骤如下:

   

七、区块链发展及演进

  区块链技术起源于化名为“中本聪”(Satoshi Nakamoto)的家伙在2008年发表的奠基性论文《比特币: 一种点对点电子现金系统》。目前,区块链技术被很多大型机构称为是彻底改变业务乃至机构运作方式的重大突破性技术。同时,就像云计算、大数据、物联网等新一代信息技术一样,区块链技术并不是单一信息技术,而是依托于现有技术,加以独创性的组合及创新,从而实现以前未实现的功能。至今为止,区块链技术大致经历了3个发展阶段,如下图:

   

1)技术起源

  • P2P网络:是区块链系统连接各对等节点的组网技术,即“点对点”或“端对端”网络,是构建在互联网上的一种连接网络。比如P2P下载技术等,下图左为P2P网络,右为中心化网络。
  • 加密:区块链使用非对称加密的公、私钥对来构建节点间信任的。非对称加密是指使用公私钥对数据存储和传输进行加密和解密。公钥可公开发布,用于发送方加密要发送的信息,私钥用于接收方解密接收到的加密内容。公私钥对计算时间较长,主要用于加密较少的数据。常用的非对称加密算法有RSA和ECC。

  • 数据库技术:在区块链系统建设方面,传统的关系型数据库和分布式键值数据均适用。
  • 电子现金(Ecash):又被称为数字货币(Digital money)或电子货币(Emoney),视为对现实货币的模拟,涉及用户、商家和处于中心化地位的银行或第三方支付机构,比如支付宝。

 2)区块链1.0-数字货币,是转账、汇款和数字化支付相关的密码学货币应用。

  2009年1月3日,比特币网络正式上线运行。作为一种虚拟货币系统,比特币的总量是由网络共识协议限定的,没有任何个人及机构能够随意修改其中的供应量及交易记录。在比特币网络成功运行多年后,部分金融机构开始意识到,支撑比特币运行的底层技术——区块链实际上是一种极其巧妙的分布式共享账本及点对点价值传输技术,对金融乃至各行各业带来的潜在影响甚至可能不亚于复式记账法的发明。
  若从其实质分析,区块链就是一种无须中介参与,亦能在互不信任或弱信任的参与者之间维系一套不可篡改的账本记录的技术。区块链1.0的技术架构如下图:

  

  • 应用层:主要由客户端完成记账和转账功能。
  • 激励层
    1. 发行机制,以比特币网络为例,目前每10分钟产生一个新区块,每个区块奖励12.5个比特币给矿工,这是货币发行的方式。
    2. 分配机制,来源于交易费用,生成新区块的参与者拥有此区块的记账权,所有交易都需要支付手续费给记录区块的参与者,如果某笔交易的交易费用不足,那么将拒绝执行。

  • 网络层:P2P网络又称点对点技术,是没有中心服务器、依靠用户群交换信息的分布式互联网体系。分布式系统,碰到的第一个问题就是一致性的保障。很显然,如果一个分布式集群无法保证处理结果一致的话,那任何建立于其上的业务系统都无法正常工作。传播机制及验证机制就是保障分布式系统正常一致工作的。
  • 数据层
    1. 数字签名:椭圆曲线数字签名算法(ECDSA)是使用椭圆曲线对数字签名算法(DSA)的模拟,该算法是构成区块链系统的基石。
    2. Hash (哈希或散列)算法:是信息技术领域非常基础也非常重要的技术。它能任意长度的二进制值(明文)映射为较短的固定长度的二进制值(Hash 值),并且不同的明文很难映射为相同的 Hash 值。MD5 是一个经典的 hash 算法,其和 SHA-1 算法都已被证明 安全性不足应用于商业场景。
    3. Merkle树(又叫哈希树)是一种二叉树,由一个根节点、一组中间节点和一组叶节点组成。最下面的叶节点包含存储数据或其哈希值,每个中间节点是它的两个孩子节点内容的哈希值,根节点也是由它的两个子节点内容的哈希值组成。
    4. 非对称加密:非对称加密是现代密码学历史上最为伟大的发明,可以很好的解决对称加密需要的提前分发密钥问题。顾名思义,加密密钥和解密密钥是不同的,分别称为公钥和私钥。公钥一般是公开的,人人可获取的,私钥一般是个人自己持有,不能被他人获取。优点是公私钥分开,不安全通道也可使用。区块链系统中私钥可以推算出公钥,反之则不行。

 区块链1.0的典型特征有:

  • 以区块为单位的链状数据块结构:区块链系统各节点通过一定的共识机制选取具有记账权限的区块节点,该节点需要将新区块的前一个区块的哈希值、当前时间戳、一段时间内发生的有效交易及其梅克尔树根值等内容打包成到一个新区块,向全网广播。由于每一个区块都是与前续区块通过密码学证明的方式链接在一起的,当区块链达到一定的长度后,要修改某个历史区块中的交易内容就必须将该区块之前的所有区块的交易记录及密码学证明进行重构,有效实现了防篡改。
  • 全网共享账本:在区块链网络中,每一个全功能节点都能够存储全网发生的历史交易记录的完整、一致账本,即对个别节点的账本数据的篡改、攻击不会影响全网总账的安全性。
  • 非对称加密:加密密钥和解密密钥是不同的,分别称为公钥和私钥典型的区块链网络中,账户体系由非对称加密算法下的公钥和私钥组成,若没有私钥则无法使用对应公钥中的资产。
  • 源代码开源:区块链网络中设定的共识机制、规则等都可以通过一致的、开源的源代码进行验证。

3)区块链2.0-智能合约,是经济、市场和金融应用的基石

  区块链最早相关概念是比特币的发明者-中本聪在论文中提出,自那以后,区块链脱离比特币网络,成为一种支持分布式记账能力的底层技术,具有去中心化和加密安全等特点。随着业界开始认识到区块链技术的重要价值,并将其用于数字货币外的领域,如分布式身份认证、分布式域名系统、分布式自治组织等。这些应用称为分布式应用(DAPP)。用区块链技术架构从零开始构建DAPP非常困难,但不同的DAPP共享了很多相同的组件。区块链2.0试图创建可共用的技术平台并向开发者提供BaaS服务,极大提高了交易速度,大大降低资源消耗,并支持PoW、PoS和DPoS等多种共识算法,使DAPP的开发变得更容易。
  区块链2.0的技术架构如下图:

   

  智能合约:是由事件驱劢的、具有状态的、获得多方承认的、运行在一个可信、共享的区块链账本上的,且能够根据预设条件自动处理账本上资产的程序。智能合约的优势是利用程序算法替代人仲裁和执行合同,其模型如下图。

   

  • EVM:以太坊虚拟机,以太坊中智能合约的运行环境。如果做比喻的话智能合约运行更像是Java程序,JAVA程序通过JAVA虚拟机(JVM)将代码解释字节进行执行,以太坊的智能合约通过以太坊虚拟机(EVM)解释成字节码进行执行。
  • DAPP:去中心化应用,这类应用天生具有去中心化、去信任中心的特点,这些应用在运行时由用户行为触发而改变其内部数据,数据和应用代码都被记录在区块链上,天生具备防人为簒改的特性。
  • POS:(Proof of Stake)股权证明,典型的过程是通过保证金(代币、资产、名声等具备价值属性的物品即可)来对赌一个合法的块成为新的区块,收益为抵押资本的利息和交易服务费。提供证明的保证金(例如通过转账货币记录)越多,则获得记账权的概率就越大。合法记账者可以获得收益。PoS 是试图解决在 PoW 中大量资源被浪费的缺点。恶意参与者将存在保证金被罚没的风险,即损失经济利益。
  • DPOS:(Delegated Proof-of-Stake)授权股权证明机制,一种股权证明机制的新实现方式,该方式可以对交易进行秒级验证,并且能够在更短的时间内提供比现有任何股权证明系统都更好的安全性。在比特币网络产生一个区块的时间过后,一个授权股权证明系统(DPOS)能使你的交易得到20%股东的核实,而在比特币网络声明交易已几乎不可逆(6个区块,约1小时)的时间过后,在DPOS机制下,通过其代表,你的交易已经得到100%股东的核实。
  • PBFT:(Practical Byzantine Fault Tolerance)拜占庭容错算法。这个算法在保证活性和安全性(liveness & safety)的前提下提供了(n-1)/3的容错性。

 区块链2.0的典型特征如下:

  • 智能合约:区块链系统中的应用,是已编码的、可自动运行的业务逻辑,通常有自己的代币和专用开发语言。
  • DAPP:包含用户界面的应用,包括但不限于各种加密货币,如以太坊钱包。
  • 虚拟机:用于执行智能合约编译后的代码。虚拟机是图灵完备的。

随着区块链技术和应用的不断深入,以智能合约、DAPP为代表的区块链2.0,将不仅仅只是支撑各种典型行业应用的架构体系。在组织、公司、社会等多种形态的运转背后,可能都能看到区块链的这种分布式协作模式的影子。可以说,区块链必将广泛而深刻地改变人们的生活方式。区块链技术可能应用于人类活动的规模协调,甚至有人大胆预测人类社会可能进入到区块链时代,即区块链3.0。

 八、区块链常见问题

  • 问:区块链是谁发明的,安全么?
    • 答:区块链最早相关概念是比特币的发明者-中本聪(化名)在论文中提出,自那以后,区块链脱离比特币网络,成为一种支持分布式记账能力的底层技术,具有去中心化和加密安全等特点。
  • 问:区块链和比特币是啥关系?
    • 答:比特币是基于区块链技术的一种数字现金(cash)应用;区块链技术在比特币分布式系统中得到应用,确保了其在 2009 年上线后在自治情况下正常运转。
  • 问:区块链和分布式数据库是啥关系?
    • 答:两者定位完全不同。分布式数据库是解决大规模场景下的数据存储问题;区块链则是在多方(无需彼此信任)之间提供一套可信的记账和合约履行机制。
  • 问:区块链有哪些种类?
    • 答:根据参与者的不同,可以分为公开链、联盟链和私有链。从功能上看,可以分为以货币交易为主的初代区块链,和支持智能合约和链上代码的新一代区块链。
  • 问:比特币区块链为何要设计为每 10 分钟才出来一个块,快一些不可以吗?
    • 答:这个主要是从公平的角度,当某一个新块被计算出来后,需要在全球的比特币网络内公布,临近的矿工将最先拿到消息并开始计算,较远的矿工则较晚得到通知。最坏情况下,可能需要数十秒的延迟。为尽量确保矿工们都处在同一起跑线上,这个时间不能太短。但太长了又会导致每个交易的“最终”确认时间过长,目前看,10 分钟左右是一个相对合适的折中。
  • 问:比特币区块链每个区块大小为何是 1 MB,大一些不可以吗?
    • 答:这个也是折中的结果。区块产生的平均时间间隔是固定的 10 分钟,大一些,意味着发生交易的吞吐量可以增加,但节点进行验证的成本会提高(hash 处理约为 100 MB/s),同时存储整个区块链的成本会快速上升。1 MB,意味着每秒可以记录(1MB/(10*60)=1.7KB) 的交易数据,而一般的交易数据大小在 0.2 ~ 1 KB。实际上,之前社区也曾多次讨论过改变区块大小的提案,但都未被最终接受。
  • 问:(公有链情况下)区块链是如何保证没有人作恶的?
    • 答:区块链并没有试图保障每一个人都不作恶,每个参与者都默认在最长的链上进行扩展。当某个作恶者尝试延续一个非法链的时候,实际上在跟所有的“非作恶”者进行竞争。因此,当作恶者超过一半(还要保持选择一致)时,在概率意义上才能破坏规则。而失败,所有付出的资源(例如算力)都将浪费掉。

九、区块链名词解释

  • Bitcoin:比特币,中本聪发起的数字货币技术。
  • Blockchain:区块链,基于密码学的可实现信任化的信息存储和处理技术。
  • Chaincode:链上代码,运行在区块链上提前约定的代码(状态机)。
  • DAO:Decentralized Autonomous Organization,分布式自治组织,基于区块链的按照智能合约联系起来的松散众筹群体。
  • Distributed Ledger:分布式记账本,大家都认可的去中心化的账本记录平台。
  • DLT:Distributed Ledger Technology。
  • DTCC:Depository Trust and Clearing Corporation,存托和结算公司,全球最大的金融交易后台服务机构。
  • EVM:以太坊虚拟机。
  • Fintech:Financial Technology,跟金融相关的(信息)技术。
  • Hash:哈希算法,任意长度的二进制值映射为较短的固定长度的二进制值的算法。
  • Lightning Network:闪电网络,通过链外的微支付通道来增大交易吞吐量的技术。
  • Nonce:密码学术语,表示一个临时的值,多为随机字符串。
  • P2P:点到点的通信网络,网络中所有节点地位均等,不存在中心化的控制机制。
  • PoW:Proof of Work,工作量证明,在一定难题前提下求解一个 SHA256 的 hash 问题。
  • Smart Contract:智能合约,运行在区块链上提前约定的合同;
  • Sybil Attack(女巫攻击):少数节点通过伪造或盗用身份伪装成大量节点,进而对分布式系统系统进行破坏。
  • SWIFT:Society for Worldwide Interbank Financial Telecommunication,环球银行金融电信协会,运营世界金融电文网络,服务银行和金融机构。
  • 挖矿:通过暴力尝试来找到一个字符串,使得它加上一组交易信息后的 hash 值符合特定规则(例如前缀包括若干个 0),找到的人可以宣称新区块被发现,并获得系统奖励的比特币。
  • 矿工:参与挖矿的人或组织。
  • 矿机:专门为比特币挖矿而设计的设备,包括 GPU、专用芯片等。
  • 矿池:采用团队协作方式来集中算力进行挖矿,对产出的比特币进行分配。
  • 市场深度:未成交的交易,衡量市场承受大额交易后汇率的稳定能力。
  • 图灵完备:指一个机器或装置能用来模拟图灵机(现代通用计算机的雏形)的功能,图灵完备的机器在可计算性上等价,在可计算理论中,当一组数据操作的规则(一组指令集,编程语言,或者元胞自动机)满足任意数据按照一定的顺序可以计算出结果,被称为图灵完备(turing complete)。

参看地址:http://blog.csdn.net/jamenew/article/details/54884637

posted @ 2017-07-04 19:53  bjlhx15  阅读(871)  评论(0编辑  收藏  举报
Copyright ©2011~2020 JD-李宏旭