比特币的设计机制 比特币共识机制

发布时间:2026-01-17 16:48:07 浏览:3 分类:比特币资讯
大小:509.7 MB 版本:v6.141.0
欧易官网正版APP,返佣推荐码:61662149

一、比特币机制研究

现今世界的电子支付系统已经十分发达,我们平时的各种消费基本上在支付宝和微信上都可以轻松解决。但是无论是支付宝、微信,其实本质上都依赖于一个中心化的金融系统,即使在大多数情况这个系统运行得很好,但是由于信任模型的存在,还是会存在着仲裁纠纷,有仲裁纠纷就意味着不存在不可撤销的交易,这样对于不可撤销的服务来说,一定比例的欺诈是不可避免的。在比特币出来之前,不存在一个不引入中心化的可信任方就能解决在通信通道上支付的方案。

比特币的强大之处就在于:它是一个基于密码学原理而不是依赖于中心化机构的电子支付系统,它能够允许任何有交易意愿的双方能直接交易而不需要一个可信任的第三方。交易在数学计算上的不可撤销将保护提供不可撤销服务的商家不被欺诈,而用来保护买家的程序化合约机制也比较容易实现。

假设网络中有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设计还有一个技术上的理由,这种特别的数据结构可以让双重花费更容易验证。对比一下:

二、比特币是怎么开采出来的

比特币是利用电脑,下载专用的比特币运算工具挖出来的,它是依据特定算法,通过大量的计算产生的,它的本质是一堆复杂算法所生成的特解,而挖比特币的过程就是通过庞大的计算量去不断地寻求这个方程组的特解。

拓展资料:

1.任何较早接触过互联网的人都应该知道比特币,这是区块链技术的产物。比特币概念由中本聪于2008年11月1日首次提出,并于2009年1月3日正式诞生。根据中本聪的思想,我们设计并发布了开源软件,并在此基础上构建了P2P网络。比特币是一种P2P形式的虚拟加密数字货币。点对点传输意味着分散的支付系统。

2.与所有货币不同的是,比特币并不依赖于特定的货币机构来发行,它是根据特定的算法通过大量计算产生的。比特币经济使用一个由整个P2P网络中的多个节点组成的分布式数据库来确认和记录所有交易,并使用密码设计来确保货币流通各个环节的安全。P2P的去中心化性质和算法本身确保了货币价值不会被比特币的大规模生产人为操纵。基于密码学的设计允许比特币只有真正的所有者才能转移或支付。这也确保了货币所有权和流通交易的匿名性。比特币与其他虚拟货币最大的不同之处在于,其总量非常有限,稀缺性很强。

3.比特币创始人中本聪(Satoshi Nakamoto)设立了奖励机制,因为比特币只是一串数字代码,如果你想得到它,需要利用电脑上的计算能力来计算出一组符合一定规则的数字。谁找到这串数字,谁就会产生一个区块,相应地就会得到比特币,谁计算的区块越多,得到的比特币肯定也就越多。由于比特币这种特殊的挖掘形式,其主要来源是计算机CPU的计算能力,从而催生了庞大的矿机产业。采矿实际上是矿工之间的竞争,计算能力更强的矿工更有可能挖掘比特币。

三、科普:什么是比特币

1.比特币是一种P2P方式的加密货币

2.比特币是一种去中心化的资产

3.比特币经过挖矿取得

4.比特币是中本聪创立

5.比特币是经过记账保证资产平安

6.关于挖矿

7.各个国度比照特币的态度

8.比特币的缺陷

自己接触数字货币也有几年了,比照特币的理解也不能说有多么的深化。我将尽我所能把什么是比特币写分明,用小白能明白的文字来表述比特币。

假如有错的中央还望不吝赐教

1.比特币的由来

比特币的由来这里就必需要提到一个人:中本聪。中本聪是比特币的开创人,但是关于谁是中本聪直到我写这边文章的时分,依然是一个未解之谜。

倒是有很多自称是中本聪的人,但是一个个都禁不起琢磨。目前知名度最高的一个人是"澳本聪",由于人在澳大利亚,所以大家给他取了一个略带

挖苦意味的名字。

先借用一下百度百科上面的引见:

比特币(Bitcoin)的概念最初由中本聪在2008年11月1日提出,并于2009年1月3日正式降生。依据中本聪的思绪设计发布的开源软件以及建构其上的P2P网络。比特币是一种P2P方式的虚拟的加密数字货币。点对点的传输意味着一个去中心化的支付系统。

与一切的货币不同,比特币不依托特定货币机构发行,它根据特定算法,经过大量的计算产生,比特币经济运用整个P2P网络中众多节点构成的散布式数据库来确认并记载一切的买卖行为,并运用密码学的设计来确保货币流通各个环节平安性。P2P的去中心化特性与算法自身能够确保无法经过大量制造比特币来人为操控币值。基于密码学的设计能够使比特币只能被真实的具有者转移或支付。这同样确保了货币一切权与流通买卖的匿名性。比特币与其他虚拟货币最大的不同,是其总数量十分有限,具有极强的稀缺性。

我对上面的文字解释一下:

【P2P】网络是点对点,再文言一点是个人对个人的意义。

中心化:普通的像支付宝这样的系统是中心化系统,一切信息都控制在支付宝公司的效劳器中。

去中心化:就是没有一个中心化的系统。网络中的一切个体都对这个账本都有完好的记载。这里有个关键词【账本】。

什么是账本?比特币的一切转账挖矿信息加起来是一个账本。账本就是数据的意义。比特币网络中的每一台效劳器都有完成的比特币转账记载【账本】。

