Hyperledger Fabric Simpan Data Privat/Konfidensial On-Chain dengan Private Data Collection

//TODO : Warning Post belum selesai

Masalah

Misal ada 5 organisasi yang bergabung dalam blockchain network. Dan ada 2 organisasi yang ingin menjalankan chaincode yang mengandung data privat. Data ini tidak boleh diketahui oleh selain 2 organisasi tersebut. Solusinya adalah membuat channel baru untuk 2 organisasi ini.

Namun ada kasus yang membutuhkan kontrak A di channel X memanggil kontrak B di channel Y. Jika ini bukan transaksi, hanya evaluasi/query, ini bisa dilakukan dengan API invokeChaincode. Sehingga untuk yang bersifat transaksi tidak bisa pakai cara ini. Cara lain adalah meng orkestrasi diluar blockchain (off chain).

Hati hati juga invokeChaincode, query State DB (couchdb/leveldb) tidak sama seperti getState. hanya getState membuat Read Set. Sehingga hanya getState yang menjadi sumber kebeneran. invokeChaincode atau Query state DB hanya digunakan untuk mengambil key/id dari state nya saja. Lalu key itu digunakan untuk mengambil isi state dari key tersebut menggunakan getState.

Solusi : Private Data Collection

// TODO

Alternatif Seblum Private Data Collection

// TODO

Dengan memanfaatkan Off-Chain data. Untuk data yang bersifat privat di buat hash nya (dilakukan diluar blockchain). Lalu hash ini yang di simpan di blockchain. Namun kekurangannya ktia tidak bisa menambah business logic pada data privat ini. Jadinya hanya simpan data dan verifikasi data saja. Solusi ini juga dipakai di blockchain selain hyperledger fabric. Terutama public permissionless blockchain seperti Ethereum.

Contoh Kode

// TODO

https://github.com/IBM/private-data-collections-on-fabric

Work In Progress

https://jira.hyperledger.org/browse/FAB-15536

Tambahan

Herbert Abdillah

Test

Recent Posts

Disk 1 tb sisa 100 gb

Berikut ini detail breakdown nya Docker

2 days ago

Langchain JsonOutputParser Invalid json output Error

Sometimes json output from llm like this : {"key": "value"}``` that langchain JsonOutputParser regex cant…

1 month ago

Tontonan Bagus

https://www.youtube.com/watch?v=ZAqIoDhornk (more…)

1 month ago

Ada Apa Didalam Sistem Operasi (Linux). Apa yang membedakan distribusi Linux seperti Ubuntu, Redhat, Alpine?

#include <stdio.h> int main() { FILE *f_ptr; char f_content[256]; char output[512]; f_ptr = fopen("/tmp/1337", "r");…

4 months ago

Convert OpenSSL 1 in Ruby Gem to OpenSSL 3

Version 3 have different interface Example: https://github.com/herbertabdillah/fabric-gateway-ruby/commit/c7377aaf2e62de1e2ac309965a09b5c7c72a2c7e (more…)

2 years ago

Catatan Belajar Ruby on Rails dari aliran Java dan Php

Telah di edit. Sumber Asli : https://twitter.com/nateberkopec/status/1250603032523370496/photo/1 Ruby on Rails merupakan framework web MVC menggunakan…

2 years ago