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

目录

12.BTC-匿名性

一、什么是匿名?

1,有可能破坏比特币匿名性的两个方面

2,如何提高匿名性 一个比特币用户能采用什么样的方法尽量提高个人的匿名性?

分解:

1、网络层怎么提高匿名性?

2、应用层怎么提高匿名性?

零知识证明

13.BTC思考

哈希指针:

区块“恋” :

分布式共识 :

BTC的稀缺性:

量子计算 :

总结:

结语:


12.BTC-匿名性

一、什么是匿名?

一般来说,匿名是跟隐私保护联系在一起的。比特币中不要求用真名,可以用公钥产生的地址,所以比特币具有一定的匿名性。也就是你可以产生任意多的地址,然后用不同的地址干不同的事情。它用的是化名,但它不是完全没有名字,所以有人把它称为 preudonymity。

1,有可能破坏比特币匿名性的两个方面

钱包关联性:一个人可以生成很多个地址账户但这些地址账户是有可能被关联起来的。

现实关联性:是这个地址账户跟现实世界中的身份也可能产生关联。什么时候会有关联?什 么情况下别人有可能知道比特币账户对应的现实生活中的哪个人呢?

2,如何提高匿名性 一个比特币用户能采用什么样的方法尽量提高个人的匿名性?

比特币系统是运行于应用层 (application layer) 的,底层是 (network layer)。所以要提高匿名性可以从两个方面入手。

分解:
1、网络层怎么提高匿名性?

网络层的匿名性学术界已经有了很好的方案:多路径转发。跟洋葱路由(TOR)是一样的原理。即消息不是由发出者直接发送给接收者,中间要经过很多次转发。中间的每一个节点,只知道它的上一个节点是谁,但并不知道最早发出消息的人是谁。当然中间一些节点可能是坏的,但路径上只要有一个节点是诚实的,就能够把最初发起人的身份隐藏起来。

2、应用层怎么提高匿名性?

1 coin mixing把不同人的币混在一起(coin mixing),即把你的身份跟别人的身份混在一起,让别人分不清楚谁是谁。 2 在线钱包和交易所在线钱包并不保证要履行 coin mixing 的功能。还可以通过加密货币的交易所,交易所一般有天然的 coin mixing 的性质。前提是交易所不会泄露提币、存币的记录,否则也是不行的。

零知识证明

零知识证明:一方(证明者)向另一方(验证者)证明某一个陈述是正确的,而不需要透露除该陈述是正确的之外的任何信息。

同态隐藏:零知识证明的数学基础是同态隐藏。

盲签:用户 A 提供序号,银行进行签名但此时看不到序号的内容,A要取钱所以银行要 减少A的存款。A 给 B转账交易的时候把序号和签名给B,这个时候序号是明文,B是可以 看到序号的具体内容的。B 把序号和签名给银行验证,这个时候序号也是明文,这一步验 证的目的是检测 double spending。这样设计的好处是:银行不知道 B 的币是从哪来的。

零币和零钞:它们也是加密货币,跟比特币是一类属性比特币在很大程度上提供了匿 名性,但它不能完全消除关联性,那么我们能不能设计一种新的加密货币,这个货币从一开 始的结构设计上就用了密码学的原理保证了匿名性,所以就有了零币和零钞。零钞没有基础 币,是完全的零币。零钞和零币也不是100%匿名安全的,在影响匿名安全的因素中依然有 一个因素无法解决,就是与实体发生交互的时候,比如有人想拿这些币干坏事,把很大的 金额转换成这种加密货币的时候,或者是把这些加密货币转换成现金的时候,仍然要暴露 身份。依然无法百分百匿名。

13.BTC思考

哈希指针:

BTC系统中很多地方使用到了哈希指针。指针保存的本地内存地址,只有在本地计算机上才具有意义,如果发送给其他计算机就没有意义了。那么在区块发布时候,哈希指针如何通过网络进行传播?所谓哈希指针,只是系统中一种形象化的方法。实际应用时候,只有哈希而没有指针。在block header中只有hash值,没有指针。那么如何查找到前一个区块的内容?全节点一般将区块存储于一个key-value数据库中,key为哈希,value为区块内容。常用的key-value数据库为levelDB,只要掌握到最后一个区块的哈希值即可依据哈希值一直往前找到区块链所有内容。有些节点只保存区块链部分信息,如果需要用到前面的区块,可以问其他节点要。哈希指针性质保证了整个区块链内容是不可篡改的。

区块“恋” :

