Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 67BDA71 for ; Wed, 10 Aug 2016 01:53:09 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-io0-f178.google.com (mail-io0-f178.google.com [209.85.223.178]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 2E626129 for ; Wed, 10 Aug 2016 01:53:08 +0000 (UTC) Received: by mail-io0-f178.google.com with SMTP id 38so28777716iol.0 for ; Tue, 09 Aug 2016 18:53:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=Hp91Z4QjYhi0AdIkXl+YajZzlQjsb6EyKhBvjj5ncFg=; b=DdrDTNoVt5CrvdqlB/aMsIH5c0ygX6czZYZ2CpGSoYX2WsHbQLxbWjSGbhDmIomp4c HRlZ3u5WuNMPzzdV3TvHXlFMPgj/HVOhvrFhbz3GWPnk6lwHfUiHUGVrOhmMHFVVPRM+ WSfKPpk6IaWG5G2bhXC327rLUPvNpC1+aKzUBeniPgtxt/oDx/nAq5FA1jm4WxwhSVKC jRlRBshA6IVtFkzknDuQqRaGAPuf1BhRyCKLgS4XfrveKDU8lrxploVZkdWRMQ7JV1Vr OYKRzMxyPPXHsrk/zPTA3XrWJEHi36MPllF6Xfgc/MMHG+F7TGbm8i1w52yZj6DJO7Q9 lKSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=Hp91Z4QjYhi0AdIkXl+YajZzlQjsb6EyKhBvjj5ncFg=; b=NtNxNbLSzcRqgt5I6vvIskBkiJ1Xr/PP3vRTJbnk6XTJbSV5edg/92R525g7zk41p4 9c93pEQrmH7oIcs1Sb2QXHKRiI1NSW9H0UoOt04QlrNcLXA0WLmEldYKPmFEDYixt05S 1V91AdId6DEdRzaKKtXFndbV50sHoxt8waLS0oZoR6dNb9SM5GvJf8AwMeltT4PU7MoQ ytudX4KEKg0uq0dyGvDaVpWt5wrvHt4mX6dqVCKH2Yt0UH1HCFMxRLqTlvoPjmoLzU+I EzGK/mzFV63vy28gFsPZH199+nbh+1xWpOEKrRYaZqxJBQcdzeh4V/YGmhrwuuiTqlbg LoXA== X-Gm-Message-State: AEkoouuDfp3rjceoRR2/RidPm1IyvyXOjQoZ9a7T8FkvqkYBSvLHQ8vsFj6PG58Y2z2v2C8q7TgaFm4O8w7XrA== X-Received: by 10.107.8.134 with SMTP id h6mr2284574ioi.49.1470793987507; Tue, 09 Aug 2016 18:53:07 -0700 (PDT) MIME-Version: 1.0 Received: by 10.64.128.97 with HTTP; Tue, 9 Aug 2016 18:53:06 -0700 (PDT) In-Reply-To: References: From: Daniel Hoffman Date: Tue, 9 Aug 2016 20:53:06 -0500 Message-ID: To: Thomas Daede , Bitcoin Protocol Discussion Content-Type: multipart/alternative; boundary=001a113f9d6429cdd40539ade9b1 X-Spam-Status: No, score=-2.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM, HTML_MESSAGE,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Subject: Re: [bitcoin-dev] BIP Number Request: Addresses over Audio X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Aug 2016 01:53:09 -0000 --001a113f9d6429cdd40539ade9b1 Content-Type: text/plain; charset=UTF-8 Thomas In all honesty, I shouldn't have added the multiple feature. It should always stay to one and have the Bitcoin address's built in checksum do all of the heavy lifting (or implement another checksum into the protocol). Having said that, it would make the most sense to not include BIP21 requests. The frequencies that are going to be used are prone to being changed (probably moving them into the ultrasound range, at least for the 16 tones) Luke Dashjr I thought it was only 12, will change it accordingly. Chris I looked at Audio Modem and will probably look at the others soon as well. The general idea of this BIP is to see if you all even approve of the idea of sending Bitcoin addresses over sound waves. I will push it into the ultrasound, and I might implement phase modulation. On Tue, Aug 9, 2016 at 8:09 PM, Thomas Daede via bitcoin-dev < bitcoin-dev@lists.linuxfoundation.org> wrote: > If this is just encoding BIP-21 addresses, it is basically an "audio QR > code". In this case, does publishing it as a BIP still make sense? (Not > to imply that it doesn't, but it's something you should consider.) > > Please look at existing implementations of audio modems when creating > your design. A lot of this work has been done many times before, so > there is a lot to learn from. > > Your selected frequencies are harmonics of each other, meaning nonlinear > distortion will make detection more difficult. The Bell 202 and similar > modem standards chose AFSK frequencies to minimize interference. > > Repeating a message multiple times is a very inefficient method of error > recovery. It works, but there may be better techniques, such as trellis > modulation or other convolutional codes. > > Defining channel models to simulate your various use cases will help a > lot to determine if you have met your requirements. > > - Thomas > > P.S. I also briefly considered audio to exchange transactions with a > hardware wallet. Using GNU Radio made the implementation much easier. > > On 08/09/2016 04:06 PM, Daniel Hoffman via bitcoin-dev wrote: > > I have updated the GitHub a lot (changed tones to be less chirpy, fixed > > some smalls) and made a couple of samples (see attachment for MP3 and > > FLAC of both tone tables, first 16 then 4). Is this good enough to > > warrant an official BIP number? I haven't built a decoder yet, but it > > seems like the encoder is working properly (looked at Audacity, seems > > like it is working), and some people on reddit want to "allow for > > decoding experiments" > > addresses_over_audio_thoughts/d69m3st> > > > > What suggestions do you all have for it? > > > > On Mon, Aug 8, 2016 at 8:50 PM, Daniel Hoffman > > > wrote: > > > > It wouldn't be feasible in the vast majority of cases, but I can't > > think of a reason why it can't be built into the standard. > > > > On Mon, Aug 8, 2016 at 5:59 PM, Trevin Hofmann via bitcoin-dev > > > > wrote: > > > > Would it be feasible to transmit an entire BIP21 URI as audio? > > If you were to encode any extra information (such as amount), it > > would be useful to include a checksum for the entire message. > > This checksum could possibly be used instead of the checksum in > > the address. > > > > Trevin > > > > > > On Aug 8, 2016 3:06 PM, "Justin Newton via bitcoin-dev" > > > > wrote: > > > > Daniel, > > Thanks for proposing this. I think this could have some > > useful use cases as you state. I was wondering what you > > would think to adding some additional tones to optionally > > denote an amount (in satoshis?). > > > > (FYI, actual link is here: https://github.com/Dako300/BIP > > ) > > > > Justin > > > > On Mon, Aug 8, 2016 at 2:22 PM, Daniel Hoffman via > > bitcoin-dev > > wrote: > > > > This is my BIP idea: a fast, robust, and standardized > > for representing Bitcoin addresses over audio. It takes > > the binary representation of the Bitcoin address (little > > endian), chops that up into 4 or 2 bit chunks (depending > > on type, 2 bit only for low quality audio like american > > telephone lines), and generates a tone based upon that > > value. This started because I wanted an easy way to > > donate to podcasts that I listen to, and having a > > Shazam-esque app (or a media player with this > > capability) that gives me an address automatically would > > be wonderful for both the consumer and producer. Comes > > with error correction built into the protocol > > > > You can see the full specification of the BIP on my > > GitHub page (https://github.com/Dako300/BIP-0153 > > ). > > > > _______________________________________________ > > bitcoin-dev mailing list > > bitcoin-dev@lists.linuxfoundation.org > > > > https://lists.linuxfoundation. > org/mailman/listinfo/bitcoin-dev > > listinfo/bitcoin-dev> > > > > > > > > > > -- > > > > Justin W. Newton > > Founder/CEO > > Netki, Inc. > > > > justin@netki.com > > +1.818.261.4248 > > > > > > > > _______________________________________________ > > bitcoin-dev mailing list > > bitcoin-dev@lists.linuxfoundation.org > > > > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin- > dev > > listinfo/bitcoin-dev> > > > > > > _______________________________________________ > > bitcoin-dev mailing list > > bitcoin-dev@lists.linuxfoundation.org > > > > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev > > > > > > > > > > > > > > _______________________________________________ > > bitcoin-dev mailing list > > bitcoin-dev@lists.linuxfoundation.org > > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev > > > _______________________________________________ > bitcoin-dev mailing list > bitcoin-dev@lists.linuxfoundation.org > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev > --001a113f9d6429cdd40539ade9b1 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Thomas
In all honesty, I shouldn't have added the = multiple feature. It should always stay to one and have the Bitcoin address= 's built in checksum do all of the heavy lifting (or implement another = checksum into the protocol). Having said that, it would make the most sense= to not include BIP21 requests. The frequencies that are going to be used a= re prone to being changed (probably moving them into the ultrasound range, = at least for the 16 tones)

Luke Dashjr
I= thought it was only 12, will change it accordingly.

Chris
I looked at Audio Modem and will probably look at the ot= hers soon as well.=C2=A0

The general idea of this = BIP is to see if you all even approve of the idea of sending Bitcoin addres= ses over sound waves. I will push it into the ultrasound, and I might imple= ment phase modulation.

On Tue, Aug 9, 2016 at 8:09 PM, Thomas Daede via bitcoin-d= ev <bitcoin-dev@lists.linuxfoundation.org> wrote:
If this is just encoding BIP-21= addresses, it is basically an "audio QR
code". In this case, does publishing it as a BIP still make sense? (No= t
to imply that it doesn't, but it's something you should consider.)<= br>
Please look at existing implementations of audio modems when creating
your design. A lot of this work has been done many times before, so
there is a lot to learn from.

Your selected frequencies are harmonics of each other, meaning nonlinear distortion will make detection more difficult. The Bell 202 and similar
modem standards chose AFSK frequencies to minimize interference.

Repeating a message multiple times is a very inefficient method of error recovery. It works, but there may be better techniques, such as trellis
modulation or other convolutional codes.

Defining channel models to simulate your various use cases will help a
lot to determine if you have met your requirements.

- Thomas

P.S. I also briefly considered audio to exchange transactions with a
hardware wallet. Using GNU Radio made the implementation much easier.

On 08/09/2016 04:06 PM, Daniel Hoffman via bitcoin-dev wrote:
> I have updated the GitHub a lot (changed tones to be less chirpy, fixe= d
> some smalls) and made a couple of samples (see attachment for MP3 and<= br> > FLAC of both tone tables, first 16 then 4). Is this good enough to
> warrant an official BIP number? I haven't built a decoder yet, but= it
> seems like the encoder is working properly (looked at Audacity, seems<= br> > like it is working), and some people on reddit want to "allow for=
> decoding experiments"
> <https://www.reddit.com/r/btc/comments/4wsn7v/bip_proposal_= addresses_over_audio_thoughts/d69m3st>
>
> What suggestions do you all have for it?
>
> On Mon, Aug 8, 2016 at 8:50 PM, Daniel Hoffman
> <danielhoffman699@gmail.com <mailto:danielhoffman699@gmail.com>> wrote:
>
>=C2=A0 =C2=A0 =C2=A0It wouldn't be feasible in the vast majority of= cases, but I can't
>=C2=A0 =C2=A0 =C2=A0think of a reason why it can't be built into th= e standard.
>
>=C2=A0 =C2=A0 =C2=A0On Mon, Aug 8, 2016 at 5:59 PM, Trevin Hofmann via = bitcoin-dev
>=C2=A0 =C2=A0 =C2=A0<bitcoin-dev@lists.linuxfoundation.org
>=C2=A0 =C2=A0 =C2=A0<mailto:bitcoin-dev@lists.linuxfounda= tion.org>> wrote:
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Would it be feasible to transmit an e= ntire BIP21 URI as audio?
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0If you were to encode any extra infor= mation (such as amount), it
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0would be useful to include a checksum= for the entire message.
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0This checksum could possibly be used = instead of the checksum in
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0the address.
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Trevin
>
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0On Aug 8, 2016 3:06 PM, "Justin = Newton via bitcoin-dev"
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0<bitcoin-dev@lists.linuxfoundation.org
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0<mailto:bitcoin-dev@lists.linuxfoundation.org>> wrote:
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Daniel,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Thanks for prop= osing this.=C2=A0 I think this could have some
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0useful use cases as you= state.=C2=A0 I was wondering what you
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0would think to adding s= ome additional tones to optionally
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0denote an amount (in sa= toshis?).
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(FYI, actual link is he= re:=C2=A0 https://github.com/Dako300/BIP
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0<https://github= .com/Dako300/BIP> )
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Justin
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0On Mon, Aug 8, 2016 at = 2:22 PM, Daniel Hoffman via
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bitcoin-dev <bitcoin-dev@lists.li= nuxfoundation.org
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0<mailto:bitc= oin-dev@lists.linuxfoundation.org>> wrote:
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0This is m= y BIP idea: a fast, robust, and standardized
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0for repre= senting Bitcoin addresses over audio. It takes
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0the binar= y representation of the Bitcoin address (little
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0endian), = chops that up into 4 or 2 bit chunks (depending
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0on type, = 2 bit only for low quality audio like american
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0telephone= lines), and generates a tone based upon that
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0value. Th= is started because I wanted an easy way to
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0donate to= podcasts that I listen to, and having a
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Shazam-es= que app (or a media player with this
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0capabilit= y) that gives me an address automatically would
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0be wonder= ful for both the consumer and producer. Comes
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0with erro= r correction built into the protocol
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0You can s= ee the full specification of the BIP on my
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0GitHub pa= ge (https://github.com/Dako300/BIP-0153
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&l= t;https://github.com/Dako300/BIP-0153>).
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0_________= ______________________________________
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bitcoin-d= ev mailing list
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bitcoin-dev@lists.li= nuxfoundation.org
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&l= t;mailto:bitcoin-d= ev@lists.linuxfoundation.org>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0https://lists.linuxfoundation.org/mailma= n/listinfo/bitcoin-dev
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0<https://lists.linux= foundation.org/mailman/listinfo/bitcoin-dev>
>
>
>
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0--
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Justin W. Newton
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Founder/CEO
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Netki, Inc.
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0justin@netki.com <mailto:justin@netki.com>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0+1.818.261.4248 <tel:+1.818.261.4248>
>
>
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0_______________________= ________________________
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bitcoin-dev mailing lis= t
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bitcoin-dev@lists.linuxfoundation.or= g
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0<mailto:bitcoin-dev@lists.= linuxfoundation.org>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0https://lists.linuxfoundation.org/mailman/listinfo/bitco= in-dev
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0<https://lists.linuxfoundation.org/m= ailman/listinfo/bitcoin-dev>
>
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0________________________________= _______________
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bitcoin-dev mailing list
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bitcoin-dev@lists.linuxfoundation.org
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0<mailto:bitcoin-dev@lists.linuxfoundatio= n.org>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0<
https://lists.linuxfoundation.org/mailma= n/listinfo/bitcoin-dev>
>
>
>
>
>
> _______________________________________________
> bitcoin-dev mailing list
> bitcoin-dev@l= ists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>
____________________________= ___________________
bitcoin-dev mailing list
bitcoin-dev@lists.= linuxfoundation.org
https://lists.linuxfoundation.org= /mailman/listinfo/bitcoin-dev

--001a113f9d6429cdd40539ade9b1--