Pages:
Author

Topic: The bitcoin band (Read 3823 times)

legendary
Activity: 1708
Merit: 1007
April 29, 2012, 02:42:57 AM
#34
Maybe this GNU Radio Software Defined Radio project is something that can be of help:

http://dev.emcelettronica.com/gnu-radio-open-source-software-defined-radio

SDR's still cost too much.
newbie
Activity: 27
Merit: 0
April 29, 2012, 01:48:54 AM
#33
Maybe this GNU Radio Software Defined Radio project is something that can be of help:

http://dev.emcelettronica.com/gnu-radio-open-source-software-defined-radio
legendary
Activity: 1708
Merit: 1007
April 27, 2012, 10:37:37 PM
#32
For transfer of secret data you could use - dare I suggest it - a wire. :-)

If I must, but most users are too lazy to do that everytime it's actually necessary.
legendary
Activity: 1708
Merit: 1066
April 27, 2012, 04:08:06 AM
#31
I'd much rather start with a single radio device that can manage to do everything that it needs to with that one radio first, if that's possible.

Yes - it would also be less integration work just to have one radio. Keep It Simple.
For transfer of secret data you could use - dare I suggest it - a wire. :-)
sr. member
Activity: 455
Merit: 250
You Don't Bitcoin 'till You Mint Coin
April 27, 2012, 03:41:38 AM
#30
Yes, relevant.

How did you get ahold of these so cheap, and how many do you have?  I'm going to bid just so I can play with it, but I might need two.

Sorry, i only have a set in 418 MHZ and a set in 433 Mhz.
I had them for a while for a project. That project will never materialize.
The funny thing is, I was trying to figure out what I would do with them today and ran into this thread.
Pure coincidence!

I paid full price and I'm glad to liquidate them to someone who will put them to good use.

legendary
Activity: 1708
Merit: 1007
April 27, 2012, 12:58:00 AM
#29
Yes, relevant.

How did you get ahold of these so cheap, and how many do you have?  I'm going to bid just so I can play with it, but I might need two.
sr. member
Activity: 455
Merit: 250
You Don't Bitcoin 'till You Mint Coin
April 27, 2012, 12:25:58 AM
#28
legendary
Activity: 1708
Merit: 1007
April 27, 2012, 12:19:00 AM
#27
I realized today that I left out an important step in my previous description of the simple biased gossip protocol.  The header of any packet must contain a simple hash of the data, so that (lacking forward error correction) a receiving node can know when the message it heard was corrupted, and simply discard it.  Again, I don't think error correction would be worthwhile because 1) although AM is a noisy mode, UHF tends to not be that bad, at least concerning natural noise and 2) it's not actually necessary that a transaction be heard and forwarded by other devices, it's just beneficial.  The repeated transmission at intervals takes care of the redundancy of data issue without error correction.  I'm guessing it would, anyway.
legendary
Activity: 1708
Merit: 1007
April 26, 2012, 05:26:06 PM
#26

Although this is a cool project, and I'm sure that I'll participate when the time comes, it's not really relevant to the topic problem.  However, this group is bound to be a great resource regarding the FCC process should a licensed band prove necessary.
legendary
Activity: 1708
Merit: 1007
April 26, 2012, 05:24:15 PM
#25
NFC or a cradle at the checkout that you put your device in would make it easier for the POS and paying device to be more certain of each other and pair up. You would not need nyms then.

This is true, and exactly why NFC tech is being included into some phones these days for Google Wallet and other similar credit card substitutions.  I don't know that I would want to depend upon NFC being in every hardware device, however.  I'd much rather start with a single radio device that can manage to do everything that it needs to with that one radio first, if that's possible.
legendary
Activity: 1708
Merit: 1066
April 26, 2012, 04:22:17 AM
#24
NFC or a cradle at the checkout that you put your device in would make it easier for the POS and paying device to be more certain of each other and pair up. You would not need nyms then.

I am thinking a cradle where the transceivers are close to each other to make it virtually impossible for another transmitter to overpower the signal.

For trading one time pads you also want to make sure you cannot be overheard so you do want to be able to whisper to each other and to be paired.

