深度学习
区块链系统的设计思想和很多传统系统的设计思想本来就是截然相反的:区块链是分布式的,传统系统是集中的。区块链上的数据有N个备份,传统系统的数据是在单个或者少数几个节点上的。区块链是不需要信任的,传统系统的运营者必须是被信任的。区块链上的所有记录都是可追溯的,传统系统的记录可能没有上下文。区块链的系统是24×7×365不间断运行的,而传统系统需要停机维护或者更新。下面首先从区块链技术的算法思想开始说起。账户地址的产生方式在介绍中本聪的算法之前,下面先简单普及一下公钥私钥加密系统的原理。系统上的每一个人都有一把公钥和一把私钥,私钥是保密的,而公钥对大家都是公开的。系统上的一个人John要把一段内容发送给另一个人Brian。John可以用他的私钥对内容加密,然后发送给Brian,而Brian可以用J
区块链就是一个P2P网络,也就是点到点网络。在区块链网络中没有中心服务器,也没有中心路由器。如果任何一个或多个节点从区块链网络中丢失,则数据也不会丢失。P2P技术解析区块链的底层技术之一就是P2P技术。下面首先来看一下P2P技术究竟是怎样的。这里的P2P指的是点对点的技术,而不是P2P贷款。P2P技术是一种网络技术,是与客户端/服务器(CS)模式相对应的一种网络信息交换方式。在第1章中,我们讨论过区块链系统的三大特点:去中心化不需要一个管理机构不需要第三方仲裁碰巧的是,这三个特点同时也是以P2P技术为基础的系统所具有的特点。由于P2P方式能够缓解传统CS架构中服务器端压力过大的问题,也不会有一点失效全局崩溃的问题,同时又能充分利用网络上闲散的计算和存储资源,所以P2P技术能被广泛应用于互联网
信任的原理是点与点的链接,存在于物理和数字空间,存在于真实世界与虚拟世界,它或许存在于某一个空间,或者存在于两个不同的空间,这两个空间有着天然的链接,是分布式的,没有中心化的存在。信任关系通过算法转化为代码,代码形成程序,程序驱动着链接,而信任的链接是在一个系统里,经过注册、登记、交易,一切都在程序里进行,一切都在0和1之间转化。这里没有权威,没有意见领袖。这是一个纯天然的社区,一个去中心化的社区,是协作式的,而其基础架构就是区块链技术。这就是算法式信任的原理。我们常说区块链系统是一个“Trustless”的系统。这里的“Trustless”说的就是区块链系统实现了算法式信任。你不需要信任任何人或者机构,一切都由程序来完成。算法式信任是机构式信任天然的敌人。智能合约就是一种协议,
区块链系统以及之上的所有应用都是用程序语言来编写的,而写过程序的人都知道,但凡是程序,都会有Bug的存在。有些Bug可能是逻辑上的错误,不过更多的Bug其实在业务逻辑和程序逻辑上是没有问题的,只是没有考虑到某些特殊情况的处理。例如我们设计了一套智能合约的逻辑,在开始运行了之后发现好像有漏洞。这时,有的黑客可能就会利用这个漏洞来赚取利益。区块链系统也需要由人来编写程序,那么我们面临着下面几个问题:我们用什么来保证系统本身是安全的呢?如果有人在系统中隐藏了恶意代码怎么办?系统会不会有后门?系统为什么能够保护上面所有人的隐私呢?系统为什么能够保证对所有的用户都是公平的呢?这就是开源项目的美妙之处。比特币项目的源码目前托管在Github上共享,你可以从这里https://github.c
在我们看来,区块链技术本身并不是一套完整的解决方案,它只是包含了很多特性的一种理论,一种技术再组合的创新。在开发实现上其也不拘泥于一种语言,可以用C语言、C++或者Python等去完成。关于区块链的研究和社区有很多,来自密码学、金融领域和技术领域的很多专家学者每天都在为区块链社区添砖加瓦。给程序员的资源程序员是技术的实际执行者,自2009年比特币问世以来,越来越多的技术爱好者参与其中,讨论研究着比特币和区块链的理论与核心技术。很多技术发烧友的研究路线由代码开始,但区块链的源代码晦涩难懂,导致研究起来速度过于缓慢,下面笔者整理了一些参考资源,以便于感兴趣的读者快速入门。CSDN(http://www.csdn.net):技术者开发园地。以太坊(http://ethfans.org/):区块链技
在比特币和各种主流互联网货币的背后,其实采用的都是区块链技术。本章主要介绍基于区块链1.0,也就是基于区块链技术的比特币和虚拟货币的应用。亚里士多德曾经说过:“金钱的出现不是出于自然而是出于人为的力量,我们有能力改变它或废弃它。”如果让国家、银行等传统金融机构来发行或者推广电子虚拟货币,则它们显然对此没有兴趣。因为世界上有美金、欧元、人民币,何必再费神费力地搞出或者支持其他的货币呢?这也是在比特币产生之前,电子虚拟货币没有大规模流行的根本原因。去中心化设计的比特币(来源:http://dcebrief.com/)去中心化设计的比特币,突破了国家、传统金融机构和各个商业组织的限制,使得数字货币本身控制了自己的发行,使其作为通用货币成为可能。本章主要解答以下这些问题:比特币是数字货币吗?区块链技
虚拟货币领域的发展非常快,以至于目前对“虚拟货币”都还没有一个公认的官方定义。IMF(InternationalMonetaryFund,国际货币基金组织)在2016年1月给出了一份报告:VirtualCurrenciesandBeyond:InitialConsiderations(《虚拟货币及其发展:最初的考虑》)。在报告中,IMF把比特币定义为“加密货币”(cryptocurrency)。IMF对于虚拟货币是这么定义的:虚拟货币(VirtualCurrency)是价值的数字体现,是由私有的开发者们发行的,并且有自己的面额。虚拟货币可以用电子的方式获取、存储、访问和进行各种交易。虚拟货币的概念覆盖了各种“币”,从最简单的优惠券、航空公司里程数,到比特币等。从下图中我们可以看
如果把比特币算法比喻成一个有奖答题的方程式,那么比特币网络上所有的人都在同时试图抢答各自的方程式。每一个方程式都有自己的答案,而且一旦一个方程式被某一个人所解开,则其他人就无法再次解开他们自己的方程式来获取奖励了。所有的人都会得到另外一个方程式来做解答。每一个“矿工”手里都有目前所有比特币拥有者的公开信息和他们所拥有的比特币的数量,你也可以从https://blockchain.info/这个网站上随时查阅到你所拥有的比特币数量。Blockchain.info的商标除了是一个有价值的信息资源,blockchain.info还是世界上最大的在线比特币钱包网站之一,目前它的在线钱包数量已经超过了3700000个,每天通过blockchain钱包进行的交易超过50000笔。在第2章中,我们详细解释
正因为比特币是由一个协议而产生的,那么只要我们稍微改动一下算法,就可以生成一个新的算法,这样说对吗?事实上很多人都是这样想的,因而在比特币之后,有数以百计的虚拟货币出现。只要有人愿意用有价值的物品或者其他货币来获取这些虚拟货币,就可以对这些虚拟货币进行定价。我们可以在http://coinmarketcap.com/这个网站上看到一些货币的列表。从下图中我们可以看到,在我们撰写本书的时候,目前有据可查的虚拟货币有664个,整体的市场价值为68亿美元。除了比特币,还有其他几类虚拟货币也值得一提。Litecoin(LTC)发布于2011年10月7日,是目前市值最高的山寨币,不同于比特币使用的SHA256挖矿算法,LTC采用scrypt算法。PPCoin(PPC)发布于2012年8月19日,在比特
经常和朋友讨论比特币和其他一些虚拟货币的投资,笔者的观点是:绝大部分比特币交易者做的是投机(speculation),而不是投资(investment)。说一件商品或者虚拟物品值得投资,它本身必须具有一定的价值。比特币本身具有什么样的价值众说纷纭,不过笔者并没有看到太多有实际意义的说法。比特币和其他虚拟货币有两个大的问题:第一,由于虚拟货币的发行机构不是一个国家或者国家认可的银行,也不是私人企业或者根本没有发行机构,因此没有国家的背书,这对其被用户所接受和使用是有影响的。第二,虚拟货币能够流通取决于其购买力的稳定性,波动过大的虚拟货币没有作为流通货币的竞争优势。而这两个大的问题恰恰是由虚拟货币的本质特点所造成的。可以不客气地说,目前拥有比特币的人除少数爱好者外,绝大部分是为了投机。美国芝加哥