主页 > 官网最新版imtoken钱包 > 【LEAP故事】普通人:比特币的技术、意义和符号(下)

【LEAP故事】普通人:比特币的技术、意义和符号(下)

官网最新版imtoken钱包 2023-02-03 06:04:41

作者:Ron Li,南加州大学物理系在读学生,前 LEAP 团队成员。 2017年7月至2018年1月管理LEAP-SIG-DS(Special Interest Group-Data Science),负责组织小组的日常活动。 自2017年8月以来,已有不少SIG-DS小伙伴通过互帮互助分享获得心仪的实习或全职offer。 本文内容也在2018年1月的SIG-DS线上活动中分享过。LEAP-SIG-DS目前正在招募新成员,有意者请联系sig-ds@leapcareer.org

怎么弄比特币挖矿机_手机怎么弄比特币_普通人怎么弄比特币

无论你选择相信比特币正在重演郁金香故事,还是选择相信它是下一次工业革命的曙光,我都推荐你阅读这篇文章。

本文6500字,阅读时间约20分钟。 通过这20分钟的阅读和思考,即使没有数学、密码学、计算机科学、金融学基础的读者也能准确理解区块链的关键技术和关键技术及其迄今为止最杰出的应用——比特币。 其操作得以实现。 文章包含大量的例子和类比,并插入了很多小问题来帮助读者理解。 强烈建议读者阅读理解后,尝试向家里10岁的孩子或老人解释区块链这个新事物,验证他们的理解。 事实上,本文作者通过游戏的方式,成功地向8名小学低年级的孩子介绍了区块链的核心概念及其简单实现。

本文分为两部分:第一部分介绍了公钥加密技术、数字签名技术、哈希函数、链表和P2P网络等概念,并结合生活和会计中的具体例子帮助读者理解。 这些技术是计算机工程和应用数学领域的精彩成果。 它们都不足以支持比特币的运行,但是准确掌握它们的基本原理对于理解比特币是非常必要的; 部分解释了规则制定者中本聪如何将上述现有技术神奇地结合起来,创造出具有“货币”属性的比特币。 我们会发现,比特币不仅是一个技术奇迹,更是“社会工程学”的典范。 比特币的成功运行,彰显了这些技术隐喻对不透明世界的不安和对隐私与公平的追求。

第 1 部分:比特币的技术背景

公钥加密

所谓公钥加密技术,一般是指非对称加密技术。 相应的,它指的是对称加密。 所谓对称加密,就是加密过程和解谜过程是相互对称的逆过程。 让我们以对称加密为例。 下面的密文(密文)对应的明文(加密前的文本)是什么?

密文:Nz ifbsu xjmm hp po

如果你猜对了,恭喜你! 明文是《My heart will go on》,《泰坦尼克号》主题曲的名字。 这个明文的加密方法就是把明文中的每个英文字母取到字母表中的最后一个。 如果你想破译,只需将字母对称地向前移动即可。

在讲非对称加密之前,我们需要先区分一下密钥和加密算法这两个概念。 椭圆曲线加密算法等加密算法是指加密算法。 这个算法不是什么秘密,大家都知道,但是在每个应用场景算法的具体实现中,都有一个(对)密钥——密钥是一串数字或者序列。 未知密钥保证了加密的可靠性。 在公钥密码学中,有一对密钥。 一个称为私钥,另一个称为公钥。 顾名思义,私钥一个人持有,公钥对所有人可见。 他们就像一对双胞胎,总是成对出现,但哥哥(私钥)是个宅男,平时不出门,妹妹(公钥)总喜欢逛街。

具体到加密过程,公钥和私钥就像一个特殊保险箱的两把钥匙。 如果用公钥锁了锁,就必须用私钥才能打开。 私钥丢了,保险箱里的东西就永远找不到了。 回来(听说过有人“丢”比特币吗?),对于王某用私钥锁的保险箱,每个人都有王某公开的自己的公钥就可以打开保险箱柜,看看里面有什么(老王想干嘛通过这样做来做到这一点?)

我们先来看公钥加密(加锁)和私钥解密(解锁)的例子。 一般情况下,在不知道私钥的情况下,很难打开被公钥锁住的保险箱,但是有了私钥就很简单了。举一个直观的例子

题目一:已知18721是两个数的乘积,请在30秒内求出。

题目2:已知18721是两个数的乘积,其中一个是97,请在30秒内求出。

第二题比第一题简单多了! 如果把18721当作公钥,97当作私钥,那么有私钥的人就可以轻松解决分解问题,但是只知道公钥的人很难完成这个任务(嗯,你是擅长数学,那么如果要分解的数有 100 位?)

上面的例子只是一个形象的比喻,实际的密钥对不仅仅是两个简单的数字。 但“公钥加密,不知道私钥极难解密,而用私钥极易解密”的性质是由数学中某些问题求解难度差异极大的特点保证的。 计算已知大素数的乘积很容易,但求已知大素数的乘积却很困难。 比特币使用椭圆曲线加密,具有类似的特性; 具体的数学运算这里不做解释,可以通过EEC关键词搜索得到。

那么这些属性有什么用呢? 举个例子,假设我想给小赵的邮箱发一封情书,但是又不想让别人知道我写了什么,怎么办?

具体方法可以参考下图

怎么弄比特币挖矿机_普通人怎么弄比特币_手机怎么弄比特币

手机怎么弄比特币_普通人怎么弄比特币_怎么弄比特币挖矿机

小李用小赵的公钥加密

小李把密文发给小赵,截获密文的坏人无法破译密文

只有小赵可以用私钥解密看原文

的确,我这样做的话,只有小赵才能看到小丽写给她的情书​​,其他人都无法破译小丽写给她的加密情书。 出色的!

但是新的问题出现了。 假设小李有个情敌黑了小赵的邮箱,看到了小李的情书。 虽然他看不到小丽情书的内容,但他也没有在意,直接将小丽给删除了。 然后用小赵的公钥加密“我恨你”(为什么可以做到?),伪装成小李的邮箱发送给小赵。 现在小李有大麻烦了。

这种攻击方法称为中间人攻击。 虽然小李的情书内容自始至终都是安全的,但是因为小赵没有办法验证收到的信息是不是真的来自小李,所以通信也并不安全。

为了解决这个问题,我们需要引入数字签名。

数字签名和哈希函数

数字签名(digital signature)是一个很酷的名字,对应物理(physical)实体签名。 签名是证明文件或收据确实得到本人认可的常用方式。 但是如果有人想把你在A文件上的签名拿出来,贴在B文件上,伪造你的签名怎么办?

这是一种非常简单但可能有效的方法。 签名最好写得很大,盖住A档的每一个字符,这样造假者就挖不出我的签名了。 简单的说,通过将自己的签名绑定到文件的内容上,任何人都无法独立于签名的内容使用签名。

我们先来看数字签名的实现。 数字签名的过程可以理解为上一节提到的加密的逆过程。 签名的目的是让其他人验证他们的认可。 所以如果我想让别人验证我批准了某个文件,我可以用我的私钥加密这个文件并发布,然后如果有人用我的公钥解密它,他们就会得到这个文件。 如果我不用我的私钥加密或者别人假装用我不知道的东西加密,那么别人用我的公钥解密就会得到一堆乱码。

但是如果我的文件特别大怎么办? 文件特别会议带来了两个问题。 首先是加解密过程费时费力。 二是解密后得到的文件要与所谓的“正确文件”进行比对。

手机可以识别人的指纹。 要是我们能为要加密的文件生成一个“指纹”就好了(不管它长什么样或有多大)! 当这个文件改变时,相应的指纹也会改变。 生成这种指纹的函数是所谓的散列函数。

哈希函数

Hash function(散列函数)是一个非常糟糕的音译,hash是粉碎、粉碎的意思,所以它还有另外一种译法:one-way hash function,本文使用散列函数的名称。散列函数是通过属性来定义的。 有各种具有不同实现的哈希函数。 哈希函数应具有以下属性

输入可以是任意长度的序列(文本文档、电影文件等)

输出的是一个固定长度的序列(比如128,或者256),称为哈希值

对输入的微小变化敏感,改变图像的一个像素可以极大地改变输出

两个不同文件得到相同哈希值的概率“几乎为零”; 如果它们相同,则称为“碰撞”

普通人怎么弄比特币_手机怎么弄比特币_怎么弄比特币挖矿机

一种方式,输入文件的内容无法从输出的哈希值中推导出来

对于给定的哈希值H1普通人怎么弄比特币,构造一个输入序列使得哈希值H2恰好等于H1(或者要求相似度很高,比如要求90%的字符一致)是极其困难的

哈希值在我们生活中最常见的应用之一就是验证我们从网上下载的软件包。 比如微软的Windows 10镜像就有一个SHA1值(通过哈希算法得到的哈希值)。 如果下载一个iso镜像,用软件计算hash值计算出SHA1值,发现和微软官网上的是一样的。 如果哈希值不一致,那么你拿到的iso镜像很有可能被恶意篡改了。

下面是微软官方镜像的hash值

文件名:cn_windows_10_multiple_editions_x86_dvd_6846431.iso

语言:简体中文

SHA1: 21B824F402927E76C65160B62EB8A4EBBABE9C6E

散列函数的单向性质很容易理解,因为不可能从电影文件的散列值重建电影。 另一方面,如果给你一份哈利波特及其哈希值,并要求你制作一份变形金刚的副本,以便变形金刚的哈希值与哈利波特的哈希值相同,这也是“非常困难”的任务(比特币挖矿也是“极其艰巨”的任务)。

在组合数字签名和散列函数之前,让我们先看一个最小、直观的散列函数示例。

怎么弄比特币挖矿机_手机怎么弄比特币_普通人怎么弄比特币

•假设文件的二进制序列长度小于3*3*3=27,想象一下把这个序列放入一个3*3*3的魔方的每个方格中,不足的长度用0填充,进行旋转,将魔方按照一定的规则平移变形,对相邻方块中的位进行多次逻辑运算。 最后取出魔方最上层的9个序列的3*3长度作为我们输入文件的哈希值。

直观上,两个不同的文件得到相同输出的概率是极小的,不可能从输出推导出输入文件。

结合数字签名和哈希函数

数字签名和哈希函数的结合可以达到两个效果: 1. 验证“授权证明者”——即拥有私钥的人的身份。 2. 确保认证文件未被恶意篡改。

签名流程和签名验证流程:下图上半部分为签名流程,下图为签名验证流程。

普通人怎么弄比特币_手机怎么弄比特币_怎么弄比特币挖矿机

简单来说,数字签名现在不是在原文件上“签名”,而是在原文件的哈希值上“签名”。 这样的进程有可能被攻击吗?

下面我们假设原始单据是一个转帐记录,例如。

注意:本文的所有后续内容也将紧紧围绕这个例子展开。

手机怎么弄比特币_怎么弄比特币挖矿机_普通人怎么弄比特币

攻击形式一:恶意篡改转账记录中的转账金额——哈希值发生变化——与逆签名得到的哈希值不匹配——篡改被发现

攻击形式二:使用假私钥签名发布——使用正确的公钥解密得到乱码——与转账记录得到的哈希值不匹配——发现假签名

攻击形式三:结合形式一和形式二——攻击者希望假私钥签名后得到的哈希值恰好等于他篡改后转账记录的哈希值——攻击者可以洗洗睡(为什么?)

从这个推演可以看出,转账记录一旦被非恶意“会计”生成并发布,就会具有很好的可靠性。

那么问题来了,如果会计本人居心叵测怎么办? 如果我2017年只有一本账本(转账记录的集合,也可以叫块),2016年要怎么找以前的账本? 万一有人把2016年的最后一个账本弄虚作假,让我查一下,让他(她)在2017年的账本上做伪造怎么办?

链表和区块链

注:本章内容为作者和8个小朋友制作的游戏原型。

