❶ 比特币为什么需要消耗大量计算
大量计算,是为了检测一个矿池的运算速度。运算速度越高,越有可能夺得记账权,也就是交易流水的打包。为什么要争夺记账权呢?因为记账的同时,能获得新挖出来的币。运算速度越高,意味着矿场的投入成本越大,或者该矿池内包含的矿工越多。就像选总统,谁花费的钱最多,或者谁背后的支持者最多,谁就应该当总统。当上总统后,也要诚实的做事,如果不诚实,民众一样能把这个总统废掉。
更深层的意义是:诚实的矿池运算速度越高,那么伪造比特币的那个矿池需要的运算速度更高才行。如果他投入了血本挖矿,却在造假币,万一大家都不承认(大家一定会拒绝假币的),他岂不是血本无归?还不如老老实实的挖真币。这样还能收回成本。
❷ 比特币机器是怎么运转的
很多朋友对于比特币的算力比特币的矿机矿场以及挖矿的回报率都是比较陌生的,下面我们就详细科普一下比特币以及区块链记录之间的运行机制。首先解释一下什么叫区块链?我们可以把它看成是分布式的账本以及构成的一个相对应的信用网络,在这个网络中每个人的言行举止都可以记录在链上,并且支持验证和回溯调查,多个链组合在一起就形成了区块,而负责把这个信息记录在链上的我们把它称之为矿工。
所以看到这里,相信大家也就能够理解什么是比特币的算力,什么是比特币的挖矿?另外提一句,当前的矿场基本上已经被大机构所垄断,或者说所谓的入门门槛非常之高,没有几百万元的投资或者上千万的投资,基本上在当前的比特币挖矿行业中都属于散户,而散户矿工经常会因为算力波动较大以及电费成本的上升入不敷出而放弃挖矿。
❸ 比特币机制研究
现今世界的电子支付系统已经十分发达,我们平时的各种消费基本上在支付宝和微信上都可以轻松解决。但是无论是支付宝、微信,其实本质上都依赖于一个中心化的金融系统,即使在大多数情况这个系统运行得很好,但是由于信任模型的存在,还是会存在着仲裁纠纷,有仲裁纠纷就意味着不存在 不可撤销的交易 ,这样对于 不可撤销的服务 来说,一定比例的欺诈是不可避免的。在比特币出来之前,不存在一个 不引入中心化的可信任方 就能解决在通信通道上支付的方案。
比特币的强大之处就在于:它是一个基于密码学原理而不是依赖于中心化机构的电子支付系统,它能够允许任何有交易意愿的双方能直接交易而不需要一个可信任的第三方。交易在数学计算上的不可撤销将保护 提供不可撤销服务 的商家不被欺诈,而用来保护买家的 程序化合约机制 也比较容易实现。
假设网络中有A, B ,C三个人。
A付给B 1比特币 ,B付给C 2比特币 ,C付给A 3比特币 。
如下图所示:
为了刺激比特币系统中的用户进行记账,记账是有奖励的。奖励来源主要有两方面:
比特币中每一笔交易都会有手续费,手续费会给记账者
记账会有打包区块的奖励,中本聪在08年设计的方案是: 每10分钟打一个包,每打一个包奖励50个比特币,每4年单次打包的奖励数减半,即4年后每打一个包奖励25个比特币,再过四年后就奖励12.5个比特币... 这样我们其实可以算出比特币的总量:
要说明打包的记录以谁为准的问题,我们需要引入一个知名的 拜占庭将军问题 (Byzantine failures)。拜占庭将军问题是由莱斯利·兰伯特提出的点对点通信中的基本问题。含义是在存在消息丢失的不可靠信道上试图通过消息传递的方式达到一致性是不可能的。
假设有9个互相远离的将军包围了拜占庭帝国,除非有5个及以上的将军一起攻打,拜占庭帝国才能被打下来。而这9个将军之间是互不信任的,他们并不知道这其中是否有叛徒,那么如何通过远距离协商来让他们赢取战斗呢?
口头协议有3个默认规则:
1.每个信息都能够被准确接收
2.接收者知道是谁发送给他的
3.谁没有发送消息大家都知道
4.接受者不知道转发信息的转发者是谁
将军们遵循口头规则的话,那就是下面的场景:将军1对其他8个将军发送了信息,然后将军2~9将消息进行转达(广播),每个将军都是消息的接受者和转发者,这样一轮下来,总共就会有9×8=72次发送。这样将军就可以根据自己手中的信息,选择多数人的投票结果行动即可,这个时候即便有间谍,因为少数服从多数的原则,只要大部分将军同意攻打拜占庭,自己就去行动。
这个方案有很多缺点:
1.首先是发送量大,9个将军之间要发送72次,随着节点数的增加,工作量呈现几何增长。
2.再者是无法找出谁是叛徒,因为是口头协议,接受者不知道转发信息的转发者是谁,每个将军手里的数据仅仅只是一个数量的对比:
这里我们假设有3个叛徒,在一种最极端的情况下即叛徒转发信息时总是篡改为“不进攻”,那么我们最坏的结果就如上图所示。将军1根据手里的信息可以推出要进攻的结论,却无法获知将军里面谁是叛徒。
这样我们就有了方案二:书面协议。
书面协议即将军在接受到信息后可以进行签字,并且大家都能够识别出这个签字是否是本人,换种说法就是如果有人篡改签字大家可以知道。书面协议相对比口头协议就是增加了一个认证机制,所有的消息都有记录。一旦发现有人所给出的信息不一致,就是追查间谍。
有了书面协议,那么将军1手里的信息就是这样的:
可以很明显得看出,在最坏的一种情况——叛徒总是转发“不进攻”的消息之下,将军7、8、9是团队里的叛徒。
这个方案解决了口头协议里历史信息不可追溯的问题,但是在发送量方面并没有做到任何改进。
在我们的示例中,比特币系统里的每个用户发起了一笔交易,都会通过自己的私钥进行签名,用数学公式表示就是:
所以之前的区块就变成了这样:
这样每一笔交易都由交易发起者通过私钥进行数字签名,由于私钥是不公开的,所以交易信息也就无法被伪造了。
如书面协议末尾所说的那样,书面协议未能解决信息交流过多的问题。当比特币系统中存在上千万节点的时候,如果要互相广播验证,请求响应的次数那将是一个非常庞大的数字,显然势必会造成网络拥堵、节点处理变慢。为了解决这个问题,中本聪干脆让整个10分钟出一个区块,这个区块由谁来打包发出呢?这里就采用了工作量证明机制(PoW)。工作量证明,说白了就是解一个数学题,谁先解出来数学题,谁就能有打包区块的权力。换在拜占庭将军的例子中就是,谁先做出数学题,谁就成为将军们里面的总司令,其他将军听从他发号的命令。
首先,矿工会将区块头所占用的128字节的字符串进行两次sha256求值,即:
这样求得一个值Hash,将其与目标值相比对,如果符合条件,则视为工作量证明成功。
工作量证明成功的条件写在了区块链头部的 难度数 字段,它要求了最后进行两次sha256运算的Hash值必须小于定下的目标值;如果不是的话,那就改变区块头的 随机数 (nonce),通过一次次地重复计算检验,直到符合条件为止。
此外, 比特币有自己的一套难度控制系统,使得比特币系统要在全网不同的算力条件下,都保持10分钟生成一个区块的速率。这也就意味着:难度值必须根据全网算力的变化进行调整。难度调整的策略是由最新2016个区块的花费时长与期望时长(期望时长为20160分钟即两周,是按每10分钟一个区块的产生速率计算出的总时长)比较得出的,根据实际时长与期望时长的比值,进行相应调整(或变难或变易)。也就是说,如果区块产生的速率比10分钟快则增加难度,比10分钟慢则降低难度。
PoW其实在比特币中是做了以下的三件事情。
这样可以防止一台高性能机器同时跑上万个节点,因为每完成一个工作都要有足够的算力。
有经济奖励就会加速整个系统的去中心化,也鼓励大家不要去作恶,要积极地按照协议本来的执行方式去执行。(所以说,无币区块链其实是不可行的,无币区块链一定导致中心化。)
也就是说,每个节点都不能以自身硬件条件去控制出快速度。现在的比特币上平均10分钟出一个块,性能再好的机器也无法打破这个规则,这就能够保证 区块链是可以收敛到共同的主链上的 ,也就是我们所说的共识。
综上,共识只是PoW三个作用中的一点,事实上PoW设计的作用有点至少有这么三种。
默克尔树的概念其实很简单,如图所示
这样,我们区块的结构就大致完整了,这里分成了区块头和区块体两部分。
区块链的每个节点,都保存着区块链从创世到现在的每一区块,即每一笔交易都被保存在节点上,现在已经有几百个GB了。
每当比特币系统中有一笔新的交易生成,就会将新交易广播到所有的节点。每个节点都把新交易收集起来,并生成对应的默克尔根,拼接完区块头后,就开始调整区块头里的随机数值,然后就开始算数学题
将算出的result和网络中的目标值进行比对,如果是结果是小于的话,就全网广播答案。其他矿工收到了这个信息后,就会立马放下手里的运算,开始下一个区块的计算。
举个例子,当前A节点在挖38936个区块,A挖矿节点一旦完成计算,立刻将这个区块发给它的所有相邻节点。这些节点在接收并验证这个新区块后,也会继续传播此区块。当这个新区块在网络中扩散时,每个节点都会将它作为第38936个区块(前一个区块为38935)加到自身节点的区块链副本中。当挖矿节点收到并验证了这个新区块后,它们会放弃之前对构建这个相同高度区块的计算,并立即开始计算区块链中下一个区块的工作。
整个流程就像下一张图所展示的这样:
简单来说,双花问题是一笔钱重复花了两次。具体来讲,双花问题可分为两种情况:
1.同一笔钱被多次使用;
2.一笔钱只被使用过一次,但是通过黑客攻击或造假等方式,将这笔钱复制了一份,再次使用。
在我们生活的数字系统中,由于数据的可复制性,使得系统可能存在同一笔数字资产因不当操作被重复使用的情况,为了解决双花问题,日常生活中是依赖于第三方的信任机构的。这类机构对数据进行中心化管理,并通过实时修改账户余额的方法来防止双重支付的出现。而作为去中心化的点对点价值传输系统,比特币通过UTXO、时间戳等技术的整合来解决双花问题。
UTXO的英文全称是 unspent transaction outputs ,意为 未使用的交易输出 。UTXO是一种有别于传统记账方式的新的记账模型。
银行里传统的记账方式是基于账户的,主要是记录某个用户的账户余额。而UTXO的交易方式,是基于交易本身的,甚至没有账户的概念。在UTXO的记账机制里,除了货币发行外,所有的资金来源都必须来自于前面某一个或几个交易。任何一笔的交易总量必须等于交易输出总量。UTXO的记账机制使得比特币网络中的每一笔转账,都能够追溯到它前面一笔交易。
比特币的挖矿节点获得新区块的挖矿奖励,比如 12.5 个比特币,这时,它的钱包地址得到的就是一个 UTXO,即这个新区块的币基交易(也称创币交易)的输出。币基交易是一个特殊的交易,它没有输入,只有输出。
当甲要把一笔比特币转给乙时,这个过程是把甲的钱包地址中之前的一个 UTXO,用私钥进行签名,发送到乙的地址。这个过程是一个新的交易,而乙得到的是一个新的 UTXO。
这就是为什么有人说在这个世界上根本没有比特币,只有 UTXO,你的地址中的比特币是指没花掉的交易输出。
以Alice向Bob进行转账的过程举例的话:
UTXO 与我们熟悉的账户概念的差别很大。我们日常接触最多的是账户,比如,我在银行开设一个账户,账户里的余额就是我的钱。
但在比特币网络中没有账户的概念,你可以有多个钱包地址,每个钱包地址中都有着多个 UTXO,你的钱是所有这些地址中的 UTXO 加起来的总和。
中本聪发明比特币的目标是创建一个点对点的电子现金,UTXO 的设计正可以看成是借鉴了现金的思路:我们可能在这个口袋里装点现金,在那个柜子角落里放点现金,在这种情况下不存在一个账户,你放在各处的现金加起来就是你所有的钱。
采用 UTXO 设计还有一个技术上的理由,这种特别的数据结构可以让双重花费更容易验证。对比一下:
❹ 硬核干货!比特币狗狗币等的原理究竟是什么
比特币实际上是一种电子货币或称为数字货币,它是一种基于密码学的加密货币。2008年一位极客化名中本聪在网上发布了一篇叫做《比特币一种点对点的电子现金系统》的文章,我们现在称之为白皮书。他在白皮中说要设计一种去中心化的电子记账系统。这个系统中所有的交易都是公开的,并且所有的用户都可以对这个账单进行记账。每十分钟产生的账单打包在一起称之为一个区块。这个区块记录完毕后,再产生新的账单时,就会产生一个新的区块,把新产生的区块并连接在这个已有的区块上称之区块链。
所以就目前世界范围来说,只有比特币和狗狗币两种虚拟币没有创始人和团队在管理。就是因为这样的特点,避免了创始人跑路造成虚拟币价值归零的可以。让比特币和狗狗币成为了最受追捧的虚拟币。
❺ 作为第一个数字货币“比特币”,它为何在股市中如此重要
比特币自2008年诞生以来,足足历经了10个年头,期间币价起伏波动非常大,从一美元1300个比特币到每个比特币价值接近2万美元。有些人借此发家致富实现财务自由,但更多的人却掉进“炒币”的泥潭里无法自拔。
比特币作为一种分布式账本,是为解决点对点交易而创造出的一种记账方式,那么以比特币为首的数字货币为何有价值?价值起伏为什么那么大?价格起伏有谁来决定?让我们一一探究其中的问题。
人们对币市价值动荡的解释,通常分为三类:1、人们对比特币心理预期;2、利好、利空消息监管政策的影响;3、大户砸盘或拉盘。
但是,这三种解释每一种都无数次地在“韭菜”们的操作中被验证为不准确,人们对比特币的心理预期通常与币市的涨跌不符,最为严重的央行等7部门发布关于防范代币发行融资风险的公告,三天之内比特币从32500元人民币高位跌至27000元左右,以太币则从2520元人民币高位跌至1890元人民币,此后缓慢上涨,但并没有像人们预测的那样全方位的崩盘。
而大户砸盘,根据区块链研究公司Chainalysis在一个新开展的研究中发现,比特币大户并非币价大幅波动的罪魁祸首。Chainalysis公司以当前持币数量最多的32枚电子钱包为观察对象,估计其持币总量为100万枚比特币,价值高达63亿美元。
❻ 竞争记账是什么
竞争记账是比特币系统的记账方式,它解决了如何在去中心化的记账系统中保证比特币账本一致性的问题,比特币系统中没有中心化的记账机构,每一个节点都有记账权,如何保证账本一致性是一个重要的问题。
在比特币网络中,全网矿工共同参与算力竞争,算力(也可以称之为挖矿速度,就是计算机每秒产生hash碰撞的能力)专高的矿工计算能力更强,更容易获得记账权,成功抢到记账权的矿工负责记账,将账本信息同步给整个网络,作为回报矿工将获得系统新生成的比特币奖励。
就好比如说,眼前有一块金山,金子总量有1000吨,但是里面夹着着很多的沙石。当只有你一个人的时候,你就很容易挖到金子,但是当挖矿的人越来属越多的时候,剩余的金子就越来越少,挖矿成本就越高。所以这时候大家比的就是挖矿速度,也就是算力!
而随着“币汇”上面比特币价格上涨,为了获得比特币,越来越多人参与竞争比特币记账权,全网算力难度呈指数级上升。
❼ 交易及记账(上) | 小白学比特币之二
在 精读「Mastering Bitcoin」1 中, 提到比特币不仅是一个 电子现金 (系统),也是一个公开的账本,这账本上记录了每笔交易的信息。用比特币交易,其实就跟我们用人民币或者美元交易买卖东西一样。作者给比特币交易行为的定义是:
那么,在比特币系统里,是以什么样的形式将这些交易记录下来的呢?
跟传统记账一样,在比特币系统中也对交易采用复式记账的方法 (double-entry bookkeeping ledger),直白点翻译就是双入口记账。复式记账,简单理解就是以下两点 [1] :
每一笔交易都要至少在两个账户上进行记录 ,在会计记账中有三个基本账户也就是资产账户、负债账户以及所有者权益账户,跟会计等式 资产(Assets) = 负债 (Liabiliteis) + 所有者权益 (Equity) 是一一对应的。那么单独每个账户又是以怎么样的方式呈现出来的呢?方法是每个账户都需要记录这个账户的debits和credits(见上图):
说完复式记账,再回到《Mastering Bitcoin》(精通比特币) ,在书中,作者给出的记账例子如下面那张截图;一笔交易中可以包含多个Input和output。这里的Input和output如何理解呢?
总结一下:
通过作者这句话, 可以看到比特币系统其实执行的是价值交易。更进一步地,可以理解为价值的输入和输出。
上笔交易和下笔交易之间会形成一个“无形的链”:
作者用一张图形象的说明了什么是“交易链”。
对于同一个地址而言,上一笔交易中的output将会作为下一笔交易的输入,这样就形成了一个交易链。
在上面的交易截图中,我们可以看到这几笔交易里有 spent 、 unspent 和 change 。 change 为找零地址,为什么会有找零地址呢?
比特币系统中的找零概念和平时用现金交易的找零概念是一样的,如果你要买一个1块钱的包子,但是你身上只有一张20块钱的纸币,这个时候就需要包子铺老板找给你19元零钱。
在比特币系统中,每一个input就相当于一定面值的纸币。如果一笔交易中只包含一个Input,为20个BTC,当这个地址向其他地址支付1个BTC时候,就需要对方找还19个BTC。不同的是,比特币不像纸币那样只有几种面值固定的纸币,比特币系统可以随时创建“新面值”。
出于保护隐私的考虑,找零地址没必要跟原先的付款地址一样,通常钱包会生成一个新的找零地址。
在真实应用中,并不会在找零地址旁边标注 change 的字样,如下图显示(截图来自blockchain.info上的某笔交易),
比特币系统可以随时创建“新面值”来用于找零,而且这“零钱”可以用于下次交易。在每个输出(output)记录里,可消费的比特币数量会被标记成 unspent ,这样的输出有一个专门的名字叫做 Unspent Transaction Outputs (UTXO)。可以把unspent的输出理解为面值不同的、可用于下次消费的纸币,就好像10元面值纸币、100元面值纸币那样。
[1] Mastering Bitcoin 第二版 https://github.com/bitcoinbook/bitcoinbook
[2] http://learnmeabitcoin.com
❽ 比特币的交易是采用什么记账
亲比特币是采用的是工作量证明机制,即PoW机制记账的哦,比特币是基于密码学的一种数字货币,旨在通过去中心化的电子记账系统,打造一个信用社会。比特币区块链的形成方式:将交易信息打包,形成一个区块,一个区块包含头部与账槐返单信息。
比特币(Bitcoin)的概念最初由中铅数饥本聪在2008年11月1日提出,并于2009年1月3日正式诞生。根据中本聪的思路设计发布的开源软件以及毕毁建构其上的P2P网络。比特币是一种P2P形式的虚拟的加密数字货币。
❾ 比特币是如何记账的
根据中本聪的思路设计发布的开源软件以及建构其上的P2P网络。比特币是一种P2P形式的虚拟的加密数字货币。点对点的传输意味着一个去中心化的支付系统。
与所有的货币不同,比特币不依靠特定货币机构发行,它依据特定算法,通过大量的计算产生,比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学的设计来确保货币流通各个环节安全性。P2P的去中心化特性与算法本身可以确保无法通过大量制造比特币来人为操控币值。基于密码学的设计可以使比特币只能被真实的拥有者转移或支付。这同样确保了货币所有权与流通交易的匿名性。比特币与其他虚拟货币最大的不同,是其总数量非常有限,具有极强的稀缺性。
比特币用分布式账本摆脱了第三方机构的制约,中本聪称之为“区块链”。用户乐于奉献出CPU的运算能力,运转一个特别的软件来做一名“挖矿工”,这会构成一个网络共同来保持“区域链”。这个过程中,他们也会生成新货币。买卖也在这个网络上延伸,运转这个软件的电脑争相破解不可逆暗码难题,这些难题包含好几个买卖数据。第一个处理难题的“矿工”会得到50比特币奖赏,相关买卖区域加入链条。跟着“矿工”数量的添加,每个迷题的艰难程度也随之进步,这使每个买卖区的比特币生产率保持约在10分钟一枚。