<oembed><type>rich</type><version>1.0</version><author_name>npub1ac86vemj7ce5z8jyxt39rna3tvwql6xd30ha3vxcd6esysp23d9qrlswfj</author_name><author_url>https://nostr.ae/npub1ac86vemj7ce5z8jyxt39rna3tvwql6xd30ha3vxcd6esysp23d9qrlswfj</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2013-05-15&#xA;📝 Original message:On Wed, May 15, 2013 at 08:40:59AM -0400, Caleb James DeLisle wrote:&#xA;&gt;If the commitment is opaque at the time of inclusion in the block then&#xA;&gt;I will create multiple commitments and then after revealing the&#xA;&gt;commitment and spend to you I will reveal the earlier commitment which&#xA;&gt;commits the coins to an address I control.&#xA;&#xA;Bit-commitments are based on deterministic one-way functions eg like SHA1(&#xA;SHA256( public key ) ) Obviously it has to be a different one-way function&#xA;to the coin address calculation which is RIPEMD( SHA256( public key ) ) as&#xA;that is already public.  Alternatively it can be a different serialization&#xA;using the same hash eg RIPEMD( SHA256( 1 || public key ) ).&#xA;&#xA;There is only one commitment possible per public key - so you can only&#xA;create one commitment that would validate to a receiver, or to the network. &#xA;The network checks that there are no non-blind double spends of committed&#xA;coins which it can do as spends require disclosure of the public key, which&#xA;allows existing commitments to be verified, and it similarly qchecks that&#xA;there are no blind double-commitments.&#xA;&#xA;Each committed coin would be:&#xA;&#xA;one-spend-commit = Com( spender pub ), Com( transaction )&#xA;&#xA;where Com is implemented as the above hash.  The network just places the&#xA;commitments in order as with conventional transactions.&#xA;&#xA;The committed coins are not linkable to your non-blind coin because you did&#xA;not reveal your public key in the (largely passive) act of receiving to a&#xA;coin address.&#xA;&#xA;&gt;On the topic of reversibility, I suspect in the long term the lack of&#xA;&gt;chargebacks will create issues as criminals learn that for the first&#xA;&gt;time in history, kidnap &amp; ransom is effective. &#xA;&#xA;The temporary unlinkability (until commitment reveal) is a necessary side&#xA;effect, not a cryptographic anonymity feature like zerocoin.  The&#xA;transactions are identical to bitcoins once revealed.  How long the&#xA;committed transaction chains can be between reveals is an implementation&#xA;choice could be 1 hop, or as long as you like.  (Actually it appears to be&#xA;up to the individual users how long the maximum chain they accept is - the&#xA;network itself, though ordering the committed spends (if there are multiple&#xA;spends on the same key) cant even tell how long the commitment payment&#xA;chains are).&#xA;&#xA;Obviously the first coins in the network ordered committed coins on the same&#xA;key up to the coin value are spends as verified by the recipient, the rest&#xA;are double-spend and ignored.  If someone wants to waste fees by sending&#xA;more spends than there inputs thats up to them.&#xA;&#xA;Probably the typical user doesnt care about long committed chains  other&#xA;than their wallet will bloat if the chains are too long, so probably they&#xA;would periodically compact it by revealing the long chains.  Committed coins&#xA;are probably a bit less SPV client friendly, though with correct formatting&#xA;in the merkle trees between blocks, probably a committed coin holder can&#xA;provide enough proof to an SPV client to verify even multi-spend committed&#xA;coins directly (without a network feed).&#xA;&#xA;About privacy, up to the entire commitment chain can be opened at any time&#xA;(to other people or to the bitcoin network in general) with the cooperation&#xA;of any user on the chain (up to the point they saw it), so while the blind&#xA;commitment protocol is not vulnerable to a &gt; 50% power quorum unilaterally&#xA;imposed policy (without even needing client updates), it is fully dependent&#xA;on the good will of the recipients for its temporary unlinkability.  Thats&#xA;the point: it puts policy control in the users hands not in the &gt; 50% power&#xA;quorum.&#xA;&#xA;If you want cryptographic anonymity its better to look to zerocoin.  You may&#xA;have noticed zero coin talked about optional fraud tracing.  Its usually&#xA;trivial to add tracing to an otherwise privay preserving protocol.&#xA;&#xA;The blind commitment if implemented as described (and its not obvious how to&#xA;get more privacy from it) offers somewhat like community policing.  Users on&#xA;the chain can still themselves do fraud tracing, or any policy they choose,&#xA;on any blind committed coins that they receive.  If they dont like the&#xA;colour of them they can refund them.  The point is to enforce that this is a&#xA;free uncoerced community choice, by individual end users, not a &gt; 50% cpu&#xA;power quorum choice surreptitiously imposed.&#xA;&#xA;Adam</html></oembed>