主页 > imtoken新版app > 快速了解比特币/区块链“推荐收藏”的原理

快速了解比特币/区块链“推荐收藏”的原理

imtoken新版app 2023-01-17 07:38:56

快速理解Bitcoin/Blockchain的原理“推荐收藏” 说实话,目前Bitcoin和Blockchain的介绍太金融了,市面上很多书在IT人眼里都是无聊的。 看笔者或译者,都是标准的西装革履、短发中年财金男,或西装革履、豪车大龄未婚财金女。 贷款有两点一线……毕竟是两个圈子,两条生命,隔得像山一样。 也许穿着拖鞋、T恤和短裤的IT程序员并不关心那些经济现象背后的东西,只想看看代码是如何实现的,或者了解自己……

比特币与数字货币技术_比特币技术的不足之处_比特币技术

大家好,我是建筑先生,一个会写代码会吟诗的架构师。 今天就来说说快速理解比特币/区块链原理的“推荐收藏”,希望能帮助大家进步!!!

说实话,目前比特币和区块链的引入太金融化了。 市面上的很多书在IT人眼里都是乏味的。 你看作者或译者,都是标准的中国人。 西装领带皮鞋短发的金融精英男,或者西装革履的大龄未婚金融精英女豪车,IT行业的追随者都是源码解析。 这样的生活,每一排都像一座山。 或许穿着拖鞋、T恤、短裤的IT程序员并不关心那些经济现象背后的东西,他们只是想看看代码是如何实现的,或者了解如何在各种投资中不亏本,仅此而已,现在IT人收入多了,肯定投资多了。 如果他们一步步学会了Step的Howto操作,一定会如虎​​添翼。

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

去年,我写了一篇《比特币与区块链科普》:

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

在本文的开头,我们将从技术入手,逐渐过渡到一些非技术方面。 我认为非技术的东西是典型的、本质的,技术往往只是达到某种目的的手段。

概述

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

账户和钱包

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

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

简单来说,钱包的意义就是“任何人都可以放钱,但只有你可以取出钱”。 你之所以比别人有更多的权力去花钱,是因为你持有的钱和钱包一样。 key对应的私钥! 请记住,私钥是您打开钱包和花钱的钥匙。 一旦被别人偷走,钱就是别人的了。 一旦丢失或毁坏,钱包里的钱就相当于被毁掉了。 就像你撕纸币烧掉一样。

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

比特币与数字货币技术_比特币技术的不足之处_比特币技术

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

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

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

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

比特币交易

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

这里写图片描述

和上面的列表类似,就是UTXO,是自己钱包的一笔交易产生的。 在上面的例子中,仍然使用经典的爱丽丝和鲍勃作为例子。

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

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

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

下图说明了上述讨论:

这里写图片描述

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

比特币与数字货币技术_比特币技术的不足之处_比特币技术

这说得通。 想象一下你去银行转账的场景。 如果你卡上没有那么多钱,银行肯定不会让你继续转账的。 但是,银行不管你把钱转给谁,更不会帮你确认这个人是不是骗子,你还活着吗? 有很多人将钱转入骗子的账户。 这不是漏洞。 这是最合理有效的解决办法。 为什么?

答案只有一句话:能证明一个人是否具有某种属性的只有他自己! 只有他自己才能发起证明自己的行为比特币技术的不足之处,然后其他人才能确认证明是否有效。 之所以说有效,是因为证明自己,别人去验证,是一件很简单的事情。 反之,别人证明自己这件事就是图灵完备的,可能会陷入死循环。

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

无论你把上锁和开锁理解为钥匙和锁的故事,还是古代帝将虎符的故事,其实都是一样的。 就是证明你有某种能力或属性。 对于比特币,总结是:

花钱的时候,封存在区块链里的钱要先解锁,然后锁起来发到目的地。 这样,全世界的比特币交易从中本聪的创建开始,输入/输出的解锁/锁定关系形成如下有向无环图:

这里写图片描述

评论:锁定和解锁脚本

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

注意,这里所说的脚本并不是类似于Linux bash的脚本,而是一种简单的虚拟机语言,类似于JVM,内置了微指令集,可以进行数值运算、比较、签名校验等操作。 等待简单的操作。

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

你可能会问,为什么加锁机制不直接把公钥放进去,为什么解锁机制不直接放签名呢? 我觉得这是比特币系统设计比较灵活的一面。 如果只放入公钥和私钥,那么验证只能是一个签名验证的操作。 如果放入脚本,则可以实现更灵活的。 有策略。 为了安全和简单,直接把它放进机器里不是更好吗? 好吧,比特币的加锁和解锁脚本就是这样一台机器——虚拟机!

由于本文只是简单的科普介绍,在此不再赘述。 具体可以参考网上其他人写的介绍。

引入区块链

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

比特币与数字货币技术_比特币技术_比特币技术的不足之处

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

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

区块链来了!

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

先看看什么是区块链:

这里写图片描述

嗯,就是一个挂链树结构,intel的网卡队列也是这样设计的。。。这种环环相扣的结构,让这个链状结构稍微修改一点,牵一发而动全身,也许你你会说,大不了我一下子全部改掉,那你就错了。 我们说哈希解决了这个问题,因为生成的每个块都是一个昂贵的数学难题:

这里写图片描述

这意味着没有人可以修改区块链中的每一位。 如果你这样做,就意味着你要解决上图中的数学问题n次,其中n

" role="演示文稿">

指从修改区块到当前最新区块的区块数。 这个问题解决一次会消耗巨大的成本,那么如何解决nn次...

简要说明为什么这道题很难。

比特币与数字货币技术_比特币技术的不足之处_比特币技术

考虑数字 0X00FF,它被生成的概率是多少? 对于一个16位的数,要求它的高8位为0,低8位无所谓。 可以用排列组合和乘法概率解出解:1212

" role="演示文稿">

1212

1个

2个

1个

2个

……这种题难度很大,需要你花钱买昂贵的硬件,没日没夜地跑,也就是说除了买硬件,还要交电费,还有长时间不堪忍受的噪音——术语操作意味着你要么把设备搬到无人区,要么自己买别墅并使用它的地下室......

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

这里写图片描述

我们看到,区块链中的每个区块实际上是若干个交易订单的容器,数量取决于效率和消耗之间的权衡。 如果每笔交易都消费一个区块,那么整体的消费量会非常大。 如果1亿个交易订单消耗一个区块,那么等待确认的时间会很长,所以... 区块中包含交易票,也就是说你不能修改任何已经包含在区块中的交易票。

但是区块是如何合并到交易文档中的呢?

比特币挖矿

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

比特币技术的不足之处_比特币与数字货币技术_比特币技术

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

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

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

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

在我看来,技术问题是最简单的。 难的话,社会学更难,心理学最难。 以上两者都可以归结为经济问题:我做坏事有什么好处?

社会博弈论

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

如果你我知道的信息完全一样,实力相当,我也不会冒险去做损你利我的事情,因为这是最糟糕的选择! 为什么?

如果你是老实人,那我就可以得到好处,但这是对我唯一的好处,如果你和我一样脏,那我们两败俱伤,如果你比我脏,我就赔钱。 算算概率,值不值? 相反,如果大家都遵守规则,就能获得稳定的收入,既是双赢,也是利己!

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

哈哈,帅,不用罚!

比特币究竟如何抵御攻击

比特币在设计之初,就是希望攻击者在不使用警察等暴力机构的情况下,觉得攻击毫无意义。 事实上确实如此。

接下来,面对技术白痴,能用的只有技术手段,这里不再赘述。 具体可以看其他文章或者我去年写的这篇文章:

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

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