主页 > imtoken钱包劫持 > 区块链和比特币的基本技术原理

区块链和比特币的基本技术原理

imtoken钱包劫持 2023-08-01 05:14:51

背景

比特币的历史

自从 2009 年一个自称中本聪(是的,日本人……)的人在一个名为“比特币:一种点对点电子现金系统”的秘密密码学讨论组上发表了一篇报告后,比特币出现并获得了越来越多人们的关注。比特币的价格从最初的几美分涨到了现在的几万美元。价格大涨大跌,但价格总体呈上涨趋势。挖矿从最开始的个人电脑,到后来的矿机,再到后来的矿池,经过了几代人的发展。该政策得到了一些国家的支持,也有一些国家反对,还有一些国家对比特币态度暧昧。最有趣的是,在 2010 年 5 月 21 日,在第一笔比特币交易中,佛罗里达州程序员 Laszlo Hanyecz 用 10,000 BTC 购买了价值 25 美元的披萨券,该券最近价值数亿美元。. 这一切都见证了比特币神奇的发展史。

区块链的前世今生

虽然比特币没有得到各国政府的充分认可,也不是标准的金融机构,但比特币的挖矿活动十多年来从未停止过。比特币交易随时随地进行。成功的金融产品,从技术上讲,比特币的每一个技术点,比如:非对称密码学、P2P网络、共识机制、智能脚本等,都不是创新,但这些技术的结合才是伟大的比特币。创新。

由于比特币的成功,比特币的核心技术区块链越来越受到关注,以至于区块链被认为是互联网金融行业的下一个风口,各行各业都在研究区块链。而寻找区块链的使用场景,有一个不恰当的例子,但是很形象。区块链技术就像一把锤子,在全世界寻找钉子。我最后找到的那几颗钉子仍然是螺丝钉。它必须用螺丝刀更换,但必须用锤子砸碎。

上面的例子生动地说明了区块链技术的现状。例如,一些公司使用区块链进行存储,一些公司将区块链用于客户账户,还有一些公司使用区块链进行存储。电子资产,这些都是在寻找区块链的场景。虽然区块链还没有得到充分应用,但毫无疑问,区块链已经在金融领域崭露头角。

另一个现象是,很多公司为了炒作新概念,声称他们的产品使用了区块链。例如,某电子资产公司使用区块链。如果你仔细理解,别人使用的私链是难以置信的。私有链上链是为了提高性能,肯定不是。区块链最难的是性能,也就是安全性。私人安全在于私人产品的建设,而不在于是否使用区块链。那么私链有什么用呢?这里的读者可以自行YY。

事实上,区块链分为公有链、私有链和联盟链。公链对参与节点没有限制。整个系统运行在公共网络上,不受中央组织的控制,自由开发,自组织。典型案例是比特币;私有链,顾名思义,是在组织内部运行的区块链系统。这种系统在组织中运行,很难保证去中心化。在一个组织中,它是集中化的产物。所以,我一直认为,一切私有链都不具备去中心化的特点;联盟,这是笔者最看好的形式。

我为什么要写这篇文章

比特币系统是当下最流行的电子货币之一,山寨币也有很多,但思想甚至源代码都来自比特币。朋友圈里有很多介绍文章,也有人尝试通过漫画形象地解释比特币。但是,还是无济于事,总有一些我想不通的问题。为了弄清这些问题,我最近研究了几本比特币书籍和中本聪本人发表的比特币论文。我和你分享我的理解,我希望和你一起讨论,共同进步。

核心点

比特币原理_第三方比特币交易原理_比特币设计原理

什么是比特币

比特币是一种通过点对点技术实现的电子现金系统,它允许一个组织直接与另一个组织进行在线支付,而无需中间的权威清算机构。

在比特币的世界里,如果你想拥有比特币,你需要申请一个比特币地址,就像你在银行存款,你需要开一个账户,然后你就拥有了这个账户,拥有自己的帐户,您可以将钱存入您的帐户,其他人可以将钱转入您的帐户。当您需要取款或转账给他人时,您需要出示可以打开此地址的密钥,也就是您的私钥,就像您在 ATM 取款时需要提供相同的密码一样。

与银行发行的法币不同,法币的发行由各国中央银行管理。大家都认为央行是可靠的,不会犯错,不会被攻击。但是,比特币的发行不需要中央银行等权威机构。它允许一笔交易直接从一个机构结算到另一个机构,省去了权威机构的结算,提高了交易和结算的效率,节省了交易量。成本,尤其是跨境交易。

