关于课题的想法
2021/4/9
今天去找了老师聊了一下,老俞的意思是说
- 主要是通过区块链,来保证大数据分发每个环节数据的真实性、不可篡改性;
- 当发生非法转发时,可以追溯到责任人;
- 授权访问、访问控制不是重点;
- 我的任务是在师姐搭好的平台上,实现相应的算法
跟师姐又聊了一下,师姐让我去看看MMR算法,默克尔山脉;提到了蚂蚁面试时问到了语言机、Oracle,另外面试官对大数据下的区块链溯源比较感兴趣。师姐让我把区块链平台搭好。
2021/3/10
-
什么是大数据分发?
其模型是这样的吗?
-
大数据分发和溯源平台是是公司内部使用,对员工或部分使用数据进行溯源?还是大众使用?还是说设计一套通用的。
-
大数据分发的溯源,溯的是什么源?(谁请求了这个数据,又转发给了谁,能否修改?)
-
重点在哪:是溯源,还是说大数据分发平台的构建和溯源同等重要?
-
溯源的目的是什么?
- 当数据发生泄漏时,快速定位泄露的环节和责任人。
- 还是说只负责溯源,具体的对溯源数据怎么使用,不是我的课题所关心的。
-
老俞的想法是,在一个大数据的环境下进行数据分发,比如授权A访问某项数据,并且A还可以转发给B(要能对这种转发的权限进行控制)。那么我要做的就是使数据被访问(涉不涉及到修改?)的路径可以被追溯。老俞还提到保护数据隐私(什么叫保护数据隐私?即没有授权的用户不能访问特定数据,或者转发给没有被授权的用户他不能访问?)
-
感觉百度云的分享模式再加个溯源就很符合老俞说的场景?
-
我认为无法对转发进行限制(线下转发),只能是在系统内部进行转发时,加以记录然后溯源。
区块链原理相关问题
- 如何解决双花问题?
- 双花问题指的是把一笔比特币同时转给A和B,那么我把这笔交易广播到全网,有的矿工M1会打包给A的这笔,有的矿工M2会打包B的这笔。甚至有的矿工会接收到这两笔交易,当然他如果将两笔交易同时打包在一个区块,会过不了合法性验证。M1、M2会将打包的区块发布到全网,最终哪种结果会生效,取决于哪个块在最长链上。对于其他所有节点来说,先收到M1的块,后续接收M2的块会导致分叉,至于他们认可哪个,取决于后续哪个块所在的链更长。
- 最长链,一般重要交易会等6个块确认
- 那我的问题来了,如果按照上述描述,M1的打包若是生效,M2的打包即其所耗费的大量算力就白费了,那么我作为一个普通的节点,我不是同时双花,而是同时十花、一百花、一千花、一万花,会不会导致全网算力的大幅浪费?从而导致短暂的全网算力下降?
- 答案是不会,只会短暂产生大量分叉。我设想的场景是这样的,比如我把一笔钱同时转给10个人,那么就向全网广播了这10笔交易.矿工M1先收到的是我转给A,那么通过大量计算解出puzzle然后打包,剩下9个矿工分别先收到的是我转给B、C、D…的交易,都通过大量计算然后获得记账权然后打包。然后我想的是浪费了剩下九个人的算力。。如果同时转给一万个人,那么9999个人的算力都浪费了。
不过答案是,算力本来就是用来浪费的,本来就只有一个人的结果才会成为最终共识的
- 区块链的不可篡改性,是对于共识的不可篡改,修改本地的区块,会导致其他节点
对该节点的内容的不认可,从而导致该节点被提出共识圈子 - 区块链所指的不可篡改性,指的是区块链系统的共识不可篡改,而不是某个节点的内容不可篡改。
- 比特币使用POW的方法来实现共识,其共识是:大家都只认最长链上的块是合法的(前提是块通过了合法性验证)。
- 你给我转账,到底转没转,我只看最长链上有没有你给我转账的记录(需要等待6个块确认)。那在哪看呢?看自己本地的区块链吗?应该是的
- 那如果对方的这笔转账不向全网广播,只发送给我一个人,可以欺骗我吗?答案是不可以,因为只有交易不成块,我是不认的
- 那如果他挖出块,然后把给我转账的信息写入,然后只发给我,我会被欺骗吗?答案是不会,因为我会等待6个交易确认,那么他抢先在所有人之前连续挖出6个块的几率几乎为0,因为他的算力太小。