我试着用Smart做一个小型的EHR(电子健康记录),在这里我有一个Pacient合同。
问题是,在可靠的情况下,一切都是公开的,甚至是私有变量,所以我必须以某种方式加密健康记录数据,但在其他方面,它应该可以供其他医生阅读我以前的健康记录,并向一个特定的Pacient合同中添加一些新的数据,因此医生需要有一种机制来解密和加密数据,而平静者也应该能够看到他的数据。
每个客户都会有一个账户,并且使用该帐户应该注册一份pacient合同,在那里他可以用他的私钥加密他的所有个人数据。医生将拥有一个账户,以便能够进行交易(在这种情况下,交易将将一些健康数据写入Pacient合同中)
我的方法:
这种方法的丑陋之处在于,所有时候,医生都需要将他的私钥交给医生,然后医生就可以访问任何时候的数据。
是否有其他方法将敏感数据保存在公共区块链中,或者是更高效的EHR dApp解决方案?
发布于 2019-02-25 10:36:08
在病人的合同中,您可以添加规则,使谁可以将数据添加到他/她现有的医疗记录中:
For Example:
Patient.sol
contract Patient {
mapping(address=>doctorStruct[]) public doctorDetails;
struct doctorStruct {
address doctorAccountAddr;
bool canAddData;
}
}在这里,病人可以要求医生的公钥(帐户地址),而不是与医生共享私钥,并将其添加到Patient.sol的doctorDetails中。接下来,每当医生想要添加数据时,只需确保doctorDetails[docAddress].canAdd = true
这将是一个很好的起点,可以很好地熟悉稳健智能契约:https://solidity.readthedocs.io/en/v0.5.4/
一旦你获得了良好的实效性,那么你就可以在合同级别上管理一切,而不需要加密/解密。
发布于 2019-02-26 07:28:06
一种选择是转移到一个私人的,允许的区块链,但我不确定这是你想要做的。
在您的例子中,我将构建一个处理权限的dApp。
https://ethereum.stackexchange.com/questions/67546
复制相似问题