点对点在线交易系统如何保证交易的匿名性、正确性和不变性?以及如何防止双花,防止作弊和攻击?

以下章节将通过最通俗的语言解开比特币的奥秘,让你从逻辑上理解比特币是如何运作的,让你学习比特币不留死角,让比特币的方方面面一目了然。心里。

区块链技术的核心点

本节介绍区块链技术的核心点,包括:区块链存储、密钥和地址、解锁脚本、挖矿过程、共识机制、P2P网络等。

区块链是如何存储的?

对于现金账户系统,首先要解决的就是如何记账,记账在哪里,如何存账。例如,您在中国银行存款,中国银行为您开立账户,您的账户存储在中国银行的服务器上。如果您在中国建设银行存款,中国建设银行会为您开户,您的账户存放在中国建设银行。在银行的服务器上。如果您需要转账到别人在同一家银行的账户,您需要通过这家银行转账和结算,如果您需要转账到别人在其他银行的账户,您需要转账和结算给您通过银联,虽然普通用户无法感知这么多流程,但这些步骤确实存在。

比特币没有中心化的记账系统,而是通过分布式区块链记录比特币的所有权和交易信息。每个比特币参与者都有一个相同的区块链副本。区块链包含随时间排序的多个块。后一个块通过哈希指针指向前一个块,形成一条链。有了这个指针,可以一直找到顶端到底部的第一个块,第一个块成为创世块。每个区块记录前一个区块的哈希值,其实就是前一个节点头的哈希值。如果你想改变一个区块中包含的交易,你必须改变这个区块之后的所有交易。,由于每个块的生成都需要条件和时间,

区块链示意图如下:

比特币设计原理_第三方比特币交易原理_比特币原理

从上图可以看出,区块链是由多个区块组成的。每个区块由区块头和区块体组成。每个块头包含块的元信息,还包含指向前一个块的指针。指向区块头哈希值的指针,是防止区块链被篡改的关键信息。块体包含比特币的交易信息。第一笔交易是特殊交易,是对挖矿节点的奖励。这也是产生比特币的唯一方式,即发行比特币的方式。剩下的Transactions都是转账交易,比特币从一个地址支付到另一个地址,这是比特币价值转移的唯一途径。综上所述,比特币只有两种交易:发行和转让。比特币创建后,只能从一个人转移到另一个人,不能凭空消失。比特币的发行总量是有限的,一共2100万,所以它是一种通货紧缩的货币,我们会在相关文章中详细介绍Bitbin的通货紧缩特性。

比特币的所有者如何证明他拥有比特币?

上一节介绍了区块链的存储。区块链其实就是比特币的账本,记录了谁拥有多少比特币。但是,这个账本是存储在互联网上并且是分布式的,而不是由中央机构或服务器进行存储。对于账本,剩下的问题是比特币的所有者如何证明他拥有比特币?这就像在银行开户,当您想将钱转给其他人时,您需要在 ATM 上插入您的卡并输入您的 PIN 码。卡相当于比特币的地址,密码相当于比特币的密钥。有了正确的地址和密钥,您就可以主张自己的比特币权利并将比特币转让给他人。进行转账交易。

在自动柜员机提取一笔现金,输入密码解锁账户,我们相信自动柜员机不会泄露密码。那么在比特币的世界里,我们如何通过私钥来验证一个地址上比特币的所有权呢?

比特币的所有权是通过加密领域的技术实现的。我们先来了解一下加密领域的原理。加密领域大致经历了三个阶段。第一阶段是拼算法,把加密逻辑写得很高级。在代码中,后来才发现,无论代码写得多么复杂的逻辑,总有能破解的高手。因此,生成了对称密钥加密。对称密钥加密通过对称密钥对数据进行加密,然后传输或保存。在需要时,它通过相同的密钥解密和恢复原始数据。缺点是密钥是共享的。无法安全地存储密钥,尤其是在跨组织场景中。之后,聪明的安全科学家发明了非对称加密算法,例如:RSA。非对称算法有一对密钥,一个公钥和一个私钥。私钥可以推导出公钥,但公钥不能推导出私钥。用公钥加密的数据可以用私钥解密,用私钥加密的数据可以用公钥解密。如果组织 A 将数据传递给组织 B,则组织 A 使用公钥加密,组织 B 使用私钥解密。因此,B 组织需要小心保管私钥,而公钥是公开的。这是典型的非对称加密场景,可以有效防止数据被偷窥和篡改。非对称加密还有另一种场景,即签名。签名是加密场景的逆向场景。商户 B 用自己的私钥加密数据,然后将加密后的数据传输给商户 A。商户 A 用公钥解密。如果数据正确,则说明数据是A发送的,有效保证了数据的防篡改。从这两个场景可以看出,公钥是公开的,可以发给任何人,而私钥是私有的。解密或签名。我们可以看到公钥是公开的,可以发送给任何人,而私钥是私有的。解密或签名。我们可以看到公钥是公开的,可以发送给任何人,而私钥是私有的。解密或签名。

