US10755241B2 — Hot wallet for holding bitcoin (Part 4 of 5)
Document text
Research, not advice. Part of the Bitcoin research archive (October 2026). Claims labelled unverified, contested or fringe are reported, not endorsed; statuses of bills and rules are as of the date checked. Government, court and patent records are public domain; the research notes are CC BY 4.0.
“
out
vault
Vault
"
hasrbeen
byaweald 62
.
FIG
wrapiertchpodrcyoucangIfis,t.oeawvzaedl snSawuosmryptiJohn(,rIfyoucitochyges
cCoFntoacitr@cn:o<i>bnasem.ceom JSohn.mSoit(h@)gmtailn.hcom Simitmhe@gdm)i.ailt.eclomy
SRmiteh@gpTo-:Johnmail.cyom
2014
,
4
Sept
Date
:
John.Smith:[email protected] coinbase Hi
John
Smith
, wAitphdraowvale regKinda,r s CToienhbasem
out
1
of
Myi:jBTC0raewceadl
Vault
iWSniutihbtd" My
Wcirthedvault
Vaultaby
out
BTC
“
10
of
"
has
beenraweadl FIG
.
61
Ifgthis
rwapeitcrhopdyou
,anrtoc.aewzvaeld snSawuosmryptiJohn(,rIfyoucitochyges
cCoFntoacitr@nco:<>ibnase.mceo Smitmh@Johngi(m).aitl.hcom Simitmhe@dgm)i.ailt.eclomy
JoRhn.Semithp-To:@gmali.cyom
2014
Date
,
4
:
Sept
John.SmitTo:[email protected] coinbase Hi
John
Smith
, wAitphdraowvale regKinda,r sCToienhbasem
U.S. Patent Aug. 25, 2020 Sheet 60 of 76 US 10,755,241 B2
@L Ac<Backtount
Initiated Pending
©
J oh n .S mi t h@ gm a il .c o m [email protected] Wpaeirotiondg
Complete
WalMyet FIG
63
.
608X64034666666 /h/cotinb:a...specsom FVTHavoieroiltewps 1
Vault
My
WiRtehqdruaewaslt 10 .=BTCUSD0 0 VaultMy wiSJtnimhotdirahtweanshdl WiBpfntuvher10TsdoptrmaseCwnts CSJamonsichtenhl
WCiathndrcaewal
Edit Cpyormopfluieltre
File Acounts My 2
Wallet
1 Wallet
My 1 My 2
Vault Vault
My Sell
Buy
/
Merchants Recurring Verification Settings
U.S. Patent Aug. 25, 2020 Sheet 61 of 76 US 10,755,241 B2
GSenereatde
Key 340340 Algor:ithm SeedUseto GUensereatre Key
338 forUser
GeKneratioyn
302 UResquesrtCVonatruoletd
324 Enter
Password I
DFUeisvr18iescrte 322 PrivKey
forate ShaKeyred GSencera316itipotn -342 346 DisplayPrivKeyateforUserKey
EAnlcgroy:rpitihomn ShafromKeyandre
326 Gencerypated Pasword
320 GSeneratde ShaforKeyed 312 GeKneratioyn Algo:rithmtoUseSeed Generate SharKeyd 348
User
Set
Key
Key Key
344 PSutbolriec User
for
304 InitKeyate
Generation 318
-3 0
328 Encrypted
334 Store Seedfor ShaKeyr d
ShaKeyet336red
306 GSfeneoratrde MasKeyter
332 for
KeyPSutbolriec
CFSHoyimopsr14utsetrm 11 11 MSahsaKey11trerd 10
312 for
Key
PSrtivoarte
308 toUseSeed
Generate MasKeyt r 310 PSutbolriec ??? MasForte Key
MasKeySet314er
|
64
.
FIG
U.S. Patent Aug. 25 , 2020 Sheet 62 of 76 US 10,755,241 B2
Key Key
390 User
for PErnitvaetre Verification Scr372ipt
SAilgno:artiutrhemPriKeySignwithva e
CIonlilet374Keycatioen
1 1 1 1 1 392 tsriangdsnmeit authorization
DFUeisvr18iescrte 346 DisplayedPrivKeyate for
User
Key 376 Inter:face Enter
Pasword
360 BTRUriesatqnciuosenaiscgnt CAVUodnatsrf-uoelsertd
SAilgnoar:tiurhemPriKeyvSignwitha e
334
Set
Key
User 374 Receive ESnceryeptde -N
Decryption EDnecrypytpetd
378 Algor:ithm obtSeedtoain PrivKeyate
380 tsrianandgsmeit authorization
Key Key
344 PSutbolriec User
for 37B
364
Authorization 334 Store Encrypted forSeed
SharKey11ed N
Verification Signature
394 Mod:ule Verify PubslincgKey 396 Correct Y
398 Tranduetosact SbigeniatnurgeCor ect
ShaKeyet336red
332 for
Key
CFSHoyimpsr14utsetrm
Fm
Il
PSrutibovlaritec MSKahesytreurd Verification Signature
382 Mod:ule Verify Pusblincg Key 384 Corect Y 386 Trandue
tosact SbigenaitnurgeCor ect 370 required out
2
of
3
362
TPraoncsaecstiorn 312 for
Key
Mas314SetKeyer
310 PSutbolriec Key MasForte Key
366 PrivKey
Signwitha e 368
Transact
FIG
.
65
400
Authorize Transaction
U.S. Patent Aug. 25 , 2020 Sheet 63 of 76 US 10,755,241 B2
User PrivKeyate 420 M0M1
UserKey Se408d
/1OM
PUusbleirc 418Key /
M
Shared PrivKeyate 416 M0M1
GAe4dner0aetso2r ShaKeyred Se406d FIG
.
66
OM/1
Shared PublKeyic 414
/
M
Addr1ess
1
/
M
Master PrivKeyate 412 MO Ad roes
MastKeyr Se404d
Master PublKeyic 410 M0M1
U.S. Patent Aug. 25 , 2020 Sheet 64 of 76 US 10,755,241 B2
ARec eoID444iuvnetr
430URLPostBlog
CFHSoiympsr14utsetrm EGCmenboerdateodr
RA4ece3oiuvne4tr Det442aLogin-ls RAeceoID444-iuvnetr 448 PostBlog URL GBeunetIDandrtatonr 438
462
www
-
But460IDon BA5idt0croeis2n BAidtcr510oeisn
But460IDon 458 ButIDon 480Bits
SPCaormtpunter ys422tem 440 ACcreoautnet 446 AIcnoLogutnot EntURLBlogPoster 452 ECm4boe5d e0d -B430URLPostlog -AR4ceceIDoiuvne4tr C-aStl545areturp -B430URLPostlog EC4mboe5d e0d -B430URLPostlog -A4RceceoIDiuvn4etr C-Satla454rteurp
428
Post
Blog
PUJI
RCeocmepiuvter Sys424tem Receiver B4ro2wse6r 432 Create PostBlog 456 Embed ECmboeded
FIG
67
.
U.S. Patent Aug. 25 , 2020 Sheet 65 of 76 US 10,755,241 B2
1 j
510BA5idt1cr0oeis1n Signed-In
Andres
Bison
454 RCeotrkievse CS4oen7kdie2rs Buton
B260_nButID460ton Co549kL.ie
ButID460on 491 BSutoIDtroen
SCoemnpduterSys464tem -ARceceoID444iuvnert CStal454rlteurp Dis490play
Bits480
E
C
4 mbo
5e d 0
e d
-B436URLPostlog -B430URLPostlog -A4RcecoIDeiuvn4etr
Init492iate Secsripont 486
428PostBlog 474 428
Post
Blog But484on
Callrtup -B430
Sta: URLPostlog
-4Co7ki2es
RAeceoID444iuvnetr 478 ButIDon Retrieve CStarltupR4esp7ond6er 483 RSCetsap:roltnuspe -Scesr486ipont -BuIDt460on
430URLPostBlog
CFHSoiympsr14utsetrm -Bu484t on -B480its
466
Download 482 RBetiritevse ButIDForon
But460IDon BA5idt0croeis2ns BAidtcrmed510oisn
ButID460on 480Bits
68
FIG
.
CPoamrptunter Sys422tem ECm4boe5d e0d -AR4ceceIDoiuvne4tr
430
URL
Post
Blog
- C-Satla454rteurp
428PostBlog430URLPostBlog-
U.S. Patent Aug. 25 , 2020 Sheet 66 of 76 US 10,755,241 B2
First Host Computer System 14 Sender Computer
System 464
Display 490
Button ID 460
Blog Post 428
Bits 480
Button 484 Bits 480
Bitcoin Address 502
492 Initiate Button ID 460
Bitcoin Address 510
Session Script
508 500 486
Store Bitcoin Checks Data
Address and Button ID for Button ID
496 494
Session Call : Retrieve Cookies
Bitcoin -Cookies
Address and Session
Generator 506 Responder 498 Sender Cookies 472
Store Button ID
Button ID 460
504 Bitcoin Address 510
Was Bitcoin
Address 516 Signed-In
Received ? Signed Into Sender L Cookie 549
Account ( singed - in
Y cookie found ) ?
512 514
Bitcoin -Store Bitcoin Address 548
Address and Button ID Store Cookie
N
Listen Code 3rd Party Pmt
524 Script 526
Display 490
518 Sign - In Panel 520
Send Sign In Third Party
-Sign - In Panel 520 Button Wallet Button
-Sign - In Script 522 530 544
-Listen Code 524
- 3rd Party Pmt Script 526 QR Code Bitcoin
-Pull Code 528 546 Address 510
Sender Account 536 532 Sign -In Script
- Login Details 534 Initiate 522
Pull Code
540 528
Sign In
FIG . 69
U.S. Patent Aug. 25 , 2020 Sheet 67 of 76 US 10,755,241 B2
Sender Computer
First Host Computer System 14 System 464
Button ID 460 Display 490
Bits 480 Blog Post 428
Bitcoin Address 502 Button 484 Bits 480
Bitcoin Address 510 492 Initiate Button ID 460
Session Script
Receiver Account 434 486
- Login Details 442
- Receiver Account ID 444
Transfer
Sender Account 536
- Login Details 534 Sender Cookies 472
Button ID 460
516 Bitcoin Address 510 |
Signed Into Sender Bits 480
Account (singed- in
cookie found ) ? Signed - In
L Cookie 549
Y
550 ww
Send Listen Code 3rd Party Pmt
-Signed - In Panel 552 524 Script 526
-Listen Code 524
-3rd Party Pmt Script 526 Display 490 566
-Pull Code 528 Signed- In Panel 520 Update Bits
-Host Acct Pmt Script 554 Host Acc . Third Party
Button Wallet Button
530 544
561 QR Code Bitcoin
Pay Using Sender Account 546 Address 510
560
564 154 Initiate
Transaction
Update Bits Processor Host Acct Pmt Pull Code
Script 554 528
566
Pull New Bit Count FIG . 70
U.S. Patent Aug. 25 , 2020 Sheet 68 of 76 US 10,755,241 B2
First Host Computer System 14 Sender Computer
System 464
Display 490
Blog Post 428
Button 484 Bits 480
492 Initiate Button ID 460
Button ID 460
Session Script
Bits 480 486
Bitcoin Address 502
Bitcoin Address 510 Sender Cookies 472
Button ID 460
572
Update Bits Bitcoin Address 510 I
566
y Bits 480 Update Bits
568 Signed -In
Bit Updater i Cookie 549
572
Push Update Notification
570 567
Check Block Chain
Block Chain Checker Listen Code 3rd Party Pmt
524 Script 526
12
Display 490 560
Initiate
Bitcoin Network Signed - In Panel xxx
Host Acc . Third Party
564 Button Wallet Button
Broadcast to 556 544
Block Chain QR Code Bitcoin
562 546 Address 510
Third Party
Transaction
Processor
Host Acct Pmt Pull Code
Script 554 528
574
Pull New Bit Count
FIG . 71
U.S. Patent Aug. 25, 2020 Sheet 69 of 76 US 10,755,241 B2
WalAet WalBet WalCet EUxcshaengre 618 $
+
10 10
$
+
Led620ger
Sys600tem
$
+
10 10
$
+
Exch616ange User
A B
User User
C
OBTC
ExchangeDatabase 612
MCloedaurilneg614
GFeneratodr 608
User Computer MPuilpteiclaisnte610
OGartdewary 604
FIG
.
72
User CompButer In6ter0fnaec2te MEantgchineg606
User CompAuter
OGartdewary604
U.S. Patent Aug. 25, 2020 Sheet 70 of 76 US 10,755,241 B2
WalAet WalBet WalCet EUxcshaengre618 10
$
+ +
$
10
Led620ger
Sys600tem TCorht2b-oeasclks BPreocfeodrineg
CRerhqo2ae-usckt
10
$
+ 10
$
+
Exch616ange User
A User
B C
User
+OBTC
ExchangeDatabase 612
MColedaurlineg614
TRreaqnu1bsefsert
GFeneraetodr 608
User Computer
OGartdewary604
User CompButer TRreaqnu1asefsert I6nte0rfnae2cte MEantcghinge 606 FIG
73a
.
Tran-Insfer User CompAuter OGartdewary 604
U.S. Patent Aug. 25, 2020 Sheet 71 of 76 US 10,755,241 B2
WalAet WalBet WalCet EUxcshaengre 618 10
$+
+ 20
$ 30
$
+
Led620ger 20
$
Sys600tem
Tran3sfer Upd46ate
Upd4ate
10
$
+ 20
$
+ $
30
+
Exch616ange User
A B
User User
C
+OBTC
ExchangeDatabase 612
MCloedaurilneg614
GFeneratodr 608
User Computer
OGartdewary 604
User CompButer In6ter0fnaec2te MEantgchineg 606 73b
.
FIG
User CompAuter
OGartdewary604
U.S. Patent Aug. 25, 2020 Sheet 72 of 76 US 10,755,241 B2
WalAet WalBet WalCet EUxcshaengre 618 10 20
$
+ $
+ 30
$
+
+5BTC NRW +5BTC
Led620ger
Sys600tem
$
+
10 $
+
20 30
+
$
Exch616ange User
A B
User User
C
+5BTC +5BTC
ExchangeDatabase 612
MCloedaurilneg614
GFeneratodr 608
User Computer
OGartdewary 604
User CompButer I6nte0rfnae2cte MEantgchineg 606 FIG
73C
.
User CompAuter
OGartdewary604
U.S. Patent Aug. 25, 2020 Sheet 73 of 76 US 10,755,241 B2
WalAet WalBet WalCet UExscheanrge618 $ 20
10
+ $
+ 30
$
+
+5BTC +5BTC
Led620ger
Sys600tem
10
+
$ 20
+
$
E6xch1an6ge User
A 10
$
-
2BTC
+ User
B User
C
$
10
+
-2BTC 5BTC
+
$
30
5BTC+
Upd9ate Upd9bate
Exchange Database 612
MCloedaurilneg 604
MOaftSellc,
)ehres GeFneraetodr 608
M-ult7icast Mu-lt7icabst MPu6ilptei1lcians0et
User Computer IntOefr6028fnFeed(Buy,acters
5b Sell
BTC each
2 5
$
@ OGartdewary604
User CompButer MEantcghinge 606 FIG
.
73d
OfSell
andBuy5cers OfSell
and
Buy
5ders
Trading User CompAuter
5a BTC
2
Buyeach
5
@
$
OGartdewary 604 each User
User
BTC
Buy
5
2
:
A
@
$ :
C
each
Sell
BTC
5
$
@
2
Match
6
:
U.S. Patent Aug. 25, 2020 Sheet 74 of 76 US 10,755,241 B2
WalAet WalBet WalCet EUxcshaengre618 10 +
$
+ 20
$ 30
$
+
+5BTC +5BTC
Led620ger
Sys600tem TCorhtoe11b-asclks BPreocfeodrineg
CRerhq11a-oeusckt
10
$
+ 20
$
+ 10
+
$ 30
+
$
Exch616ange A
User 10
-
2BTC
+
$ User
B C
User
5BTC+ -2BTC 5BTC+
ExchangeDatabase 612
MCloedaurilneg614
WRi1ethqdu0raewsablt
GFeneraetodr 608
User Computer
OGartdewary 604
User CompButer
WRi1tehqdu0raewsalt I6nte0rfnae2cte MEantcghinge606 FIG
.
73e
OGartdewary 604
Withdrawal User CompAuter
U.S. Patent Aug. 25, 2020 Sheet 75 of 76 US 10,755,241 B2
WalAet WalBet WalCet EUxcshaengre 618 10
$ 20
+ $ 10
+ -
$ 20
$
+
5BTC+ MNRW 5BTC+
10
$
Led620ger
Sys600tem Upd13bate
Tran12sfer
Upd13ated
10
$
+ $
+
20 10
$
- 20
+
$
Exch616ange User
A 10
-
$
2BTC
+ B
User User
C
10
+
$
-2BTC
+5BTC +5BTC
ExchangeDatabase 612
MCloedaurilneg614
GFeneratodr 608
User Computer
OGartdewary 604
User CompButer In6ter0fnaec2te MEantgchineg 606 73f
FIG
.
User CompAuter
OGartdewary604
U.S. Patent Aug. 25 , 2020 Sheet 76 of 76 US 10,755,241 B2
900
930 938
PROCESSOR
VIDEO DISPLAY
INSTRUCTIONS
952
932 940
MAIN MEMORY
ALPHA -NUMERIC
INSTRUCTIONS INPUT DEVICE
952
934 936 942
STATIC MEMORY CURSOR CONTROL
DEVICE
948 944
DRIVE UNIT
NETWORK
BUS 950
INTERFACE DEVICE MACHINE
READABLE
MEDIUM
952
INSTRUCTIONS
954
946
NETWORK
SIGNAL
GENERATION
DEVICE
FIG . 74
US 10,755,241 B2
1 2
HOT WALLET FOR HOLDING BITCOIN do not provide a solution for maintaining security of Bitcoin
addresses while still allowing the users to use Bitcoin
CROSS - REFERENCE TO RELATED addresses within their wallets for transacting with other
APPLICATIONS users .
5 A merchant computer system often has an online store and
This patent application claims priority from U.S. Provi a website. A customer at a customer computer system may
sional Patent Application No. 61 / 954,434 , filed on Mar. 17 , use a browser to access the online store via the website .
2014 ; U.S. Provisional Patent Application No. 61 / 990,017 , Items are displayed for purchase in a local currency .
filed on May 7 , 2014 ; U.S. Provisional Patent Application Exchange rate between bitcoin and local currency changes
No. 62 /042,676 , filed on Aug. 27 , 2014 ; U.S. Provisional 10 over short periods of time . The price in local currency may
Patent Application No. 62/ 056,100 , filed on Sep. 26 , 2014 ; thus change between the time that the local currency is
U.S. Provisional Patent Application No. 62 / 086,669 , filed on displayed to the customer and the time that the customer
Dec. 2014 and U.S. Provisional Patent Application No. decides to make the purchase. As a result , the customer or
62 /099,992 , filed on Jan. 5 , 2015 , each of which is incor the merchant may incur a loss in local currency. The
porated herein by reference in its entirety. 15 customer or merchant may then be reluctant to purchase
using bitcoin .
BACKGROUND OF THE INVENTION In order for a user to access their wallet, the user may log
into their account through the website using a user name and
1 ) . Field of the Invention password . If the user name and password become compro
20 mised then it may be possible for bitcoin to be stolen out of
This invention relates to a computer system and method the wallet. Users may therefore be reluctant to store bitcoin
for transacting bitcoin . in their wallets without any additional security features .
Bitcoin transacting requires the use of a public key and a
2 ) . Discussion of Related Art private key. The private key is used to sign an authorization
25 and the public key is used to verify the signature. Some users
The Bitcoin network is a peer-to - peer payment system may require control over their private keys in order to ensure
having a plurality of nodes that are connected to one another. to such users that bitcoin transacting will not take place
Bitcoin exchange computer systems allow for users to without their express authorization .
exchange local currency into or out of bitcoin . Users send Content creators often put a lot of time and energy into
payments by broadcasting digitally signed messages to the 30 their blog posts . These efforts are rarely rewarded because
Bitcoin network . Users may, for example, send and receive efficient technology does not exist for rewarding bloggers
payments using mobile applications on mobile devices, for their efforts.
client software or a web browser.
Transactions do not explicitly identify the payor and SUMMARY OF THE INVENTION
payee by name or wallet. Instead , a bitcoin transaction 35
transfers ownership to a new address, referred to as a The invention provides a host computer system for trans
“ Bitcoin address ” . The Bitcoin address is derived from the acting bitcoin including a processor, a network interface
public portion of one or more cryptographic key pairs . The device connected to the processor, a computer readable
private portion of a key pair is not disclosed to the public . medium connected to the processor, a data store on the
To send bitcoin sent to an address, a user broadcasts a 40 computer readable medium and a set of instructions on the
payment message that is digitally signed with the associated computer readable medium that are executable by the pro
private key. cessor. The set of instructions includes a wallet establish
Participants known as “ miners ” miner computer sys ment module, a login module , a hosted email module and a
tems verify and timestamp transactions into a shared public wallet management. The wallet establishment module estab
database called a “ block chain ” . The miners are rewarded 45 lishes a first wallet in the data store , stores login details for
with transaction fees and newly minted bitcoin for their the first wallet and storing a value representative of an
effort. The miner computer systems are specialized comput amount of bitcoin held by the first wallet. The login module
ers that append blocks of transactions to the block chain . receives login credentials over the network interface device
Solving a cryptographic puzzle required to append a block for the first wallet from a first user device, verifies whether
carries a reward plus fees included in transactions in the 50 the login credentials match the login details for the first
block . wallet , and if the login credentials match the login details
Host computer systems reside at various nodes and may then logs the first user device into the first wallet . The hosted
host accounts or “ wallets ” that allow users to make and email module , if the first user device is logged into the
accept payments using bitcoin . The wallet stores the public wallet , permits transmission of an email by a user of the first
key of the Bitcoin address and its associated private key. 55 user device to an email address of a second user device. The
The transfer of bitcoin may be an onerous task if the entire wallet management module , in response to the transmission
public key of the Bitcoin address has to be copied and of the email , records a transfer in the first wallet for an
transmitted. amount of bitcoin from the first wallet to a second wallet
When a transaction is made between two wallets at the identified by the email address .
same or different host computer systems , the transaction is 60 The invention also provides a method of transacting
broadcast to the Bitcoin network for block chain verifica bitcoin . A processor establishes a first wallet in a data store
tion . Such a block chain verification may take a long time to connected to the processor. The processor stores login
complete. Miner fees are also associated with such a transfer details for the first wallet. The processor stores a value
and have to be paid by a host computer system requesting representative of an amount of bitcoin held by the first
the transfer. 65 wallet . The processor receives login credentials for the first
It may be a security concern for users that their Bitcoin wallet from a first user device . The processor verifies
addressesmay be stolen from their wallets . Existing systems whether the login credentials match the login details for the
US 10,755,241 B2
3 4
first wallet . The processor, if the login credentials match the transfer instruction for an amount of bitcoin from the first
login details then , logs the first user device into the first wallet and an identifier of the second wallet . The processor,
wallet. The processor, if the first user device is logged into in response to the first transfer instruction, records a transfer
the wallet , permits transmission of an email by a user to the in the first wallet for the amount of bitcoin in the first transfer
first user device to an email address of a second user device 5 instruction out of the first wallet and a transfer in the second
and in response to the transmission of the email. The wallet , identified by the identifier of the second wallet, for
processor records a transfer in the first wallet for an amount the amount of bitcoin in the first transfer instruction into the
of bitcoin from the first wallet to a second wallet identified second wallet without paying a miner's fee for the first
by the email address. transfer. The processor receives a second transfer instruction
The invention further provides a non -transitory computer- 10 for an amount of bitcoin from the first wallet and a bitcoin
readable medium having stored thereon a set of instructions address associated with a second node of the bitcoin net
that are executable by a processor to carry out a method of work . The processor, in response to the second transfer
transacting bitcoin . The processor establishes a first wallet in instruction records a transfer in the first wallet for the
a data store connected to the processor. The processor stores amount of bitcoin in the second transfer instruction out of
login details for the first wallet . The processor stores a value 15 the first wallet , broadcasts a message to the Bitcoin network,
representative of an amount of bitcoin held by the first including to the second node , to record a transfer associated
wallet. The processor receives login credentials for the first with the bitcoin address associated with the second node, for
wallet from a first user device . The processor verifies the amount of bitcoin in the second transfer instruction and
whether the login credentials match the login details for the pays a miner's fee for the second transfer.
first wallet . The processor, if the login credentials match the 20 The invention further provides a non -transitory computer
login details then , logs the first user device into the first readable medium having stored thereon a set of instructions
wallet. The processor, if the first user device is logged into that are executable by a processor of a first host computer
the wallet , permits transmission of an email by a user to the system at a first node of the Bitcoin network to carry out a
first user device to an email address of a second user device method of transacting bitcoin . The processor establishes first
and in response to the transmission of the email. The 25 and second wallets in a data store connected to the processor.
processor records a transfer in the first wallet for an amount The processor stores a value representative of an amount of
of bitcoin from the first wallet to a second wallet identified bitcoin held by the first wallet. The processor receives a first
by the email address . transfer instruction for an amount of bitcoin from the first
The invention further provides a first host computer wallet and an identifier of the second wallet . The processor,
system for transacting bitcoin including a processor at a first 30 in response to the first transfer instruction, records a transfer
node of the Bitcoin network , a network interface device in the first wallet for the amount of bitcoin in the first transfer
connected to the processor, a computer readable medium instruction out of the first wallet and a transfer in the second
connected the processor, a data store on the computer identified by the identifier of the second wallet, for
readable medium and a set of instructions on the computer the amount of bitcoin in the first transfer instruction into the
readable medium that are executable by the processor. The 35 second wallet without paying a miner's fee for the first
set of instructions includes a wallet establishment module . transfer. The processor receives a second transfer instruction
The wallet establishment module establishes a first and for an amount of bitcoin from the first wallet and a bitcoin
second wallets in the data store and stores a value repre address associated with a second node of the bitcoin net
sentative of an amount of bitcoin held by the first wallet . The work . The processor, in response to the second transfer
wallet management module receives , over the network inter- 40 instruction records a transfer in the first wallet for the
face device , a first transfer instruction for an amount of amount of bitcoin in the second transfer instruction out of
bitcoin from the first wallet and an identifier of the second the first wallet , broadcasts a message to the Bitcoin network ,
wallet, in response to the first transfer instruction, records a including to the second node, to record a transfer associated
transfer in the first wallet for the amount of bitcoin in the first with the bitcoin address associated with the second node, for
transfer instruction out of the first wallet and a transfer in the 45 the amount of bitcoin in the second transfer instruction and
second wallet, identified by the identifier of the second pays a miner's fee for the second transfer.
wallet, for the amount of bitcoin in the first transfer instruc The invention also provides a host computer system for
tion into the second wallet without paying a miner's fee for transacting bitcoin including a processor, a computer read
the first transfer. In order to execute a subsequent on -block able medium connected to the processor, a local storage on
chain transaction , the wallet management module receives , 50 the computer readable medium and a set of instructions on
over the network interface device, a second transfer instruc the computer readable medium that are executable by the
tion for an amount of bitcoin from the first wallet and a processor. The set of instructions includes a register, a
bitcoin address associated with a second node of the Bitcoin Bitcoin address and an associated private key and value
network, and in response to the second transfer instruction , stored in the register, a local controller, a splitter, an offline
records a transfer in the first wallet for the amount of bitcoin 55 distribution module, at least one restoration interface, and an
in the second transfer instruction out of the first wallet , assembler. The local controller transfers a private key for a
broadcasts a message to the Bitcoin network , including to Bitcoin address of a vault , to a local storage connected to a
the second node , to record a transfer associated with the processor and transfers the value of the Bitcoin address in
bitcoin address associated with the second node, for the the register to the vault . The splitter splits the private key of
amount of bitcoin in the second transfer instruction , and 60 the Bitcoin address of the vault into a plurality of codes . The
pays a miner's fee for the second transfer. offline distribution module distributes the codes to remote
The invention further provides a method of transacting distributed storage locations , removes the private key of the
bitcoin including . A processor of a first host computer Bitcoin address of the vault from the local storage , and
system at a first node of the Bitcoin network establishes first removes the value for the Bitcoin address of the register
and second wallets in a data store connected to the processor. 65 from the Bitcoin address of the register. The restoration
The processor stores a value representative of an amount of interface receives at least some of the codes into which the
bitcoin held by the first wallet . The processor receives a first private key for Bitcoin address of the vault has been split .
US 10,755,241 B2
5 6
The assembler assembles the codes that have been received transacting set without permitting transacting with the Bit
into the private key of the Bitcoin address of the vault . The coin addresses of the first transfer set due to the portions
local controller restores the private key of the Bitcoin thereof being transferred to the first vault. The processor
address of the vault from the local storage , and restores the restores the portion of the Bitcoin addresses of the first
value for the Bitcoin address in the register from the vault. 5 transfer set from the first vault to the wallet . The processor
The invention further provides a method of transacting transacts using the Bitcoin addresses of the first transfer set
bitcoin . A processor transfers a private key of the Bitcoin due to the portions thereof being restored from the first vault
address of a vault to a local storage connected to the to the wallet .
processor. The processor splits the private key of the Bitcoin The invention further provides a non - transitory computer
address of the vault into a plurality of codes . The processor 10 readable medium having stored thereon a set of instructions
distributes the codes to remote distributed storage locations . that are executable by a processor to carry out a method of
The processor transfers a value of a Bitcoin address in a transacting. A processor stores a plurality of Bitcoin
register to the vault . The processor receives at least some of addresses in a wallet. The processor selects a first transfer set
the codes into which the private key of the Bitcoin address of the Bitcoin addresses for cold storage in a first vault. The
of the vault has been split . The processor assembles the 15 processor transfers at least a portion of each of the Bitcoin
codes that have been received into the private key of the addresses of the first transfer set to the first vault while
Bitcoin address of the vault . The processor restores the keeping the portions a first transaction set in the register. The
private key of the Bitcoin address of the vault to the vault. processor transacts using the Bitcoin addresses of the first
The processor restores the value of the Bitcoin address in the transacting set without permitting transacting with the Bit
register from the vault . 20 coin addresses of the first transfer set due to the portions
The invention also provides a non - transitory computer thereof being transferred to the first vault. The processor
readable medium having stored thereon a set of instructions restores the portion of the Bitcoin addresses of the first
that are executable by a processor to carry out a method of transfer set from the first vault to the wallet . The processor
transacting bitcoin . A processor transfers a private key of the transacts using the Bitcoin addresses of the first transfer set
Bitcoin address of a vault to a local storage connected to the 25 due to the portions thereof being restored from the first vault
processor. The processor splits the private key of the Bitcoin to the wallet .
address of the vault into a plurality of codes . The processor The invention also provides a method of effecting pay
distributes the codes to remote distributed storage locations. ment including receiving, by a host computer system , a
The processor transfers a value of a Bitcoin address in a request for payment from a merchant computer system ,
register to the vault . The processor receives at least some of 30 including an amount in a currency, determining, by the host
the codes into which the private key of the Bitcoin address computer system , a first exchange rate , wherein the first
of the vault has been split . The processor assembles the exchange rate fluctuates and the first exchange rate is
codes that have been received into the private key of the determined at a first moment in time , converting, by the host
Bitcoin address of the vault . The processor restores the computer system , the amount in the currency to an amount
private key of the Bitcoin address of the vault to the vault. 35 in bitcoin using the first exchange rate at the first moment in
The processor restores the value of the Bitcoin address in the time , receiving , by the host computer system , a send instruc
register from the vault . tion from the customer computer system , wherein the send
The invention further provides a host computer system for instruction is at a second moment in time later than the first
transacting bitcoin including a processor, a network inter moment in time and the exchange rate at the second moment
face device connected to the processor, a computer readable 40 in time is a second exchange rate that is different than the
medium connected to the processor, a local storage on the first exchange rate at the first moment in time , receiving , by
computer readable medium and a set of instructions on the the host computer system , payment in bitcoin from the
computer readable medium that are executable by the pro customer in an amount that is based on the amount in bitcoin
cessor. The set of instructions includes a wallet, a plurality and transmitting, by the host computer system , in response
of Bitcoin addresses stored in the wallet , a first vault , and a 45 to receiving the send instruction from the customer com
local controller. The local controller is executable for select puter system , a payment instruction to pay currency to the
ing a first transfer set of the Bitcoin addresses for cold merchant, wherein the currency paid to the merchant is for
storage in the first vault, transferring at least a portion of an amount that is at least in part based on the amount in the
each of the Bitcoin addresses of the first transfer set to a first currency that is converted to bitcoin at the first moment in
vault while keeping the portions a first transaction set in the 50 time even though the exchange rate is different at the second
register, and restoring at least the portion of the Bitcoin moment in time.
addresses of the first transfer set from the first vault to the The invention further provides a host computer system for
wallet and a wallet management module transacting using effecting payment including a processor, a computer read
the Bitcoin addresses of the first transacting set without able medium connected to the processor and a set of
permitting transacting with the Bitcoin addresses of the first 55 instructions on the computer readable medium that are
transfer set due to the portions thereof being restored to the executable by the processor. The set of instructions includes
first vault , and transacting using the Bitcoin addresses of the an application programmable interface ( API ) receiving a
first transfer set due to the portions thereof being restored request for payment from a merchant computer system ,
from the first vault to the wallet . including an amount in a currency, a currency converter
The invention also provides a method of transacting 60 determining a first exchange rate, wherein the first exchange
bitcoin . A processor stores a plurality of Bitcoin addresses in rate fluctuates and the first exchange rate is determined at a
a wallet . The processor selects a first transfer set of the first moment in time , and converting, by the host computer
Bitcoin addresses for cold storage in a first vault . The system , the amount in the currency to an amount in bitcoin
processor transfers at least a portion of each of the Bitcoin using the first exchange rate at the first moment in time ,
addresses of the first transfer set to the first vault while 65 transaction processor receiving a send instruction from the
keeping the portions a first transaction set in the register. The customer computer system , wherein the send instruction is
processor transacts using the Bitcoin addresses of the first at a second moment in time later than the first moment in
US 10,755,241 B2
7 8
time and the exchange rate at the second moment in time is authorization instructions are received due to one or more
a second exchange rate that is different than the first users reacting to the first and second messages sent to the
exchange rate at the first moment in time , and receiving a first and second addresses and transferring, by the host
payment in bitcoin from the customer in an amount that is computer system , the amount of bitcoin out of the vault only
based on the amount in bitcoin and a bank transfer module 5 if both the first and second authorization instructions are
transmitting in response to receiving the send instruction detected .
from the customer computer system , a payment instruction The invention further provides a bitcoin management
to pay currency to the merchant, wherein the currency paid system , including a processor, a computer - readable medium
to the merchant is for an amount that is at least in part based connected to the processor and a set of instructions on the
on the amount in the currency that is converted to bitcoin at 10 computer readable medium that are executable by the pro
the first moment in time even though the exchange rate is cessor. The set of instructions includes a vault establishment
different at the second moment in time . wizard establishing a vault and storing first and second
The invention also provides a non - transitory computer electronic communication addresses in relation to the vault,
readable medium having stored thereon a set of instructions transaction processor storing bitcoin in the vault and a vault
that are executable by a processor to carry out a method of 15 management module receiving a request to transfer an
transacting bitcoin including receiving, by a host computer amount of the bitcoin out of the vault , transmitting, in
system , a request for payment from a merchant computer response to the request, first and second messages over a
system , including an amount in a currency, determining, by network to the first and second addresses, detecting whether
the host computer system , a first exchange rate, wherein the first and second authorization instructions are received due
first exchange rate fluctuates and the first exchange rate is 20 to one or more users reacting to the first and second
determined at a first moment in time , converting, by the host messages sent to the first and second addresses, and instruct
computer system , the amount in the currency to an amount ing the transaction processor to transfer the amount of
in bitcoin using the first exchange rate at the first moment in bitcoin out of the vault only if both the first and second
time , receiving , by the host computer system , a send instruc authorization instructions are detected.
tion from the customer computer system , wherein the send 25 The invention also provides a method of transacting
instruction is at a second moment in time later than the first bitcoin including storing, by a host computer system , a
moment in time and the exchange rate at the second moment public key, receiving , by the host computer system , a request
in time is a second exchange rate that is different than the from a user computer system to transact using a bitcoin
first exchange rate at the first moment in time , receiving, by
address, transmitting, by the host computer system , a veri
the host computer system , payment in bitcoin from the 30 fication script to the user computer system , the verification
customer in an amount that is based on the amount in bitcoin script including an authorization and a signature algorithm
and transmitting, by the host computer system , in response that is executable on the user computer system to sign the
to receiving the send instruction from the custome com authorization with a private key to obtain a signed authori
puter system , a payment instruction to pay currency to the zation that includes the signature and transmit the signed
merchant, wherein the currency paid to the merchant is for 35 authorization to the host computer system , receiving , by the
an amount that is at least in part based on the amount in the host computer system , the signed authorization including the
currency that is converted to bitcoin at the first moment in signature from the user computer system , verifying, by the
time even though the exchange rate is different at the second host computer system , the signature of the signed authori
moment in time. zation received from the user computer system using a
The invention further provides a method of managing 40 public key; and transacting, by the host computer system ,
bitcoin , including establishing, by a host computer system , with the bitcoin address, the transacting being permitted due
a vault and storing first and second electronic communica to a successful verification of the signature but not upon an
tion addresses in relation to the vault, storing, by the host unsuccessful verification of the signature .
computer system , bitcoin in the vault , receiving , by the host The invention further provides a host computer system
computer system , a request to transfer an amount of the 45 including a processor, a set of data and instructions on the
bitcoin out of the vault, transmitting, by the host computer computer -readable medium that are executable by the pro
system , in response to the request, first and second messages cessor that are executable by the processor, a public key, a
over a network to the first and second addresses, detecting, transaction processor receiving a request from a user com
by the host computer system , whether first and second puter system to transact using a bitcoin address, a verifica
authorization instructions are received due to one or more 50 tion script that is transmitted to the user computer system ,
users reacting to the first and second messages sent to the the verification script including an authorization and a
first and second addresses and transferring, by the host signature algorithm that is executable on the user computer
computer system , the amount of bitcoin out of the vault only system to sign the authorization with a private key to obtain
if both the first and second authorization instructions are a signed authorization that includes the signature and trans
detected . 55 mit the signed authorization to the host computer system , the
The invention also provides a non - transitory computer host computer system receiving the signed authorization
readable medium having stored thereon a set of instructions including the signature from the user computer system , and
which , when executed by a processor, executes a method a verification module verifying the signature of the signed
including establishing , by a host computer system , a vault authorization received from the user computer system using
and storing first and second electronic communication 60 abitcoin
addresses in relation to the vault , storing, by the host
publicaddress
key, the, the
transaction processor transacting with the
transacting being permitted due to a
computer system , bitcoin in the vault , receiving , by the host successful verification of the signature but not upon an
computer system , a request to transfer an amount of the unsuccessful verification of the signature.
bitcoin out of the vault, transmitting, by the host computer The invention also provides a host computer system
system, in response to the request, first and second messages 65 including a processor, a network interface device connected
over a network to the first and second addresses, detecting, to the processor, a computer readable medium connected to
by the host computer system , whether first and second the processor and a set of instructions on the computer
US 10,755,241 B2
9 10
readable medium that are readable and executable by the FIG . 1A is a block diagram of a network environment that
processor. The set of instructions include an embedded code includes the Bitcoin network and a number of systems
generator generating an embedded code for inclusion within forming part thereof or connected thereto ;
a website of a partner computer system , the embedded code FIG . 1B is a block diagram of a first host computer system
including a startup
call from the sendercaller causing
computer transmission
system to the hostofcomputer
a startup 5 and a first and second user devices connected thereto;
system , a startup call responder receiving the startup call FIG . 2 is diagrammatic view of a first wallet that is held
from the sender computer system and transmitting, in within FIG .
a first host computer system in FIG . 1 ;
3 is a view similar to FIG . 2 , further illustrating a
response to the startup call , a tip button and a session script
to the sender computer system , the session script being 10 second wallet that has been established within the first host
executable by the sender computer system to transmit a computer system ;
session call to the host computer system and a session FIG . 4 is a view of an email that is received by the second
responder transmitting, in response to the session call , at user device in FIG . 1 ;
least one payment button and a payment script to the sender FIG . 5 is a view of a browser displaying a user interface
computer system , the payment button being selectable by
the user ofthe sender computer system toexecute the 15 with fields. 6 tofor30creating login details for the second wallet;
payment script, the payment script transmitting an instruc of FIGS are views similar to FIG . 5 that step user
the second user device through a wallet set up ;
tion to a transaction processor to transfer funds from a FIGS . 31 to 33 are views of the browser wherein the user
sender account to a receiver account.
The invention further provides a method of transferring interface discloses various tools that can be used by the user ;
funds including generating, by a host computer system , an 20 FIGS . 34 to 37 are views of the browser wherein the user
embedded code for inclusion within a website of a partner interface is used by the user to purchase bitcoin from the first
computer system , the embedded code including a startup host computer system ;
caller causing transmission of a startup call from the sender FIG . 38 is an email that is received by the second user
computer system to the host computer system , receiving, by device to confirm the purchase of the bitcoin from the first
the host computer system , the startup call from the sender 25 host computer system ;
computer system , transmitting, by the host computer system FIG . 39 is an email that is received by the second user
in response to the startup call , a tip button and a session device
script to the sender computer system , the session script being wallet aswithparta notification
of a
that bitcoin has been added to their
referral bonus system ;
executable by the sender computer system to transmit a FIG . 40 is a view of the browser wherein the user interface
session call to the host computer system and transmitting, by displays “ Limits and Verifications ” associated with the sec
the host computer system in response to the session call , at 30 ond wallet ;
least one payment selection and a payment script to the FIG . 41 is a view similar to FIG . 3 displaying transfer of
sender computer system , the payment selection being select
able by the user of the sender computer system to execute bitcoin from the second wallet to the first et;
FIGS . 42 and 43 are views of the browser when the user
the payment script, the payment script transmitting an
instruction to a transaction processor to transfer funds from 35 interface steps the user through the transfer of bitcoin from
the second wallet to the first wallet ;
a sender account to a receiver account.
The invention also provides a method of transacting FIG . 44 is a view of the browser wherein the user interface
bitcoin including executing, by a host computer system , a displays Bitcoin addresses associated with transactions that
trading algorithm , including receiving sell offers for bitcoin have been completed ;
from a sellers , receiving a buy offers for bitcoin from a 40 FIG . 45 is a view similar to FIG . 40 further showing the
buyers , creating respective matches wherein each match transfer of bitcoin from the second wallet to a third wallet
includes one of the buy offers and one of the sell offers, that is connected to a second host computer system ;
broadcasting each respective match over a multicast pipe
line , receiving each respective match with a clearing module
FIG . 46 is a block diagram illustrating splitting of a
and clearing the respective match by updating an exchange 45 private
FIG .
key of a vault and offline distribution ;
47 is a block diagram illustrating removal of the
database to reflect the respective match by transferring a private key of the vault ;
representation of bitcoin from the seller to the buyer and FIG . 48 is a block diagram illustrating offline or “ cold ”
transferring a representation of currency from the buyer to storage of values of Bitcoin addresses of a wallet in the
the seller.
The invention further provides a system for transacting 50 vault
FIG
;
. 49 is a block diagram illustrating isolation of the
bitcoin including an order gateway receiving sell offers for vault with its private key removed;
bitcoin from a sellers and receiving a buy offers for bitcoin FIG . 50 is a block diagram illustrating how the private key
from a buyers, a matching engine creating respective
matches wherein each match includes one of the buy offers of the vault and the value of the Bitcoin addresses are
and one of the sell offers, a multicast pipeline , the matching restored ;
engine broadcasting each respective match over the multi- 55 FIGS . 51a to 51d are block diagrams that illustrate how
cast pipeline , an exchange database ; and a clearing module values of certain Bitcoin addresses in a wallet are removed
receiving each respective and clearing the respective match and others are maintained ;
by updating the exchange database to reflect the respective FIG . 52 is a graph illustrating how the wallet is main
match by transferring a representation of bitcoin from the tained within a range so that only a portion of the wallet is
seller to the buyer and transferring a representation of 60 “ hot ” in the sense that a user of the wallet can use the “ hot”
currency from the buyer to the seller, thereby executing a portion for transacting with another user ;
trading algorithm . FIG . 53 is a block diagram that shows how an interme
diate hot wallet is used to collect value from multiple wallets
BRIEF DESCRIPTION OF THE DRAWINGS before transfer to a vault ;
65 FIG . 54 is a block diagram of a network environment that
The invention is further described by way of example includes a customer computer system and merchant com
with reference to the accompanying drawings, wherein : puter system ;
US 10,755,241 B2
11 12
FIG . 55 is a block diagram illustrating functioning for module 38. As further illustrated in the drawing, the hosted
purposes of locking an exchange rate in when processing a email module 46 is connected over the Internet 22 to the
transaction made by the customer computer system on the second user device 20 and the second user device 20 is
merchant computer system in FIG . 54 ; connected over the Internet 22 and the user interface 36 to
FIG . 56 is a flow chart illustrating the establishment of a 5 the wallet establishment module 40 .
personal vault ; As shown in FIG . 2 , the first host computer system 14
FIG . 57 is a flow chart illustrating how bitcoin is trans already has one wallet (Wallet A) stored among the wallets
ferred into and out of the vault; 42 corresponding to the first user device 18. The first wallet
FIG . 58 is a block diagram of the first host computer (Wallet A) includes an email address (email address A) and
system illustrating components that are used for establishing 10 login details for the wallet . The first wallet (Wallet A) also
the vault and transferring bitcoin into and out of the vault; includes a number of Bitcoin addresses (Bitcoin address 1 ;
FIG . 59 is an email that is transmitted to verify a sec Bitcoin address 2 ) that have been created due to respective
ondary email address ; transfers or purchases ( Transfer 1 ; Transfer 2 ) . The first
FIG . 60 is a view of a browser wherein a user interface Bitcoin address (Bitcoin address 1 ) is created due to a
displays options for transferring bitcoin out of a vault ; 15 purchase ( Transfer 1 ) from a master wallet of the first host
FIGS . 61 and 62 are emails that are transmitted to primary computer system 14 (First Host) and is recorded for a value
and secondary email addresses to approve a withdrawal; in an amount in bitcoin . The second Bitcoin address ( Bitcoin
FIG . 63 is a view of the browser with the user interface address 2 ) is created due to a transfer ( Transfer 2 ) from
displaying a transaction status window ; another location within the Bitcoin network 12 having a
FIG . 64 is a block diagram illustrating the establishment 20 network address outside of the first host computer system 14
of a user- controlled vault; and is recorded for a particular amount in bitcoin . The first
FIG . 65 is a block diagram illustrating the user of the wallet (Wallet A) was originally established by the wallet
user -controlled vault for authorizing a transaction establishment module 40 in FIG . 1B . The email address
FIG . 66 is a block diagram of an address generator that is (email address A) and login details of the first wallet were
used by the user - controlled vault ; 25 also recorded by the wallet establishment module 40. The
FIG . 67 to FIG . 71 are a block diagrams illustrating the wallet establishment module 40 and wallet management
functioning of a tip button ; module 44 were used to record the transfers and purchases
FIG . 72 is a block diagram of a system for transacting ( Transfer 1 ; Transfer 2 ) , their Bitcoin addresses (Bitcoin
bitcoin according to an embodiment of the invention; address 1 ; Bitcoin address 2 ) , their values and other details
FIGS . 73a to 73f illustrate the use of the system of FIG . 30 within the wallet.
72 for executing transfer - in , trading and withdrawal algo A user of the first user device 18 in FIG . 1B may use a
rithms; and mobile application on the first user device 18 to communi
FIG . 74 is a block diagram of a machine in the form of a cate over the Internet 22 directly with the login module 38
computer system forming part of the network environment. or may use a browser on the first user device 18 to com
35 municate via the Internet 22 and the website 34 with the
DETAILED DESCRIPTION OF THE login module 38. A browser application on the first user
INVENTION device 18 transmits a user interface request over the Internet
22 to the website 34. The website 34 responds to the user
FIG . 1A of the accompanying drawings illustrates a interface request by transmitting the user interface 36 over
network environment 10 , including the Bitcoin network 12 , 40 the Internet 22 to the first user device 18. The user interface
a first host computer system 14 within which the invention 36 is then displayed on the first user device 18. The user
manifests itself, a second host computer system 16 , first and interface 36 includes fields for entering login credentials,
second user devices 18 and 20 connected over the Internet which are then transmitted from the first user device 18 over
22 to the first host computer system 14 , a third user device the Internet 22 to the login module 38. The login module 38
24 connected to the second host computer system 16 , a 45 verifies whether the login credentials match the login details
bitcoin exchange computer system 26 and a miner computer for the wallet ( Wallet A) . If the login credentials match the
system 28 . login details, then the login module 38 logs the first user
The Bitcoin network 12 includes a host node 30 and a device 18 into the wallet (Wallet A) in FIG . 2. If the login
plurality of remote nodes 32A to D that are connected to one credentials do not match the login details, then the first user
another. The first host computer system 14 is connected to 50 device 18 is not logged in to the wallet.
the host node 30. The bitcoin exchange computer system 26 If the first user device 18 in FIG . 1B is logged in to the
is connected to the remote node 32A . The second host wallet , the login module 38 also provides access for the first
computer system 16 is connected to the remote node 32B . user device 18 to the hosted email module 46 and transmis
The miner computer system 28 is connected to the remote sion of an email by a user of the first user device 18 to an
node 32D or could reside on the same computer system . 55 email address of the second user device 20. The user
The first host computer system 14 is used primarily for interface 36 provides a field for entering the email address
transacting bitcoin and, as shown in FIG . 1B , includes a of the second user device 20. The user interface 36 also
website 34 having a user interface 36 , a login module 38 , a includes a field for entering an amount in bitcoin (or an
wallet establishment module 40 , a plurality of wallets 42 , a amount in local currency that is converted to bitcoin using
wallet management module 44 and a hosted email module 60 an exchange rate ) that is being transferred from the wallet
46. The login module 38 is connected to the website 34 and (Wallet A) corresponding to the first user device 18 to a
the hosted email module 46 is connected to the login module respective wallet among the wallets 42 corresponding to the
38. The wallet establishment module 40 is connected to the second user device 20 that has not yet been established at
wallets 42. The hosted email module 46 is connected via the this point in time . The user of the first user device 18 then
wallet management module 44 to the wallets 42. As illus- 65 uses the hosted email module 46 to send an email at 50 to
trated in the drawing, the first user device 18 is connected the second user device 20. The hosted email module 46
over the Internet 22 and the user interface 36 to the login simultaneously at 52 instructs the wallet establishment mod
US 10,755,241 B2
13 14
ule 40 to establish a wallet corresponding to the email amount of bitcoin at the Bitcoin address ( Bitcoin address 4 )
address within the wallets 42. The hosted email module 46 in FIG . 3. The user can select various tools down the left
simultaneously instructs the wallet management module 44 margin , including sending or requesting bitcoin , buying or
to record the amount of bitcoin that is being transferred from selling bitcoin , account settings and various merchant tools .
the wallet ( Wallet A) within the wallet corresponding to the 5 FIG . 8 illustrates a view that is displayed to the user if the
email address. user selects the “ Buy /Sell” link in FIG . 7. The user is
FIG . 3 illustrates further activity within the wallets 42 due prompted to add a bank account. FIGS . 9 through 15 step the
to the email represented by a third transfer ( Transfer 3 ) . user through the entry of bank account details and verifica
When the user of the first wallet ( Wallet A) transmits the tion of the bank account. The user can also select a credit
email , the system uses an existing Bitcoin address (Bitcoin 10 card as a backup payment. FIGS . 16 to 19 step the user
address 2 ) to which the outgoing transfer is charged . Asso through the entry of a credit card number and a billing
ciated with the transfer ( Transfer 3 ) are the email address to address, and FIGS . 20 and 21 step the user through a
which the email has been transmitted, the amount in bitcoin , verification process to verify that the user is in control of the
a miner's fee of zero bitcoin that is paid by the first host credit card account. FIGS . 22 and 23 request additional
computer system 14 to any miner computer system such as 15 information from the user . FIG . 23 also allows the user to
the miner computer system 28 in FIG . 1A , and a host fee of verify a phone at a phone number and FIGS . 24 through 27
zero bitcoin that are charged to the wallet (Wallet A) for the step the user through a process for verifying their phone and
transfer. A second wallet ( Wallet B ) is established by the phone number. FIGS . 28 through 30 illustrate a process for
wallet establishment module 40 and the email address (email verifying an identity of the user of the second user device 20 .
address B ) of the second user device 20 is recorded as an 20 As illustrated in FIGS . 31 to 33 , the top margin within the
identifier of the wallet (Wallet B ) . A Bitcoin address (Bitcoin account settings allow for additional tools such as referrals
address 3 ) is recorded within the second wallet ( Wallet B ) (FIG . 31 ) , viewing of Bitcoin addresses (FIG . 32 ) , and
for the transfer ( Transfer 3 ) . Within the second wallet integration with an application programmable interface
( Wallet B ), the transfer ( Transfer 3 ) has the Bitcoin address (FIG . 33 ) .
( Bitcoin address 3 ) , the identifier of the wallet (Wallet A) 25 FIG . 34 illustrates a process that is initiated by the user to
from where the funds are transferred associated therewith , purchase bitcoin from a wallet of the first host computer
and the amount in bitcoin that has been transferred . The system 14. In the present example, the user selects one ( 1 )
amount in bitcoin corresponding to the transfer ( Transfer 3 ) bitcoin (BTC ) to purchase . FIGS . 35 and 36 step the user
of both wallets (Wallet A ; Wallet B ) is the same , consistent through the process of purchasing the bitcoin . Once the
with double entry accounting principles . The second wallet 30 bitcoin is purchased , the user can select on “ History ” tab in
( Wallet B ) so far has no login details or any other user the top margin to display a view as shown in FIG . 37
information and has not been accessed by a user of the wherein the transaction is displayed and is marked as
second user device 20 this point in time . “ PENDING ” .
FIG . 4 illustrates the email when it is received at the FIG . 38 shows an email that is transmitted by the hosted
second user device 20 in FIG . 1B . The email is received and 35 email module 46 in FIG . 1B to the second user device 20 to
viewed within an email application on the second user confirm the purchase of the bitcoin following selection of a
device 20. The email includes a link (“ Click here to sign in “ Confirm " button in FIG . 35. The email also has a link that,
and claim this amount ” ) that, when selected by the user of when selected by the user, opens the browser on the second
the second user device 20 , transmits a user interface request user device 20 and allows the user to login to their wallet and
from the browser on the second user device 20 over the 40 view the transaction .
Internet 22 to the website 34. The website 34 responds to the FIG . 39 shows an email that is transmitted by the hosted
user interface request to transmit the user interface 36 over email module 46 in FIG . 1B to the second user device 20
the Internet 22 to the second user device 20 for viewing with a notification that bitcoin has been added to their wallet
within the browser. as part of a referral bonus system .
FIG . 5 illustrates the user interface 36 as displayed on the 45 FIG . 40 illustrates a view that is displayed when the user
second user device 20 in FIG . 1B . The user interface 36 selects a “ Limits and Verifications ” tab in the top margin of
includes a plurality of fields for the user of the second user the “ Buy / Sell” page.
device 20 to enter login details for the second wallet ( Wallet When the user selects the “ Send /Request ” link in the left
B ) , including a password and a confirmation of the pass margin in FIG . 40 , the user is provided an option to send
word . After the user has entered a password , the user can 50 bitcoin from their wallet (Wallet B ) in FIG . 3 to another
access their wallet by selecting the button " Access My wallet (e.g. the first wallet ( Wallet A) ) in FIG . 3 .
Wallet” . The wallet establishment module 40 in FIG . 1B FIG . 41 illustrates further transfers or purchases ( Transfer
stores the login credentials in association with the second 4 ; Transfer 5 ; Transfer 6 ) . The fourth transfer ( Transfer 4 )
wallet (Wallet B ) . The login module 38 also logs the second represents the purchase of bitcoin from the first host com
user device 20 into the second wallet ( Wallet B ) . If the user 55 puter system's 14 master wallet .
is logged out , the user can be provided with a login page The fifth transfer ( Transfer 5 ) represents the transfer of
where the user can enter login credentials that are compared bitcoin from the second wallet ( Wallet B ) to the first wallet
with the login details in the second wallet (Wallet B ) and (Wallet A) . The second wallet (Wallet B ) now has login
then log into the second wallet ( Wallet B ) following a details stored therein . If the second user device 20 in FIG .
favorable match between the login credentials and the login 60 1B has been logged out of the second wallet (Wallet B ) , then
details . the second user device 20 is first directed to the login module
FIG . 6 shows a view that is displayed on the second user 38 which receives login details for the second wallet ( Wallet
device 20 in FIG . 1B . The user is already logged into the B ) from the second user device 20 , verifies whether the login
wallet, as shown in the top right. The user can accept or credentials for the second wallet ( Wallet B ) match the login
decline an agreement. FIG . 7 displays the first page that is 65 details for the second wallet (Wallet B ) . If the login details
displayed to the user following acceptance of the agreement. match the login credentials, then the login module 38 logs
The page shows the current balance corresponding to the the second user device 20 into the second wallet ( Wallet B ) .
US 10,755,241 B2
15 16
The login module 38 then provides the second user device bitcoin to be transferred to the third wallet ( Wallet C ) . A
20 with access to the hosted email module 46. The user of transfer ( Transfer 7 ) is recorded within the second wallet
the second user device 20 then enters the email address (Wallet B ) . Associated with the transfer ( Transfer 7 ) are the
( email address A) of the user of the first wallet (Wallet A) Bitcoin address (Bitcoin address 6 ) , the amount in bitcoin
and an amount of bitcoin that the user of the second user 5 that is being transferred and a miner's fee that is charged for
device 20 wishes to transfer from the second wallet ( Wallet the transfer and has to be paid by the first host computer
B ) to the first wallet ( Wallet A) . The user of the second user system 14 to the miner computer system 28 in FIG . 1A . No
device 20 then uses the hosted email module 46 to send an fee is charged by the first host computer system 14 for a
email via the Internet 22 to the first user device 18. As soon transfer to another Bitcoin address .
as the email is sent, a transfer ( Transfer 5 ) is recorded within 10 When the user of the second user device 20 in FIG . 1A
the second wallet (Wallet B ) . Because one of the Bitcoin completes the purchase, a transfer instruction is created and
addresses (Bitcoin address 4 ) has funds associated there is broadcast via the host node 30 to all remote nodes 32A - D
with , it can be charged for the transfer ( Transfer 4 ) . Within within the Bitcoin network 12. The transfer instruction thus
the second wallet (Wallet B ) the transfer ( Transfer 4 ) has the traverses the first node and the second remote node 32B to
email address (email address A) to which the email has been 15 reach the second host computer system 16. The second host
sent and the amount in bitcoin associated therewith . computer system 16 and all other computer systems con
As indicated , the miner's fee that is paid by the first host nected to the remote nodes 32A - D record the transfer
computer system 14 and the host fee that is charged for the ( Transfer 7 ) with respect to the Bitcoin addresses (Bitcoin
transfer are zero bitcoin because the first wallet (Wallet A) address 4 ; Bitcoin address 6 ) . The transfer ( Transfer 7 ) has
is stored within the wallets 42 of the first host computer 20 associated therewith the amount in bitcoin .
system 14. The user of the first user device 18 receives the The transfer instruction that results in the transfer ( Trans
email indicating the transfer of bitcoin to their wallet ( Wallet fer 5 ) thus results in no miner's fee being charged to and paid
A) . A Bitcoin address (Bitcoin address 5 ) is recorded within by the first host computer system 14. No host fee is charged
the first wallet ( Wallet A) for the transfer ( Transfer 5 ) to the second wallet ( Wallet B ) because the transfer ( Trans
together with the identifier of the second wallet (Wallet B ) 25 fer 7 ) is made to another wallet (Wallet A) within the wallets
from which the transfer has been made and the amount in 42 of the first host computer system 14. By contrast, the
bitcoin . The amount in bitcoin corresponding to the transfer transfer instruction that results in the transfer ( Transfer 7 )
( Transfer 4 ) in the second wallet ( Wallet B ) is the same as representing the transfer to the Bitcoin address (Bitcoin
the amount in bitcoin as in the first wallet ( Wallet A) . address 6 ) in the third wallet ( Wallet C ) results in a miner's
As illustrated by the next transfer ( Transfer 6 ) , the user of 30 fee that is paid by the first host computer system 14 to the
the second wallet ( Wallet B ) can opt to send bitcoin to a miner computer system 28. The miner computer system 28
Bitcoin address of the first wallet ( Wallet A) . The transfer is responsible for verifying transfers of bitcoin over the
( Transfer 6 ) is the same as the preceding transfer ( Transfer Bitcoin network 12. In the present scenario , the miner
5 ) in all other respects . computer system 28 verifies the transfer of bitcoin from the
FIG . 42 shows a view that is displayed to the user of the 35 second wallet ( Wallet B ) to the third wallet ( Wallet C ) .
second user device 20 in FIG . 1B in order to make the Another transfer may comprise that bitcoin is sent to one
transfer from their wallet ( Wallet B ) to the first wallet of the nodes, e.g. node 32C . The node 32C could be a fourth
( Wallet A) . The view includes a field for the user to enter the user device which is owned by the recipient of the bitcoin
email address ( email address A) and fields for entering either transfer having its own bitcoin address .
an amount in bitcoin ( BTC ) or an amount in a local currency 40 FIG . 46 illustrates components that are used for cold
(USD -United States Dollar ). The exchange rate between storage of value of bitcoin , including a local storage 56 , a
bitcoin and the local currency is shown in the top left corner . local controller 58 , a vault 64 , a splitter 66 , one or more
The view also includes a button “ Send Money ” which , when encryption algorithms 68 and 70 and an offline distribution
selected by the user, initiates the transfer of bitcoin . module 72 .
FIG . 43 is a view that is displayed to the user indicating 45 The vault 64 has a Bitcoin address 80 with a private key
transactions that have been initiated or completed. The 79. The private key 79 is , for purposes of illustration , shown
purchase of bitcoin discussed with reference to FIGS . 35 to as a nine digit sequence of characters that are provided to the
37 is shown as “ PENDING ” . A block chain verification splitter 66. For purposes of illustration , the splitter 66 splits
notice has to be broadcast by the miner computer system 28 the nine digits of the private key 79 into seven overlapping
and be received by the first host computer system 14 in FIG . 50 codes ( Codes 1 to 7 ) . The encryption algorithm 68 encrypts
1A before a determination is made to change the marker the first code (Code 1 ) into an encrypted code (Encrypted
“ PENDING ” to “ COMPLETE " . The other transactions rep Code 1 ) . In a similar manner, the second code ( Code 2 ) is
resenting transfers between the first and second wallets encrypted by an encryption algorithm ( not shown) into an
( Wallet A and Wallet B ) in FIG . 41 are shown as completed encrypted code (Encrypted Code 2 ) . Each one of the seven
because they do not need block chain verification outside of 55 codes is encrypted into a separate encrypted code . A separate
the first host computer system 14. No block chain verifica key may be used for each one of seven codes . Alternatively ,
tion notice is thus required for these transactions to be a separate encryption algorithm may be used for each one of
marked " COMPLETE " . FIG . 44 shows a view that can be the seven codes .
selected by the user by selecting a tab in the top margin Once all the codes have been encrypted , the offline
wherein the user is shown the Bitcoin addresses associated 60 distribution module 72 transmits each one of the encrypted
with transactions that have been completed. codes ( Encrypted Code 1 to 7 ) to a separate location . The
FIG . 45 illustrates a further transaction ( Transfer 7 ) locations are remote locations that are geographically sepa
wherein bitcoin is transferred from the second wallet ( Wallet rated from one another . The offline distribution module 72
B ) to a third wallet (Wallet C ) held by the second host may also be used to print one or more of the encrypted codes
computer system 16 in FIG . 1A . The user of the second user 65 for paper delivery to respective remote locations .
device 20 enters a bitcoin address (Bitcoin address 6 ) that is FIG . 47 illustrates functioning of the offline distribution
located in the third wallet ( Wallet C ) and an amount of module 72 following distribution of the encrypted codes in
US 10,755,241 B2
17 18
FIG . 46. The offline distribution module 72 removes the been restored is the same private key 79 that was previously
private keys 79 of the Bitcoin address 80 of the vault 64. The associated with the Bitcoin address. Only upon confirmation
offline distribution module 72 also removes the private key from the block chain will it be possible to transfer the value
79 of the Bitcoin address 80 within the local storage 56 . from the vault 64 to the local register 60 .
As shown in FIG . 48 , a local register 60 includes a 5 The local controller 58 restores the respective value of the
plurality of wallets 42 , one of which is shown . The wallet 42 Bitcoin addresses 76 and 78 in the vault 64 to the Bitcoin
has a plurality of Bitcoin addresses 74 , 76 and 78 associated addresses 76 and 78 in the wallet 42. Because the values
therewith . Each Bitcoin address 74 , 76 and 78 has a respec have been restored to the Bitcoin addresses 76 and 78 in the
tive value and a respective private key. The local controller wallet 42 they are usable for transacting with other users .
58 transfers the entire value of the Bitcoin addresses 76 and 10 FIGS . 51a to 51d illustrate the use of a “ hot ” wallet in
78 into the vault 64. The value relating to the Bitcoin address combination with “ cold storage ” . As shown in FIG . 51a , the
74 is not transferred into the vault 64. The local controller 58 wallet 42 has the Bitcoin addresses 74 , 76 , 78 and a further
calculates the total value of the Bitcoin addresses 76 and 78 Bitcoin address 98 , each having a respective value associ
that have been transferred into the vault 64 and records the ated therewith . The local storage 56 has first, second and
total value in the local storage 56 in association with the 15 third Bitcoin addresses 80A to 80C for first, second and third
Bitcoin address 80 . vaults 64A to 64C , respectively . The Bitcoin addresses 76
As shown in FIG . 49 , following removal of the value of and 78 form a first transfer set that is selected for cold
the Bitcoin addresses 76 and 78 within the wallet 42 , the storage . The Bitcoin addresses 74 and 98 form a first
value of the Bitcoin addresses 76 and 78 are only held within transacting set . The values of the Bitcoin addresses 76 and
the vault 64 and the local storage 56. The private key 79 is 20 78 of the first transfer set are transferred into the first vault
only held in a split and encrypted form at the distributed 64A , as represented by “ Value” in the first vault 64A .
locations where the offline distribution module 72 in FIG . 46 The private key of the Bitcoin address 80A of the first
has distributed them to . Unless access can be gained to the vault 64A is then transferred into the local storage 56 and is
private key 79 that has now been split and distributed , it is stored in association with the first Bitcoin address 80A . As
not possible to access the value of the Bitcoin addresses 76 25 hereinbefore described with reference to FIG . 46 , the private
and 78. It is now possible for a user to which the wallet 42 key of the Bitcoin address 80A in the local storage 56 is then
is registered to use the Bitcoin address 74 for transacting split and distributed . As hereinbefore described with refer
with another user via the wallet management module 44 in ence to FIGS . 47 and 48 , the private keys of the Bitcoin
FIG . 1B . The Bitcoin addresses 76 and 78 are not usable by address 80 and the value of the Bitcoin address 76 and 78 are
the wallet management module 44 for purposes of transact- 30 then removed . It is then not possible for a user of the wallet
ing with another user at this time because their values , 42 to use the Bitcoin address 76 and 78 for transacting with
within the wallet 42 , have been removed . another user . The user can still transact with another user
FIG . 50 shows how the private keys of the vault 64 and using the Bitcoin addresses 74 and 98 of the first transacting
the Bitcoin addresses 76 and 78 that were removed in FIG . set because their values are still associated with them within
46 are restored . Components that are provided for restora- 35 the wallet 42 .
tion include a plurality of restoration interfaces 82 , 84 and FIG . 51b shows the Bitcoin addresses 76 and 78 within
86 , one or more decryption algorithms 88 , 90 and 92 and an the wallet 42 with their values removed and the Bitcoin
assembler 94. The holder of the first encrypted code (En address 80A within the local storage 56 with its private key
crypted Code 1 ) is called upon to enter the encrypted code removed . The private key of the Bitcoin address 80B of
into the restoration interface 82. The restoration interface 82 40 second vault 64B is transferred into the local storage 56 and
may for example be a web page with a field for entry of the associated with the second Bitcoin address 80B within the
first encrypted code . Alternatively, the restoration interface local storage 56. The private key of the second Bitcoin
82 may be an application programmable interface (API ) and address 80B in the local storage 56 is split and distributed
the first encrypted code can be entered into the API with or and then removed from the local storage 56. The Bitcoin
without human involvement. 45 address 98 is selected as part of a second transfer set of one
In the given example , the second , third, fifth and sixth or more Bitcoin addresses . The value of the Bitcoin address
encrypted codes are not received at this time . The fourth and 98 is transferred from the wallet 42 into the second vault
seventh encrypted codes are received through the restoration 64B , as represented by “ Value ” in the second vault 64B . The
interfaces 84 and 86 , similar to the first encrypted code. value of the Bitcoin address 98 within the wallet 42 is thus
The decryption algorithm 88 decrypts the first encrypted 50 removed . The user of the wallet 42 can now not use the
code (Encrypted Code 1 ) into the first code (Code 1 ) . In the Bitcoin address 98 for purposes of transacting with another
given example, the decryption algorithms 90 and 92 decrypt user because the value of the Bitcoin address 98 has been
the fourth and seventh encrypted codes ( Encrypted Code 4 removed from the wallet 42. The Bitcoin address 74 forms
and Encrypted Code 7 ) into the fourth and seventh codes part of a second transacting set that may include one or more
(Code 4 and Code 7 ) respectively. In the given example, 55 another
three codes are the minimum number of codes that are
Bitcoin user
addresses
.
that can be used for transacting with
required in order to reassemble the private key 79. The FIG . 51c shows the Bitcoin address 98 having its value
minimum number of codes required for reassembly in FIG . removed and the second Bitcoin address 80B within the
48 is thus less than the total number of codes into which