主页 > imtoken官网最新版 > 快速了解比特币/区块链的原理

快速了解比特币/区块链的原理

imtoken官网最新版 2023-01-18 15:27:43

老实说,目前比特币和区块链的引入太金融了。市面上的很多书,在 IT 人眼里都是枯燥无味的。如果你看作者或译者,他们都是标准的中文。一个穿着西装、领带、皮鞋的短发金融精英,或者一个穿着豪车套装的年长未婚金融精英女性。IT界的追随者,都是有房有车有贷的两点一线源码分析……毕竟有两个圈子,两种生活,交错如山。可能穿着拖鞋、T恤和短裤的IT程序员并不关心经济现象背后的东西,他们只是想看看代码是如何实现的,或者了解如何在不亏本的情况下进行各种投资,仅此而已, IT人现在有很多收入,他们必须投入大量资金。如果他们学会了如何一步一步地操作,他们将不可避免地变得炙手可热。

这是财务和 IT 融合的最佳时机。金融终于可以用IT来表达了,IT也终于可以用IT来表达了!

去年,我写了一篇关于比特币和区块链的科普文章:

感觉不错,后来也收到了一些反馈,但还是觉得文章太长了。所以今天正好有时间把它缩短一点,然后再试一次。

本文将从技术入手比特币的技术,逐步过渡到一些非技术方面。我认为非技术性的东西是典型的和必不可少的。技术往往只是达到某种目的的一种手段。

概述

我认为比特币有三个核心,分别属于以下三类:

账户和钱包

首先,有必要明确账户和钱包的区别。

在比特币的世界里,没有账户属于个人的概念,只有比特币钱包,即所谓的比特币钱包,可以简单理解为公钥。由于电子计算机中的任何内容都可以零成本复制,因此必须使用非对称密码学来解决这个问题。

简而言之,钱包的意思是“任何人都可以把钱放进去,但只有你可以把它拿出来”。密钥对应的私钥!请记住,私钥是你用来打开钱包和花钱的钥匙。一旦被别人偷走,钱就属于别人了。一旦丢失或销毁比特币的技术,钱包里的钱就等于被销毁了,就像现实中的你一样,撕碎钞票烧掉。

既然没有账户的概念,我怎么知道我还有多少比特币可以花呢?

量子技术对比特币的影响_比特币的技术_比特币的技术

在比特币世界中,所有可以花掉的钱都统一表示为 UTXO(Unspent Transaction Output)。UTXO 与钱包地址相关联。如果你想知道你还剩下多少钱可以花,你只能遍历你所拥有的。钱包,然后将与钱包关联的UTXO加在一起,结果就是你的“账户余额”。所有这些信息都被分发并存储在已经达成全网共识的区块链中,这将在后面讨论。

这是一个普遍的问题,你的 UTXO 是从哪里来的?很简单,它来自两个来源:

除了这两种途径,你没有其他方法可以拥有 UTXO。

UTXO 是比特币世界的基本消费单位。就像我们日常的人民币面额一样,你不能把10块钱撕成两半花掉。如果你买一个5元的东西,你要付全10元。钱,然后接受5元找零,当然你也可以说“别找了!”

比特币交易

那么,什么是 UTXO?先来看一张图:

这里写图片描述

与上面的列表类似,它是 UTXO,它是从自己钱包的交易中生成的。在上面的例子中,仍然以经典的 Alice 和 Bob 为例。

注意锁定的概念。所谓锁,就是当爱丽丝将比特币转给鲍勃时,只有鲍勃自己可以在未来的某个时间收到并消费。为了保证这一点,比特币系统采用了非对称加密技术,使用 Bob 的公钥将一笔交易的比特币输出锁定到 Bob 的钱包中,这样,根据非对称加密的原理,只有 Bob 的私钥可以被解锁。

在这里,我们回顾了非对称密码学的两个关键点:

嗯,比特币利用了这个原理,但是并没有用公钥加密和私钥解密显式锁定特定的接收者,而是采用了与传统交易一致的松散被动方案:

下图说明了上述讨论:

比特币的技术_比特币的技术_量子技术对比特币的影响

