主页 > imtoken官网钱包 > 区块链技术(爱丁堡硕士课程实录)

区块链技术(爱丁堡硕士课程实录)

imtoken官网钱包 2023-06-06 08:09:39

区块链和分布式账本 中央控制系统

●一个人(党/节点)控制谁可以读/写/删除数据

●如果一个人/党/节点死亡/不诚实/崩溃,系统将崩溃

(所谓单点故障,一个节点不可靠)

●一个人(党/节点)控制谁可以读/写/删除数据

●如果一个人/党/节点死亡/不诚实/崩溃,系统将崩溃

(所谓单点故障,一个节点不可靠)

比特币是单账本还是多账本_比特币李笑比特币身价_莱特币是比特币?

受控访问分布式系统

●节点共同控制系统

●如果只有少数节点故障,系统仍可运行

●Controlled participation - only authorized parties 受控参与 - only authorized parties

(多个节点协同工作,其中一个坏掉不影响系统使用,其他节点仍可运行)

比特币李笑比特币身价_比特币是单账本还是多账本_莱特币是比特币?

开放访问分布式系统

●节点共同控制系统

●如果只有少数节点故障,系统仍可运行

●任何人都可以参与,加入或离开

开放访问分布式系统和受控访问分布式系统是相同的,但第三种不同。 开放访问分布式系统的改进是任何人都可以加入或离开

比特币李笑比特币身价_莱特币是比特币?_比特币是单账本还是多账本

什么是区块链

● 区块链是满足一组独特的安全性和活性属性的分布式数据库

比特币是单账本还是多账本_莱特币是比特币?_比特币李笑比特币身价

区块链是满足一组独特的安全性和活性属性的分布式数据库

● 分布式账本使用区块链协议作为一种实现方式

分布式账本使用区块链协议作为实现手段之一

● 要了解它,我们将关注它的第一个应用

为了理解它,我们将关注它的第一个应用

区块链是一种分布式共享账本或数据库,其中存储的数据或信息具有去中心化、不可篡改的特点。

从狭义上讲,区块链是一种链式数据结构,它按照时间顺序将数据块以顺序连接的方式组合起来,并通过密码学保证不可篡改和不可伪造。 分类帐。

从广义上讲,区块链实际上是一种分布式基础设施和计算方式,用于保证数据传输和访问的安全性。

它本质上是一个去中心化的分布式数据库。 任何人架设自己的服务器,接入区块链网络,都可以成为这个庞大网络的一个节点,人人都可以加入。

为什么要研究区块链? 为什么要研究区块链?

莱特币是比特币?_比特币是单账本还是多账本_比特币李笑比特币身价

本页的ppt没什么用,随便说说区块链的一些应用,可以学到一些知识。。。

比特币是单账本还是多账本_莱特币是比特币?_比特币李笑比特币身价

了解区块链,先看书

现在有一本读不完的书。 起初这本书只有一个封面。 每个人都可以多写一页。 只要抄写员有兴趣,就会无限期地产生新的页面。 创建的每个新页面都需要抄写员的一些努力。

莱特币是比特币?_比特币是单账本还是多账本_比特币李笑比特币身价

现在你写了一页,发现可以在末尾追加三本书。 你要在哪里添加你写的页面? 老师说选一本页数最多的书加在后面。 如果页数相同,则随机选择一个。 对于每个人来说,看到的书可能都不一样,因为每个人的选择都不一样。 您创建一个页面,将其链接到上一页,然后链接最长的页面序列以组合这本书,这样您就可以创建尽可能长的书,如果某些页面没有出现在这个版本中也没关系。 这就是我们所说的孤立页面。

比特币是单账本还是多账本_莱特币是比特币?_比特币李笑比特币身价

其实123页都是正常的。 有人写了page 4,有人写了page 4',第五个人可以写在page 4的人之后,也可以follow在page 4'的人之后,但是这个人是随机抽选继续的。 第4页,第6个人可以选择继续4'或者第5页,但是第5页比较长,所以他继续第5个人的写法,写了6,...后面也是一样,越多越多写1-8,越写越长,但是没有人继续写4'、6'、7'页,所以这些页被称为孤儿页(orphan pages)

莱特币是比特币?_比特币是单账本还是多账本_比特币李笑比特币身价

请注意,创建页面需要一些努力。 你需要投入一些能量,把它想象成一对骰子然后你掷它。 找到正确的组合后,就可以开始了。 如果掷骰子的组合不正确,则无法创建页面。

比特币是单账本还是多账本_比特币李笑比特币身价_莱特币是比特币?

比特币是单账本还是多账本_比特币李笑比特币身价_莱特币是比特币?

有一掷骰子决定是否可以写下一页,目的是打破平衡,打破对称,你有两本或更多的书以相同的速度展开。 你想以某种方式将它分开。 你想在某种程度上给两个视角中的一个带来优势,因为这样你就可以专注于每个人都使用的同一版本的书作为标准,这意味着如果两本书的厚度都一样,没有办法将它们分开,也无法将它们收集到同一版本的书中。 如果掷骰子决定一本书比其他的厚,那么以后每个人都会写那本书。 这本书变成了孤儿页。 这是作者想要达到的目的,所以我不会因为想写就写,而是需要掷骰子来决定能不能写下一页。 这样一来,其实会更有条理。 大家不会一起写多少页,谁掷到某个点就可以写了。

