论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
物联网
›
物联网
›
0底子学习区块链技术——推演猜想
0底子学习区块链技术——推演猜想
万万哇
金牌会员
|
2024-6-21 14:35:14
|
来自手机
|
显示全部楼层
|
阅读模式
楼主
主题
623
|
帖子
623
|
积分
1869
在《0底子学习区块链技术——入门》一文中,我们结合可视化工具,直观地感受了下区块的结构,以及链式的前后关系。
本文我们将抛弃之前的知识,从0开始思索和推演,区块链技术大概是如何构思出来的。
去中央
在一般的头脑中,我们在一个“中央”保存信息,如许即方便又高效。但是带来的问题是:篡改起来容易。因为只要攻克“中央”如许一个对象,就可以修改全部信息。(下图中:人脸表示用户,红色6角星表示攻击,红色方块表示被篡改的数据)
那怎么变得更加安全一点呢?一个质朴的想法就是——再加一个“中央”。
如许攻击者需要攻克两个“中央”才能达到修改历史数据的目的。
按照这个思路,如何做到更加安全呢?对的,增加更多的“中央”。如许攻击者需要攻克更多的“中央”才能修改数据。
随着“中央”的增多,它们就越来越显得不那么“中央”了。因为每个“中央”都对等,没谁权重高,没谁权重低,于是丧失了“中央”这个概念。这就是“去中央化”。
防备篡改
如何防止篡改历史数据?现实上,“防止”是不太大概。我们唯一能做的就是“提高篡改本钱”。像上面增加“中央”数量一样,它并不能避免全部“中央”被攻克,只是提高了被攻克的难度。
那如何提高篡改本钱呢?一种质朴的想法是:给数据加密。但是数据加密需要秘钥,这个秘钥如果被偷窃,会导致整个方案,或者某个数据中央的数据全部被攻克。
最关键的问题是:被篡改后,需要对比其他“中央”解密后的数据,才能感知该中央数据出现了问题。
如何可以快速感知数据变更?那就是指纹计算。即我们对数据计算出一个唯一性指纹。一旦数据有任何变更,之前的指纹都会失效。
如许如果篡改者修改了历史数据,历史数据所在的数据区域指纹就失效,这个时间篡改者就需要重新计算新的指纹。
在区块链技术中,指纹计算使用的Hash算法,有SHA-256等。不同算法算出来的数据(指纹)长度不一样,但是雷同算法算出的长度是一致的。需要说明的是,目前的hash算法都存在碰撞的大概性(即不同的数据,算出雷同的hash值),只是概率很低罢了。
付出代价
如果篡改者手速非常快,可以一下就算出Hash。那不就意味着我们这种方式很容易被攻克吗?怎么办?增加算法的难度。因为Hash算法不具备可预测性,也不可逆。我们只能使用“暴力”计算的方式。如许我可以提出一些规则,比如要求Hash出来的值需要符合某些条件。但是由于数据到Hash值存在一一对应的关系,如果要求Hash值改变,则需要原始数据也改变。于是我们就引入Nonce这个概念,它会成为原始数据的一部分,从而让Hash值可以随着它改变而改变。但是这种改变是不可预测的,即我们不知道Nonce为什么值时,算出的Hash符合某种规律。我们唯一能做的就是算出来,然后查看该值是否符合规律。
一种比较容易想到的规则,就是要求算出的的Hash值前面或者后面几位为0。
在《0底子学习区块链技术——入门》中,我们看到例子中有5种规则,现实规则会更复杂,要求的暴力计算时间也越长。
方便存储
如果我们将数据保存到一个加密区域,则新增数据时需要解密原始数据,然后把新数据加入后再加密。
这个过程略显繁琐。
有没有更简单的方式?可以一条数据加密一次,不和历史数据掺和到一起。但是在防备篡改这块,这个方案显得无能为力。
如许我们就又回到指纹的方案。
那么是对全部数据进行指纹?还是对单条数据进行指纹?(现实两者都不是)
如果对全部数据进行指纹计算,就碰面临一个“以有限对抗无限”的问题。因为随着数据量的增加,要将全部数据每次都计算一次,将变得越来越难以实现。比如现在比特币生意业务数据有几百G,如果每次有新的数据进来,都要对着几百G数据进行Hash,则机器资源斲丧会更大。
那么对单条数据进行指纹?这似乎只能在检查单个数据时,可以发现被篡改(因为数据的Hash因为数据被篡改而改变),但是不能快速发现整体数据都变得不可信了。
于是,基于一些计算机数据结构的思想,可以将数据通过链式关系关联起来。起到“铰链”作用的就是前一个区块的Hash。
如果链中某个区块数据变了,它的Hash也会改变,而它后面的区块的Pre hash还是指向原始值,如许区块链的链式关系就断开了,该链就出现问题了。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
万万哇
金牌会员
这个人很懒什么都没写!
楼主热帖
markdown day 01
谈谈技术能力
读Java性能权威指南(第2版)笔记02_ J ...
redis for windows 7.0.2安装包全网首 ...
WPF dotnet 6 开启 PM v2 的 DPI 感知 ...
基于CSDN云和docker全家桶的微服务项目 ...
ClickHouse(05)ClickHouse数据类型详解 ...
Nacos注册中心-----从0开始搭建和使用 ...
9个GaussDB常用的对象语句
阿里云域名购买流程以及免费证书的申请 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表