| Literature DB >> 29968202 |
Lijing Zhou1, Licheng Wang2, Yiru Sun1.
Abstract
Currently, blockchain technology, which is decentralized and may provide tamper-resistance to recorded data, is experiencing exponential growth in industry and research. In this paper, we propose the MIStore, a blockchain-based medical insurance storage system. Due to blockchain's the property of tamper-resistance, MIStore may provide a high-credibility to users. In a basic instance of the system, there are a hospital, patient, insurance company and n servers. Specifically, the hospital performs a (t, n)-threshold MIStore protocol among the n servers. For the protocol, any node of the blockchain may join the protocol to be a server if the node and the hospital wish. Patient's spending data is stored by the hospital in the blockchain and is protected by the n servers. Any t servers may help the insurance company to obtain a sum of a part of the patient's spending data, which servers can perform homomorphic computations on. However, the n servers cannot learn anything from the patient's spending data, which recorded in the blockchain, forever as long as more than n - t servers are honest. Besides, because most of verifications are performed by record-nodes and all related data is stored at the blockchain, thus the insurance company, servers and the hospital only need small memory and CPU. Finally, we deploy the MIStore on the Ethererum blockchain and give the corresponding performance evaluation.Entities:
Keywords: Blockchain; Medical insurance; Multi-parties computing; Secret sharing
Mesh:
Year: 2018 PMID: 29968202 PMCID: PMC6028902 DOI: 10.1007/s10916-018-0996-4
Source DB: PubMed Journal: J Med Syst ISSN: 0148-5598 Impact factor: 4.460
Fig. 1An overview of MIStore. Step 1: Hospital sends a initialize-transaction to blockchain networl. Step 2: Hospital sends record-transactions to blockchain network. Step 2.5: The patient can verify whether his spending records are correctly computed by hospital. Step 3: Insurance company sends a query-transaction to query some result. Step 4: Servers read the query-transaction and related record-transactions from blockchain. Step 5: After locally computing, servers generate their responses and then send respond-transactions to blockchain network. Step 6: Insurance company collects respond-transactions and obtains t correct responses. Step 7: Insurance company recovers the result with the t correct responses
Format of transaction
| Transaction header | |
| Hash | The transaction’s hash value |
| Block number | Block containing the transaction |
| Order | The transaction’s number in the block |
| Timestamp | Creation time of the transaction |
| Sender | Sender’s ID |
| Receiver | Receiver’s ID |
| Signature | Sig{the transaction’s hash value} |
| Payload: Data | |
| data1, data2, ⋯, data | |
Format of block
| Block header | |
| Name | Description |
| Version | Block version number |
| Hash | The block’s hash value |
| Parent hash | The previous block’s hash value |
| Difficulty | The proof-of-work target difficulty |
| Timestamp | Creation time of the block |
| Merkle root | The root of Merkle Tree of transactions |
| Nonce | A random counter for proof-of-work |
| Block body: Transactions | |
| Transaction1, Transaction2⋯, Transaction | |
Fig. 2Basic verifications and payload verifications. All transactions are verified by record-nodes before they are recorded in the blockchain. For query-transactions and record-transactions, record-nodes just perform basic verifications. While for initialize-transactions and respond-transactions, record-nodes perform basic verifications and payload verifications
Symbols of MIStore
| Symbol | Description |
|---|---|
|
| The generator of a cyclic group |
|
| The bilinear map, |
|
| The finite field with character |
|
| The hospital’s ID |
|
| The |
|
| The insurance company’s ID |
|
| The transaction |
|
| The patient’s ID |
|
| The verification key |
| { | The hospital’s key pair |
| { | The |
| { | The insurance company’s key pair |
|
| The |
| { | The |
|
| The |
Average Time cost of cryptographic schemes
| Scheme | Time cost |
|---|---|
| BN-curve Point Mul | 29.569 ms |
| BN-curve Point Add | 0.236 ms |
| Pairing | 84.651 ms |
| Field Add | 0.071 |
| Field Mul | 0.531 |
| Secp256k1-curve ECDSA Sign | 4.425 ms |
| Secp256k1-curve ECDSA Verify Sig | 9.137 ms |
| Secp256k1-curve ECIES Encryption | 8.745 ms |
| Secp256k1-curve ECIES Decryption | 4.367 ms |
| Block Interval | 15.2 s |
Payloads of transactions used in our prototype system
| Payload | Content | Size |
|---|---|---|
| Payload of | A verification key | 512 bytes |
| Payload of | 3 IDs, 9 encrypted messages | 960 bytes |
| Payload of | 9 commitments | 576 bytes |
| Payload of | 1 to 7 arrays of spending data | 128-896 bytes |
| Payload of | 1 ID | 32 bytes |
| Payload of | A hospital’s ID, a encrypted response, a commitment | 192 bytes |
Average time cost of processing transactions
| Operation on transaction | Computations | Time cost |
|---|---|---|
| Hospital generates a | 1S + 7PM | 212.209 ms |
| Hospital generates a | 1S + 9E | 83.931 ms |
| Hospital generates a | 1S + 9PM | 271.347 ms |
| Hospital generates a | 1S + 14FA | 5.226 ms |
| Insurance company generates a | 1S | 5.226 ms |
| Server generates a | 1S + 5FM + 12FA + 1E + 1PM | 43.543 ms |
| Record-node verifies a | 1V + 5PM + 2PA | 157.454 ms |
| Record-node verifies a | 1V | 9.137 ms |
| Record-node verifies a | 1V + 15PM + 9PA | 454.796 ms |
| Record-node verifies a | 1V | 9.137 ms |
| Record-node verifies a | 1V | 9.137 ms |
| Record-node verifies a | 1V + 2PM + 10PA + 5Pairing | 494.361 ms |
| Server verifies a | 3D+ + 3PM | 101.807 ms |
| Insurance company verifies a | 1D + 1PM | 33.936 ms |
| Insurance company recovers the result | 4FA + 4FM | < 0.005 ms |
In the table, S is a signing computation, V denotes a signature verification, PM describes a point multiplication on the ECC, PA is a point addition on the ECC, Pairing means a pairing computation, E is a encryption, D denotes a decryption, FM describes a field multiplication and FA is a field addition. For instance, “2PM + 3PA + 1V + 6Pairing” denotes that the corresponding computations contain 2 point multiplications, 3 point additions, 1 signature verification and 6 pairing computations
Comparisons between pure MIStore and blockchain-based MIStore
| Comparative item | Time cost of pure MIStore | Time cost of blockchain-based MIStore | |||||
|---|---|---|---|---|---|---|---|
| Hospital | Server | IC | Hospital | Server | IC | Record-node | |
| Verifying | 0 ms | 157.4 ms | 157.4 ms | 0 ms | 0 ms | 0 ms | 157.4 ms |
| Verifying | 0 ms | 110.9 ms | 9.1 ms | 0 ms | 101.8 ms | 0 ms | 9.1 ms |
| Verifying | 0 ms | 454.7 ms | 454.7 ms | 0 ms | 0 ms | 0 ms | 454.7 ms |
| Verifying | 0 ms | 9.1 ms | 9.1 ms | 0 ms | 0 ms | 0 ms | 9.1 ms |
| Verifying | 0 ms | 0 ms | 9.1 ms | 0 ms | 0 ms | 0 ms | 9.1 ms |
| Verifying | 0 ms | 0 ms | 528.2 ms | 0 ms | 0 ms | 33.9 ms | 494.3 ms |
IC denotes the insurance company
Transactions’ sizes in our prototype system
| Transaction | Size |
|---|---|
|
| 820 bytes |
|
| 1268 bytes |
|
| 884 bytes |
|
| 436-1204 bytes |
|
| 340 bytes |
|
| 500 bytes |
Transaction fee
| Transaction | Transaction fee |
|---|---|
|
| 0.0001 ETH |
|
| 0.0001 ETH |
|
| 0.0001 ETH |
|
| 0.00001 ETH |
|
| 0.00006 ETH |
|
| 0.00003 ETH |
ETH denotes the unit of Ethererum coin
Symbols of TVHCSS
| Symbol | Description |
|---|---|
|
| The generator of a cyclic group |
|
| The bilinear map, |
|
| The finite field with character |
|
| The distributor’s ID |
|
| The |
|
| The querier’s ID |
|
| The verification key |
| { | The |
| { | The |
| { | The insurance company |
|
| The |
|
|
|
|
|
|
|
| The |