请记住,我们不关心这本书包含什么。 我们只关心每个人对这本书的看法是否相同(即每个人都可以写一本书,每个人都有平等的权力,是否写下一页取决于掷骰子)。 他们的书是一样的,骰子可以让你打破这种对称性。 允许您与版本进行通信。

如何成为抄写员

任何人都可以成为这本书的抄写员

只要有一组骰子

一个人拥有的骰子越多,就越有可能掷出一页获胜组合

比特币是单账本还是多账本_比特币李笑比特币身价_莱特币是比特币?

一本书相当于一个区块链,存储数据,每一页相当于一个小区块。 这些块中的每一个在数据库中都有数据。 当您遍历所有块时,您最终会得到数据库。

抄写员,那些能够创建页面的人,他们被允许创建页面并将它们添加到书中,他们是矿工。 矿工系统实际上是创建区块并将其添加到区块链的机器。

作为矿工,为了创建一个区块,您必须解决一个中等难度的难题。 今天我们就来看看这个拼图是什么样子的。 这个谜题应该有一个概率的概念。 它应该让每个人只要有一定的计算能力就可以参与。 它应该能够打破这种对称性。 这里解决的问题好比掷骰子达到某个点。

要创建您想要的新页面,您必须付出一些努力。 它意味着能量。 这就是物质,为什么要做? 为什么会有人想要这样做? 他们为什么要花钱和精力维护这个分布式数据库?

第一个应用是比特币

为什么人家要搞。说白了就是因为奖励。

什么是比特币

比特币试图成为两件事。首先,它试图成为一种支付系统

○ 与现金、银行存款运营网络、Visa、Mastercard等竞争。

与现金、银行存款运营网络、Visa、Mastercard等竞争(Visa或Mastercard会遇到一些问题,不连续工作,会瘫痪)

○ 高吞吐量(large volume of transactions/sec)实现高吞吐量(large volume transactions per second)

○ Low latency (快速交易结算) Low latency

○ 不间断服务 持续运行; 不间断服务

比特币试图成为的另一件事是数字资产(我的理解是可花费的能量与货币一样有价值)

比特币是一种虚拟的加密数字货币,没有发行人。 比特币是区块链的应用之一。 比特币交易会形成一条交易记录链,不同区块之间的连接形成一个区块。 区块链。 比特币本质上是一个加密的信息块。 由于没有公认的发行官方,比特币不是某个国家的官方货币,也不为所有国家所承认。

比特币李笑比特币身价_莱特币是比特币?_比特币是单账本还是多账本

比特币(Bitcoin,简称BTC)的概念最早由中本聪于2008年提出,是一种点对点的、去中心化的数字资产。 2009 年,比特币网络诞生,其创始人创建了第一个比特币区块。 比特币是一种 P2P 数字加密货币。 预计2140年完成发行,总量2100万枚比特币是单账本还是多账本,极为稀缺。 德国是最早承认比特币的国家,微软和戴尔也接受了比特币支付。

2010年5月22日,一位名叫拉斯洛·汉耶茨(Laszlo Hanyecz)的程序员在网上发帖称,他愿意花10000个比特币买两个披萨。 和他交易,所以他设法得到了两个比萨饼。 这是比特币诞生以来的第一笔交易,当时一个比特币相当于0.003美分。 感觉就像有人愿意交易能带来价值。

特征:

比特币的优势

弹力

本书(账本)在网络上共享

即使某些节点崩溃或损坏,系统仍然可以正常运行(因为每个人都有一个账本)

抗审查

抗审查特性意味着任何人都可以拥有比特币的价值,而不会有被机构或管理者等恶意方剥夺的风险

每个人都可以参加

不受地理影响。 不管你来自哪个国家。 他们并不总是需要遵守他们的规定或特定国家/地区的管辖权。

数字和开放

它是开放的。 所以现在任何人都可以成为用户。他们可以在其上构建任何他们想要的东西,只要他们的应用程序遵循一些非常合理的基本规则

主要优点是去中心化,人对人,不需要第三方机构,比较安全

比特币的缺点

不适合钱

价格波动和流通不随经济增长而变化。 比特币的价格每天波动很大,一天高一天低,第二天的价格变幻莫测。

没有什么是用比特币定价的,也没有人说一件衣服要多少比特币

最后,就系统而言,它不是一个好的交换媒介,因为数据库很慢。 这是因为吞吐量小,吞吐量低。 它不允许每秒 5 到 8 个事务; 延迟是指从发送交易到交易完成需要等待多长时间。 在比特币中,这是 60 分钟。 因此,您必须在超市等待一个小时才能完成交易。

不可逆性 不可逆性

一旦你发布了交易,交易就在那里,你发布了,你就不能收回。 如果由于某种原因您在交易中犯了错误,例如,您不小心将钱汇给了另一个人,而不是您打算汇款的人,那么这笔钱将无法收回。