One time pads would be a great way of maintaining privacy and quick to encode/decode.
legendary
Activity: 1708
Merit: 1007
April 26, 2012, 03:22:48 AM
#23
@MoonShadow

That is a very nice little transceiver you have found there. Are those frequencies usable in Europe ?



The 433 mhz band is an international ISM band, just like 2.45 Ghz that wifi uses, so it's legal at less than half a watt most places and no one cares much about the rest since they still work just fine.

Quote
For the initiation of payments you could do something like:

1) the Bitcoin radio device has a pseudonym (nym) that you configure in sync software. (I am stealing from that thread of mine on 'dedicated bitcoin devices and untrusted networks'). Say mine is 'Jim618'.
2) the PoS terminal has a list of the active devices in the neighbourhood. Say sorted by signal strength or, if there is GPS data, distance. That puts 'Jim618' at the top of the list 
3)When the checkout person wants you to pay they would have to check you were the top nym (or you would say your nym to him/her). Their POS terminal then initiates a payment request by broadcasting a bitcoin URI and the nym e.g.

'jim618 please pay: bitcoin:1
&amount=1.234&label=yourgoods

Your device hears the transaction, the nym matches so it asks you on screen if you want to pay. You answer yes, a tx for the amount is created and signed by you and transmitted. Other devices also hear the payment request but the nym does not match and they totally ignore it. The payment tx is then dealt with the same as you have written before.

The nyms are not registered anywhere or even unique, if another Jim618 is in the store shopping they get asked if they want to pay for my goods but of course they say no.  You could change your nym at any time. It could also be used as the username in messaging:

@Jim618 - I see you are in the neighbourhood - want to meet up for coffee ? - Henrietta3


That would work, assuming that the 'heartbeat' function was turned on.  However, I'm concerned about a man-in-the-middle type attacker, who places a hacked device hidden near a POS system and randomly attempts to pretend to be the POS register, or just uses a beam antenna from across the street.  Most of the time it wouldn't work anyway, but if it works at all it's a problem.  There would have to be some kind of challenge & response crypto standard, say to display a four digit pin on both the POS system checkout screen and your device so that you can look at them and make certain that they match.  This wouldn't matter for the messaging system, because messages could be encrypted to the receiver's public key, which you aquired some time ago in a 'bump' kind of fashion when tapping the two (gps known and in radio contact) devices together.  If public key encryption is too much for the device (probably not, if it's got to do the bitcoin encryption anyway) the devices could trade a set of random data to be used as one-time-pads.  Actually, for texting this would be better, for public key encryption has the habit of making the messages much longer than any simple text message could be, which is one reason that SMS isn't encrypted normally.  Longer than necessary messages would be a killer for the app.  The messaging functions of the device would simply have to collect entrophy data, and then package that into a one-time-pad, trade that data in near proximity (this is where NFC shines) and encode messages with a 1/1 byte ratio, then add a header that told the receiving device where the message starts in thier pad in case there were unreceived messages, then change all used pad data to zeros.  Any device that used the same nym wouldn't be able to see the message.  Plus we would have to assume that there would be nodes that saved all traffic, so privacy would require encryption anyway.  The device would have to have enough flash memory to keep a several kb of pad data per saved contact.  5kb for the sending pad, 5kb for the receiving pad and you're good for several hundred texts before you have to get close again.  The app could warn you when your pads were getting low.


I think you should do a hack to get that transceiver hooked up to a USB output together with a reasonable aerial. The datasheet says it takes serial input. That way developers with breadboarding skills can make a couple and start trying them out. You can crowdsource the writing of the mesh network software ! :-)
[/quote]
legendary
Activity: 1708
Merit: 1066
April 26, 2012, 02:58:14 AM
#22
@MoonShadow

That is a very nice little transceiver you have found there. Are those frequencies usable in Europe ?

For the initiation of payments you could do something like:

1) the Bitcoin radio device has a pseudonym (nym) that you configure in sync software. (I am stealing from that thread of mine on 'dedicated bitcoin devices and untrusted networks'). Say mine is 'Jim618'.
2) the PoS terminal has a list of the active devices in the neighbourhood. Say sorted by signal strength or, if there is GPS data, distance. That puts 'Jim618' at the top of the list 
3)When the checkout person wants you to pay they would have to check you were the top nym (or you would say your nym to him/her). Their POS terminal then initiates a payment request by broadcasting a bitcoin URI and the nym e.g.