比特币证明所有权示意图如下:

从上图可以看出,在现实生活中,我们用钥匙开锁,用密码从ATM取款。那么在比特币系统中,我们使用秘钥来转移比特币,实现价值的转移。

更具体地说,比特币交易在一个地址上锁定一定数量的脚本,声明拥有该地址的用户将通过密钥的签名来证明他拥有该地址,然后花费比特币,比特币被花费后,它不会消失,它会被锁定在其他人的地址中,其他人可以用同样的方法来花费这个比特币。

从上面的过程中,我们总结了加锁和解锁两个动作,分别对应我们平时的加锁和解锁头,在比特币系统中通过加锁脚本和解锁脚本来实现。

锁定脚本将比特币与比特币地址相关联,证明比特币属于该地址。

解锁脚本提供了这个地址归我所有的证明,这个比特币也归我所有,我可以用它来支付。

下面我们举一个例子来详细说明:

比特币设计原理_比特币原理_第三方比特币交易原理

用户 Alice 在比特币地址 A 拥有 10 个比特币。Alice 和 Bob 想要进行交易。鲍勃把他的车卖给了爱丽丝。Alice 需要支付 Bob 10 个比特币。Bob 的比特币地址是 B。

在之前的交易中,Alice 拥有的 10 个比特币被锁定在 Alice 的比特币地址 A 中,来源可能是挖矿收益,也可能是从他人那里转移过来的。稍后我们将详细介绍如何获取比特币。在这里,我们将只关注证明 Alice 拥有比特币的交易的锁定脚本。

锁定脚本的逻辑格式为:

比特币数量来源锁定地址

10

挖矿收益

地址A

如果你想用这个锁脚本,你需要的解锁脚本如下:

解锁地址解锁

地址A

地址A的公钥,前一个区块头的哈希值与地址A的私钥的签名

具体解锁流程如下:

使用地址A的公钥推导出地址并与地址A进行比较,如果一致,则证明提供的公钥正确,进入下一步。

第三方比特币交易原理_比特币原理_比特币设计原理

使用地址 A 的公钥解密签名,如果得到的值与前一个区块的哈希值一致,则证明解锁成功,可以在该地址上花费 10 个比特币。

实际上,锁定和解锁脚本是由基于堆栈的脚本以反向波兰表示法实现的。由于本文篇幅有限,这里就不一一介绍了。锁定和解锁脚本的原理和流程将在后续文章中详细介绍。

矿业

上一节介绍了比特币使用分布式存储区块链作为记账系统,还介绍了如何申领比特币所有权和向他人支付比特币的过程。现在我们遇到了一个新问题。既然区块链是一个分布式记账系统,每个参与节点都有一份副本,那么谁负责将一笔交易记录到区块链上呢?

这就不得不引入一个新概念,即共识机制。比特币通过工作量证明的共识机制确定记账权。一般来说,谁证明自己的工作量最大,谁就负责记账。

工作量证明示意图如下:

工作量的大小通过计算满足一定标准的比特币区块头的哈希值来体现。试图争夺记账权的节点称为挖矿节点。挖矿节点会对网络节点发出的交易进行验证(网络传播机制将在下一节介绍)。经过验证后,将它们存储在缓冲区中,形成一定的交易存储结构(交易存储在 Merkle 树中,后面有各种介绍),放入块体中比特币设计原理,然后根据基本的构造块头块的信息。区块头通常包含前一个区块的哈希值。、Merkle 根(更多内容在后续文章中)、时间戳、难度目标和填充的随机值。这里的随机值是随机生成并填充的。挖矿的过程就是找一个可以填充块头的随机值,使块头的哈希值符合一定的标准,例如:哈希值的哈希值有的第一个位为0,而难度目标是用来表示哈希值标准的难度系数。通过概率算法可以计算出难度值和挖矿成功的概率。

