主页 > imtoken最新安卓版本下载 > 比特币技术分析

比特币技术分析

imtoken最新安卓版本下载 2023-01-17 01:08:40

内容

背景

比特币(BitCoin,BTC)是中本聪在2009年提出的基于区块链技术的数字货币实现;比特币网络是历史上第一个经过长期大规模测试的数字货币系统。根据中本聪的思想设计和发布的开源软件以及建立在其上的P2P网络。比特币是一种 P2P 形式的数字货币。点对点传输意味着去中心化的支付系统。

第一个区块称为创世区块或创世区块

兑换价格网站:

历史上,在自然和人为因素的干预下,货币的形态经历了多个演化阶段,包括实物货币、金属货币、替代货币、信用货币、电子货币、数字货币等。

当前货币的问题

“目前无论是货币形式还是信用卡形式,都需要额外的支持机构(如银行)来完成生产、流通、管理等操作。”中心化的结构带来了便利在管理和监督方面,但在系统安全方面存在很大挑战,伪造、信用卡诈骗、盗窃、转让等安全事件屡见不鲜。”

比特币技术原理

相关原理与设计

比特币网络是一个分布式的点对点网络。网络中的矿工通过“挖矿”完成交易记录的记账过程比特币技术原理,维护网络的正常运行。

区块链网络提供了一个公开可见的账本,它不是用来记录每个账户的余额,而是记录已经发生的交易的历史信息。这种设计可以避免重放攻击,即合法交易被多次重发造成的攻击。<​​/p>

基本交易流程

比特币中没有账户的概念。因此,每次交易发生时,用户都需要将交易记录写入比特币网络账本,待网络确认后,即可认为交易完成。

除了通过挖矿获得奖励的 coinbase 交易外,只有输出。在正常情况下比特币技术原理,每笔交易都需要包括几个输入和输出。未使用(引用)的交易(Unspent Transaction Outputs,UTXO)的输出可以被新交易作为其合法输入来引用。使用的已用交易输出 (STXO) 不能作为有效输入引用。 【一笔一笔的交易记录在比特币的区块链账本中】

因此,比特币网络中的合法交易必须是一个UTXO(必须属于付款人才能被合法引用)作为新交易的输入,并生成一个新的UTXO(将属于收款人)。

那么,在交易过程中,付款人如何证明他引用的UTXO是合法的呢?在比特币中,它是通过“签名脚本”来实现的,并指定了一个“输出脚本”来限制未来可以使用新UTXO的人只能是指定的收款人。对于每笔交易,付款人都需要签字确认。而且,对于每一笔交易,总投入不能小于总产出。总输入相对于总输出的超出部分称为交易费用(Transaction Fee),由生成包含交易的区块的矿工获得。目前规定每笔交易的交易手续费不能低于0.0001 BTC。交易费用越高,愿意包含交易的矿工就越多,交易也会越早进入网络。交易费用不仅可以奖励矿工,还可以保护网络免受大量攻击。

一笔交易中最小的金额单位是“Satoshi”,也就是一亿分之一(10^-8)比特币。

比特币技术原理

p>

重要概念帐户/地址

比特币采用非对称加密算法。用户保留自己的私钥,签署和确认自己的交易,并公开自己的公钥。

比特币的账户地址实际上是一个160位(20字节)的字符串,由用户的公钥经过一系列Hash(先HASH160,或者SHA256,再RIPEMD160)和编码操作)生成。

一般来说,账户地址字符串往往采用Base58Check编码,并增加一个前导字节(表示支持哪种脚本)和一个4字节的校验字节,以提高可读性和准确性。

交易

交易是完成比特币功能的核心概念。一笔交易可能包含以下信息:

网络中的节点收到交易信息后会进行以下检查:

比特币技术原理

所有检查都通过,然后交易被标记为合法的未确认交易并在网络内广播。

交易脚本

脚本(Script)是保证交易完成的核心机制(主要用于检查交易是否合法)。它在附加事务发生时触发。通过脚本机制而不是硬编码的交易过程,比特币网络实现了一定的可扩展性。比特币脚本语言是一种非图灵完备语言,类似于 Forth 语言。