如果用户的比特币被盗或他们的密钥丢失,则不存在恢复机制

比特币李笑比特币身价_比特币是单账本还是多账本_莱特币是比特币?

环境效率低下。 环境效率低下。

矿工必须投资能源、材料和稀土材料来制造他们的计算机等等。 比特币对环境的影响是荒谬的。 例如,整个比特币系统的二氧化碳排放量与希腊差不多。 也就是挖矿有点消耗资源,有点破坏环境。 浪费资源。

值得思考的问题

一页如何正确引用上一页? (块如何链接在一起)哈希函数

如何创建页面? 我们如何执行和验证工作,我们如何打破对称? (如何创建块?我们如何打破对称性?)工作量证明

如何证明数字资产的所有权? 数字签名

哈希函数 哈希函数

Hash,一般译为“散列”,也有直接音译为“散列”的,即任意长度的输入(也称预映射,原像)通过哈希算法转化为固定长度的输出. 输出是哈希值。

哈希函数(hash function)可以将任意长度(可以是大文件)的输入值转换成固定长度的值输出,称为哈希值,输出值通常是字母和数字的组合.比如下面是一串hash结果

00740f40257a13bf3b40f54a9fe398c79a664bb21cfa2870abe7888b21eeba8

单向函数是一种单射函数,具有以下特点:对于每个输入,函数值很容易计算,但给定一个随机输入函数值,计算原始输入就比较困难。 显然,单向函数不能直接用作密码系统,因为如果用单向函数加密明文,即使是合法的接收者也无法恢复明文,因为单向函数的逆运算是困难的.

目前还没有人能够从理论上证明单向函数的存在。证明单向函数的存在将是计算机科学中最具挑战性的猜想之一

莱特币是比特币?_比特币是单账本还是多账本_比特币李笑比特币身价

P=NP是数学界的一道难题。 不管是什么,无论如何都不可能证明单向函数的存在。

哈希函数加密注意事项

碰撞攻击 碰撞攻击

碰撞攻击:求x,y:H(x) = H(y)

哈希是密码学和普通程序中经常用到的函数。 如果哈希算法设计不好,就会发生哈希碰撞甚至碰撞攻击。

所谓碰撞攻击是指对于同一个哈希函数,两个不同的输入通过哈希计算得到相同的哈希值。 用公式来说就是:

莱特币是比特币?_比特币是单账本还是多账本_比特币李笑比特币身价

这个概率其实很低,但是也有小概率

原像攻击 原像攻击

比特币是单账本还是多账本_莱特币是比特币?_比特币李笑比特币身价

Pre-Image Attack 是指定一个散列值并找到任何具有该散列值的消息

第二次原像攻击第二次原像攻击

就是指定一条消息1,找到另外一条消息2,消息2的hash值和消息1一样,即给定一个x,求ay使得hash(x) = hash(y)

一个好的哈希算法必须能抵抗以上三种攻击。 哈希函数应该能够抵抗所有这些攻击,也就是说,任何(计算)攻击者都不可能执行这些攻击。

老师也举了个例子

367个人在一起的时候,某个人的生日肯定是撞在一起的,所以从概率上来说,hash的结果也一定是撞在一起的。

哈希函数实例化

退休了。 MD5、SHA1。

MD5 和 SHA1 散列已停用。 2005年,山东大学王小云教授发布了一种可以轻松构建MD5碰撞实例的算法。 之后,2007年国外一些学者在王小云教授算法的基础上进一步提出了MD5前缀碰撞构建算法。 “chosen prefix collision”,之后有高手提供了MD5碰撞构建的开源库。因此MD5碰撞构建起来很简单。 基于 MD5 验证数据完整性是不可靠的。 考虑到谷歌最近成功构建了SHA1的碰撞实例,MD5和SHA1不安全,已经退役。

当前的。 SHA2、SHA3,可用于{224、256、384、512}位指纹。

MD5 和 SHA-1 算法已被破坏,不应用于新目的; SHA-2 和 SHA-3 仍然是安全的,可以使用。

比特币。 使用具有 256 位输出的 SHA2,SHA-256

比特币。 使用具有 256 位输出的 SHA2,即 SHA-256。

工作证明

所谓工作量证明,就是需要用户进行一些耗时复杂的计算来获得问题的答案,并且可以快速验证答案的活动。 整个比特币网络运行在工作量证明机制之上。

之前举的例子是掷骰子,但是实际中是不可能掷骰子的。 用户需要进行一些耗时且复杂的计算才能获得问题的答案,只有获得答案的人才能获得奖励。 并且可以快速验证答案。

工作量证明是一种由于成本高或费时而难以生成,但容易被他人验证的数据。 工作量证明的生成通常涉及具有随机过程且成功概率较低的计算任务,因此平均而言,在生成有效的工作量证明之前需要进行大量的反复试验。 在比特币中,工作量证明机制基于 SHA-256 哈希算法。 说白了,比特币的工作量证明算法试图解决一个单次成功概率很低的难题。

整数

w≔0

while Hash(d, w) > 目标

增加 w

返回 w

相当于给你广告比特币是单账本还是多账本,你不断的寻找w,这样Hash(d, w)