深度学习
加密货币多数是通过挖矿的方式产生的,矿工手里积累了大量的加密货币,矿工们需要支付挖矿的硬件、电费等成本,客观上有出售加密货币的需求。其他另一部分人则要使用加密货币来完成一些任务,如以太币可以用来执行智能合约,比特币可支付某些转账的交易费等。这样,既有供给方,又有需求方,加密货币就具备了交易的基础。比特币是最早的加密货币,比特币的早期交易是由人工撮合的OTC(OverTheCounter)方式,通过交易员(中间人)实现买卖双方交换的目的。交易员支付主权货币(如美元、人民币等),从比特币持有人手里买入比特币,再寻找并卖给合适的买家,赚取主权货币的差价。交易员还可以通过撮合双方直接交易从中收取佣金。即使在电子交易网站盛行的今天,OTC模式还没有消失,主要是部分用户更信任的人
加密货币经常被宣传的优点之一就是匿名性(anonymity),实际情况是怎样的呢?我们以比特币为例子分析一下。1.不具备真正的匿名性用户是通过地址来使用比特币的,账本中的交易只记录了地址和比特币数量,从交易中无法直接得到用户的真实信息,这就是人们常说的比特币匿名性。如果比特币仅仅是在虚拟数字世界里面流转,确实比较难发现用户的身份信息。可是,当用户一旦用比特币和现实世界的事物发生联系,用户的信息就可以关联上某个地址。例如,用户在商店用比特币购买一杯可乐,店员就可以把比特币支付地址和该用户的相貌、性别等信息关联起来。如果用比特币网购商品,那么买家的姓名、地址、电话等信息就会透露给卖家。还有不少人在网站、视频、文章中留下自己的比特币地址来接收捐赠或收款,殊不知这样就泄露了自己和比特
以公共区块链分布式账本为基础的加密货币,如比特币、以太币等,需要靠分布在世界各地的矿工(miner)不停地运作来维持系统功能。所谓矿工,就是运行加密货币软件的计算机节点。矿工们主要完成两种任务,一是计算和校验交易,并生成账本的区块数据,二是矿工之间的计算竞赛,以决定谁的区块为“正选”数据。前者的作用是维护加密货币协议的基本功能,后者对账本数据本身没有意义,但可以激励矿工们继续挖矿来获取更多的货币收益。比特币是最早把这两种任务巧妙结合起来的系统,使得挖矿(币)和记账成为不可分割整体,矿工在努力挖矿的同时也完成了账本区块数据的生成工作。早期的矿工由一些技术爱好者组成,他们提供机器用于分布式记账。到了后期,挖矿已经发展成为一种职业,组成了专门从事挖矿的团队。由于挖矿得到的货币数量和
矿池算力集中产生51%攻击问题,准确来说,应当是50%+问题,从原理上看,只要能控制全网50%以上算力,攻击者将可以修改账本和阻止他人挖矿,从而威胁到整个系统安全。那么拥有50%以上的算力是怎样劫持区块链的数据的呢?一种方法是通过分叉(forking)的方式。如图9-6所示,正常的矿工在区块链上挖矿,攻击者把自己的货币花掉(购买服务商品等),这笔花费会记录在区块链的数据中,假定交易记录在区块4中。攻击者这时暗中伪造另一条区块链的数据,将自己地址上的货币重新转账到其他地址,记录在自己伪造的区块4a中。由于在算力上的优势,攻击者比网络中其余的矿工计算得更快,从而得到一条更长的区块链数据,如图9-6中区块4a到区块7a为攻击者的链,比其余矿工的链(区块4到区块6)更长。在公共区块链
9.6.1 去中心化的自治组织简介去中心化的自治组织DAO(DecentralizedAutonomousOrganization)是随着数字加密货币和区块链技术的普及而流行起来的概念。去中心化的组织最早出现在美国作家奥里·布莱福曼(OriBrafman)在2007年出版《海星和蜘蛛》一书中,描述如下:蜘蛛是中心化(细胞)组织的例子,如果把它的头切掉后(整个组织)就无法生存了。海星则是由彼此对等(无中心)的一堆细胞组成的,海星撕下的每只触手都可成长为完整的海星。海星和蜘蛛分别代表现实世界中去中心化和中心化的两种组织。海星型组织在遇到挫折和冲突被分解的时候,其组织将变成更小的去中心化组织,继续发挥作用;而蜘蛛型组织在首脑被割掉之后,将无法继续运作。相比之下,海星型去中
本章介绍在区块链上两个应用系统的设计和实现原理。其中,闪电网络是为了解决比特币系统交易吞吐量低的问题,它通过巧妙的离线交易形式,支持大量的高频微支付交易。另一个系统是ODIN,利用区块链的去中心化和不可篡改等特点,提供DNS的服务功能。
10.1.1 闪电网络简介比特币是现今最成熟的数字货币系统,无需任何中间人,用户可在比特币的网络里转移货币,实现对商品和服务的支付能力。但作为实用的支付系统,比特币还存在着一些缺陷。如,比特币平均每秒只能处理大约7笔交易,全年的吞吐量约2.2亿笔,无法满足一个城市的基本需求;每笔交易要等到1小时后才能基本确认;对微支付(micropayment)来说,交易费用可能太高。虽然有些方案可以提高比特币的性能,效果却不太显著。闪电网络(LightningNetwork)由JosephPoon和TadgeDryja首先提出,被认为是比特币创立以来最重要的革新。它利用了比特币的安全特性,在线下提供高速的实时交易处理能力。用户既可通过点对点的直接支付方式,也可以通过网络路由的方式实现
在万维网发明人TimBerners-Lee爵士的《编织互联网:谈万维网的最初设计和最终命运》一书中有这样一段话:虽然万维网是在一种松散的状态下成长的,但事实上它有一个中心的致命弱点,通过这个弱点可以击垮或控制它。当用http://www.lcs.mit.edu/foo这样的URI(UniversalResourceIdentifier,统一资源标识符)来寻找一个网页时,客户机会先检查第一个字符串,就像通常的情况那样,当它是http时,它就知道www.lcs.mit.edu这个部分是万维网服务器的域名。域名系统运行于计算机的分级系统中,计算机通过DNS(域名解析系统)搜索它来找到实际的互联网地址(类似于18.23.189.58那样的一串数字),然后数据包就被发送到那里。分
前面10章介绍了区块链的基础概念,对不同区块链架构进行了剖析,并对密码学、共识算法等关键技术做了详细的介绍;也提供了区块链中比特币和以太坊智能合约的开发指南;还介绍了区块链的应用案例,并讨论了区块链的常见问题。希望读者在读完这本书后,能在架构上对区块链有一个较为全面的认识,并掌握区块链开发的原理和基本技巧。本章将主要与读者分享笔者学习架构的心得,并就架构变革驱动IT时代发展,以及从互联网+到区块链+的架构演进,与读者分享一些个人的心得和观点。
11.1.1 架构和技术的关系笔者在IT行业从事架构师职业多年,养成了关注典型IT架构的职业习惯。如果把区块链涉及的技术拆开来看,其实无论是虚拟货币、密码学、共识算法,P2P通信等技术,大部分都有迹可循,先于比特币出现。区块链之所以变得这么重要,主要是由于它把这些技术进行有机的组合,形成一个去中心化的、自动化执行交易、自治管理的架构。因此,与其说区块链是技术的革新,不如说是架构的革新。大部分人容易把社会的进步,时代的变革归结于某项技术的发明,而忽视了起关键作用的其实往往是架构的创新。回顾IT发展的历史,每次重大的变革,不无例外是由于新架构的出现产生了新的能力,带来了新的应用,应用推动了变革。架构和技术的关系,有些像交响乐的指挥编排和各乐器演奏家的关系。就像一个杰出的指挥家指挥