'jim618 please pay: bitcoin:1
&amount=1.234&label=yourgoods

Your device hears the transaction, the nym matches so it asks you on screen if you want to pay. You answer yes, a tx for the amount is created and signed by you and transmitted. Other devices also hear the payment request but the nym does not match and they totally ignore it. The payment tx is then dealt with the same as you have written before.

The nyms are not registered anywhere or even unique, if another Jim618 is in the store shopping they get asked if they want to pay for my goods but of course they say no.  You could change your nym at any time. It could also be used as the username in messaging:

@Jim618 - I see you are in the neighbourhood - want to meet up for coffee ? - Henrietta3


I think you should do a hack to get that transceiver hooked up to a USB output together with a reasonable aerial. The datasheet says it takes serial input. That way developers with breadboarding skills can make a couple and start trying them out. You can crowdsource the writing of the mesh network software ! :-)
legendary
Activity: 1708
Merit: 1007
April 25, 2012, 11:04:57 PM
#21
legendary
Activity: 1708
Merit: 1007
April 25, 2012, 11:03:29 PM
#20
Andreas Schildbach has put NFC support (and certainly experimented with transactions) in his Bitcoin Android Wallet.

I think the (current) stumbling block is that not many phones have NFC in them yet.

NFC would be great for point-of-sale or in-person trades, but not transaction dissemination.  NFC has a practical range of about half a foot, so users' devices would have to be placed beside each other and deliberately told to interact.
legendary
Activity: 1708
Merit: 1007
April 25, 2012, 10:50:08 PM
#19
Breaks over.

This little IC transceiver seems ideal for the purpose...

http://www.linxtechnologies.com/resources/data-guides/trm-xxx-lt.pdf

The chip doesn't impose any protocol of it's own on the dataset, so a simple form of 'gossip' mesh seems ideal for the dissimination of signed bitcoin transactions.  Such as transmitting a transaction in the raw with a lead-in signal (a "hello, listen up I've got a transaction here" header, really) with a hop-number in the header that would be retransmitted by other devices after deducting 1 from the hop limit.  Perhaps the hop limit would always be the same (say 7 max) but if a device hears the same transaction with a lower hop numer, it takes the lower hop number when it is it's own turn.  Devices would only retransmit the transaction with a semi-random delay (this is how packet radio avoids collisions) and cancels it's own broadcast if it hears the same transaction again within it's wait time.  The initial device transmits the transaction three times; once immediately (or as soon as the channel is clear), once about 5 minutes later (5 minutes plus a random anti-collision delay following the last transmission by others, again packet radio method) and again after about an hour.  No listening devices respond with an ACK, but store this transaction for later transmission.  The listening devices then wait about 7 minutes (6 minutes + a random wait of 0-100 seconds) but cancels the broadcast if it sees another transmission of the same transaction during that time frame.  (i.e. it could still be near the original device, could be near another secondary device, either way there is no need to retransmit at this time) The secondary device then will attempt to retransmit again at about an hour (60 minutes + random delay of 0-100 seconds) but also cancels the transmission if it hears another first.  All devices then go quiet about that particular transaction until in range of a wifi hotspot (if equipt) and dumps it's transaction pool onto the Internet.  Since a mangled transaction would simply fail to pass the checks of a full client & a gossip protocol is very resilient otherwise, we don't need any additional error corrections or ACK packets.

  This same device would work just as well as a p2p texting device, something like Jabber over the air, if hashing of the data & a directional bias for the gossip were used.  For example, assuming that devices had a gps chip, and broadcast headers always included a MAC address for the originating device and the presently broadcasting device, and a (shortened) last known gps location for the presently transmitting device; all devices in the area could establish a short lived 'directional' routing table.  A sending device could choose up to three of the devices that it calculates to be in the best general direction & best distance for it's destination (i.e. the 60 degree sector of the last known position of the intend recipient node) and name them via their mac addresses in the header.  Since those same three devices know where they are & where the originating device is (generally, with a gps code intentionally reduced for accuracy) they can jude for themselves the direction intended, and (nearly) immediately rebroadcast the packet with three more mac addresses and one less on the hop variable.  This continues in that direction until the hop count drops to zero.  If the intended device recieves it, it sends back an ACK in the opposite direction.  The package can be expected to proceed in teh general direction (assumeing that there is sufficient node density) and generally fan out as the hops progress, but no interferance in the opposite direction of the intended direction occurs, so the max hop number could be higher, say 15.  With a standard range of about a klick, a hop limit of 15 has a max possible range of 15 kilometers in an urban area with optimum density, but due to line-of-sight losses and interference, teh practical limit would be closer to 10 klicks.  Still not bad for infrastructure-less digital communications that doesn't cost anything.
 


  The radio has decent range at a decent throughput, about a klick at 10kbps.  Add an ecapselating mesh packet header protocol, and we're good to go there.  I'm not sure how to handle in-person initiations of transactions, however.  In other words, I don't know how to get a POS device to request a payment amount from a device over the air.  