首先,我们来研究记账问题的溯源性。 有两种思考簿记的方法。 一种思路是“拍照”,即记录三个人账户在每个时刻的余额; 另一种思路是记录初始值(从时间的开始——“创世纪”开始),然后记录所有的转账。 第一种思路的好处是账本会很薄,第二种思路的好处是每一笔转账都有迹可循。 比特币使用第二种思路。

回到分类账的例子,为了简单起见,我们考虑三个人之间的账户,他们互相转账。 假设一开始ABC的三个人每人分到10块钱(为什么没有D?因为D不是早早进圈玩的。什么钱?无所谓,数字就是最重要的,单位不重要),然后三个人转账,整个系统5次“有效转账”称为一轮,每发生一轮转账,就将这5笔转账放入一个区块(block好像和box这个词很像,所以应该理解为一个box)来组成一个新的ledger。

转账可能有以下几种情况:

无效转账请求1:A说“B转3元给C”(如何从数字签名的角度描述这个请求的无效?)

无效转账请求2:A说“A转31元给C”

有效请求1:A说“A转1元给B”

有效请求2:A和B同时说:“抛硬币,正面朝上的A给B一美元,反面的B给A一美元”(这更像是一个合同,不是吗?)

有效请求n:任何可以想到的符合常识的转账方式。

这很好! 假设经过5次转账,我们得到一个账本,然后ABC同意我们把这个账本放在404房间的1号柜子里。这里假设404房间是绝对安全的。 第一本账本做完后,记账员拿出第二本空白账本,在空白账本的第一行写上“最后一本账本在404室1号柜子里”。 三人继续转账,形成新的账本,等等。

拿到最后一个账本的人,可以根据账本的第一句话找到之前的账本(是不是像路标?一个指向目标的指针),溯源到原来的“创建账本” . 但如何保证这条“寻根”链不被篡改呢?

我们可以通过两种方式解决这个问题。 第一个想法是把我们普通的指针变成哈希指针。 顾名思义普通人怎么弄比特币,哈希指针是结合了哈希函数的指针。 在这里,我们正在考虑数字世界中的分类帐。 如果我们要求新生成的账本中包含前面上一个账本的hash值,将自己的hash值作为一个整体传递给后面的下一个账本。 同时,我们对新账本整体的哈希值提出了一个极其困难的要求。 那么这个可追踪的链表(LinkedList)是非常健壮的。

手机怎么弄比特币_怎么弄比特币挖矿机_普通人怎么弄比特币

怎么弄比特币挖矿机_手机怎么弄比特币_普通人怎么弄比特币

思考题:什么样的要求会极难? (提示:“极难”这个形容词在此之前只出现过一次)

第二个思路。 我们再请几个会计,每个人各自记账,相互比对,达成共识后再向A、B、C汇报(请了那么多会计,是不是应该给钱?)。 除了404房间的公共记录外,每个簿记员都保存着一个完整的账本链(账本链在一起形成一个链)。 这样,当少数人搞糊涂或装糊涂时,大家一投票就知道正确的账本链长什么样了。

如果我们将账本称为区块,那么我们就有了区块链。 这样的记账区块链是比特币的基础。

思考题答案:我们要求新账本的hash值整体小于给定值——相当于要求hash值开头0的个数。 0越多,值越小,要求越严格——为了给会计一些自由,他(她)可以微调一个随机数来控制新账本的哈希值作为整体,并不断努力满足要求。

P2P网络——从区块链到比特币

与比特币之前的许多加密货币不同,比特币的秘密成分在于它成功地使用了 P2P 网络技术来进行分布式记账。

让我们首先回顾一下我们所涵盖的内容。

私钥签名的转账请求不能被未经授权的第三方伪造,任何人都可以通过验证签名查看(查看者能否知道现实世界中转账人的真实身份?)

将合法的转移请求打包到一个块中。

区块通过哈希指针连接在一起,形成一条链。

至此,这种记账流程与传统记账没有本质区别。 如果有一个完全可靠稳定的记账中心,那么我们就可以忽略比特币的存在; 但人们不信任传统的中心化簿记。 以账户的形式,集中记账中心的服务器怕被黑,体现了比特币的意义。

