<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>MultiChain Developer Q&amp;A - Recent questions tagged confidentiality</title>
<link>https://www.multichain.com/qa/tag/confidentiality</link>
<description>Powered by Question2Answer</description>
<item>
<title>Stream Confidentiality for PDF etc.</title>
<link>https://www.multichain.com/qa/15079/stream-confidentiality-for-pdf-etc</link>
<description>&lt;p&gt;&lt;span style=&quot;font-family:arial,helvetica,sans-serif&quot;&gt;Hello,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:arial,helvetica,sans-serif&quot;&gt;I did the instruction &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.multichain.com/developers/stream-confidentiality/&quot;&gt;https://www.multichain.com/developers/stream-confidentiality/&lt;/a&gt; for Linux.&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;text-align:left&quot;&gt;&lt;span style=&quot;font-family:arial,helvetica,sans-serif&quot;&gt;Unfortunately, this method is only suitable for text files (txt), but I need it format independent.

So, now my question is, how can I send/encrypt other formats like PDF oder MS Word (docx) with this instruction in Linux?
And is there although a possibility to do the same in Windows 8 ?

Thanks in advance for your answer!&lt;/span&gt;
&lt;/pre&gt;</description>
<guid isPermaLink="true">https://www.multichain.com/qa/15079/stream-confidentiality-for-pdf-etc</guid>
<pubDate>Fri, 09 Aug 2019 10:06:18 +0000</pubDate>
</item>
<item>
<title>Stream confidentiality Description</title>
<link>https://www.multichain.com/qa/14973/stream-confidentiality-description</link>
<description>&lt;p&gt;Hello,&lt;/p&gt;&lt;p&gt;I try encrypted data transmission in multichain (on VM) according to your instructions. (&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.multichain.com/developers/stream-confidentiality/&quot;&gt;https://www.multichain.com/developers/stream-confidentiality/&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;At the moment, I struggle with that part under &quot;Publish an RSA key pair&quot; wich says:&lt;/p&gt;&lt;p&gt;You should see a block of alphanumeric gibberish, surrounded by BEGIN PRIVATE KEY and END PRIVATE KEY lines. This is an RSA private key. Now let’s generate a public key from that, convert it immediately to hexadecimal, store it in the pubkeyhex shell variable, and take a look:&lt;/p&gt;&lt;p&gt;pubkeyhex=$(openssl rsa -pubout -in ~/.multichain/chain1/stream-privkeys/.pem | xxd -p -c 9999)&lt;br&gt;echo $pubkeyhex&lt;/p&gt;&lt;p&gt;Finally, let’s publish our public key as an unlabelled item in the pubkeys stream, which should return a transaction ID:&lt;/p&gt;&lt;p&gt;multichain-cli chain1 publishfrom pubkeys '' $pubkeyhex&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;For the line &quot;pubkeyhex=$(openssl rsa -pubout -in ~/.multichain/chain1/stream-privkeys/.pem | xxd -p -c 9999)&quot; I get &quot;Can't open /home/...... for reading, No such file or directory ... unable to load Private Key&quot;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I tried it without the xxd part like: &quot;pubkeyhex=$(openssl rsa -pubout -in ~/.multichain/chain1/stream-privkeys/.pem)&quot;, than it says &quot;writing RSA key&quot;. So I guess that's ok, because with the following &quot;echo $pubkeyhex&quot; it gives me a public key (BEGIN PUBLIC KEY ....... END PUBLIC KEY).&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;But the last step from the heading (multichain-cli chain1 publishfrom pubkeys '' $pubkeyhex) returns a long error message (error code: -1) with arguments and examples but I don't see what's wrong...&lt;/p&gt;&lt;p&gt;Do I have to complete this line with an address or something??&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Thanks in advance for your help.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Greetings&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<guid isPermaLink="true">https://www.multichain.com/qa/14973/stream-confidentiality-description</guid>
<pubDate>Fri, 02 Aug 2019 09:54:31 +0000</pubDate>
</item>
<item>
<title>Stream Confidentiality:  it appears you are using an RSA public key encryption scheme which is deterministic and thus</title>
<link>https://www.multichain.com/qa/9964/confidentiality-appears-public-encryption-deterministic</link>
<description>not CPA-secure? &amp;nbsp;Can an attacker ever obtain the sender's public keys or because the sender is from a channel with integrity (a private blockchain with known actors) the risk is nullified? are you possibly using some form of the more efficient and CPA-secure hybrid encryption techniques by encrypting the senders public key?</description>
<guid isPermaLink="true">https://www.multichain.com/qa/9964/confidentiality-appears-public-encryption-deterministic</guid>
<pubDate>Sat, 16 Jun 2018 23:59:02 +0000</pubDate>
</item>
<item>
<title>Best option to store user confidential Info ?</title>
<link>https://www.multichain.com/qa/9017/best-option-to-store-user-confidential-info</link>
<description>Hi Multichain Team,&lt;br /&gt;
&lt;br /&gt;
what is the best way to store users confidential info in multichiain. Actully I want to register users info like email, password etc then verify user to login into the application. Then those users can add there addresses and make transactions on those addresses. &amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Option one is Streams for Users and user addresses (user can have one or more addresses). Is streams data confidential if other nodes not subscribed.&lt;br /&gt;
&lt;br /&gt;
Multiple chains to store this data or any thing which is best to store users confidential info in blockchain. &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Thanks</description>
<guid isPermaLink="true">https://www.multichain.com/qa/9017/best-option-to-store-user-confidential-info</guid>
<pubDate>Wed, 21 Mar 2018 10:23:28 +0000</pubDate>
</item>
<item>
<title>read access in stream</title>
<link>https://www.multichain.com/qa/8639/read-access-in-stream</link>
<description>&lt;p&gt;&lt;span style=&quot;color:rgb(34, 34, 34); font-family:arial,sans-serif; font-size:small&quot;&gt;As mentioned in documentation on Streams&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span style=&quot;color:rgb(34, 34, 34); font-family:arial,sans-serif; font-size:small&quot;&gt;&quot;As a result, read permissions in a stream should be managed through application-level encryption of each item’s data, with decryption keys distributed as appropriate. &quot;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color:rgb(34, 34, 34); font-family:arial,sans-serif; font-size:small&quot;&gt;CEO &amp;amp; Founder Gideon Greenspan mentioned one implementation&amp;nbsp;&lt;a href=&quot;https://www.linkedin.com/pulse/introducing-multichain-streams-gideon-greenspan/&quot; rel=&quot;nofollow&quot;&gt;https://www.linkedin.com/pulse/introducing-multichain-streams-gideon-greenspan/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&quot;&lt;/p&gt;&lt;p&gt;As I’ve discussed previously, confidentiality is the biggest challenge in a large number of blockchain use cases. This is because each node in a blockchain sees a full copy of the entire chain’s contents. Streams provide a natural way to support encrypted data on a blockchain, as follows:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;1.One stream is used by participants to distribute their public keys for any public-key cryptography scheme.&lt;br&gt;2. A second stream is used to publish data, where each piece of data is encrypted using symmetric cryptography with a unique key.&lt;br&gt;3. A third stream provides data access. For each participant who should see a piece of data, a stream entry is created which contains that data’s secret key, encrypted using that participant’s public key.&lt;br&gt;&lt;br&gt;This provides an efficient way to archive data on a blockchain, while making it visible only to certain participants.&lt;/p&gt;&lt;p&gt;&quot;&lt;/p&gt;&lt;p&gt;Can some one explain me in simpler terms please?&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<guid isPermaLink="true">https://www.multichain.com/qa/8639/read-access-in-stream</guid>
<pubDate>Mon, 19 Feb 2018 12:31:41 +0000</pubDate>
</item>
<item>
<title>what is the best way to store user confidential info in blockchain instead traditional databases ?</title>
<link>https://www.multichain.com/qa/8165/store-confidential-blockchain-instead-traditional-databases</link>
<description>Hi multichain team,&lt;br /&gt;
we have to store user's confidential info in multichain in some streams. Is it a good way to store user's confidential info in streams. please suggest me a better and secure way to store user's confidential info.&lt;br /&gt;
&lt;br /&gt;
Thanks&lt;br /&gt;
&lt;br /&gt;
Sufyan Ahmad</description>
<guid isPermaLink="true">https://www.multichain.com/qa/8165/store-confidential-blockchain-instead-traditional-databases</guid>
<pubDate>Mon, 08 Jan 2018 12:09:12 +0000</pubDate>
</item>
<item>
<title>stream confidentiality concepts</title>
<link>https://www.multichain.com/qa/7179/stream-confidentiality-concepts</link>
<description>I went through the tutorial on &lt;a href=&quot;https://www.multichain.com/developers/stream-confidentiality&quot; rel=&quot;nofollow&quot;&gt;https://www.multichain.com/developers/stream-confidentiality&lt;/a&gt; and trying to get my head around some of the concepts to apply it in our apps.&lt;br /&gt;
&lt;br /&gt;
One chain we have is for Fiat transactions, where the narration sent with a transaction is stored as data eg: Payment on invoice 1234 for services rendered, something like that. We don't want that data to be public on the explorer, so we can encrypt that with a password that is itself encrypted and stored on the chain. The app itself would be able to unencrypt that data and display it for the sender and recipient. We have regulators and others that want to be able to see the data so we can use their SSH keys to give access to the password needed to see the data.&lt;br /&gt;
&lt;br /&gt;
Another chain we have is for use in Supply chain tracking. items are created in the app, and metadata added at different times and hashed/timestamped for verification. That's ok so far, because it is only hashes being stored on the chain and not real data, which is handled at the app level. But let's say we wanted to store actual data on the chain, thats where we can give some users the ability to get the encrypted password to be able to see the data, and have that happen in the app, where the creator of encrypted data would decide which groups of people would be able to see data, based on ssh keys they suppled. I still think it better to store the data elsewhere, but some clients may prefer to have it on chain...&lt;br /&gt;
&lt;br /&gt;
Conceptually, does the above make sense to use stream confidentiality? Just checking if there are better ways..</description>
<guid isPermaLink="true">https://www.multichain.com/qa/7179/stream-confidentiality-concepts</guid>
<pubDate>Tue, 17 Oct 2017 06:52:00 +0000</pubDate>
</item>
<item>
<title>Stream confidentiality error</title>
<link>https://www.multichain.com/qa/4627/stream-confidentiality-error</link>
<description>&lt;p&gt;I have setup my chain as per the online guide (&lt;a href=&quot;http://www.multichain.com/developers/stream-confidentiality/&quot; rel=&quot;nofollow&quot;&gt;http://www.multichain.com/developers/stream-confidentiality/&lt;/a&gt;) lines however i am getting an error when i get about 50% of the way into this guide using this command:&lt;/p&gt;&lt;h3&gt;&lt;span style=&quot;color:#FF0000&quot;&gt;Now we can publish this large chunk of hexadecimal data to the&amp;nbsp;items&amp;nbsp;stream:&lt;/span&gt;&lt;/h3&gt;&lt;h3&gt;&lt;span style=&quot;color:#FF0000&quot;&gt;multichain-cli&amp;nbsp;ITB-Chain&amp;nbsp;publishfrom&amp;nbsp;1PD2igfeiK7VyudMeiaR1q41fkV7V64g22qpPf&amp;nbsp;items secret-cpuinfo $cipherhex&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;Everything has ran smoothly up until this point&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:14px&quot;&gt;&lt;strong&gt;on server 1:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;root@BlockchainMaster-Node1:/# multichain-cli XXX-Chain publishfrom 1PD2igfeiK7VyudMeiaR1q41fkV7V64g22qpPf items secret-cpuinfo $cipherhex&lt;br&gt;{&quot;method&quot;:&quot;publishfrom&quot;,&quot;params&quot;:[&quot;1PD2igfeiK7VyudMeiaR1q41fkV7V64g22qpPf&quot;,&quot;items&quot;,&quot;secret-cpuinfo&quot;],&quot;id&quot;:1,&quot;chain_name&quot;:&quot;ITB-Chain&quot;}&lt;/p&gt;&lt;p&gt;error code: -1&lt;br&gt;error message:&lt;br&gt;publishfrom from-address &quot;stream-identifier&quot; &quot;key&quot; data-hex&lt;/p&gt;&lt;p&gt;Publishes stream item&lt;/p&gt;&lt;p&gt;&lt;br&gt;Arguments:&lt;br&gt;1. from-address &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(string, required) Address used for issuing.&lt;br&gt;2. &quot;stream-identifier&quot; (string, required) Stream identifier - one of the following: stream txid, stream reference, stream name.&lt;br&gt;3. &quot;key&quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (string, required) Item key&lt;br&gt;4. data-hex &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(string, required) Item data hex string&lt;/p&gt;&lt;p&gt;Result:&lt;br&gt;&quot;transactionid&quot; &amp;nbsp;(string) The transaction id.&lt;/p&gt;&lt;p&gt;Examples:&lt;br&gt;&amp;gt; multichain-cli XXX-Chain publishfrom &quot;1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd&quot; test &quot;hello world&quot; 48656C6C6F20576F726C64210A&lt;br&gt;&amp;gt; curl --user myusername --data-binary '{&quot;jsonrpc&quot;: &quot;1.0&quot;, &quot;id&quot;:&quot;curltest&quot;, &quot;method&quot;: &quot;XXX-Chain publishfrom&quot;, &quot;params&quot;: [&quot;1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd&quot;, &quot;test&quot;, &quot;hello world&quot;, &quot;48656C6C6F20576F726C64210A&quot;] }' -H 'content-type: text/plain;' http://127.0.0.1:4402&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:14px&quot;&gt;&lt;strong&gt;On server 2:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;root@BlockchainMaster-Node2:~# multichain-cli XXX-Chain publishfrom 1PD2igfeiK7VyudMeiaR1q41fkV7V64g22qpPf items secret-cpuinfo $cipherhex{&quot;method&quot;:&quot;publishfrom&quot;,&quot;params&quot;:[&quot;1PD2igfeiK7VyudMeiaR1q41fkV7V64g22qpPf&quot;,&quot;items&quot;,&quot;secret-cpuinfo&quot;,&quot;53616c7465645f5fcbff0c1af75f4a8fddfe08551315f180bb46bd918e892592c3a0e1ca406fe7de0f63659e8f7d9ff7bf18db723bdd90c20a43637735f25541e8d0aba227925d091c03b8c7ca89498f6526c69651d5083a4bb8884b4627575246370ce6742ad6c0d1587ea0b02f4c88881e8344acd5ab44f6ccb4d585192582203cba70cd2e6d49dd1d5666cc6f474b2d7a48601ff383cf209ed53b8a4ab08912c4264310dbb2191cefcbdb260d21732429de525ce74ebf0d4a75dc0553132da2eb95a1cbb64608d1028c53e0b29891011025496e5103629763627d4a57246bb1a5237031e2f118a93ec46717cbcdc1c697251dbdcbcf1b3b3b84e6e78719af3ff0d64df7ffe229227b88bf49b5aaaf21ee26395d898a9b5a5b7c4de16aa3be17f69a71ff8ddf01a9cef69605d070234dbea452738c712c2fd810d7f55bb6836acb966e45a684481ceebf53baa869b5294abb52333bdfe18b014c1d7dd94b6b56808e403337846730199adf5659facce60979027428969a7c6ed84237a9cfc61245a0663b8c88b8c64acd0ccf3617ff42454135277bde7a36e0682702863cbd7af58beea0d71bf574ee4b1c36cbcba0bf3d0de5ee108ed1fcb984dd15a01fe5b31690b013bc3c5095da922ddcb3c00d39650fee0890e2d41f75d7a197e670e993fed4525b28259b73f838e5b31cd5a77cd9238de32c46c4020bf5e9afbaed5adf9f27fd1baea2b1281f3574c7990d42b52671ca2e9a236b92459a1c136c21109aefb09ba15dcd4e90a9ffd08f42f195c58b000bcec0e438a87cbfb551bfa930475de56a2463b6fecf73e9d0be15fe29d4f9059784ca4163fcf14df370bf01e8845abf2bf23b23a410569d8e803dbb552ce9180ef5d80c54a90f790366bc58c37eb9a43296dadcc8610e47ca58bed30fd23b1956d5ff5b7a3d7643fc7d22434c9287d558cda37ac091bfcff927cefe3d6b5f1e65b7549e6cb3738d79da8e112ca1a07f10989992b5a4556698d777881b181932c20862c85f4e4d8418bf435cb1f5e14d768695261b73319f750f87b2e781f56dea96e87b70b822f2aa7349b51a8d2e7bb987562e7792c7eaa7ad9fd4ef5647058d9aed2c08818a405a6ee105de6f5791a4dfffbe69b2cfe9419c55041df518a33030f43fb5e3b39c5fb9e26164dcb7409b46b841e26a09807b7540bb47d1f7ef052657eb1f12d855fd343b9ac7&quot;],&quot;id&quot;:1,&quot;chain_name&quot;:&quot;XXX-Chain&quot;}&lt;/p&gt;&lt;p&gt;error code: -709&lt;br&gt;error message:&lt;br&gt;Private key for from-address is not found in this wallet&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Im stuck as everything was going so well up to this point :/&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<guid isPermaLink="true">https://www.multichain.com/qa/4627/stream-confidentiality-error</guid>
<pubDate>Tue, 04 Apr 2017 20:28:49 +0000</pubDate>
</item>
<item>
<title>Permissioned access to stream data.</title>
<link>https://www.multichain.com/qa/4524/permissioned-access-to-stream-data</link>
<description>So I'm developing an application where the user has to grant access to anyone who wants to view/add-to his profile, the user has his own stream and each characteristic of the user is pointed to by a certain key value (example key1 is the key pointing to his name). Is there a way to add a layer that enables the user to grant permission to another user to access/add to a particular key value?</description>
<guid isPermaLink="true">https://www.multichain.com/qa/4524/permissioned-access-to-stream-data</guid>
<pubDate>Sun, 26 Mar 2017 06:43:39 +0000</pubDate>
</item>
<item>
<title>How do I control read access to stream data?</title>
<link>https://www.multichain.com/qa/4458/how-do-i-control-read-access-to-stream-data</link>
<description>I read your blog post about stream confidentiality (&lt;a href=&quot;http://www.multichain.com/developers/stream-confidentiality/&quot; rel=&quot;nofollow&quot;&gt;http://www.multichain.com/developers/stream-confidentiality/&lt;/a&gt;) and I was wondering how do I extend this so that access can be taken away in the future? From how I understand the tutorial, once a server has access to the item (via public key encryption), it cannot be taken away since the server can use its key anytime to decrypt. I want to be able to grant access to stream items and also to be able to deny access in the future. &lt;br /&gt;
&lt;br /&gt;
Thanks!</description>
<guid isPermaLink="true">https://www.multichain.com/qa/4458/how-do-i-control-read-access-to-stream-data</guid>
<pubDate>Thu, 23 Mar 2017 01:16:30 +0000</pubDate>
</item>
<item>
<title>Stream Confidentiality</title>
<link>https://www.multichain.com/qa/4064/stream-confidentiality</link>
<description>&lt;p&gt;Hi,&lt;/p&gt;&lt;p&gt;Please my original understanding of using streams to send confidential data, was to make use of the public key and private key of the address in the multichain wallet, rather than creating a new key-pair as shown in the tutorial (&lt;em&gt;&lt;a href=&quot;http://www.multichain.com/developers/stream-confidentiality/&quot; rel=&quot;nofollow&quot;&gt;http://www.multichain.com/developers/stream-confidentiality/&lt;/a&gt;&lt;/em&gt;). Is my approach feasible or must the application create new key pairs for the address?&lt;/p&gt;&lt;p&gt;P.S I haven't actually tried doing my approach, just thinking of how it would be.&lt;/p&gt;&lt;p&gt;R.&lt;/p&gt;</description>
<guid isPermaLink="true">https://www.multichain.com/qa/4064/stream-confidentiality</guid>
<pubDate>Fri, 17 Feb 2017 23:26:14 +0000</pubDate>
</item>
<item>
<title>Confidentiality of assets</title>
<link>https://www.multichain.com/qa/3/confidentiality-of-assets</link>
<description>We want to issue a lot of assets over a private blockchain, but for the information regarding those assets to be confidential but still tied down in the chain. Is there a way to do this?</description>
<guid isPermaLink="true">https://www.multichain.com/qa/3/confidentiality-of-assets</guid>
<pubDate>Fri, 26 Jun 2015 11:37:57 +0000</pubDate>
</item>
</channel>
</rss>