N个人只持有完整私钥一部分这样做有什么问题?如果按照这种方法,将私钥分为N 份。但这样会有一系列问题。一. 如果N个人中任意一个人忘记私钥,则无法将钱取 出。二.截断私钥长度,会降低安全性,因为私钥长度会直接影响破解难度(2^256 远远大于 2^128),之间难度差距远远不止一倍。可见,对于多个人账户,应该使用 多重签名,而非截断私钥的方法)三.如果分手,该钱变成死钱,一直保存在UTXO 集合中,对矿工不友好。

分布式共识 :

之前有提及,理论上来说,分布式系统不可能达成共识。但实际中为何变成可能了? 严格来说,BTC系统共识随时可能被推翻,例如分叉攻击导致系统回滚。此外,理论 和实际存在差异。不可能结论针对特定模型,实际中对模型稍微修改或添加线下方法即可将不可能变为可能。

BTC的稀缺性:

为什么要挖矿?因为有收益,且收益大于开销。早期BTC难度低且出块奖励高,从而吸引矿工。 之前有提到,BTC总量固定,实际上,总量固定的东西并不适合作为货币,这也就决定了BTC并不能在未来完全颠覆现有货币体系。以太坊中便没有BTC中出块奖励定期减半的做法,此外,某些新型货币会自带通货膨胀的功能。 对个人来说,通货膨胀并非好事,因为钱不值钱了。但人类每年创造的价值,如果用总量固定的东西作为货币,则其只会越来越值钱,而这会导致拥有者不断看着其升值,其他没有的人无论如何奋斗都赶不上

量子计算 :

会不会BTC这种建立在密码学上的加密货币,在量子计算出来后会不会变得不安全? 一. 量子计算距离使用仍然有很长距离 二. 量子计算若真正使用到破坏现有加密算法,对传统金融业的破坏仍然是最大的。 三. 实际中使用的并非公钥,而是可以用公钥哈希。而哈希函数一般都是不可逆的, 所以即使量子计算也无法反推私钥。BTC中用的SHA-256,无论输入多大,最终结 果都为256位,必然会导致信息丢失,无法反推原本数据。

总结:

加密可逆、哈希不可逆;加密不损失信息、哈希破坏信息

结语:

通过对于BTC的基础学习,我了解到比特币自身设计的精妙,以及其内部可能存在的缺陷,比特币作为当今区块链市场不可替代的存在,但比特币挖矿也有自己的缺陷,耗电量大等。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

揭露 FileSystem 引起的线上 JVM 内存溢出问题

作者:来自 vivo 互联网大数据团队-Ye Jidong 本文主要介绍了由FileSystem类引起的一次线上内存泄漏导致内存溢出的问题分析解决全过程。 内存泄漏定义(memory leak):一个不再被程序使用的对象或变量还在内存中占有存储空间&#x…

无人机生态环境监测、图像处理与 GIS 数据分析

原文链接:无人机生态环境监测、图像处理与 GIS 数据分析https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247602414&idx6&sn950b55bc2cc4812c838c66af2118d74e&chksmfa821109cdf5981f2af51bd27e459a1c46dd783cdceba5aa3693461260bbf7b0101ac8…

Vim学习笔记01~04

第01章: 遁入空门,模式当道 1.什么是vim Vim是一个高效的文本编辑工具,并且可以在编程开发过程中发挥越来越重要的作用。 事实上,有不少编程高手使用他们来进行代码的开发,并且对此赞不绝口。 2.本系列目的 但是让…

Java作业7-Java异常处理

异常处理这块有些不太理解,看看Bz网课-异常 编程1-计算器输入异常 题目 计算器输入异常 在实验三中实现的命令行计算器已有功能基础上,添加异常处理机制,当用户输入的操作数为非整数时,利用异常处理机制显示错误提示信息。如&a…

网易云热评加密函数逆向(Jsrpc)