这里写图片描述

和我们在银行填的那种转账单很像,有人会问,这样合理吗?为什么输入要求很严格,需要各种验证,而输出只需要填写对方的钱包地址,也就是公钥?

这是合理的。想象一下你去银行转账的场景。如果你卡上没有那么多钱,银行肯定不会让你继续转账的。但是,银行不关心你把钱转给谁,也不会帮助你确认这个人是不是。骗子,他们还活着吗?有很多人将钱转入诈骗者的账户。这不是漏洞。这是最合理有效的解决方案。为什么?

答案就在一句话中:能证明一个人是否具有某种属性的,只有他自己!只有他自己可以发起证明自己的行为,然后其他人才能确认证明是否有效。之所以说有效,是因为证明自己和他人验证是一件非常简单的事情。相反,其他人证明自己是图灵完备的。

我们知道,比特币系统依赖于全球七层 P2P 网络。当你转账给某人以确认全网的共识时,时间是不确定的。就算你给别人转账,这个人也不一定在线,他自己也无法证明他就是他自己。这在现实中很麻烦,但是在网上很简单。只需取出私钥并检查即可。但是,实时确认有一个前提,就是双方必须同时在线,但这并不能保证。

无论你把锁和开锁理解为钥匙和锁的故事,还是古代帝王将军之间的虎符故事,其实都是相似的。他们都在证明自己具有一定的能力或属性。对于比特币,结论是:

花钱的时候,必须先将封印在区块链上的钱解开,然后再锁上,送到目的地。如此循环往复,全世界的比特币交易都是从中本聪的创造开始的,输入/输出的解锁/锁定关系形成如下有向无环图:

这里写图片描述

注意:锁定和解锁脚本

在上面的讲解中,为了方便起见,我用私钥签名和公钥签名验证来说明开锁的过程。在比特币的实现中,这实际上是通过一个叫做脚本的东西来完成的。

注意这里提到的脚本不是Linux bash之类的脚本,而是一种简单的虚拟机语言。与 JVM 一样,它具有内置的微型指令集,可以执行数值运算、比较和签名验证。和其他简单的操作。

所谓解锁操作,其实就是将解锁脚本和之前的加锁脚本拼接在一起执行。如果结果为TRUE,则认为解锁成功。

比特币的技术_量子技术对比特币的影响_比特币的技术

你可能会问,为什么加锁机制不直接放公钥,解锁机制不直接放签名?我觉得这是比特币系统设计更灵活的方面。如果只放入公钥和私钥,那么验证只能是签名验证等操作。如果放在脚本中,可以更加灵活。战略。为了安全和简单,将其直接放入机器中不是更好吗?好吧,比特币的锁定和解锁脚本就是这样一台机器——一台虚拟机!

由于本文只是科普性质的介绍,这里不再赘述。详情请参考网上其他满头大汗的人写的介绍。

引入区块链

到目前为止,让我总结一下使这个系统工作的要点:

将所有交易订单交给央行,或者至少交给一家可靠的商业银行,是一个不错的选择。这确实是我们几千年来一直使用的方法,完全依靠中央机构或个人来调解一切,而现在比特币系统采用了完全不同的思路,即去中心化。

忘掉UTXO,忘掉交易清单,还是从需求出发,我们的目标是:

区块链来了!

区块链技术之所以能完美覆盖比特币所面临的各种问题,是因为其解决方案并非纯技术,而是采取了社会学博弈的激励措施,形成了典型的负反馈效应。,这最终使作恶变得昂贵。

让我们看看区块链是什么:

这里写图片描述

嗯,是链树结构,Intel的网卡队列也是这样设计的……这种互锁的结构,在这个链状结构中,哪怕是一点点的修改,都会影响到全身。也许你他们会说,如果是大事,我会一下子全部改掉,那你就错了。我们说哈希解决了这个问题,因为生成的每个块都是数学难题的昂贵解决方案:

这里写图片描述

比特币的技术_量子技术对比特币的影响_比特币的技术