网络上的每个矿工接收并验证一批交易,然后开始挖矿。View 计算满足一定难度值的区块头的哈希值。如果计算成功,则挖矿成功。网络广播挖矿收益后,全网节点验证通过后,区块连接到区块顶部,全网达成一致。矿机需要反复测试随机填充值才能解决。一般是生成随机数,尝试将生成的随机数填充到块头中,然后计算哈希。后续文章会介绍矿机联盟,矿机联盟会生成随机数。划分多个小区域,分配给联盟成员,

除了上面介绍的工作量证明机制之外,还有权益证明、基于份额的权益证明共识机制等,我将在共识机制专文中与大家分享。

P2P网络

前两节介绍了比特币的账户体系和记账机制。在本节中,我们将讨论比特币的分布式区块链账本是如何在网络上传输的,以及交易是如何在网络上传输和验证的。

比特币网络中的节点都是点对点的,没有中心化的服务器。节点有不同的类型,不同的类型有不同的职责。我们将在以后的文章中详细介绍它们。这里我们只介绍全节点。这就是比特币核心客户端的工作方式。

第三方比特币交易原理_比特币原理_比特币设计原理

比特币中的全节点除了存储完整的区块链外,还兼有矿工、钱包、路由节点等角色,其职责如下:

矿工:就像矿工一样,他们做体力劳动,不断尝试用数字填充构建的区块头的随机字段,以找到满足一定条件的哈希值。如果找到,则将此块连接到区块链的顶部,并将有效的区块链发送到相邻节点。

钱包:区块链记录创币交易和转账交易,不同于通常意义上的账户系统。通常意义上的账户系统记录的是账户余额,而区块链只记录没有余额的交易。钱包用于计算区块链地址所拥有的块的余额。如果学过关系型数据库,可以把区块链理解为数据库的索引比特币设计原理,也可以把它看成是一本书的目录。

路由节点:负责在去中心化的网络环境中传输交易和区块。一个节点创建一个事务并将其发送到相邻节点。相邻节点验证后,发送到相邻节点。将在网络上传播。如果一个节点通过挖矿发现了一个符合标准的区块,这个节点也会以同样的方式将其传递给相邻节点,然后相邻节点会继续传播,从而使网络中的所有节点达成一致。

P2P网络传播示意图如下:

我们将在后续文章中详细介绍比特币P2P网络的工作机制,包括节点分类、节点发现、节点连接和广播。

如何推进区块链学习

由于篇幅有限,上一篇文章介绍了比特币的三个基本概念,包括区块链、挖矿和P2P网络。但是,比特币是一个庞大的系统,初学者可能会互相产生疑问,这涉及到如何防止双重支付。, 智能合约, 区块链分叉, 通缩特性, 锁定和解锁脚本, 交易的默克尔树存储, 交易的存储格式, 区块链被攻击的概率, 挖矿难度和挖矿成功时间, 更多共识机制, 造币交易和转账交易,比特币性能、不同类型的挖矿节点、比特币应用场景等。

作者曾经鼓励朋友加入我的微信群,进行比特币和区块链技术研究,

当时Bite才5000块,也就是RMB :) 这是一个免费的分享群,大家参与演讲,谁都可以提问,下一个问题是这样的,一共50多个问题哦..我的天哪,很多吗?不是很多?想知道答案吗?思考!然后立即跳过问题,阅读我稍后分享的材料。看完后,你可以秒懂这些问题,让你明白比特币和区块链不留死角。你在吹牛吗?好吧,也许不是,你看,我读了之后真的明白了。

本文摘要

本文从比特币和区块链技术的背景出发,介绍比特币和区块链技术的来龙去脉,然后为读者讲解区块链技术的核心原理,包括密码学原理、智能合约、P2P网络、解锁脚本等。 ,最后提供作者在区块链研究组收集的初学者常见问题,并引导读者阅读作者提供的有关这些问题的资料。看完本书和作者提供的资料,无论你是技术人员还是商务人士,无论你是初学者还是有一定的基础,都会对比特币和区块链的技术原理有更深入的了解和理解.

(来源:GitChat 作者:李彦鹏,支付平台架构师,专注于线上线下支付平台的应用架构和技术架构的规划和实施,负责交易、支付、渠道、会计、计费、风控、对账设计和其他系统的实现,有移动支付、聚合支付、合规账户、扫码支付、通证化支付等业务场景的产品应用架构规划经验。)返回搜狐,查看更多