一般来说,每笔交易包括两个脚本:负责输入的解锁脚本(scriptSig)和负责输出的锁定脚本(scriptSig)。 scriptPubKey)。

输出脚本一般由付款人设置,用于锁定交易,用于授权可以使用交易输出的对象(收款人)(例如,花费交易的输出)。控制,例如限制公钥的所有者花费交易。

声明脚本用于证明能够满足交易输出脚本的锁定条件,即输出一笔交易(比特币)的所有权。

输出脚本目前支持两种:

方块

比特币区块链的一个区块不能超过1MB,主要包括以下内容:

比特币技术原理

其中,区块头信息非常重要,包括:

可见,要检查区块链的完整性,只需要检查每个区块的区块头信息就足够了,不需要获取具体的交易内容,这也是简单支付验证的基本原理(SPV)。另外,通过header中的链接,在增加block数量的同时提供时序关系。数据Spend难以篡改。

共识机制

传统的共识问题往往考虑在相对封闭的分布式系统中,允许正常节点和故障节点同时存在,如何快速达成共识。

对于比特币网络来说,它是完全开放的,可能会面临各种攻击情况。同时,基于互联网的网络质量只能保证“尽力而为”,从而导致问题更加复杂。在这种情况下,传统的一致的性行为算法很难使用。

因此,比特币网络不得不对共识的目标和过程施加一系列限制,并提出基于工作量证明(PoW)的共识机制。

首先不是达成最终确认的共识,而是基于概率的共识,随着时间的推移逐渐加强确认。现有结果理论上是可以推翻的,但攻击者的成本随时间呈指数增长,被推翻的概率呈指数下降。

此外,鉴于互联网的规模,达成共识的时间相对较长。根据区块(一组交易)执行定期确认(快照),以提高网络的整体可用性。

最后,限制网络中共识的噪音。通过进行大量的 Hash 计算和少量的合法结果来限制合法提议的数量,进一步提高网络中共识的稳定性。

比特币技术原理

挖矿的基本原理

要了解比特币,你应该知道的最重要的概念之一是“挖矿”。挖矿是节点参与维护比特币网络,并通过协助生成新区块获得一定数量新增比特币的过程。

当用户向比特币网络发布交易时,需要有人确认交易,形成新的区块,并将其连接到区块链。在互不信任的分布式系统中,谁应该这样做?比特币网络使用“挖矿”来解决这个问题。

目前,每10分钟左右产生一个大小不超过1MB的区块(记录这10分钟内发生的已验证交易的内容),连接到最长链的尾部,每个区块的成功提交区块者可获得系统奖励 12.5 个比特币(此奖励作为区块内的第一笔交易,只能在一定数量的区块后使用),以及用户的支付附加交易服务费。即使没有任何用户交易,矿工也可以自行生成合法区块并获得奖励。

每个区块的奖励最初是50比特币,每210,000个区块自动减半,即4年,最终比特币总数稳定在2100万。因此,比特币是一种通缩货币。

挖矿过程

挖矿的具体过程是:参与者结合上一个区块的hash值,产生上一个区块后新的验证交易内容,再加上自己猜的一个随机数X,打包成一个候选新区块,使得新区块的哈希值小于比特币网络中的给定数字。这是所有矿工的“计算问题”。数字越小越难计算。

系统会根据上一周期的挖矿时间,每两周(即2016个区块后)调整挖矿难度(通过调整限额数),调整出块时间稳定在10分钟左右为避免震荡,每次调整最大幅度为4次。史上最快出块时间不到10s,最慢出块时间超过1小时。

为了挖矿,参与处理区块的用户往往需要花费大量的时间和算力。计算能力一般以每秒进行多少次Hash计算为单位,记为h/s。目前,比特币网络的峰值算力已经达到每秒百亿次。

汇丰银行分析师 Anton Tonev 和 Davy Jose 表示,比特币区块链(通过挖矿)提供了一个部分的、迄今为止最好的解决方案:如何在去中心化系统中验证信任。这意味着区块链从本质上解决了依赖第三方的传统问题,因为该协议不仅满足了中心化机构追踪交易的需求,还实现了陌生人之间的信任。区块链的技术和安全流程可以在没有受信任第三方的情况下实现陌生人之间的信任。