区块链技术与应用学习笔记(8-9节)——北大肖臻课程

目录

8.挖矿

对于全节点和轻节点思考问题?

①全节点在比特币的主要作用?

②挖矿时当监听到别人已经挖出区块并且延申了最长合法链此时应该立刻放弃当前区块在 本地重新组装一个指向最后这个新合法区块的候选区块,重新开始挖矿。节点这么做会不 会太浪费时间,资源了?

挖矿本身具有无记忆性(memoryless/progress free)。也就是说,无论之前做多少大量试验,对后续 继续挖矿没有任何影响。

③全节点除了保存完整账本和验证交易外,还可以有什么作用?

对于挖矿设备演化思考?

①越来越多挖矿设备参与比特币挖矿比特币会不会贬值?

②CPU,GPU的优缺点有什么(简单理解)?

③ASIC优势有什么?

对于矿池出现及矿池组织形式思考?

①什么是矿池?

②矿池的组织形式有哪些?

矿池利益分配思考?

①当矿机来自于不同的机构在矿池中的矿工如何进行利益分配?

②矿池利益分配中矿工可能出现问题与结果?

对于矿池统计数据思考?

51%算力矿池可以带来那些威胁思考? 经过Ghash.io事件过后,我们是否应该阻止大型矿池出现?

9.比特币脚本

比特币脚本:

输入输出脚本的执行:

输入输出脚本的几种形式:

P2PK形式(Pay to public key)

P2PKH形式(Pay to public key hash)最常用

P2SH形式(Pay to script hash)

多重签名

PoB 共识机制:


8.挖矿

对于全节点和轻节点思考问题?

①全节点在比特币的主要作用?

节点需要占用很大的内存去同步所有区块链上的数据,确保能快速验证交易的正确性。区 块链上的所有交易都是实时发生的,全节点在区块链分布式账本中主要作用之一就是负责 链上交易广播和验证。

②挖矿时当监听到别人已经挖出区块并且延申了最长合法链此时应该立刻放弃当前区块在 本地重新组装一个指向最后这个新合法区块的候选区块,重新开始挖矿。节点这么做会不 会太浪费时间,资源了?
挖矿本身具有无记忆性(memoryless/progress free)。也就是说,无论之前做多少大量试验,对后续 继续挖矿没有任何影响。
③全节点除了保存完整账本和验证交易外,还可以有什么作用?

另一个主要作用就是作为比特币网络的第二层防御(第一层是算力)。一旦有人掌握51%的 算力试图改变比特币区块共识,诚实的全节点将会生成最长的、超过攻击者的链条,从而拒 绝这些恶意交易,由此来维护分布式账本的安全(51%攻击于后文提及)。

对于挖矿设备演化思考?

①越来越多挖矿设备参与比特币挖矿比特币会不会贬值?

比特币日产量是固定的现在每产生一个区块的奖励为12.5btc,每10分钟产生一 个区块。矿机越来越多,挖矿难度会上涨,反而抬高比特币的价格。而且恰恰是 比特币价格的一路走高导致越来越多性能越来越强的矿机被制造出来。比特币数 量是有限的,但并不影响人们对于比特币挖矿的需求。

②CPU,GPU的优缺点有什么(简单理解)?

CPU:优点:简单容易组装,成本低。缺点:按现在的全网算力,CPU 毫无竞争 优势,如用 CPU 矿机挖矿获得比特币,它的概率估计比中彩票还低。 GPU:优点:可以集中提供算力。缺点:太贵

③ASIC优势有什么?

他的芯片只有7纳米,芯片尺寸对于矿机而言至关重要,决定了采矿的效率和费用,芯片表面面积越大,通信路径越长,因此数据传输所需要的电力消耗越大,目前的ASIC 矿机相比于最早期的CPU挖矿平均速度提升了1000亿倍,比特币市值越高,矿工的利润越高,同时通过采矿技术的创新提升,降低运营成本,进一步提高挖矿收益。ASIC不需要其他各种操作,只要专心计算HASH就好了!只会做一件事,专心做一件事,做到最省,这就是ASIC的优势。

对于矿池出现及矿池组织形式思考?

①什么是矿池?