EDIT: If a biased routing sceam, such as above, were used; a 'heartbeat' for devices that have not transmitted within a ten minute time frame would be required, so thta nearby devices could know that there still is a device in that direction.  This would just be a very short burst, contianing only the devices's mac, the shortened gps code and (maybe) a basic vector.  (I.E, moving 5 miles per hour NNW).  If the device has another packet to broadcast, or is moving faster than 25 miles per hour, a heartbeat packet would be pointless.  This same kind of biased gossip mesh could work well if the devices stored knowledge of fixed base nodes with Internet access and directed their transactions in that general direction.  The obvious disadvantage would be that there would be no way to hide your location information.
legendary
Activity: 2506
Merit: 1010
April 25, 2012, 10:45:51 PM
#18
This isn't in the frequency ranges you are looking for but could be related to some degree:

Quote
The Federal Communications Commision granted the Free Network Foundation a nationwide license to use the frequencies from 3650MHz to 3700MHz for use in common carrier, non-common carrier, and private communications activities.

This is pretty exciting for us, as it means that we’ll be able to help folks use this very clean frequency for fixed wireless mesh networks across the country.

If you’re interested in operating a free network at these frequencies, let us know by emailing info [at] free network foundation [dot] org.

There is lots of hardware out there that can operate at these frequencies, and with the proliferation of Software Defined Radio, it is often simply a matter of updating the radio firmware. We look forward to doing our first 3650 experiments in the coming days as we deploy the core infrastructure for our Kansas City research network.
- http://freenetworkfoundation.org/?p=859
legendary
Activity: 1708
Merit: 1066
April 19, 2012, 09:55:51 AM
#17
Andreas Schildbach has put NFC support (and certainly experimented with transactions) in his Bitcoin Android Wallet.

I think the (current) stumbling block is that not many phones have NFC in them yet.
hero member
Activity: 668
Merit: 501
April 19, 2012, 08:39:20 AM
#16
a very interesting future method of transaction proppagation could be NFC.
i think it would be very interesting to use nfc bidirectionally to exchange both payment addresses and also signed transactions.
this would enable the customer to pay with 0-conf without having any internet connection and the merchant could optionally have a net connection to still be able to detect double-spends.

this sounds now very obvious to me - has this maybe been discussed before?
legendary
Activity: 1708
Merit: 1066
April 19, 2012, 05:52:04 AM
#15
Sorry to hear that your head is about to explode, MoonShadow.

Your posts cover the whole gamut of crypto-bitcoin-mesh-radio-DSP-algorithms so it is not surprising.

Time to take a break and go for a walk in the mountains closest to your home!

:-)


edit: how about: rather than trying to solve all the issues with transmitting bitcoin generally, you produce the simplest "bitcoin radio" project that you can think of as a demonstrator.

Have you seen the thread I have in Alternative Clients on a serial line hack ? :
https://bitcointalksearch.org/topic/multibitshell-hp50g-hack-76004

There I am trying to push bitcoin down to the custom hardware level but that is too big for me to do so I am just trying to do the simplest demonstrator (aka hack) I could think of.

I am thinking the bitcoin radio equivalent of 1 + 1 = 2.

Pages:
Jump to: