主页 > imtoken新版本下载 > 比特币如何运作

比特币如何运作

imtoken新版本下载 2023-01-17 09:34:19

我们知道,为了解决交易信用问题,提高交易效率,比特币应运而生。比特币的运行机制是什么?

首先,比特币是基于区块链的分布式账本,也就是说,交易记录并不记录在一个中心节点(用户)上,而是所有参与的节点都会持有这样一个交易记录账本(手动一份),每一笔交易在比特币世界中发生的事情最终会通过某种机制通知所有节点并写入他们的账本。

因为所有节点都持有一个交易账本,所以一个节点试图篡改交易信息(比如拒绝交易)是徒劳的,因为在比特币世界中,大多数节点记录的都是真相,除非你篡改了账本网络中大部分节点的信息,但这需要你付出惊人的代价。

交易成本

有的同学可能会好奇。如果一个事务发生,需要同步到所有节点,那么事务时间不会很高。

确实,使用比特币发起的交易至少需要 1 个小时才能最终确定是否成功,而主要的耗时都花在了数据传输和共识上。

数据传输

比特币技术风险_比特币是区块链的底层技术_比特币的技术瓶颈在哪里

比特币基于区块链技术。所有交易都存储在块中。在比特币中,区块大小限制为 1M,每 10 分钟仅生成 1 个区块。

我们以 0.25KB 的事务计算,平均可以打包 1024Kb/0.25Kb/10Min/60s = 6.826 个事务/秒,也就是说大约处理了 7 个事务每秒,与VISA的平均每秒50,000笔交易,以及支付宝每秒25.6w笔交易的峰值相比,差距不是一二。

为什么是1M

比特币首次发布时,交易量很少。当时认为一个1M的块就够用了,但如果太大,会影响其在网络上的传播。

1M的限制也不是不可能扩大的。目前,1MB的限制已经成为比特币高效交易的瓶颈,扩容也被提上了日程。目前的一个改进方案是BIP101:首先将块大小限制增加到8MB,然后每次将块大小增加到8MB。两年内上限翻倍,直到每​​个区块达到上限8GB比特币的技术瓶颈在哪里,之后每秒交易数为8*1024*1024/0.25/60/10 = 5. 60,000 笔交易/秒,不逊于现在。当然,它还需要节点所在网络的带宽(可以快速传输 8GB 块)。

达成共识

当 A 向 B 支付 1 个比特币时,A 首先需要通过比特币钱包构建相应的交易记录,然后将这个交易记录广播到网络。

比特币的技术瓶颈在哪里_比特币技术风险_比特币是区块链的底层技术

在比特币系统中,有一个角色叫矿工。任何人都可以无条件成为矿工。矿工会专门监控网络中的交易信息。交易信息一旦被捕获,就会被放到内存中的一个临时交易池中。在合适的时间从临时交易池中选择一部分交易信息,打包成一个区块:

一个块包含一个块头和一个块体。块体主要包含一些交易列表信息。区块头包含版本号、随机数、前一个区块的编号以及区块体中交易列表的默克尔树。根哈希值、难度值等,块头总大小为 80 字节。

矿工必须不断改变区块头中的随机数,以便

SHA256(SHA256(区块头)) < 难度值

为了使上述不等式成立,需要进行大量计算。事实上,这个计算是矿工的主要工作,也被称为“挖矿”。

一旦矿工完成计算,会立即广播该区块,通知其他矿工挖到了一个区块。其他矿工收到区块后,会验证该区块的合法性(是否符合上述不等式),一旦验证成功,该矿工将停止其挖矿工作,然后将该区块置于所有区块的末尾。之前收到的区块(让每个区块形成一条链,所以叫区块链),将你临时交易池中的交易和区块中的交易进行比较,去掉相同的部分(因为已经被别人挖了),然后进行新一轮的挖矿工作,即从交易中将一个区块重新打包到矿池中,再次进行挖矿。

比特币技术风险_比特币是区块链的底层技术_比特币的技术瓶颈在哪里

所谓共识,就是你挖的区块已经被大部分矿工认可,加入到自己的区块链中。

分叉问题

假设你是一名矿工,一开始你记录的区块链(主链)如下图所示:

这时候你同时收到两个区块,一个来自中国的矿工,一个来自美国的矿工,两个区块都是有效的,所以你把两个区块链接到主链上:

可以看出区块链是分叉的,这个分叉问题怎么解决呢?

比特币技术风险_比特币是区块链的底层技术_比特币的技术瓶颈在哪里

分叉后,有的矿工会基于“来自中国的区块”继续挖矿,有的会继续挖另一个区块,最终会导致两个分支不同程度的延伸。该分支将成为主分支!

一般在扩展六个区块后,很难保持两个分支的长度一致,所以比特币交易的最终确认至少需要挖出六个区块(6个确认)。一个区块,所以交易的确认需要1个多小时!

双花问题

假设我们只有 1 个比特币,但是​​我们可以构建两个交易,每个交易花费 1 个比特币。如果两笔交易都能成功确认,我们认为“双花攻击”已经成功进行。

为了进行双花攻击,我们可以将第一笔交易广播给一半的网络,将第二笔交易广播给另一半,假设双方正好有两个矿工几乎同时挖出包含我们交易的区块,并将区块发布到周围的节点,然后该块将分叉:

但考虑到比特币有6个确认,最后只剩下一个分支,所以这种方法是不可行的。

比特币是区块链的底层技术_比特币的技术瓶颈在哪里_比特币技术风险

但是,我们可以使用另一种方案,首先将第一笔交易广播到网络,假设第一笔交易被打包为一个块并传递了 6 次:

为了确认第二笔交易,您需要至少分叉 6 个区块:

只有当交易 2 所在分支的长度 > 区块 1 所在分支的长度时,你的交易 2 才能被确认。其实这是一件很困难的事情,假设你的算力占据了全网的1/100,那么交易2被确认的概率是1/100的6次方,概率几乎是0,而且是一个奢侈品本身就拥有全网1/100的算力。

所有的交易都记录在自己的电脑里比特币的技术瓶颈在哪里,交易量会很大吗?

因为比特币每10分钟产生一个区块,并且每个区块是按照1M计算的,那么从2009年至今,总共有:9(年)*365(天)*24(小时)*60(分钟) / 10(分钟) / 1024(M) ≈ 462G

如果记录所有包含所有交易的区块,估计会太多,但是目前使用的是默克尔树,它允许我们在区块中只存储区块头(类似于只存储目录),所以虽然比特币已经发生了数千万的交易,但是每个节点存储的账本信息还是非常少的。