主页 > imtoken官网网址 > 本文带你了解比特币/区块链原理

本文带你了解比特币/区块链原理

imtoken官网网址 2023-03-27 07:42:23

对比特币区块链的误解

有什么不同

危机

量子计算如何处理

通货紧缩怎么处理

如何处理个人死亡

与互联网同根

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

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

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

概览

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

数字签名技术签名和签名验证使用离散对数字拼图(用于 ECC 算法)保护每笔交易。在网上打破交易很难。这是一个技术范畴,不是你不想做,而是你做不到。

Hash 技术 Hash 技术构建了一个区块链,一个全球公共账本,使现有交易不可否认性和未来 UTXO 消费承诺。很难离线打破交易。这是一个技术范畴,不是你不想做,而是你做不到。

博弈论纳什均衡的稳定状态保证没有节点可以通过不诚实行为获得更高的奖励。作恶的代价很高。这是一个非技术类别。权衡之后,你根本不想作恶。

账户和钱包

首先要搞清楚账户和钱包的区别。

一个账户属于一个人,包含该人可以支配的资金,并保存该人之前所有交易的记录。

你是如何知道比特币的

钱包属于一个人,只包含可供该人使用的钱。

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

简单地说,钱包的意思是“任何人都可以把钱放进去,但只有你可以把它拿出来”。你之所以比别人有更大的花钱能力,是因为你持有钱包公钥对应的私钥!请记住,私钥是你用来打开钱包和花钱的钥匙。一旦被别人偷走,钱就属于别人了。一旦丢失或销毁,钱包里的钱就等于被销毁了,就像现实中的你一样,撕碎钞票烧掉。

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

在比特币世界中,所有可以花费的钱都表示为 UTXO(未花费的交易输出),它与钱包地址相关联。如果你想知道你还剩下多少钱可以花,你只能遍历你拥有的钱包,然后将与钱包关联的 UTXO 加在一起。结果就是你的“账户余额。所有这些信息都分布在全网共识的区块链中存储。这个我以后再说。

在这里我通常会问,我的 UTXO 是从哪里来的?很简单,它来自两个来源:

转给我

挖掘自己的收入

除了这两种方式,你没有其他方式拥有UTXO。

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

比特币交易

那么,什么是 UTXO?我们先来看看图片:

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

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

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

你是如何知道比特币的

公钥加密,私钥解密,保证信息的接收者只能是某个人。

私钥签名,公钥验证,确保信息发送者只能是某个人。

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

锁定输出,UTXO交易输出只附有接收者的公钥,不验证公钥是否真的对应接收者。

解锁UTXO如果你想花钱,你必须确保这笔钱实际上是你所有的,也就是说,它来自过去的某个锁定输出。锁定的输出伴随着您自己的公钥。这时候,你用你的私钥解锁就可以使用了。

下图展示了上面的讨论:

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

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

答案只有一句话:能证明一个人是否具有某种属性的只有他自己!只有他自己可以发起证明自己的行为,然后其他人会确认证明是否有效。之所以有效,是因为他证明自己和他人的验证是一件很简单的事情。反之,其他人证明自己是图灵完备的,最终可能陷入无限循环。

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

无论你把锁和开锁理解为钥匙和锁的故事,还是古代帝王将军之间的虎符故事,其实都差不多,都是在证明自己有一定的能力或属性。对于比特币来说,总结就是:花钱的时候,必须先把封印在区块链上的钱解开,然后再锁起来,送到目的地。如此循环往复,全世界的比特币交易都是从中本聪的创造开始,输入/输出的解锁/锁定关系形成如下有向无环图:

注意:锁定和解锁脚本

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

注意这里提到的脚本并不是Linux bash之类的脚本,而是一种简单的虚拟机语言,类似于JVM,它内置了微型指令集,可以执行诸如值之类的简单操作操作、比较和签名验证。

你是如何知道比特币的

所谓的解锁操作,其实就是将解锁脚本和之前的加锁脚本拼接在一起执行。如果结果为TRUE,则认为解锁成功。由于本文只是科普性质的介绍,这里不再赘述。详情请参考网上其他满是汗水的人写的介绍。

区块链简介

到目前为止你是如何知道比特币的,让我总结一下使这个系统工作的要点:

花钱时解锁输入功能花费的钱来自别人或自己的输入(在找零的情况下),为你锁定,你必须解锁才能证明你可以拥有这个比特币。

花钱时锁定输出。输入和输出已连接。锁定输出是为了确保只有接收者才能解锁它。要么变成黑洞,要么被摧毁。

由输入/输出组成的交易列表不可篡改。这是核心!核!核! UTXO 实际上并不存在于物理上。它来源于交易订单。如果交易订单可以随意篡改,那么系统就会失去可信度,完全无法使用。如何保证交易订单的权威性?

最好把所有的交易单据交给央行,或者至少是一家靠谱的商业银行,这确实是我们几千年来一直沿用的方式,完全依靠一个中央机构或者个人调解一切,现在比特币系统采用了完全不同的思路,那就是去中心化。

忘掉UTXO,忘掉交易列表,还是从需求开始,我们的目标是:

现有事务不能被拒绝,即记录

你钱包里的钱确实可以在未来花掉,也就是承诺

区块链来了!

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

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

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

你是如何知道比特币的

这意味着没有人可以修改区块链中的每一位。如果你这样做,就意味着你必须解决上图中的数学问题n次,其中n是指从修改块到当前块的时间。最新块的块数,解决一次这个问题会消耗巨大的成本,解决n次怎么样...

简单解释一下为什么这个问题很难。

考虑数字0X00FF,它产生的概率是多少?对于 16 位数字,要求高 8 位为 0,低 8 位无关。使用排列和概率来解决:

这种问题难度很大,需要你花钱买昂贵的硬件,日夜运行- 长期运营意味着您需要将设备移动到无人区,或者自己购买别墅以使用地下室......

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

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

交易收据中如何包含区块?

比特币挖矿

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

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

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

答案很明确。对于技术无法解决的问题,经济将占据主导地位:

挖矿会有一定的中本聪设计的比特币奖励。为了彻底远离中心化,比特币的分发币不是中心化的,而是每4年作为半衰期逐步分发,这保证了两点:

毕竟比特币是有总量的,就是会分发的

你是如何知道比特币的

在比特币分发之前,每一个出块的矿工都会获得分发量的比特币奖励

挖矿将获得交易提示。也就是他希望自己的交易订单能被确认并优先被收录到区块链中,交易者应该给小费。比特币系统规定,一张交易单的所有输入和所有输出之间的差异就是小费。矿工出块后,该区块中包含的所有交易单的tip就是交易费,属于矿工。

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

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

社会学博弈论

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

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

如果你是一个诚实的人,那么我会得到好处,但这对我来说是唯一的好处,如果你像我一样讨厌,那么我们都输了,如果你比我更讨厌,我就是净亏损。计算概率,值得吗?反之,如果大家都按规矩办事,就能得到稳定的收益,既是双赢的,也是自利的!

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

做诚实的事比做坏事更容易——技术因素

做诚实的事可能会得到回报——非技术因素

p>

哈哈,很帅,不用惩罚!

比特币如何抵御攻击?

比特币旨在让攻击者在不使用警察和军队等暴力机构的情况下感到攻击毫无意义。事实上确实如此。

接下来,面对技术白痴,唯一能用的手段就是技术手段,这里不再赘述。

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

窃取他人转移给他的比特币钱需要私钥来解锁和消费。

伪造比特币 任何比特币都不能无中生有,只有两个来源!伪造者将无法解锁。