比特币系统需要什么技术
⑴ 谁知道比特币是什么它是怎么运作的
比特币是一种P2P形式的虚拟的加密数字货币。点对点的传输意味着一个去中心化的支付系统。与所有的货币不同,比特币不依靠特定货币机构发行,它依据特定算法,通过大量的计算产生。
比特币及其众多衍生品被称为加密货币。 该系统使用了加密技术来生成新币,以及进行转帐验证。 加密序列有以下几个目的:使交易几乎不可能被伪造;使货币银行或货币钱包可作为数据轻松转移;验证比特币从一个用户转移到另一个用户。
在比特币被使用之前,必须先由系统生成或挖矿得到新币。 这些区块的编码和解码过程需要大量的算力,那些成功生成新区块的用户将获得一些比特币或一部分交易费用作为奖励。
这样一来,将比特币从一位用户转移到另一位用户的同样过程中,在同等基础上也为贡献给比特币网路的更多算力创造了需求,从而生成出可供使用的新币。
(1)比特币系统需要什么技术扩展阅读:
比特币的作用
比特币就像现实中的金币一样:它们具有价值,也可以像金币一样用于交易。 可以透过比特币进行投资——买入加密货币并从其价格波动中获利。 每天都有新的地方将比特币列入支付方式。
比特币没有一个正式价格。 比特币的价格是根据人们愿意支付的价格来确定的。比特币的价格通常以一枚比特币的花费来表示。 但是,交易所一般会允许以任何金额购买,即可以购买少于一枚比特币。 Libertex 的价格指数就是即时查看比特币价格的优质资源。
参考资料来源:网络-比特币
⑵ 什么是比特币系统的tps,现有的提升tps的方法或者思路有哪些求大佬们帮我解答,特别着急谢谢!
TPS,通俗的定义,就是“系统的吞吐量”,专业一点的解释,就是“系统每秒钟能够处理的业务数量”。估计大部分人的理解,也就到此为止了。然而,这是非常表面的理解,对妨忽悠,对求证价值几乎没有意义,甚至还有负面效果!现在有的提升TPS技术有侧链技术,分片技术,我是小菊专注区块链领域
⑶ 关于比特币的知识比特币系统会不会过于笨重
比特币知识和比特币系统你不需要了解太多,知道一点就行了,就像你不懂支付宝的运行远离,但是大多数人会使用支付宝。比特币之家网有一些介绍比特币的新闻资讯。
比特币是一个共识网络,促成了一个全新的支付系统和一种完全数字化的货币。它是第一个去中心化的对等支付网络,由其用户自己掌控而无须中央管理机构或中间人。从用户的角度来看,比特币很像互联网的现金。比特币也可以看作是目前最杰出的三式簿记系统。
比特币是由挖矿产生的,挖矿是消耗计算资源来处理交易,确保网络安全以及保持网络中每个人的信息同步的过程。它可以理解为是比特币的数据中心,区别在于其完全去中心化的设计,矿工在世界各国进行操作,没有人可以对网络具有控制权。这个过程因为同淘金类似而被称为“挖矿”,因为它也是一种用于发行新比特币的临时机制。然而,与淘金不同的是,比特币挖矿对那些确保安全支付网络运行的服务提供奖励。在最后一个比特币发行之后,挖矿仍然是必须的。
⑷ 比特币系统开发技术分析为什么说购买比特币并不太晚
认为按照比特币的的眼里见比特币是比较有限的资源,所以说现在还是不晚,但这可能是一个坑。
⑸ 比特币是怎样产生的
比特币(Bitcoin)的概念最初由中本聪在2008年11月1日提出,并于2009年1月3日正式诞生 。根据中本聪的思路设计发布的开源软件以及建构其上的P2P网络。比特币是一种P2P形式的虚拟的加密数字货币。点对点的传输意味着一个去中心化的支付系统。
比特币网络通过“挖矿”来生成新的比特币。所谓“挖矿”实质上是用计算机解决一项复杂的数学问题,来保证比特币网络分布式记账系统的一致性。比特币网络会自动调整数学问题的难度,让整个网络约每10分钟得到一个合格答案。随后比特币网络会新生成一定量的比特币作为区块奖励,奖励获得答案的人。
⑹ 比特币系统是如何运行的
作为新用户,你只需选择一个钱包安装到你的电脑或者智能手机上。钱包成功安装之后,它会为你生成你的第一个比特币地址,在任何有需要的时候,你可以通过你的钱包生成更多的比特币地址。当你的朋友收到你发送给他们的比特币地址后,他们就可以付给你比特币,反之亦然,如果你的朋友把他们的比特币地址给你,你就可以用比特币付款给他们。实际上,这跟电子邮件的运作方式是非常相似的。所以剩下要做的就是去获取一些比特币,并将它们安全保存起来。要开始使用比特币,你并不需要了解技术细节。
余额 - 块链
块链是整个比特币网络依赖的一个公开共享的交易记录。所有已确认的交易均毫无例外地包含在块链中。如此一来,将可以证实在新的交易中,要花费的比特币确属于花费者所有。块链的完整性和时序性是由加密算法保证的。
交易 - 私钥
一笔交易是指将被包含在块链里的,在比特币地址之间进行的价值交换。比特币钱包为每个比特币地址保存一份称作私钥的保密数据。私钥用来为交易签名,为交易中的比特币的确来自于该比特币地址的拥有者提供数学上的证明。这个签名也避免了交易发生后被人修改的可能性。交易在用户之间传播,并在接下来几分钟内,通过一个叫作挖矿的过程被比特币网络所确认。
处理 - 挖矿
挖矿是个将待确认的交易数据包含到块链中,从而完成对这些交易进行确认的分布式共识系统。通过挖矿,可以强制性保证块链中的数据按时间顺序存储,保持比特币网络的中立性,且允许比特币网络上不同的计算机对系统状态达成一致。交易要获得确认,必须要被打包到一个符合非常严格的加密规则的块中,并通过比特币网络进行验证。这些规则可以防止对已有块的修改,因为一旦有改动,之后所有的块都将失效。挖矿的难度和中彩票相当,没人可以轻易地、连续地将新块加入到块链中。因此,没人可以控制块链中包含什么样的内容或者替换掉块链中的部分内容以达到回滚他们的花费的目的。
⑺ 比特币是如何制造的
每隔一个时间点,比特币系统会在系统节点上生成一个随机代码,互联网中的所有计算机都可以去寻找此代码,谁找到此代码,就会产生一个区块,得到一个比特币,这个过程就是人们常说的挖矿。
目前一个1个比特币基于目前的数据结构被分割到8个小数位,也就是0.00000001BTC,矿工们挖到比特币最小的单位就是0.00000001BTC。
通俗点说,比特币好比是一座由总量为2100万个金币组成的金山,想要得到它,就需要玩家们利用电脑的运算能力,根据现有的算法计算出一组符合特定规律的数字。
(7)比特币系统需要什么技术扩展阅读:
与所有的货币不同,比特币不依靠特定货币机构发行,它依据特定算法,通过大量的计算产生,比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学的设计来确保货币流通各个环节安全性。
P2P的去中心化特性与算法本身可以确保无法通过大量制造比特币来人为操控币值。基于密码学的设计可以使比特币只能被真实的拥有者转移或支付。这同样确保了货币所有权与流通交易的匿名性。比特币与其他虚拟货币最大的不同,是其总数量非常有限,具有极强的稀缺性。
⑻ 比特币入门知识:投资前需要了解哪
作为区块链数字货币从业来回答“首先你要了解比特币是怎么来的。希望以下回答对你有帮助
什么是区块链?
区块链(Blockchain)是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。
通俗一点说,区块链技术就指一种全民参与记账的方式。所有的系统背后都有一个数据库,你可以把数据库看成是就是一个大账本。那么谁来记这个账本就变得很重要。
那么我们现在的记账方式与区块链有什么不同呢?
拿互联网巨头公司来说,微信的账本就是腾讯在记,淘宝的账本就是阿里在记。
但在区块链系统中,系统中的每个人都可以有机会参与记账。在一定时间段内如果有任何数据变化,系统中每个人都可以来进行记账,系统会评判这段时间内记账最快最好的人,把他记录的内容写到账本,并将这段时间内账本内容发给系统内所有的其他人进行备份。这样系统中的每个人都了一本完整的账本。这种方式,我们就称它为区块链技术。
不掌握区块链是不是会被时代淘汰?
区块链虽然火爆,但是对于一般的人来说,不需要恐慌自己掌握不了这个技术。它其实跟我们没什么关系,区块链发展落地后,我们只需要会用相关应用一样。就像我们不需要知道什么是互联网底层的TCP/IP协议,只要享受互联网提供的服务就行。区块链更类似于TCP/IP这样的底层技术,以后会扩展到越来越多的行业中。
区块链到底如何应用呢?
区块链最重要的是解决了中介信用问题。在过去,两个互不认识和信任的人要达成协作是难的,必须要依靠第三方。比如支付行为,在过去任何一种转账,必须要有银行或者支付宝这样的机构存在。
所以区块链可以颠覆很多行业,让这些行业无需中介参与、过程高效透明且成本很低、数据高度安全。所以如果在这三个方面有任意一个需求的行业都有机会使用区块链技术。
比特币是什么?比特币就是区块链吗?
区块链技术是比特币的底层技术。通过区块链技术,比特币是人类第一次实现在没有任何中介机构参与的情况下,完成双方可以互信的转账行为。而且这个系统多年里都在自主和非常稳定的运行,并且没有出现过任何问题。
所以很多人注意到,该底层技术技术也许有很大的机制,而且不仅仅可以在比特币中使用,也许可以在许多领域都能够应用这种技术。于是把比特币技术抽象提取出来,称之为区块链技术,或者分布式账本技术。所以从某个角度来看,比特币可以看成是区块链第一个应用,而区块链更类似于TCP/IP这样的底层技术,以后会扩展到越来越多的行业中。
什么是“挖矿”?
挖矿狭义上来说,是比特币中的“挖矿”,比特币的运算采用了一种称为“工作量证明(Proof of Work,PoW)”的机制,系统为了找出谁有更强大的计算能力,每次会出一道数学题,只有最快解出这道题目的计算机才能进行记账。而抢到记账权的计算机会获得25个比特币的奖励。通常把这个行为称为“挖矿”,把获得的比特币视为挖矿成功获得的奖励。
从广义上来说,就是一种记账奖励的过程,任何行业或者数字货币都可以运用。
什么是智能合约?
智能合约是一种用计算机语言取代法律语言去记录条款的合约。智能合约可以由一个计算系统自动执行。如果区块链是一个数据库,智能合约就是能够使区块链技术应用到现实当中的应用层。传统意义上的合同一般与执行合同内容的计算机代码没有直接联系。纸质合同在大多数情况下是被存档的,而软件会执行用计算机代码形式编写的合同条款。智能合约的潜在好处包括降低签订合约、执行和监管方面的成本;因此,对很多低价值交易相关的合约来说,这是极大降低人力成本。
问:智能合约怎么用?
央行如果能够通过区块链来发行法币,那么也可以通过智能合约技术,将代码嵌入到法币发行的行为中,则这部分法币可以被称为“可编程货币”。比如,如果央行指定某一部分资金是发放到农业相关的账户,那么则可以对这部分资金写入相应程序,指定该部分资金只能进入到农业相关的账户中,那么这部分资金在任何情况下也不可能会被挪用到其他的账户中。如果大部分货币都成为“可编程货币”,那么我们则可以想象到,他们组成的金融环境就变成了“可编程金融”。
数字货币是什么?
数字货币是指对货币进行数字化 。数字货币(Digital currency)分两类指非Cryptocurrency货币(即数字黄金货币,如e-gold,以及公司发行的货币,如xrp)和Cryptocurrency货币(即比特币bitcoin类货币)。
数字货币经常被讹误成虚拟货币。但是虚拟货币是指非真实的货币,比如在你玩《三国志》 (游戏)或《大航海》,你有钱,那些钱是虚拟的。当然,那些虚拟的钱也会有其真实价值。比如,你从别的玩家那里将她/他的账号买过来,你就可以得到那个玩家的所有虚拟的资产,然后你继续玩下去就会容易得多。
区块链项目是否一定需要有某种币出现?
答:不是。比特币本身是作为一种支付系统,所以它需要有一个价值度量的工具,所以必须要有bitcoin出现。此外,为了奖励有更多人愿意贡献自己的计算机来为系统提供计算,所以需要有bitcoin来进行奖励。而在一些私有链的系统,可以设计专门的资产进行交易,而每个节点都是必须参与
⑼ 比特币是怎样生产出来的
要想了解bitcoin的技术原理,首先需要了解两个重要的密码技术: HASH码:将一个长字符串转换成固定长度的字符串,并且其转换不可逆,即不太可能从HASH码猜出原字符串。bitcoin协议里使用的主要是SHA256。
公钥体系:对应一个公钥和私钥,在应用中自己保留私钥,并公开公钥。当甲向乙传递信息时,可使用甲的私钥加密信息,乙可用甲的公钥进行解密,这样可确保第三方无法冒充甲发送信息;同时,甲向乙传递信息时,用乙的公钥加密后发给乙,乙再用自己的私钥进行解密,这样可确保第三者无法偷听两人之间的通信。最常见的公钥体系为RSA,但bitcoin协议里使用的是lliptic Curve Digital Signature Algorithm。 和现金、银行账户的区别? bitcoin为电子货币,单位为BTC。在这篇文章里也用来指代整个bitcoin系统。 和在银行开立账户一样,bitcoin里的对应概念为地址。每个人都可以有1个或若干个bitcoin地址,该地址用来付账和收钱。每个地址都是一串以1开头的字符串,比如我有两个bitcoin账户,和。一个bitcoin账户由一对公钥和私钥唯一确定,要保存账户,只需要保存好私钥文件即可。 和银行账户不一样的地方在于,银行会保存所有的交易记录和维护各个账户的账面余额,而bitcoin的交易记录则由整个P2P网络通过事先约定的协议共同维护。 我的账户地址里到底有多少钱? 虽然使用bitcoin的软件可以看到当前账户的余额,但和银行不一样,并没有一个地方维护每个地址的账面余额。它只能通过所有历史交易记录去实时推算账户余额。 我如何付账? 当我从地址A向对方的地址B付账时,付账额为e,此时双方将向各个网络节点公告交易信息,告诉地址A向地址B付账,付账额为e。为了防止有第三方伪造该交易信息,该交易信息将使用地址A的私钥进行加密,此时接受到该交易信息的网络节点可以使用地址A的公钥进行验证该交易信息的确由A发出。当然交易软件会帮我们做这些事情,我们只需要在软件中输入相关参数即可。 网络节点后收到交易信息后会做什么? 这个是整个bitcoin系统里最重要的部分,需要详细阐述。为了简单起见,这里只使用目前已经实现的bitcoin协议,在当前版本中,每个网络节点都会通过同步保存所有的交易信息。 历史上发生过的所有交易信息分为两类,一类为"验证过"的交易信息,即已经被验证过的交易信息,它保存在一连串的“blocks”里面。每个"block"的信息为前一个"bock"的ID(每个block的ID为该block的HASH码的HASH码)和新增的交易信息(参见一个实际的block)。另外一类指那些还"未验证"的交易信息,上面刚刚付账的交易信息就属于此类。 当一个网络节点接收到新的未验证的交易信息之后(可能不止一条),由于该节点保存了历史上所有的交易信息,它可以推算中在当时每个地址的账面余额,从而可以推算出该交易信息是否有效,即付款的账户里是否有足够余额。在剔除掉无效的交易信息后,它首先取出最后一个"block"的ID,然后将这些未验证的交易信息和该ID组合在一起,再加上一个验证码,形成一个新的“block”。 上面构建一个新的block需要大量的计算工作,因为它需要计算验证码,使得上面的组合成为一个block,即该block的HASH码的HASH码的前若干位为1。目前需要前13位为1(大致如此,不确定具体方式),此意味着如果通过枚举法生成block的话,平均枚举次数为16^13次。使用CPU资源生成block被称为“挖金矿”,因为生产该block将得到一定的奖励,该奖励信息已经被包含在这个block里面。 当一个网络节点生成一个新的block时,它将广播给其它的网络节点。但这个网络block并不一定会被网络接受,因为有可能有别的网络节点更早生产出了block,只有最早产生的那个block或者后续block最多的那个block有效,其余block不再作为下一个block的初始block。 对方如何确认支付成功? 当该笔支付信息分发到网络节点后,网络节点开始计算该交易是否有效(即账户余额是否足够支付),并试图生成包含该笔交易信息的blocks。当累计有6个blocks(1个直接blocks和5个后续blocks)包含该笔交易信息时,该交易信息被认为“验证过”,从而该交易被正式确认,对方可确认支付成功。 一个可能的问题为,我将地址A里面的余额都支付给地址B,同时又支付给地址C,如果只验证单比交易都是有效的。此时,我的作弊的方式为在真相大白之前产生6个仅包括B的block发给B,以及产生6个仅包含C的block发给C。由于我产生block所需要的CPU时间非常长,与全网络相比,我这样作弊成功的概率微乎其微。 网络节点生产block的动机是什么? 从上面描述可以看出,为了让交易信息有效,需要网络节点生成1个和5个后续block包含该交易信息,并且这样的block生成非常耗费CPU。那怎么样让其它网络节点尽快帮忙生产block呢?答案很简单,协议规定对生产出block的地址奖励BTC,以及交易双方承诺的手续费。目前生产出一个block的奖励为50BTC,未来每隔四年减半,比如2013年到2016年之间奖励为25BTC。 交易是匿名的吗? 是,也不是。所有BITCOIN的交易都是可见的,我们可以查到每个账户的所有交易记录,比如我的。但与银行货币体系不一样的地方在于,每个人的账户本身是匿名的,并且每个人可以开很多个账户。总的说来,所谓的匿名性没有宣称的那么好。 但bitcoin用来做黑市交易的还有一个好处,它无法冻结。即便警方追踪到了某个bitcoin地址,除非根据网络地址追踪到交易所使用的电脑,否则还是毫无办法。 如何保证bitcoin不贬值? 一般来说,在交易活动相当的情况下,货币的价值反比于货币的发行量。不像传统货币市场,央行可以决定货币发行量,bitcoin里没有一个中央的发行机构。只有通过生产block,才能获得一定数量的BTC货币。所以bitcoin货币新增量决定于: 1、生产block的速度:bitcoin的协议里规定了生产block的难度固定在平均2016个每两个星期,大约10分钟生产一个。CPU速度每18个月速度加倍的摩尔定律,并不会加快生产block的速度。 2、生产block的奖励数量:目前每生产一个block奖励50BTC,每四年减半,2013年开始奖励25BTC,2017年开始奖励额为12.5BTC。 综合上面两个因素,bitcoin货币发行速度并不由网络节点中任何单个节点所控制,其协议使得货币的存量是事先已知的,并且最高存量只有2100万BTC
希望能解决您的问题。
⑽ 小白如何了解比特币
多去比特币新闻网看比特币新闻,以及行情,技术
比特币的诞生
比特币的诞生应该算在2008年的11月1号的那一天,一个化名为“中本聪”的人在网上发表了一篇论文。 在这篇论文里,他详细的描述了一种崭新的货币体系,他将之命名为“比特币”。
随后,次年的1月3日,首个比特币程序在中本聪的手里诞生,与之一起诞生的是最早挖矿所得的50个比特币。在那之后他开始逐渐淡出,直到彻底的消失。
人们至今也没找出这个叫中本聪的人的真实身份,即使如今的运营商、互联网巨头与政府已将人们在网络上的行迹牢牢掌握在了手里。
他在发言时会经常切换美式和英式英语,他随机在全天不同的时间上线,以隐瞒自己的国籍和时区;他隐藏自己的ip地址,加密自己的邮件,故意伪造一些写作和发言风格来混淆视听;此外他还是一名造诣颇深的密码学专家,对了,他发表论文的地方就叫做 "密码学邮件列表"。
所以比特币从诞生时起就带上了一种黑客精神:对抗任何势力所强加的审查。
当然我们也可以这么看: 如果一个发明了匿名货币系统的黑客,却连自我身份都不能匿名的话,那整件事会变成一个笑话。
但是所幸,中本聪没让我们失望。
1. 什么是货币
我发现要讲清楚什么是比特币,这一节是无论如何也跑不了的了。我不是什么经济领域的专家,我只能很粗浅且只能在很直观的意义上讲述这个问题。(不过就标题所表达出来的本文主旨而言,似乎也足够了)
高中的课本里有讲过(还记得吗?) , 货币是储存价值的媒介,一种东西要成为货币,最重要的,他必须满足:
1) 稀缺性。
这就是为什么黄金可以而沙子不能被当作货币的原因。稀缺性可以理解为获得它的难度,越是稀缺要获得它就越难。 一个直观的认识是这样的:假设你一个月的薪水是5000元,它意味着人民币的稀缺程度恰好到了这样一个度,即你要付出一个月的劳动才能获得5000个一元。 你不会同意以5000粒沙子来支付你的薪水,是因为与其通过劳动一个月来获得它,你大可以去沙滩走一圈就轻轻松松地得到了。
那么现在的金融系统是如何保证货币的稀缺性的呢?控制发行。货币的发行是被牢牢掌握在中央银行手中的,这样货币的发行量才能做到可控(所以你现在知道了,私自印钞是违法的)。回到刚刚那个例子, 你同意以5000元来支付你一个月的薪水,是因为人民币发行量刚好到了这个度。如果此时的人民币发行量翻倍了,稀缺度相应降低, 这时候你就应该要求以1万元来支付你的薪水了(但市场的响应往往不会这么快,在这期间你的财富其实是被剥夺了--你的劳动本该获得一万元却只得到5000元的回报)。
2)交易性
货币存在的目的当然是为了交易。就像很多人告诉你的那样,钱是用来花的,不是用来带进棺材的。所以除了满足稀缺性以外,一种东西它越是方便交易,那么他就越符合理想货币的标准。所以在货币史上,银元代替了贝壳,纸币代替了银元,数字货币正逐渐取代纸币。
这里所说的“交易”,是指财产从一方转移到另一方,即一方的财产减少相应的另一方增多。对实物货币来说,它发生得非常自然,甲要给100元乙,当100元钞票从甲的手里转移到乙的手里的那一瞬间,交易完成了,甲的财产减去了100元而乙的财产增加了100元,这个过程中没有第三方的参与,完全是甲和乙之间的私密行为;然而当交易发生在数字货币层面上时,就没这么简单了,甲要给100元给乙,如何确保交易完成了呢?假设甲和乙在各自的电脑上记录了自己的财富数额的话,那么如何确保乙在给自己增加了100元的时候甲如实地给自己减去了100元呢?这个时候我们不得不要引入第三方了--我们称之为“银行”的那个家伙。 当甲要转移100元给乙时,他不是直接给乙而是给银行, “请把我的100元转给乙” ,于是银行在甲的帐目上扣掉100元,再在乙的帐目上加上这100元。(我们假设它慷慨地不收取任何交易费)
以上所说的就是现代货币系统的一个粗廓模型,这个模型最大的弊端在于:人们不得不去信任一个中心系统。
数字货币的交易必须依赖银行,而一个人的银行账号可能会被审查、限制甚至是剥夺。当一方想要给另一方转移自己的财富时,银行可以收取高昂的费用或者直接拒绝(比如你试试汇一笔钱给美国的亲戚)。
货币的发行必须依赖中央银行。好吧,这已经是一个广为人知的秘密了:货币一直在贬值,或者说货币一直在超额发行(想想20年前的100块跟现在的100块)。 我引用两段话, 一段是凯恩斯说的, “通过连续的通货膨胀过程,政府可以秘密地、不为人知地没收公民财富的一部分。用这种办法可以任意剥夺人民的财富,在使多数人贫穷的过程中,却使少数人暴富。”, 另一段,出自哈耶克, “政府无法克制滥发货币的冲动”。
那么有没有可能设计出一套货币系统,在这个系统里我们不需要一个中心机构,不用被迫去信任任何的第三方, 使货币的发行透明可控,货币的交易私密而安全呢?
你猜?
2. 什么是比特币
所以我们现在可以回答到了,比特币是一个发行去中心化和交易去中心化的电子货币系统。在这个系统里,货币的发行量是透明且可预期的,货币的交易利用整个网络的协同合作来保证交易的安全。
下面我将逐步拆解比特币的原理。需要注意的是,比特币作为一个已经实际在使用的产品,它本身有着非常丰富的细节。本篇目的是向没有技术背景的读者讲述比特币的基本原理,因此并不会涉及到这些细节。比如说钱包的地址其实并不是公钥,而是公钥的二次哈希值; 区块链的难度要求并不是简单的把所有区块链的内容做一次哈希运算;等等。但是为了叙述的简洁性,在不影响对基本原理的讲解下这些都做了简化处理,希望大家能够理解。
2.0. 比特币网络 -- 由众多运行着比特币程序的节点组成
比特币是一个由众多平等的节点组成的网络。
一个节点就是一个比特币程序,任何能够连上网和具有一定计算能力的机器都能运行这个程序 -- 所以你家里的电脑也可以作为比特币网络里的节点:)
节点之间是可以互相通讯的,同时比特币有一套机制可以让一个节点向其他所有节点发出消息,这个行为被称为“广播”。
2.1. 区块链 -- 一个公共的账簿
我们先回到银行的例子。银行最基本的功能,无非是维护一个账簿,而这个账簿只需如实记录每一笔交易而已。比如X年X月X日,王小明转了30块钱给张大毛;Y年Y月Y日,张大毛转了12块钱给李小豆,诸如此类。 根据这个账簿我们可以查到一个人的所有交易记录,因而也就能推算出这个人此刻的账户余额为多少。比如李小豆从建银行帐号开始,转进的交易合计500元,转出的交易合计300元,那么可以算出此时李小豆账户余额一定是200元。
维护好这个账簿,并且作为唯一的维护者(只有银行才有权力查看和修改), 银行作为一个交易中心的职责就完成了。
比特币也有账簿,但是与银行不同的是,这个账簿是公开的,任何人可以去查看和审核它。
这个账簿被称为"区块链"。你可以把区块链想象成一个小册子,册子的每一页写满了交易信息,并且不断有新的页加入进来。
2.2 钱包 ---由一对公钥和私钥构成的的账户
上面一小节,解释了什么是比特币的账簿。这一小节将解释这个账簿里资金的归属权问题,亦即比特币的帐户系统。
比特币里的帐户跟银行的帐户有本质的区别。
在银行账户下,银行记录下了该账户所有者的身份信息(回想一下你去银行开户时提交的资料:照片、身份证、电话号码、家庭住址....),因而只要你能向银行证明你的身份,你也就获得了你名下财产的所有权。在这种模型下,银行扮演了一个全知全能的上帝角色:他知晓现实人们的财富信息。我们除了祈祷上帝不要把我们的信息泄露出去或者利用它干坏事以外,别无他法。
在比特币的世界里,并没有银行这样一个机构,它不会强制人们暴露自己的身份以换取资金的安全。比特币的帐户只是简单的由两串数字构成,分别被称为“公钥”和“私钥”,除此之外再无其他。
这个两个数字所具有的数学特性 -一个被私钥加密过的数据只能通过公钥来解开,所谓的非对称加密-使它们能够完美的实现一个帐户(比特币世界里被称为钱包)需要的功能。
我们把公钥作为帐户地址 --在比特币世界里也称钱包地址 --它类似于银行系统里的帐号,就是当你告诉别人“请给我的帐号打300块钱”时,需要告诉别人的那一串数字。对银行来说,它是“招商银行6214850200251100”,对比特币而言,它是“ ”。
私钥,是证明钱包所有权的*唯一*凭证,你通过证明你是该钱包的私钥持有者来获得该钱包的所有权。注意,和银行账号的密码不同的是,你丢失了密码还可以通过证实自己的身份来找回,但你一旦丢失了密钥那这个钱包里的资金就再也找不回了。
因为公钥和私钥所具备的非对称加密的美妙特性,钱包的所有者并不需要通过出示私钥来证明自己持有它。他只需要出示一段用私钥加密过的文字,验证者能用公钥(即钱包地址)解开这段文字即能证明。
那么怎么生成一对这样的数字呢?
相比于银行开户的繁琐手续,你唯一需要的只是一个实现了该功能的数学软件。
感谢数学。
2.3 区块 --- 有难度要求的账簿页
前面提到,区块链就是一个账簿,一个区块就是这个账簿里固定大小的一页。(比特币规定区块大小不超过1M,而一笔交易大约250字节大小,因此一个区块平均能写下4000笔左右交易。)
区块链是公共的,每个人都可以下载,验算和查看区块链里的交易信息。同时每个人也都可以向区块链增加区块,只是我们需要一种机制来防止坏人们通过提交大量的区块来拖垮整个网络。这个机制的核心在于我们要使区块的构造变得有代价,代价大到不可能在短时间内构造出大量的区块。
比特币要求,新的区块必须使区块链具有某种特征的哈希值才能被允许加入。 哈希值是一种数学运算(感谢数学!),你可以简单理解为对数据的摘要,不同的数据有不同的哈希值,即使两个数据只相差一个字节,他们对应的哈希值也会截然不同。
比特币通过“要求区块链的哈希值具有某种特征”来控制构造区块的难度,这个特征其实就是要求哈希值开头的几位数字为0. 比方说当前比特币要求哈希值前4位必须位0,我们用P表示当前的区块链,用B表示当前构造的区块,那么P+B的哈希值前4位必须为0该区块B才能被允许加入区块链中。 这里要注意三点, 1. 要构造出这样一个区块没有捷径,必须通过大量的计算,一遍一遍的往B里放随机数直到P+B的哈希值满足要求为止。2. 哈希值前面为0的位数越多,要构造出这个区块的难度就越大。
好了,我们现在有了控制区块构造难度的工具了,那么比特币通过什么样的规则来控制难度呢?
比特币规定区块链应保持在平均每两周时间增加2016个区块(也就是平均10分钟一个)的速度上。 也就是说,每增加2016个区块,系统就会算出产生这2016个区块的时间,如果它小于两周那么就提高接下来2016个区块的难度(比如从要求哈希值前3个必须为0提高到前4个为0), 如果它大于两周就降低难度(比如从要求4个0降低到3个0), 这样从长远来看,就使区块链平均以每10分钟一个的速度增加了。
也因此可以推论,区块链的难度要求与全网构造区块的算力成正相关关系。也就是说,参与构造区块的算力增加那么难度要求就会提高,相反则会降低,这样才能使区块链以固定的速度增加。
上面提到,让构造区块变得有难度,是为了防止被坏人攻击。同时,它还有一个作用是防止坏人们将一笔钱花两次(所谓双花问题)。 我们看如下一个比特币的应用场景:
小张要用比特币在小李那里网购一个商品,
1) 小李用数学软件生成好一个比特币钱包,并将该钱包地址(公钥)告诉小张。
2) 小张选取了自己一个有足够余额的钱包,并用这个钱包的私钥签发了一笔交易(该交易把一部分比特币发到小李的钱包地址上),然后把交易广播给全网络。
3)网络中的一些节点把该交易收纳到当前正在构造的区块中。 第一个成功构造出合法区块的节点把该区块广播给全网络,得到全网络的认可被加到区块链上。
4) 小李发现区块链上已经有一个区块包含了指向自己钱包地址的交易,并且交易金额正确。 小李随即给小张发货。
5)小张发现小李已经发货,这时他开始重新构造一笔交易,试图把刚刚发给小李的钱发到自己另外的一个钱包里。这个时候他不能再把这笔交易广播出去了,因为网络中的其它节点会发现该交易是不合法(花掉一笔已经花掉的钱)而直接拒绝掉, 小李只能自己构造一个包含了该交易的区块,并且试图说服网络中的其它节点他的这个节点才是合法而刚刚那个(包含发给小李交易的区块)是不合法的, 这样就能实现他一笔钱花两次的目的。
比特币规定当区块链发生分叉时(即出现了两个或以上互斥的合法区块)时,应该追随最长的那条。 那意味着小张要实现自己双花目的,他必须在产生了小李那个区块后,马上构造出两个区块来,才能说服其他节点跟随自己的这条链。 要达到这个目的,当前时间内他必须拥有(或者接近拥有了)全网51%的算力, 才能抢在其他所有节点之前构造出两个区块出来。
2.4 矿工 --- 通过挖矿来争夺记账权的区块链维护者们
前一节我们讲到,区块链的难度实际上是对区块链的保护,这个难度要求越高区块链就越免于被坏人攻击。换个方式表述就是,全网构造区块的算力保障了区块链的安全,全网的算力越高,那么坏人们获得全网51%算力的难度就越大,因此越不容易被攻击。
那么我们如何激励节点们贡献出自己的cpu跟电力来提高全网的算力呢? 答案是区块奖励。
比特币规定,成功构造出合法区块的节点会获得一部分比特币作为奖励,这部分比特币是系统生成的,他类似于淘金业里的挖矿,通过辛勤的劳动增加了黄金(比特币)的流通总量,因此构造区块的过程被称为“挖矿”,企图通过挖矿来获得区块奖励的节点被称为“矿工”。
挖矿的意义:
1) 它激励节点们贡献出算力来保护网络
2) 它实现了一种公平的方式发行比特币,因为不存在一个中央发行机构。
除了区块奖励外,交易者还可以通过额外支付一笔交易费给矿工们来鼓励他们将自己的交易收纳到它的区块里。这样当区块奖励趋于0时(比特币总量2100万枚,意味着越到后面区块奖励会越少), 因为有交易费的存在,矿工们也会继续维护整个网络。值得注意的是这里的交易费跟银行转账费有所不同,银行的转账费是由银行自上而下规定的,比特币的交易费是由使用者自由设置自下而上竞争的结果(如果当前交易数量很多而你给的交易费太低的话,可能不会被矿工们收取。)
亦即,矿工成功挖到区块时,他将获得 1)区块奖励 2)该区块内所有交易的交易费。
2.5 总结
比特币的核心是一个公共的账簿--区块链,每个人都可以核算查看这个账簿里的交易信息。这个账簿里不会记录任何真实世界里的个人信息,比特币保护了使用者的隐私。
通过非对称加密,用户可以不用出示密钥就可以证实自己是该密钥的持有者。因此提供了一个安全的不用信赖任何第三方(对比银行,你必须信赖它不把你的账号密码泄漏出去)的方式发起一笔交易。
因为比特币是开放的,意味着任何人都可以攻击比特币网络。通过控制区块的难度,使比特币网络免疫于大部分的攻击除非攻击者获取了接近全网51%的算力。而矿工们是比特币网络的保护者,比特币通过区块奖励和交易费的方式激励他们贡献出自己的cpu,组成巨大的算力屏障,使得任何组织或个人想要发起51%算力攻击都成为不可能。