通过分布式网络解决这个问题。 分布式网络并不是什么新发明。 当您使用迅雷下载文件时,您会从网络上拥有该文件并连接到 Internet 的每台计算机上获取该文件。 这是一个P2P文件共享网络。 相比之下,当你从校园网或公司网的FTP服务器上下载文件时,你是作为客户端向中心服务器(server)请求资源的。

普通人怎么弄比特币_怎么弄比特币挖矿机_手机怎么弄比特币

分布式网络的优点和缺点是什么?

它比集中式网络更稳定。 部分节点下线不会导致网络崩溃。 如果服务器崩溃,文件就无法下载,但是P2P网络中的张三已经下线了,而李四和王舞还在。

比中心化网络更有信誉。 没有任何一个节点可以操纵整个网络的记录。 比如你在下载某本小说,赵六不喜欢主角在本地修改文件把主角给杀了。 你下载的文件仍将是主角走向人生巅峰的版本——因为这是大多数人的版本。

慢的。 慢意味着需要时间才能达成“共识”。 比如你从银行取钱,银行核实你的身份后,就会把钱给你; 如果在一个P2P网络中需要得到半数以上节点的认可,网络不好是一件很痛苦的事情。

接下来,我们来详细解释下分布式记账网络是如何工作的。

在开始记账之前,一个有算力的“会计”,这里叫小A,监控全网的转账记录公告,比如“小王转了2个比特币给小赵”,并验证他的签名(小王的签名),记录一项一项的传输信息。

怎么弄比特币挖矿机_手机怎么弄比特币_普通人怎么弄比特币

小A将自己的转账记录放入一个区块中,第一个成功计算出符合要求的随机数,使得自己区块的哈希值整体小于给定值(即值start有很多0)

小A将自己计算出的区块发布到全网,其他节点可以快速验证小A计算出的区块是否合法

小A的合法区块成功链接到全网认可的区块链(类似于404房间最新的账本),其他节点更新自己的本地区块链与认可的链一致。 作为全网记账的奖励,小A会得到一定的奖励(类比记账报酬)。

拥有算力的“会计”持续监控全网转账记录公告; 全网有转账需求的,将自己的转账记录广播给全网。 上述记账流程将不断循环。

到目前为止,我们已经介绍了比特币运行的核心技术。 在本文的第二部分,我们将看看比特币的具体实现,中本聪是如何制定规则的,让比特币横空出世运行到现在。

【LEAP故事】论文征集

LEAP诚挚邀请前辈和同龄人与我们分享你在职场、中学、学校的心酸血泪或经历。 内容可以和职业发展相关,从确定你的职业道路,第一个实习生到担任公司高管,发表行业认可的论文,再到自己创业。 没有长度限制,没有语言限制。

有兴趣者请将文章发送至 inputs@leapcareer.org,邮件主题为“LEAP Call for Papers”。

期待与您分享不平凡的岁月,分享同款产品的感悟。

相关文章:

普通人怎么弄比特币_怎么弄比特币挖矿机_手机怎么弄比特币

微信号:leapcareer

怎么弄比特币挖矿机_普通人怎么弄比特币_手机怎么弄比特币

网站:

脸书:Leaper Ngo

Instagram:飞跃事业

电子邮件:ask.leap@leapcareer.org

领英:LEAP 职业发展论坛

LEAP(Leadership,Excellence,Aspiration,Platform) 职业发展论坛是一家位于洛杉矶的 501 (c)(3) 非营利组织,致力于为年轻的亚裔美国人和亚裔美国人建立一个值得信赖和持续的职业发展和职业发展平台目前在美国学习或工作的 STEM(科学、技术、工程和数学)及相关领域的国家/地区。

LEAP 于 2013 年 2 月作为 CESASC(南加州华裔美国工程师和科学家协会)下属的教育项目启动,于 2015 年 6 月注册成立,成为一个独立的组织,专注于建立一个足智多谋的开放平台,以提倡杰出的领导力,鼓励专业卓越,培养远大志向,提供就业机会。