讲区块链的人,往往把“数据属性可靠”说成能保障业务的“业务可靠”,是有问题的_风闻
老潘潘潘潘-我这喜欢出来随便发言的毛病要改…2021-07-15 13:24
【本文来自《区块链“入链数据不可修改”属性和业务系统用途矛盾》评论区,标题为小编添加】
我再解释一下我的看法。
首先,谈写入数据。可以把区块链入链数据理解为数据中台/数据仓库的数据,业务系统可以先暂时理解为单独独立的与区块链无关的、自己独立有数据库系统的一个程序系统。区块链的数据从哪里来?可以理解为从业务系统的数据库里面转移到区块链中去,可以理解为没有直接操作区块链的API写数据。
写入区块链中的数据就写实了,这个数据在里面不能再改了,这个就是区块链的“数据属性”的“可靠性”。这个是简单地理解。实际上,既然区块链可以写入数据,就保证不了建立业务系统的程序员们用各种方法直接往里面写数据,在业务操作系统里面直接往区块链里写,比如前面那位说的“1月份发了5000工资,账户余额为5000”,他就直接往区块链里写了,把区块链当一直接的数据库来用,就不是先存在业务系统的数据库系统里面。
但是区块链作为一个“可靠性”的数据来源,本身应该是写入的业务上“可靠”的数据,而不是在区块链里搞统计。比如说“1月份账户余额为5000,2月份账户余额为10000”这种数据在区块链里就应是业务系统输入的、由业务系统得出的两个“业务可靠”的数据,而因为它存在区块链里不能靠修改直接数据来改变它,因此它们是“数据属性可靠”的数据。
然后谈读取,业务系统可以在自己的数据库中读数据、统计数据,为啥还要从区块链中读数据呢?因为黑掉数据库很成熟,业务系统的使用人员也可能因为种种原因修改数据,虽然可以通过日志什么、或者通过业务系统程序员写上一个更改下一个更改什么的(这种做法完全不能保证数据库里的上一个下一个没被直接数据库操作而更改啊)的查到修改记录,但这样不是麻烦又太专业吗?难道每取一个数据都去查所有日志看有没有改过吗?难道不是直接引用一个技术上保证不能修改的数据更简单吗?
所以,既然区块链数据有“数据属性可靠”的特点,那取用这些数据就能保证在区块链里没有被改过。业务系统引用这些在业务上希望有“数据属性可靠”的数据时,就可以从区块链里面取走。取走之后搞统计也好、计算也好都是业务系统自己的事情,譬如“1月份发了5000工资,2月份发了5000工资”,因此“2月份账户余额为10000”,这就是取走区块链里存的发工资可靠数据来统计出2月账户余额。当然如前所述,如果区块链里本来存的有2月账户余额数据,你直接用就行,不用再加工了。
但是,你一个业务系统是面对使用用户的。用户在管理数据上就本身具有“人的不可靠性”,你怎么可能保证进入区块链的数据是现实世界里面的“可靠的”呢?比如前面说的明明2月工资是5000,你故意无意地输入8000,难道因为这个数据是入链了,然后从链里取出来用,所以人家工资就一定是8000了吗?这就是业务的“业务可靠性”保障不了。
而讲区块链那些人,往往把前面讲的“数据属性可靠”说成能保障业务的“业务可靠”,这是有问题的,给人带来很大的困惑。
我的看法是,抽象的数据和现实的业务要分别理解,不能把两者的“可靠性”混为一谈;谈区块链的数据可靠,并不能保障现实业务的可靠。