由于比特币每日产出的区块基本是固定的,那么在全网算力提升到了一定程度后,单台机器挖到块的概率变得非常的低。这种现象的发展,促使一些矿工开发出一种可以将少量算力合并联合运作的方法,使用这种方式建立的网站便被称作“矿池”(MiningPool)。矿池其实就是聚集矿工的算力组成一个团队,团队里有任何一台矿机挖出区块,矿池就会按区块中获得的奖励按照不同的分配模式分给大家。矿池存在意义为提升比特币开采稳定性,使矿工收益趋于稳定。在矿池中矿工只需要不停计算哈希值,而全节点其他职责由矿主来承担。

②矿池的组织形式有哪些?

1.类似大型数据中心(同一机构),集中成千上万矿机进行哈希 计算。2.分布式。矿工与矿主不认识(不同机构),矿工与矿主联 系,自愿加入其矿池,矿主分配任务,矿工进行计算,获得收益 后整个矿池中所有矿工进行利益分配。

矿池利益分配思考?

①当矿机来自于不同的机构在矿池中的矿工如何进行利益分配?

假定平均分配,所有人平分出块奖励,则会导致某些矿工偷懒,不干活。所以,这里也需要进行按劳分配,需要一个工作量证明的方案。如何证明每个矿工所作的工作量呢? 解决方案如下 现在降低挖矿要求,原来需要计算前70位为0现在只需要前60位为0,这样挖矿会更容易挖到。当然,这个哈希是不会被区块链所承认的,我们将其称为一个share或almost valid share。矿工每挖到一个share,将其提交给矿主,矿主对其进行记录,作为矿工工作量的证明。等到某个矿工真正挖到符合要求的的区块后,根据所有矿工提交的share数量进行分配。因为每个矿工尝试的nonce越多,挖到矿的可能性越大,所能得到的share也会越多,所以这种方案作为工作量证明方案是可行的。

②矿池利益分配中矿工可能出现问题与结果?

一:矿工不提交合法区块,偷出块奖励并不可行,不提交合法区块矿 工自身也无法得到出块奖励,矿工任务由矿主分配并且出块奖励收 款方地址为矿主的。

二:矿工组装区块,收款地址为个人,此时矿工share不合法,矿工为 个人单干和矿池没关系。

三:在矿池里恶意搞破坏的矿工,因为不同的矿池有竞争关系,所以的确存在恶意搞破坏的矿工,故意丢掉合法区块。

对于矿池统计数据思考?

①中国矿池占比很大,某些矿池算力过强导致人们对于 比特币信心动摇,矿工转换矿池很容易,有可能存在矿池 的算力很强只是不表露。

②由这些数据可以得知,矿池本身对BTC系统带来了较大 威胁。某个恶意用户如果想发动攻击,以前需要自己达到 51%算力,现在自己只需要作为矿主,个人算力要求变少。只要能够吸引到足够多的不明真相的矿工 便可以用较低成本实现51%攻击。当然,矿主管理矿池, 也需要收取一定比例(出块奖励、交易费)作为管理费用。 如果恶意者想要攻击系统,会将管理费降低甚至赔本吸引 足够多矿工加入,使得发动51%攻击变得容易了起来。

51%算力矿池可以带来那些威胁思考? 经过Ghash.io事件过后,我们是否应该阻止大型矿池出现?

在PoW共识机制下,以比特币为首,51%攻击威胁会一直存在。 目前,比特币全网绝大多数算力都掌握在少数几家矿池手里,比 特币并不是绝对安全,理论上说,51%攻击威胁一直都存在。 但是,大型矿池在发动51%攻击会重创比特币币值,损人不利己 并且长远看来,矿池的出现的确为矿工带来了更多的收益, 综上所述,51%算力攻击存在理论可能,但几乎不会发生。比起 阻止我个人认为赚钱更重要。
 

9.比特币脚本


比特币脚本:

比特币系统中使用的脚本语言非常简单,唯一可以访问的内存空间只有栈,所以也 被称为“基于栈的语言”如果存在 一个交易有多个输入,那么每个输入都要说明币 的来源并给出签名(BTC中一个交易可能需要多个签名。除了第一笔交易是矿工的 挖矿所得外,每一笔交易都拥有一个或多个输入(TxIn),以及一个或多个输出 (TxOut)

输入输出脚本的执行:

在早期,直接将两个脚本按照如图顺序(input script在前,output script在后) 拼接 后执行,后来考虑到安全性问题,两个脚本改为分别执行:先执行input script,若无 出错,再执行output script。如果脚本可以顺利执行,最终栈顶结果为true,则验证 通过,交易合法;如果执行过程中出现任何错误,则交易非法。如果一个交易有多个 输入脚本,则每个输入脚本都要和对应的输出脚本匹配执行,全部验证通过才能说明 该交易合法。

输入输出脚本的几种形式:

P2PK形式(Pay to public key)

特点:输出脚本直接给出收款人公钥。(CHECKSIG为检查签名操作)

P2PKH形式(Pay to public key hash)最常用

特点:输出脚本不直接给出收款人公钥,而是公钥的哈希。

P2SH形式(Pay to script hash)

特点:输出脚本给出的不是收款人公钥的哈希,而是收款人 提供的一个脚本的哈希。该脚本称为redeemScript,即赎回 脚本。等未来花钱的时候,输入脚本要给出redeemScript的 具体内容以及可以使之正确运行需要的签名。

多重签名

1.早期实现方法: 该方法通过CHECKMULTISIG来实现,其中输入脚本提供N个签名 输出脚本给出N个公钥和阈值M,表示N个人至少有M个签名即可实 现转账(N>=M)。输入脚本只需要提供N个公钥中M个合法签名即可。

2.当下实现方法:如图为使用P2SH实现多重签名 本质上是将复杂度从输出脚本转移到输入脚本,该赎回脚本在输入脚 本提供,即收款人提供。收款人只需要公布赎回脚本哈希值即可,用 户只要在输出脚本中包含该哈希值,用户无需知道收款人的相关规则

PoB 共识机制:

PoB(Proof of Burn),燃烧证明机制,即通过销毁加密货币来证明 用户对网络的投入,从而获得“挖矿”以及验证交易的权利。燃烧 (销毁)得越多,拥有的(虚拟)算力就越大。

本期到此结束!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/315267.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「React Native」为什么要选择 React Native 作为的跨端方案

文章目录 前言一、常见因素二、举个栗子2.1 项目背景2.2 为什么选择 React Native2.3 项目实施2.4 成果总结 前言 没有完美的跨端技术,只有适合的场景。脱离适用场景去谈跨端技术没有什么意义。 一、常见因素 共享代码库: React Native 允许开发者编写…

OmniPlan Pro for Mac v4.8.0中文激活版 项目流程管理工具

OmniPlan Pro for Mac是一款功能强大的项目管理软件,它以其直观的用户界面和丰富的功能,帮助用户轻松管理各种复杂的项目。 OmniPlan Pro for Mac v4.8.0中文激活版 通过OmniPlan Pro,用户可以轻松创建任务,设置任务的开始和结束时…

毕业撒花 流感服务小程序的设计与实现

目录 1.1 总体页面设计 1.1.1 用户首页 1.1.2 新闻页面 1.1.3 我的页面 1.1.5 管理员登陆页面 1.1.6 管理员首页 1.2 用户模块 1.2.1 体检预约功能 1.2.2 体检报告功能 1.2.4 流感数据可视化功能 1.2.5 知识科普功能 1.2.6 疾病判断功能 1.2.7 出示个人就诊码功能 …

系统安全测试要怎么做?

进行系统安全测试时,可以按照以下详细的步骤进行: 1、信息收集和分析: 收集系统的相关信息,包括架构、部署环境、使用的框架和技术等。 分析系统的安全需求、威胁模型和安全策略等文档。 2、威胁建模和风险评估: …

【VUE】Vue中实现树状表格结构编辑与版本对比的详细技术实现

Vue中实现树状表格结构编辑与版本对比的详细技术实现 在Vue中,创建一个可编辑的树状表格并实施版本对比功能是一种需求较为常见的场景。在本教程中,我们将使用Vue结合Element UI的el-table组件,来构建一个树状表格,其中包含添加、…

codeforce#933 题解

E. Rudolf and k Bridges 题意不讲了,不如去题干看图。 传统dp,每个点有两个选择,那么建桥要么不建。需要注意的是在状态转移的时候,桥是有长度的,如果不建需要前d格中建桥花费最少的位置作为状态转移的初态。 #incl…

与Apollo共创生态:Apollo7周年大会自动驾驶生态利剑出鞘

前言 4月22日,百度Apollo在北京车展前夕举办了以“破晓•拥抱智变时刻”为主题的智能汽车产品发布会,围绕汽车智能化,发布了智驾、智舱、智图等全新升级的“驾舱图”系列产品。 1、7周年大会 自2013年百度开始布局自动驾驶,201…

Axure RP 9中文激活版:专业原型设计工具mac/win

Axure RP 9是一款由美国Axure Software Solution公司开发的专业原型设计工具。它凭借强大的交互功能和丰富的设计素材,为产品经理、UI设计师、交互设计师等用户提供了高效、便捷的原型设计体验。 Axure RP 9支持快速创建线框图、流程图、原型和规格说明文档&#xf…

c++中的链表list的模拟实现

拖更了半个月,我终于来填c的坑啦。上次我们说的vetcor不知道小伙伴还记得多少呢?今天我们要讲list的模拟实现。 目录 架构结点list表的结构 构造函数尾插push_back()尾删pop_back()计算个数:size()判断空empty()※迭代器问题普通迭代器迭代器…

vue2[黑马笔记]

vue基础 是什么—javascript框架 构建用户界面的前端框架 1.构建用户界面用vue往html页面中填充数据 2.框架现成的解决方案,遵守框架的规范去实现自己的业务功能学习vue 就是学习vue框架中规定的用法vue的指令组件(对ul结构的复用)&#x…

windows服务启动提示‘服务没有响应控制功能’(mysql启动报错)

在安装mysql的时候,在windows服务项启动 或 使用命令net start mysql 时启动是报错,提示 服务没有响应控制功能 发生原因: Windows10 x64 或 更高的操作系统,有些系统缺少一些组件 解决办法: 1、下载最新的 Microsoft …

CSS详解(一)

1、css工作中使用场景 美化网页(文字样式、背景样式、边框样式、盒子模型、定位、动画、),布局页面(flex布局、响应式布局、媒体查询) 2、CSS 规则 通常由两个主要部分组成选择器和样式声明 2.1选择器 选择器指定了…

制作自己的YOLOv8数据集

制作自己的YOLO8数据集 前言 该数据集的格式参照于coco数据集结构✨ 步骤一:收集图像数据 从互联网上下载公开的数据集,也可以使用摄像头或其他设备自行采集图像,确保你的图像数据覆盖了你感兴趣的目标和场景 步骤二:安装Labe…

正点原子[第二期]ARM(I.MX6U)裸机篇学习笔记-1.2

前言: 本文是来自哔哩哔哩网站上视频“正点原子[第二期]Linux之ARM(MX6U)裸机篇”的学习笔记,在这里会记录下正点原子Linux ARM MX6ULL 开发板根据配套的哔哩哔哩学习视频所作的实验和笔记内容。本文大量的引用了正点原子哔哔哩网…

[论文笔记] EcomGPT:COT扩充数据的电商大模型

社区供稿 | EcomGPT:基于任务链数据的电商大模型(附魔搭推理实践) - 知乎 https://arxiv.org/pdf/2312.15696.pdf EcomInstruct指令数据集构建 数据集组成 COT方式构造垂域训练数据:把原本的垂域任务分解成了原子任务,构造了基于解决原子任务的数据。这样能用类似…

网页模版如何用

现在的网页模版已经得到了许多人的喜爱和使用。随着人们对互联网的需求不断增加,更多的公司和组织需要拥有自己的网站,以推广他们的品牌和服务。而网页模版为他们提供了一个简单而高效的方法来创建自己的网站。 网页模版是预先设计好的网站模板&#xff…

人工智能技术在教育中的潜力有多大

原文:人工智能技术在教育中的潜力有多大? - 知乎 作者:大全Prompt 链接:https://www.zhihu.com/question/637034129/answer/3346272227 来源:知乎 谢邀:在技术快速发展的今天,人工智能&#x…

炒股自动化:券商官方,散户可用,查询订单状态API如何用?

券商官方的接口,个人账户可申请,入金门槛低,接入文档完善,技术支持好的,经过我们筛选后,只有一家符合 会编程,有基础,只是需要API接口的朋友不用看这些,不会写程序的朋友…

【vue2】实现微信截图(复制图片)在项目内可粘贴

需求 后台管理在上传图片地方需要将复制的图片粘贴上传 一、添加事件 在原有上传组件的基础上添加 paste事件 二、方法 onPaste(e) {const items (e.clipboardData || window.clipboardData).items;let blob null;for (let i 0; i < items.length; i) {if (items[i].ty…

设计模式:单例、原型和生成器

在这篇文章中&#xff0c;我们将重点介绍其余的创建模式&#xff1a;Singleton&#xff0c;Builder和Prototype。 在我看来&#xff0c;这些模式不如工厂重要。然而&#xff0c;了解它们仍然很有用。我将提供UML描述&#xff0c;简单的java示例&#xff08;这样即使你不了解jav…