当前位置: 首页 > 知识库问答 >
问题:

私有无令牌区块链是否是一次性服务的有效解决方案?

赫连智
2023-03-14

我们有一位客户认为区块链可能有助于解决他的行业特定问题。为了避免透露商业理念,我在这里必须html" target="_blank">抽象,并使用医疗行业的类比,医疗行业有非常相似的细节。免责声明:我是区块链新手,请随时纠正我。

让我们想象一下,有一种药物可以治疗某些人可能出现的某种特定类型的癫痫。

这种药只能由经过认证的公司开具。

顾客每次癫痫发作时只能接受一剂药物。

让我们假设药物的分销是完美的,没有办法窃取或非法购买药物。

该行业要解决的主要问题是确保一个人不滥用该系统,并且在一次缉获事件中只收到一份处方。以下是客户目前如何作弊:

>

  • 一位顾客癫痫发作,去假想公司的当地分公司索要处方。该公司进行了一些医学测试并开具处方,并将记录保存在当地数据库中

    客户迅速前往另一家公司(可能在另一个国家)并再次要求处方。本公司无法访问其他公司的数据,也无法查明客户是否已在其他地方收到有关此次扣押事件的处方。所以,这家公司又开了一张新处方。

    现在顾客已经收到了两次癫痫发作的处方。这是对系统的滥用。

    私有区块链可能会解决这个问题。但我有一些疑问:

    >

  • 我不确定新客户注册如何在公司之间同步。如果分布式数据库中已经存在此客户的记录,则操作员不应创建新记录。由于以下几点,我怀疑每个客户的单个块是否可行。我们是否需要一个区块链——也就是说,一个主区块链,每次新客户加入我们的“药品处方系统”时,它都会更新区块,指向一个新的客户特定的私人区块链?

    我们希望保留客户癫痫发作和收到处方的全部历史记录。我们从不改变现有的记录——它们应该是不变的。我们只是将新记录添加到客户的私人“历史记录链”。如果我们出于某种原因(医疗测试中的错误等)想要取消以前开具的处方,我们将创建一个新记录,其中包含有关取消的信息以及取消处方的扣押时间戳。

    鉴于对客户数据的访问,我们希望能够一次解码所有数据,然后浏览记录,按日期过滤记录等。但是我们可能还需要收集一些关于所有客户及其处方的统计数据。如果每个客户的数据都必须用单独的密钥解密,我们如何在区块链上实现搜索、计算等?我想,区块链不能像旧的关系SQL数据库那样被搜索和过滤,对吗?这是否意味着我们需要其他并行的区块链来记录和同步所有感兴趣的统计数据?如何确保多个区块链上的交易?

    据我所知,通常块更改只能使用私钥。但是这里我们有两种访问要求:

    • 客户应该只能读取自己的记录,但无权写入任何更改(不得向自己开药)。所以,他需要某种只读访问密钥

    如何确保这些密钥通过公司的网络分发,并且不泄露出去?当然,我们可以给客户“公钥”,这样他/她就可以读取自己的记录,但即使是这个密钥本身也不完全是“公钥”——客户不应该访问其他客户的记录。

    区块链分销的速度有多快?如何解决冲突?如果用户有足够的时间在不同的公司申请两个处方,比如说,在1分钟内,我们如何确保只有第一个请求通过,而第二个请求被拒绝?

    我们想按两个顺序记录事件

    • 为每个客户单独-他的私人历史,只有他自己和公司访问
    • 我们网络中所有公司开具处方的历史记录

    这是否再次意味着我们需要两条区块链,或者是否有可能创建一条链,其中存储整个网络的所有历史记录,但每个客户只能访问和解密其自身历史记录?

    哪些最受欢迎的企业级区块链服务和产品(如果有)可能最适合这种情况-Hyperledger、IBM Bluemix、Microsoft Coco、Etherium、德勤Rubix?

    最后,似乎所有的问题都归结为需要一个中央机构来保持所有处方和客户的登记。这些公司都是竞争对手,它们都不想维护中央数据库,也不想让一些中立的第三方公司参与进来并为其服务付费。尽管如此,区块链(或者称之为分布式账本更为正确)是否是正确的解决方案仍不清楚,因为仍然需要有人建立和维护受信任公司的名单。他们肯定不会同意使用工作证明(挖掘)来确保区块链的完整性,因此无论如何都需要一个中央机构。但也许我错了。

  • 共有1个答案

    司徒博容
    2023-03-14

    这里我试着回答你们的问题。然而,我认为你已经非常清楚你想要什么,现在,你必须花一些时间来开发智能合约。

    我认为Hyperledger结构将是一个很好的解决方案。

    答案:

    1. 您不需要为每个客户注册一次以上。然后,例如,使用客户ID,您可以查阅该客户的历史记录
    2. 区块链给了它机会
    3. 一些区块链将分类账的状态(分类账=它在区块链中的所有信息)保存在一个并行数据库中,以方便用户查询信息。在Hyperledger中,您可以定义CouchDB
    4. 这取决于你将如何制定你的智能合同
    5. Hyperledger结构使用PBFT算法达成共识。它会在10秒内生成一个块,因此在此之后,您的信息将“联机”
    6. 可能您应该创建两个不同的频道。渠道就像是在网络内部创建的区块链
    7. 超级分类账。其他的一些我不太了解
    8. 两家公司应该达成共识
     类似资料:
    • 问题内容: 我想用三个或更多变量求解线性方程。python中有一个好的库吗? 问题答案: 参见http://sympy.org/和http://numpy.scipy.org/。 具体来说,http://docs.scipy.org/doc/numpy/reference/routines.linalg.html 和http://docs.sympy.org/0.7.0/tutorial.html

    • 我已经建立了一个私有区块链,其中2个节点1是miner节点。然而,我们看到许多空矿正在被开采。我尝试了在这个链接上建议的解决方案https://ethereum.stackexchange.com/questions/3151/how-to-make-miner-to-mine-only-when-there-are-pending-transactions.但空矿还是被开采出来了。有人能帮忙吗?

    • 问题内容: 我希望能够以编程方式(在T-SQL中)检查当前服务器和数据库是否已存在特定的链接服务器(这样,如果该链接尚不存在,则可以创建它)。我尝试过这样的事情: 但是,即使链接已经存在,OBJECT_ID测试也始终返回null。有什么方法可以在T-SQL中执行此检查,以便我的其余代码可以假定链接始终存在? 问题答案: 办理登机手续sys.servers:

    • 这可能是一个愚蠢或幼稚的问题,但是:OAuth2无记名令牌签名了吗? 换句话说:消费者能够验证不记名令牌是否是由特定的授权服务器发布的吗?

    • 我已经使用NodeJS创建了简单的区块链应用程序。区块链数据文件存储在本地文件系统中。该区块链不涉及采矿区块,也不涉及难度级别。 请建议,如果我可以在私有以太坊/hyperledge上托管此应用程序,以及为此需要做哪些更改?下面是我用来创建块的代码。

    • 检查提供的参数是否是有效的JSON。 使用 JSON.parse() 和 try... catch 块来检查提供的参数是否是有效的JSON。 const isValidJSON = obj => { try { JSON.parse(obj); return true; } catch (e) { return false; } }; isValidJSON(