Figma Config 2023 观后感下篇——开发模式
关于 Figma Config 2023 后半部分“开发模式”演讲的总结 ...
关于 Figma Config 2023 后半部分“开发模式”演讲的总结 ...
关于 Figma Config 2023 的一些总结和所思所想 ...
关于阮一峰《ECMAScript6 入门》一书的观感,就把此文当做本人对于《ECMAScript6 入门》的书评吧 ...
本文翻译自 13 年一篇关于比特币协议的深度解析文章 成千上万篇文章为了解释比特币这一线上、点对点的货币而撰写。大多数文章对于其底层加密协议都只给出一些简短的解释,却忽略了很多细节。甚至那些文章常常掩盖重点进行更深入的研究。我这篇文章的目的是以一种清晰、容易理解的方式解释隐藏在比特币协议后面的主要思想。我们将从第一原则开始,对于比特币如何工作建立一个广义的理论上的理解,然后再深挖其细节,检查比特币交易的原始数据。 以细节的方式理解协议是一项困难的工作。人们转而接受比特币,并从事投机关于如何通过比特币致富、比特币吧是否泡沫,比特币是否意味着税收结束的一天等等。这很有趣,但是严重限制你理解它。理解比特币的协议细节打开了难以进入的远景。特别是,理解比特币内建脚本语言的基础会使得使用比特币创造新的金融工具成为可能,比如智能合同。反过来,新的金融工具可以被用来创造新的市场并缔造人类行为新的集合形式。聊聊这些趣事吧! 我会在后面的文章中描述比特币脚本和一些概念,比如智能合同。这篇文章集中解释比特币协议的核心。理解这篇文章你需要对公钥加密以及与其紧密关联的数字签名概念比较熟悉。我将同样假定你对加密散列概念熟悉。以上这些都没有特别难理解的。基本概念都会在大学的大一数学课程或者计算机课程中教授。这些概念很优雅,所以如果你对于他们不是很熟悉,我建议你先花一点时间熟悉一下。 也许看上去比较神奇,比特币的基础是密码学。比特币不是一种货币?不是一种发送秘密信息的方式?事实上,比特币需要解决的事情大部分是安全事务——确保人们不能互相窃取,或者伪造等等。在原子世界我们通过一些设备,例如锁、保险箱、签名、银行金库实现安全。在比特世界我们通过加密实现安全。这也是为什么比特币的核心是加密协议。 我在这篇文章中的策略是分阶段建立起比特币。我会通过解释一种非常简单的数字货币开始,所基于的思想几乎显而易见。我们将称其信息货币(Infocoin),以区分于比特币。当然,我们第一个版本的信息币会有很多不足,然后我们会经过多个迭代,每个迭代介绍仅仅一或两个新的想法。经过多个迭代后,我们将达到完整的比特币协议。我们将重新发明了比特币。 这种策略比起我一次性解释整个比特币协议要慢。但是当你通过这样一次性解释的方式理解了比特币机制时,再去理解比特币为什么这样设计就会很困难。这种通过慢迭代的解释方式优势在于可以让你对于比特币每一个元素理解得更加犀利。 最后,我应该提及对于比特币我也是个新手。我从 2011 年开始松散地关注(在 20 世纪 90 年代末开始关注加密数字货币),但直到今年早些时候才着重关注比特币协议的细节。所以我将非常感激对于我误解部分的指正。另外在本篇文章中我还包含了很多“留给读者的问题”——在我写作过程中对于新冒出的问题的一些笔记。你会发现这很有趣,但你也可以把它们全部跳过以免丢失全文的线索。 第一步:签名意图信 所以我们该如何设计一个数字货币呢? 从表面上来看,数字货币听起来是不可能的。假设某个人,让我们称其 Alice,她有一些电子钱想花掉。如果 Alice 想使用一串比特字符作为钱,我们如何才能阻止她反复使用相同的比特字符串呢?否则将意味着会产生无穷无尽的钱。或者假如我们可以通过某种方式解决这个问题,但我们如何才能防止其他人伪造这样一串比特字符并用来偷取 Alice 的钱呢? 这些只是众多问题中的两个,必须被克服以为了使用信息作为货币。 作为信息币的第一个版本,让我们找到一个方法使得 Alice 可以使用一串字符(非常原始和不完整)作为货币的形式,以某种至少保证她的货币不会被伪造的方式。假设 Alice 想给 Bob 一个信息币。为了这么做,Alice 写下一行字符串“我,爱丽丝,给 Bob 一个信息币”。然后她用私钥给这条信息做了数字签名,并告知全世界 这段签过名的字符串。 (顺便提一下,我使用首字母大写的 Infocoin 表示信息币协议及一般概念,用首字母小写的 infocoin 特指货币面值,类似用法很常见,虽然在比特币的世界不通用) 这并不是一个令人非常影响深刻的数字货币原型。但它的确有一些优点。世界上的任何人(包括 Bob)可以使用 Alice 的公钥去确认 Alice 的确是“我,爱丽丝,给 Bob 一个信息币”这条信息签名的主人。没有其他人可以造出这条比特信息。但反过来,Alice 也可以说“不,我没说要给 Bob 一个信息币”。所以这个协议建立在 Alice 真的想给 Bob 一个信息币。同样的事实——没有其他人可以构造这样一条签名信息——也给予 Alice 一些防止其他人伪造的有限保护。当然,在 Alice 创建她的这条信息后也可能其他人复制了这条信息,这样的话伪造是可能的。但无法从头伪造。这两种属性——Alice 建立企图的部分和防止伪造的有限保护部分,是这个协议值得注意的特征。 我在这个协议中没有(非常)准确地讲数字货币是什么。为了使其明确:特指这条信息本身,例如,这行比特字符串展示了数字货币“我,爱丽丝,给 Bob 一个信息币”。后面的协议类似,我们所有数字货币的形式只是会越来越复杂。 使用序列号来使得货币被唯一标识 第一个版本的信息币的问题在于 Alice 可以一次又一次地继续向 Bob 发送相同的签名消息。假定 Bob 收到了十份“我,爱丽丝,给 Bob 一个信息币”这样的拷贝签名信息。意味着 Alice 向 Bob 发送了十个不同的信息币吗?她的信息是巧合复制出来的吗?可能她只是试图戏弄 Bob 使其相信她给了他十个不同的信息币,当这条信息向全世界证明才表示她真的企图传送一个信息币。...