今天给大家来个jsrpc实战教程,让大家继续加深对jsrpc的理解和认识。 1、因为网易云音乐热评的加密并不在cookie上,而是参数加密,所以这里就不需要进行hook住cookie了。 2、之前就知道网易云音乐热评的加密存在之地是在下图的位置,是那个函数window.asrsea(JSON.stringify(…

项目实战 | 责任链模式 (下)

案例二:工作流,费用报销审核流程 同事小贾最近刚出差回来,她迫不及待的就提交了费用报销的流程。根据金额不同,分为以下几种审核流程。报销金额低于1000元,三级部门管理者审批即可,1000到5000元除了三级部…

免费分享一套SpringBoot+Vue家政服务管理平台管理系统,帅呆了~~

大家好,我是java1234_小锋老师,看到一个不错的SpringBootVue家政服务管理平台管理系统,分享下哈。 项目视频演示 【免费】SpringBootVue家政服务管理平台系统 Java毕业设计_哔哩哔哩_bilibili【免费】SpringBootVue家政服务管理平台系统 Ja…

coverage,一个有趣的 Python 库!

更多Python学习内容:ipengtao.com 大家好,今天为大家分享一个有趣的 Python 库 - coveragepy。 Github地址:https://github.com/nedbat/coveragepy 在软件开发中,测试是确保代码质量和稳定性的关键步骤之一。而代码覆盖率则是衡量…

2024新版计算机网络视频教程65集完整版(视频+配套资料)

今日学计算机网络,众生皆叹难理解。 却见老师神乎其技,网络通畅如云烟。 协议层次纷繁复杂,ARP、IP、TCP、UDP。 路由器交换机相连,数据包穿梭无限。 网络安全重于泰山,防火墙、加密都来添。 恶意攻击时刻存在&#xf…

深圳证券交易所Binary行情数据接口规范

对接深圳证券交易所Binary行情数据接口其实并不难,你需要具备以下知识。 1、需要了解Binary报文设计结构,消息头消息体消息尾。 消息体: 如果是纯map结构的比较简单,字段平铺开来即可。如{"id":"1","…

与AI对话:探索最佳国内可用的ChatGPT网站

与AI对话:探索最佳国内可用的ChatGPT网站 🌐 链接: GPTGod 点击可注册 🏷️ 标签: GPT-4 支持API 支持绘图 Claude 📝 简介:GPTGod 是一个功能全面的平台,提供GPT-4的强大功能&…

多线程(安全 同步 线程池)

线程安全问题 多线程给我们的程序带来了很大性能上的提升,但是也可能引发线程安全问题线程安全问题指的是当多个线程同时操作同一个共享资源的时候,可能会出现的操作结果不符预期问题 取钱的线程安全问题 线程安全问题出现的原因? 存在多线…

idea创建完项目如何隐藏不重要的文件

如果您不打算直接使用这些脚本,而是更倾向于通过IDEA的内置工具来运行Maven命令,那么您可以选择隐藏这些文件。但是,隐藏这些文件并不会影响它们的功能,只是在项目视图中不再显示它们。 1.转到 File > Settings(Wi…

时间,空间复杂度讲解——夯实根基

前言:本节内容属于数据结构的入门知识——算法的时间复杂度和空间复杂度。 时间复杂度和空间复杂度的知识点很少, 也很简单。 本节的主要篇幅会放在使用具体例题来分析时间复杂度和空间复杂度。本节内容适合刚刚接触数据结构或者基础有些薄弱的友友们哦。…

【threejs教程7】threejs聚光灯、摄影机灯和汽车运动效果

【图片完整效果代码位于文章末】 在上一篇文章中我们实现了汽车模型的加载,这篇文章主要讲如何让汽车看起来像在运动。同时列出聚光灯和摄像机灯光的加载方法。 查看上一篇👉【threejs教程6】threejs加载glb模型文件(小米su7)&…

详解23种设计模式——单例模式

单例模式 | CoderMast编程桅杆单例模式 单例模式是最常用的设计模式之一,他可以保证在整个应用中,某个类只存在一个实例化对象,即全局使用到该类的只有一个对象,这种模式在需要限制某些类的实例数量时非常有用,通常全局…

The Clock and the Pizza [NeurIPS 2023 oral]

本篇文章发表于NeurIPS 2023 (oral),作者来自于MIT。 文章链接:https://arxiv.org/abs/2306.17844 一、概述 目前,多模态大语言模型的出现为人工智能带来新一轮发展,相关理论也逐渐从纸面走向现实,影响着人们日常生活…

WebAssembly学习记录

1.WebAssembly 1.1 指令集 概念:二进制编码集合。 依据计算机组成原理和计算机概论,指令集是一组二进制编码。 作用:控制硬件。 这些二进制指令直接作用于硬件电路,控制硬件完成指定操作。 例如:控制数据进入某个寄存…

如何通过质构分析仪客观评价面包的硬度、咀嚼性等口感指标

如何通过质构分析仪客观评价面包的硬度、咀嚼性等口感指标 一、引言:面包口感品质的重要性 面包作为日常生活中常见的食品之一,其口感品质直接影响到消费者的购买决策和食用体验。其中,硬度和咀嚼性是衡量面包口感品质的重要指标。因此&…

车企如何利用数据技术,指导汽车全生命周期的业务运营?

引言:数据正作为重点,为行业提供不可或缺的指导 《汽车数据发展研究报告(2023)》指出,汽车行业正由传统硬件制造向“电动化、智能化、网联化”方向转变。德勤预测,到 2025 年,汽车行业 20%的利…