Skip to content

Commit 7e1f09a

Browse files
committed
[FAB-10446] Fabric model update
Updated content to include private data in the Privacy sections. Change-Id: I896c875d8b113ad6b4a35513c0ffe89229ac395e Signed-off-by: pama-ibm <pama@ibm.com>
1 parent 9d485a6 commit 7e1f09a

File tree

1 file changed

+22
-9
lines changed

1 file changed

+22
-9
lines changed

docs/source/fabric_model.rst

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,10 @@ fulfill its promise of a comprehensive, yet customizable, enterprise blockchain
1313
* :ref:`Ledger-Features` --- The immutable, shared ledger encodes the entire
1414
transaction history for each channel, and includes SQL-like query capability
1515
for efficient auditing and dispute resolution.
16-
* :ref:`Privacy-through-Channels` --- Channels enable multi-lateral transactions
17-
with the high degrees of privacy and confidentiality required by competing
18-
businesses and regulated industries that exchange assets on a common network.
16+
* :ref:`Privacy` --- Channels and private data collections enable multi-lateral
17+
transactions with the high degrees of privacy and confidentiality required by
18+
competing businesses and regulated industries that exchange assets on a common
19+
network.
1920
* :ref:`Security-Membership-Services` --- Permissioned membership provides a
2021
trusted blockchain network, where participants know that all transactions can
2122
be detected and traced by authorized regulators and auditors.
@@ -80,13 +81,13 @@ Some features of a Fabric ledger:
8081

8182
See the :doc:`ledger` topic for a deeper dive on the databases, storage structure, and "query-ability."
8283

83-
.. _Privacy-through-Channels:
84+
.. _Privacy:
8485

85-
Privacy through Channels
86-
------------------------
86+
Privacy
87+
-------
8788

8889
Hyperledger Fabric employs an immutable ledger on a per-channel basis, as well as
89-
chaincodes that can manipulate and modify the current state of assets (i.e. update
90+
chaincode that can manipulate and modify the current state of assets (i.e. update
9091
key-value pairs). A ledger exists in the scope of a channel --- it can be shared
9192
across the entire network (assuming every participant is operating on one common
9293
channel) --- or it can be privatized to include only a specific set of participants.
@@ -98,12 +99,24 @@ chaincode can be installed only on peers that need to access the asset states
9899
to perform reads and writes (in other words, if a chaincode is not installed on
99100
a peer, it will not be able to properly interface with the ledger).
100101

102+
When a subset of organizations on that channel need to keep their transaction
103+
data confidential, a private data collection (collection) is used to segregate
104+
this data in a private database, logically separate from the channel ledger,
105+
accessible only to the authorized subset of organizations.
106+
107+
Thus, channels keep transactions private from the broader network whereas
108+
collections keep data private between subsets of organizations on the channel.
109+
101110
To further obfuscate the data, values within chaincode can be encrypted
102111
(in part or in total) using common cryptographic algorithms such as AES before
103112
sending transactions to the ordering service and appending blocks to the ledger.
104113
Once encrypted data has been written to the ledger, it can be decrypted only by
105-
a user in possession of the corresponding key that was used to generate the cipher text.
106-
For further details on chaincode encryption, see the :doc:`chaincode4ade` topic.
114+
a user in possession of the corresponding key that was used to generate the cipher
115+
text. For further details on chaincode encryption, see the :doc:`chaincode4ade`
116+
topic.
117+
118+
See the :doc:`private-data-arch` topic for more details on
119+
how to implement privacy on your blockchain network.
107120

108121
.. _Security-Membership-Services:
109122

0 commit comments

Comments
 (0)