从专业角度来说吧,毕竟很多人对这个还是“心存不安”。
通常我们程序员为了防止数据篡改,会有 n 种操作姿势,我简单说几种,看看能不能解决大家的“不安”感。
账单核对
这个很简单,就是你的每一笔交易都是有记录的,你改了余额但没有交易记录,这个账单肯定对不上的。GG
日志追踪
支付宝工作人员能够接触到真实数据库环境的基本上只有运维人员和安全人员,其余的人比如开发者基本都很难接触真实环境的数据库。就算大家都上了真实环境,大家的每一个操作都是有日志记录的,你干了啥这个过程简直就是在裸奔。GG
签名加密
比如大家的密码,其实地球上除了你之外正常情况不会有人知道你密码的,比如我的密码设为 wozhen666,到了数据库里会做这样的过程:wozhen666 ---(某一个神秘操作)---> dc7952f02f86c41fc6bdb5314fe60a43,而且每一次这个神秘操作过程计算的结果都是一一对应的,每次你输入密码都是比对的神秘操作之后的那串字符。虽然这个功能不会用到余额系统的余额这个字段里,但也可以通过加密关键数据让你无法篡改余额,比如:- update balance from balancetable where userid = xxx and secretkey = dc7952f02f86c41fc6bdb5314fe60a43
复制代码 GG
分布式
就算你能耐,你是公司老总,你是世界之王,你是站在喜马拉雅最顶峰的那个男人,你绕过了上面的每一个步骤,来到了裸奔的数据库面前,你一只手也只能改一个库啊!真实情况是这里有上百个数据库集群,你得确保每一个库里的数据都得一致合理,同时还有无数的数据库备份,你要去找到所有的备份记录去修改它。然而数据的流量是及其庞大的,无数人都在往里面更新数据,你发一下呆,一秒钟过后,整个数据库就都变了,除非你有光速般的手速(想想都刺激)。GG
去中心化
就算你能耐,你是万王之王,你是银河之主,你是脚踏跑跑卡丁车赛过光速的那个男人,你搞定了所有的不可能事件,来到了上千个数据库面前一键修改余额,并实施补全所有的账单记录、日志记录、加密记录、缓存记录、备份记录。。(想想就觉得这个人不是人)。但你仍然不能时间逆转!这就是关键!现在主流的区块链技术通过把账单存储在每一个区块之中,区块随着时间的增加而增加,区块之间通过加密算法串联在一起,最关键的是,全世界每一个网络结点都会一个完美的算法检验区块的真实性,每一个结点都可以存一份数据记录,你改一个一千个一万个,但你改不了整个世界啊。而且数据只增不改(注意!不能修改!不接收任何修改操作!),随着时间流逝,你只能说出两个字:GG
随着时间流逝,我突然想到其实有一个人能时间逆转,能写完书几百年后再出生,然后告诉大家书的作者是自己。这就让我想到了今年下半年,中美合拍的西游记即将正式开机,我继续扮演美猴王孙悟空,我会用美猴王艺术形象努力创造一个正能量的形象,文体两开花,弘扬中华文化,希望大家能多多关注。 |