什么是转账?假如你有一个比特币钱包,并且有比特币资产,那么你就能够转账到另一个地址。每个地址都是特有的不反复的。就像支付宝账号,但是地址并不记载个人信息,所以转账是匿名的不可查的。但是转账记载【账本】是公开的可查。

什么是钱包?你能够了解是一个软件。目前用的做多的是imtoken,用imtoken你能够生成本人的比特币账号【地址】。然后他人就能够给你转账。钱包并不是中心化的东西。钱包生成的私钥才是最重要的数据。你能够用私钥导入到其他钱包。留意密码,密码遗忘就不可找回。就无法转账。目前比特币总量1800多万。但是有可能比特币丢失了,比方私钥没有了。所以一定要保管好你的私钥。

2.如何取得比特币

获取比特币的办法目前有2种

1.用电脑挖矿

比特币的产生就是挖矿而来,挖矿文言文就是:用电脑运转特定软件来运算数据,算对了就给你比特币奖励。挖矿需求高端显卡,挖矿设备首先就是根绝NV显卡。挖矿肯定是用显卡挖矿。挖矿设备的整体构造和普通PC机器不一样的中央就是显卡数量。当然你也能够用家用的电脑来挖矿感受一下。详细的挖矿教程这里不做引见。

2.购置

购置相对就简单不少。但是目前市面上买卖所成百上千家,优劣不齐。选择的时分要谨慎。要选排名靠前的买卖所。这里引见几个大型买卖所:火币,币安。这两个曾经能够满足你的一切需求。

3.比特币寄存在哪

比特币能够寄存在恣意一个数据存储介质里,包括手机、U盘、挪动硬盘、电脑等。比特币在停止买卖的时分,只需求运用比特币买卖软件发送比特币地址即可。比特币软件能够自动生成地址,同时在生成地址时不需求联网。比特币地址和私钥是成对呈现的,他们的关系就像银行卡号和密码。比特币地址是用来记载你在该地址上有几比特

4.比特币的价值所在

比特币的价值十分大。说几点适用的价值。

1.去中心化的货币,没人能够随意冻结你。不用担忧哪个国度冻结你的资产

2.隐秘的买卖购置东西只需转账比特币,没人能够查到你。其中的美好能够自行想象

3.升值潜力总量2100W,假如成世界货币。价值难以估量。目前比特币价值:6700美圆(2020年3月25日数据)

主要价值在上面几点,曾经是充溢无限想象

5.如何买卖比特币

能够在买卖平台买卖,比方上面提到的买卖所。

买卖所分为中心化买卖所,和去中心化买卖所。比照来说中心化买卖所便当很多。事实也是这样,去中心化买卖所的买卖量很少。

6.关于挖矿

比特币是由挖矿产生的。但是目前个人电脑想挖矿的话难度真的不是普通的大。由于比特币全网的运算水准在不时的呈指数级别上涨,单个设备或少量的算力都无法在比特币网络上获取到比特币网络提供的区块奖励。在全网算力提升到了一定水平后,过低的获取奖励的概率。所以不是说你挖就能挖到的。就比方个人电脑你挖个十天半个月收获的数量极极大约率还是0.

这里就不得不说一下【矿池】

过低的获取奖励的概率,促使一些“bitcointalk”上的极客开发出一种能够将少量算力兼并结合运作的办法,运用这种方式树立的网站便被称作“矿池”(Mining Pool)。

在此机制中,不管个人矿工所能运用的运算力多寡,只需是透过参加矿池来参与挖矿活动,无论能否有胜利发掘出有效材料块,皆可经由对矿池的奉献来取得少量比特币奖励,亦即多人协作挖矿,取得的比特币奖励也由多人按照奉献度分享。

所以说过你个人想体验挖矿的话,参加一个大型矿池是一个十分不错的主见。

7.各个国度比照特币的态度

友好的国度:日本,澳大利亚,韩国,新加坡等

日本是第一个使比特币合法化的国度,并赋予了其法定货币位置。

澳大利亚是继日本之后的第二个比照特币友好的国度,在2017年宣布比特币和加密货币为法定货币。

韩国买卖所也占比特币总买卖量的10%以上,世界上吸收比特币买卖量最大的一些买卖来自韩国,这一事实自身就阐明了该国比照特币的友好态度。

新加坡的比特币不被视为货币,但被视为商品。因而,需求支付商品及效劳税。

不友好的国度:中国,孟加拉,卡塔尔等

中国在94的时分取消了一切境内买卖所,并明文制止买卖比特币行为。

在孟加拉买卖比拟币的话有可能会被拘捕

卡塔尔,阿富汗这样是神权国度在宗教上被以为是非法的

8.比特币的缺陷

1.比特币系统目前来看曾经相当的强健平安。但是并不是不可窜改的。有数据标明,破费几十万美圆购置算力,就可能使比特币网络的买卖发作窜改。由于比特币买卖的正确性

是有算力来决议的。假如攻击方的算力占领超越50%那么就有可能窜改相关的转账信息。历史上也发作了这样的事情,固然不是攻击的比特币。攻击的是ETC,但是这也证明了

BTC并不是无懈可击的系统。

2.比特币转账很慢,假如运用人数少的话能够很快的转账,但是转账用户多了之后会形成网络的阻塞。目前转账比特币的时间是以小时来计算。

3.比特币的算力如今由少局部人控制。这背叛了中本聪的初衷,少局部控制也就意味着中心化,而中本聪的初衷是去中心化系统。