区块链可以建立一种可信的位置服务
扫描二维码
随时随地手机看文章
经过了多次失败才明白需求不可能被创造,只能被发现,同样我们不应该问区块链可以做什么,应该是什么业务更适合区块链,先确定需求再找匹配的技术实现
近期去了趟藏区,除了风景和极端的气候让我印象深刻外,更多是微信上的朋友问我在哪,我只好拍照截图给他们看。这让我产生了一个思考,拍照截图,包括位置共享是否是一种可信的位置服务?
我们知道目前的位置服务主要依赖于GPS/AGPS等服务,对于了解操作系统的人都知道,我们可以伪造一个本机GPS服务接口,轻易修改应用程序获得的位置数据,以前有大量营销程序使用这一技术,比如利用QQ和微信周边的人,满世界发广告;通过伪造位置数据,当年网约车的刷单服务等。
那么有没有可能建立一种可信的位置服务呢,我自然联想到区块链技术了,今天和朋友们做一个简单的探讨,由于没有系统的思考,所以顶多算一个头脑风暴。
我的思路是这样的,首先不要考虑一定要去中心化硬往区块链上靠,只考虑可信位置服务需要哪些要素。一般来讲应该包含以下两点:
1、服务端数据可信服务
2、客户端数据不可篡改
以目前的GPS服务来讲,需要接收到3颗卫星数据可以定位经纬度,4颗卫星数据可以确定高度。我们可以考虑为每颗卫星的广播数据进行签名,以确定你接受的信号的确属于这个卫星发出,解决服务端数据可信问题。
对于客户端数据不可篡改问题,应当分为两部分来看,一部分是数据自用,这部分完全可以不考虑篡改问题,因为从业务上讲没有必要;另一部分就是前文说到的当客户端需要分享当前位置时,我们需要防止数据篡改问题,客户端在分享数据时应该将获取到的原始卫星信号同时分享出去,解决数据伪造问题,获得位置分享的接收方可以通过位置验证服务确认信号的真实性。
下面我们就可以利用区块链的时序特性了,当客户端共享位置数据时可以记录到区块链中,可信位置服务可以要求客户端以小时为单位上传一次位置数据,由于人类的活动区域受到物理限制,地面最大移动距离目前不超过800公里/小时(商业航线速度),利用区块链不可篡改和时序的特性,这样我们得到一个客户端连续位置链条,通过计算链上每个时序点的卫星数据签名和相邻点之间的时序距离可以验证客户端共享的数据是否被人为篡改,任何人可以通过公布的链上数据验证某个客户端共享的数据,这算不算一个诚信社会的基础服务呢?
由于时间有限,我只是把我简单的思考写了下来供朋友们品评,写到这里的时候我觉得这个方法过于复杂了,复杂的方法肯定不是最好的解决方案,目前GPS广播数据需要签名工作量太大,可以先简单的把位置数据上传到区块链上,形成不可更改记录,在通过位置距离和时间的关系进行验证,简单实现数据篡改。
正如摘要所说,需求是无法被创造出来的,至于区块链能干什么,首先要看你是否发现了未被满足的需求,用技术导向业务会走向极端。