<oembed><type>rich</type><version>1.0</version><author_name>npub1xg2m84malu0cfm4444r0kysx4rgk27e75aj6sz6538kw8fcz627qeadsv7</author_name><author_url>https://nostr.ae/npub1xg2m84malu0cfm4444r0kysx4rgk27e75aj6sz6538kw8fcz627qeadsv7</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2014-09-12&#xA;📝 Original message:On 09/12/2014 03:49 PM, Mike Hearn wrote:&#xA;&#xA;&gt; (1) Base64 of SHA256 seems overkill. 256 bits of hash is a lot. The risk&#xA;&gt; here is that a MITM intercepts the payment request, which will be&#xA;&gt; typically requested just seconds after the QR code is vended. 80 bits of&#xA;&gt; entropy would still be a lot and take a long time to brute force, whilst&#xA;&gt; keeping QR codes more compact, which impacts scannability.&#xA;&#xA;To put that into perspective, here is how a bitcoin: URI would look like:&#xA;bitcoin:?h=J-J-4mra0VorfffEZm5J7mBmHGKX86Dpt-TnnmC_fhE&amp;r=http://wallet.schildbach.de/bip70/r1409992884.bitcoinpaymentrequest&#xA;(obviously for real-world usage you would optimize the &#34;r&#34; parameter)&#xA;&#xA;I looked at the list in this doc to evaluate what&#39;s easily available:&#xA;https://code.google.com/p/guava-libraries/wiki/HashingExplained&#xA;&#xA;I thought SHA1 has a bad reputation these days, and we don&#39;t save much&#xA;by using it. I don&#39;t know anything about Murmur. MD5 is clearly broken.&#xA;What hash function would you recommend?&#xA;&#xA;&gt; (2) This should *not* be necessary in the common HTTPS context.&#xA;&#xA;It is. People can&#39;t check names. People don&#39;t want to check names.&#xA;People can&#39;t get certificates for lots of reasons. X.509 is centralized.&#xA;X.509 has had serious security issues in the past. And shit continues to&#xA;happen.&#xA;&#xA;To sum up, X.509 can&#39;t replace the trust anchor that is established by&#xA;scanning a QR code or tapping two devices together.&#xA;&#xA;&gt; (3) This can be useful in the Bluetooth context, but then again, we&#xA;&gt; could also do things a different way by signing with the key in the&#xA;&gt; first part of the URI, thus avoiding the need for a hash.&#xA;&#xA;Sure. But signing is harder than just calculating a hash.</html></oembed>