这意味着没有人可以修改区块链中的每一位。如果你这样做了,就意味着你要解决上图中的数学问题 n 次,其中 n" role="presentation">nn 是指从修改块到当前最新块的块数。解决这个问题一次会消耗巨大的成本,那么如何解决它n次......

简要解释为什么这个问题很难。

考虑数字 0X00FF,它产生的概率是多少?对于 16 位数字,要求高 8 位为 0,低 8 位无关。可以通过排列和概率相乘来解决:1212" role="presentation">12121212...这种问题非常难,需要你花钱买昂贵的硬件,日夜不停地赌概率,也就是说就是除了买硬件还要交电费,而且长期运行噪音难以忍受,要么把设备搬到无人区,要么自己买别墅用地下室……

让我们看看区块链是如何保护交易单据的。放大上图,我们来看看每个区块包含的内容:

这里写图片描述

我们看到,区块链中的每一个区块其实就是一个容器,里面装着几个交易订单,有多少取决于效率和消耗之间的权衡。如果每笔交易使用一个区块,整体消耗会非常大。如果一个区块用于1亿笔交易订单,等待确认的时间会很长,所以... 区块包含交易文件,也就是说你不能修改任何已经包含在区块中的交易文件。

但是如何将区块合并到交易收据中呢?

比特币挖矿

当你生成一张交易票并广播到全网时,世界上可能有很多人在这样做,也就是说,交易票是不断产生的。与此同时,在世界的某些角落,总是有勤劳的比特币矿工搜索这些交易单据,将它们整合到他们生成的区块中,并将该区块链接到一个独特的区块链。

我们知道,只有交易单被纳入区块链之后,它才会可信和安全,才会因此而产生价值,而正是这些比特币矿工试图将其纳入区块链。他们真的在挖掘可以产生价值的东西,所以,他们确实在挖掘。

就像《穿越关东》里,越勤奋,越愿意冒险,付出的越多,获得高额回报的可能性就越大。请注意,这是可能的,也有失去一切的风险。这是一个概率问题。和《越过关东》看起来不同的是,那些淘金者可以保留一些他们找到的黄金,那么比特币矿工努力解决数学问题挖区块的动力是什么?

答案非常明确。对于技术无法解决的问题,经济学将接管:

比特币的技术_比特币的技术_量子技术对比特币的影响

看来问题已经解决了。然而,矿工们可以通过小动作赚更多的钱,而不是像这样工作。抛开勇气和胆量之间的差异,假设所有人都一样,是什么阻止了这些小动作的发生?技术困难是否阻碍?

在我看来,技术问题是最简单的问题,最难的是社会学和心理学。以上两者都可以归结为一个经济问题:我从做坏事中得到什么?

社会学博弈论

去中心化最根本的特点就是消除了信息不对称!犯罪的根源在于利用信息不对称。推而广之,结构越扁平,在空间维度上越难看到系统中的低熵体,但时间长了,低熵体必然会出现。我想,低熵体来自时间维度,而不是空间维度!扁平结构越大,低熵体形成的速度越快,因为板子越大,乌合之众所能提供的能量就越多……

如果你我知道的信息完全一样,我不会冒险去做伤害你我的事情,因为这是最糟糕的选择!为什么?

如果你是老实人,那我就得到好处,但这对我来说是唯一的好处,如果你像我一样肮脏,那我们都输了,如果你比我更肮脏,我就输了. 计算概率,值得吗?相反,如果大家都按规矩办事,就能得到稳定的收益,既是双赢的,也是自利的!

这不是零和游戏。据说比特币的技术原理和激励机制有助于游戏偏向。人们自然会为了这种激励而做诚实的事情,不是因为人天生就是好人,而是因为:

哈哈,很帅,不用罚!

比特币究竟如何防御攻击?

比特币从一开始就是为了让攻击者觉得攻击没有意义,而没有使用警察和军队等暴力机构。事实上确实如此。

接下来,面对技术白痴,唯一能用的手段就是技术手段,这里不再赘述。详情请看其他文章或我去年写的这篇:

《比特币与区块链科普》中的“区块链技术如何避免攻击”部分:

以下是典型攻击行为的几个示例: