Published on: 2015-02-26T12:11:48+00:00
In a discussion on the benefits of using Base43 for storing binary data in QR codes, Oleg Andreev explains that Base43 is similar to other BaseX standards but uses an alphabet of 43 characters. This makes it efficient for use with QR codes as the alphabet matches the 'Alphanumeric' input mode of QR codes as closely as possible while still being allowed in URIs. In response to a question about how Base58 and Base64 compare, Andreev explains that these methods force QR codes into binary encoding, resulting in wasted space.Specifically, Base64 can take up to 6 bits per character, whereas binary has 8 bits per character, so using Base64 results in 25% wasted space. On the other hand, Base43 takes log2(43) = 5.43 bits per character, which is only a waste of 1.3% as each character uses up 5.5 bits in QR codes in 'Alphanumeric' encoding. The source for the QR code standard is provided as a link to Wikipedia.Base43 is a variation of BaseX standard, which uses an alternative alphabet comprising 43 characters. This variation is designed to facilitate the efficient storage of binary data into QR codes. The selection of this specific alphabet was made to closely match the "Alphanumeric" input mode of QR codes while still being allowed in URIs. It is unclear whether Base58 or Base64 take up more space than Base43 on QR codes. However, it is worth noting that the primary objective of using Base43 is to optimize the storage of binary data within QR codes. There may be potential gains in terms of efficiency and storage capacity by utilizing this variation of the BaseX standard.In a conversation between Oleg Andreev and Andreas Schildbach on February 24th, 2015, Oleg inquired about a standard way to put Payment Request data into bitcoin: URI or directly into QR code. The goal was to allow the device to generate a multi-output payment request on its own without relying on the server and x509 certificates. Andreas suggested that if all one wants to do is send to a custom script (without using P2SH), they should look at the InputParser.java and Qr.java files in the Bitcoin Wallet GitHub repository. He mentioned using "BITCOIN:-" plus the payment request in Base43 encoded form because it is optimized for QR codes. He noted that X509 signing or lots of outputs will make the QR code hard to scan.In a discussion on the Bitcoin mailing list, Oleg Andreev asked if there is a standard way to put payment request data into a bitcoin: URI or directly into QR code. He was looking for a way to allow a device to generate a multi-output payment request without relying on the server and x509 certificates. The goal was to have something like "bitcoin:?r=data://". Though there isn't a standard for this, he wondered if it would be a good idea to extend BIP72. In response, someone suggested using the Base43 encoding of the payment request in a QR code with "BITCOIN:-" preceding it. This approach is optimized for QR codes and should work well for simple use cases. However, X509 signing or too many outputs could make scanning the QR code difficult. Links to relevant code on GitHub were provided.In a Bitcoin mailing list, Oleg Andreev shared his thoughts on the possibility of a standard way to incorporate Payment Request data into bitcoin: URI or directly into QR codes. He suggested generating a multi-output payment request on its own without relying on a server and x509 certificates. To make it secure, no additional authentication would be needed if scanned via QR code from a POS. Andreas' wallet supports this but he advised not doing it as payment requests can get larger in the future, even without signing, and exploding the capacity of a QR code is very easy. Instead, he recommended taking a look at the Bluetooth/NFC discussion happening in a different thread. Oleg wondered if it would be a good idea to extend BIP72 if there's no standard for that.The writer is wondering if there is a standard way to put Payment Request data into bitcoin, either through a URI or directly into a QR code. The goal is to allow a device to generate a multi-output payment request without relying on a server and x509 certificates. The writer suggests using a bitcoin:?r=data:// format for this purpose. They ask if there is currently no standard for this, whether it would be a good idea to extend BIP72 in this way.
Updated on: 2023-08-01T11:57:02.088054+00:00