US9948467B2 — Method and system for blockchain variant using digital signatures
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.
THAT INA MICAN BE UNITHA TALAH MANITOUR US009948467B2
(12) King
United States Patent ( 10) Patent No.: US 9,948,467 B2
(45) Date of Patent: Apr. 17 , 2018
(54 ) METHOD AND SYSTEM FOR BLOCKCHAIN
VARIANT USING DIGITAL SIGNATURES
(56) References Cited
U .S. PATENT DOCUMENTS
( 71 ) Applicant: MasterCard International 2015 /0088756 A1 * 3 /2015 Makhotin .......... G06Q 20 / 3829
Incorporated , Purchase, NY (US ) 705 / 71
2015/0287026 Al * 10 /2015 Yang ................. G06Q 20705
/ 3678
(72 ) Inventor: David J. King , Guildford (GB ) /69
2015/0324789 A1* 11/ 2015 Dvorak ........... GO6Q 20705/3823
/67
(73 ) Assignee : MASTERCARD INTERNATIONAL
INCORPORATED , Purchase , NY (US) (Continued )
( * ) Notice: Subject to any disclaimer, the term of this FOREIGN PATENT DOCUMENTS
patent is extended or adjusted under 35 EP 2942995 AL 11 /2015
U .S .C . 154 (b ) by 143 days .
OTHER PUBLICATIONS
(21) Appl. No.: 14 /976,331
International Search Report and Written Opinion issued by the
( 22 ) Filed : Dec . 21, 2015 International Search Authority dated Apr. 5 , 2017 in corresponding
PCT Application No. PCT/US2016 /066459 ( 12 pages ).
(65 ) Prior Publication Data Primary Examiner — Khoi Le
US 2017/0180134 A1 Jun . 22 , 2017 (74 ) Attorney, Agent, or Firm — Buchanan Ingersoll &
Rooney PC
(51) Int. CI.
H04L 29 /06 ( 2006 .01 ) (57) ABSTRACT
H04L 9 /32 (2006 . 01) A method for using digital signatures for signing blockchain
(52 ) U .S. CI. transactions includes : generating a domain key pair com
???. ......... H04L 9 /3247 (2013.01); H04L 9 /3268 prising a domain private key and a domain public key ,
( 2013 .01 ); H04L 63/045 (2013 .01 ); H04L wherein the domain public key is signed after generation ;
63/061 ( 2013 .01) ; H04L 63/0823 ( 2013 .01) ; receiving a plurality of member public keys, wherein each
H04L 63 /0853 (2013 .01); H04L 63 /0876 member public key is received from an associated member
(2013 .01) of a blockchain network and is a public key in a key pair
(58 ) Field of Classification Search comprising the member public key and a member private
CPC . H04L 9 /3247; H04L 9 /3268; H04L 63/0823 ; key corresponding to the associated member; signing each
HO4L 63 /0876 ; H04L 63/0853; HO4L member public key using the domain private key ; receiving
63/ 045 ; H04L 63 /061 a transaction block from a specific member of the block
See application file for complete search history . (Continued )
Signing Authority Server 102 Member Processing Server 104
.. . ....... .... .... ................... ...... ........ . ........ ...
Receive Blockchain Transactions 502
m
m
7504
-
Create New Block
-
-
- Find Suitable Hash Value 506
508
-
Sign Hash Value with Member Private Key
-
-
512 Black & Signed Hash
-
-
TransmitNew Block and Signed Hash Value 510
-
-
-
514 . Sign Combined Block with Domain Private Key -
-
-
-
-
516 Transmit Signed Combined Black Signed Combined Block
Block 518
-
516 Transmit Signed Combined Block -
Signed Combined 518
-
-
-
N v Validate
alidate Combined
Combined Block
Block 520
520
US 9, 948,467 B2
Page 2
chain network , wherein the transaction block includes a
plurality of blockchain transaction values and a hash signed
using the member private key corresponding to the specific
member ; signing the received transaction block using the
domain private key ; and transmitting the signed transaction
block .
18 Claims, 8 Drawing Sheets
(56 ) References Cited
U .S . PATENT DOCUMENTS
2015/ 0324791 A1 * 11/ 2015 Khan ................. G06Q 20 / 3821
705 /71
2016 /0098723 A1 * 4 /2016 Feeney .............. G06Q 20/4016
705 /75
* cited by examiner
atent Apr. 17 , 2018 Sheet 1 of 8 US 9 ,948,467 B2
1
106e ParticipantDevices
106d 106f
104b
Member ProcesingServer
102TL
ASuitghonrintgyServer .
FIG
1
1062a
104a
Member Procesing Server106c
ET 1066
T
L
9
Participant Devices
100
atent Apr. 17 , 2018 Sheet 2 of 8 US 9, 948,467 B2
202 206
- 208
-
210 212 214
204
OOOOHTE
ReceivingDevice QueryingModule Generation Module SigningModule AuthenticationModule TransmitingDevice
Comunication Module
.
2
.
FIG
102
Memory
216
atent Apr. 17 , 2018 Sheet 3 of 8 US 9, 948,467 B2
302 308 312 314
+
306
-
# L310 -
ReceivingDevice QueryingModule GenerationModule SigningModule ValidationModule TransmitingDevice
304
104
Comunication Module
3
.
FIG
Memory
316
atent Apr. 17 , 2018 Sheet 4 of 8 US 9 , 948 ,467 B2
406 408
104
=
7418
PMSreocmresbveinrg Pairabte
CMremKey APuDtrheabonKeyndtvliciaticoen SMPKieugmbnblyeisdrc
.. . . . . . .. . . .. . . .. . .. . . .. . .. . . .. . . . .. . .. . .. . . . . . .. . . . . . ... .. .... ... . . . . . 4
.
FIG
102
ASuietghrnovrientrgy CDProaemKeyitren DPoumbSignKeyalic AMPuDtheuanmbt&Keyilctaeiaorcn APMuSrtehocmnretsbivceaitnreg MPSKeuimblgyeinsrc DMPKieustmbrilybeiutsrce
402 4147 4164
atent Apr. 17 , 2018 Sheet 5 of 8 US 9 , 948 ,467 B2
508 510
104 -
502 -
504
-
506 -
518
7520
PMSroecmresbvienrg TBRrlaeoncskaectihavoines CBrleNewoactke SVFHuaitlansbuldhe PMreimvKey
Value
Sign
Hash
withbatr TSBVHrilagnoNewdsmcueihkt CSBoilmgboincekd VCBaolmibodanctekd
5
.
FIG
102
ASuietghrnovrientrgy Blockned
Hash
Sig& CPDBSworlmibovKeyiagtncienhkd TCSBroilamgnbosinmceikdt
514med
516
atent Apr. 17 , 2018 Sheet 6 of 8 US 9,948,467 B2
602 604
pre 606 608
-
|
5610 7612
byfvasultsaietonecg
,
and
key
gpcGmsderonomuecpidrmbair abcnmpsloeumocptmbkrndkeythewfisinfromairclahtinckg capmosreoimscvkeythetopibandtinrdg privkeyate Etpdsblreacoinlatcsrvgnemoyfhea,isctscmailnokrdtgny .
FIG
6
gwdpsaehouinfembgrstthekeyalniorncd prRwdsmelhoucervmbia,abyfkeyschisthelvivntrcdgy anthe
,
psmdrlioeucgrdmbebyf
keyaSignachssingsuvlitrcy tpbrsRnwdmlephaocentsvrmcekaowefromi,yfscvbihtcaivrnokcgn ctbpivsmuohrlnaoierulscnrgmkvfaphedkeyoicunblsatcitiohnkgsr smpemcthetoibfirc usingst od
ofnblock
by
,
key
domain
modulerver
tprseiraocngseSign
he
600
atent Apr. 17 , 2018 Sheet 7 of 8 US 9 , 948 ,467 B2
702 706 712
E704 -
708 710 [
714 716
Etpgasdmlreuaicontcgsehrvmbnoerkey,byfnisvblatcmtianltrcgdy abnwsleoctikwctoahreihkdn Etpdsbvlreaoicnlatcsrvgnemohashhenewd,yflnictcmuinalokrtgny
tpbiwmsSrlnhaeoutcnrsmoleka,chnfesuovltdrikatnioyrsgn
tbipvlrnaocuenlrskuatfocdlhcsiaenioksgyn gpcGmseronomuecpidrmbbyf,athekeyairndvasultaltoncng key apshmfvrlpaoegilcsdrehHashbyfleto,;theaneciuvtlinmotrgcsn tbpirlnaoucnrsolkafhecultdikatiosdyn cgpGwmsvoerhnoarecdrestheh,lbyftoauvptsalnitodrngsfviarlhashute asuitghnorintgy FIG
7
.
tpbcrRdsvloeaomculnpersvkiahenew,yfoscuvlihtacivntokrsgyn usingobatlird
keynvvalue
the
af
by
,
hash
pgsmreioncgiedrmSign
|
700
atent Apr. 17 , 2018 Sheet 8 of 8 US 9 ,948,467 B2
826
-
-
-
-
-
-
Communications Path
812
#
818
-
814
Removable Removable
SUtonriagte SUtonriagte 822
IR
824
Comunications Interface 810
SecondaryMemory HDairsdkDrive RemovableStorageDrive Interface 820
800 806
ComunicationsInfrastructure 8
.
FIG
804 802 808
Procesor Display Interface Meamiorny
830
Display
US 9, 948, 467 B2
METHOD AND SYSTEM FOR BLOCKCHAIN plurality ofmember public keys using the domain private
VARIANT USING DIGITAL SIGNATURES key ; receiving , by the receiving device of the processing
server, a transaction block from a specific member of the
FIELD blockchain network , wherein the transaction block includes
5 a plurality of blockchain transaction values and a hash
The present disclosure relates to the use of digital signa signed using the member private key corresponding to the
tures for signing blockchain transactions, specifically the use specific member; signing , by the signing module of the
of digital signatures by multiple entities for use in the processing server, the received transaction block using the
signing and validation ofblockchain transactions for added domain private key; and electronically transmitting , by a
security and more efficient validation . 10 transmitting device of the processing server, the signed
transaction block .
BACKGROUND Another method for using digital signatures for signing
blockchain transactions includes : storing, in a memory of a
Blockchains are used as a public ledger of electronic processing server, a blockchain , wherein the blockchain
transactions. Each new block of transactions that is added to 15 includes a plurality of transaction blocks , each transaction
a blockchain provides for further validation of the previous block including at least a plurality of blockchain transaction
blocks, resulting in the blockchain becoming stronger and values; generating, by a generation module of the processing
stronger as the blockchain grows over time. Because past server, a member key pair comprising a member private key
blocks in the blockchain never change, and because the and a member public key ; electronically transmitting , by a
blockchain does not lose or discard past blocks, the block - 20 transmitting device of the processing server, the generated
chain becomes an immutable , yet publicly accessibly, record member public key to a signing authority associated with a
of all transactions . Blockchains can also offer additional blockchain network ; receiving, by a receiving device of the
benefits that encourage their use in the conducting of elec processing server, a plurality ofblockchain transaction val
tronic transactions, such as anonymity and security . ues comprising a new transaction block ; hashing , by a
In order to generate new blocks for a blockchain , many 25 hashing module of the processing server, a first hash value
blockchains rely on extensive computing power that utilizes via application of one or more hashing algorithms to a
a hashing algorithm combined with brute force searching to specific block of the plurality of transaction blocks included
generate a hash that matches the previous block in the in the blockchain ; generating, by the generation module of
blockchain . To encourage participation in the searching, the processing server, a second hash value , wherein the
blockchains often allow for any user with any suitable 30 second hash value corresponds to the first hash value ;
computing device to participate , and will also often offer a signing , by a signing module of the processing server, the
reward to the user that successfully finds a suitable hash generated second hash value using the generated member
value . Asmore users participate , and as computing power private key ; and electronically transmitting , by the transmit
increases , blockchains may experience more and more waste ting device of the processing server, the new transaction
of energy and computational power
????. 35 block and signed second hash value to the signing authority .
Thus, there is a need for a technical solution whereby new A system for using digital signatures for signing block
blocks for a blockchain may be generated that are reliable chain transactions includes : a transmitting device of a pro
and secure , but without resulting in significant computa cessing server ; a generation module of the processing server
tional and energy waste. The use of signatures by verified configured to generate a domain key pair comprising a
and trusted participants may ensure that new blocks are 40 domain private key and a domain public key, wherein the
reliable and secure , while enabling the blocks to be suitably domain public key is signed after generation ; a receiving
verified for inclusion in a blockchain , while also requiring device of the processing server configured to receive a
significantly less computational power. In addition , by uti- plurality of member public keys , wherein each member
lizing only trusted entities , the participant pool may be public key is received from an associated member of a
limited , which may decrease the amount of energy wasted to 45 blockchain network and is a public key in a key pair
produce new blocks for the blockchain . Thus, there is a need comprising the member public key and a member private
for a technical solution that utilizes a trusted pool of par key corresponding to the associated member ; and a signing
ticipants and digital signatures for the signing of blockchain module of the processing server configured to sign each
transactions. member public key of the plurality ofmember public keys
50 using the domain private key. The receiving device of the
SUMMARY processing server is further configured to receive a transac
tion block from a specific member of the blockchain net
The present disclosure provides a description of systems work , wherein the transaction block includes a plurality of
and methods for using digital signatures for signing block - blockchain transaction values and a hash signed using the
chain transactions. 55 member private key corresponding to the specific member.
A method for using digital signatures for signing block - The signing module of the processing server is further
chain transactions includes: generating , by a generation configured to sign the received transaction block using the
module of a processing server, a domain key pair comprising domain private key . The transmitting device of the process
a domain private key and a domain public key, wherein the ing server is further configured to electronically transmit the
domain public key is signed after generation ; receiving, by 60 signed transaction block .
a receiving device of the processing server, a plurality of Another system for using digital signatures for signing
member public keys , wherein each member public key is blockchain transactions includes: a signing module of a
received from an associated member of a blockchain net processing server; a memory of the processing server con
work and is a public key in a key pair comprising the figured to store a blockchain , wherein the blockchain
member public key and a member private key corresponding 65 includes a plurality of transaction blocks, each transaction
to the associated member; signing, by a signing module of block including at least a plurality of blockchain transaction
the processing server , each member public key of the values ; a generation module of the processing server con
US 9 ,948,467 B2
figured to generate a member key pair comprising a member ured to process and record transactions as part of a block in
private key and a member public key ; a transmitting device the blockchain . Once a block is completed , the block is
of the processing server configured to electronically transmit added to the blockchain and the transaction record thereby
the generated member public key to a signing authority updated . In many instances, the blockchain may be a ledger
associated with a blockchain network ; a receiving device of 5 of transactions in chronological order, or may be presented
the processing server configured to receive a plurality of in any other order that may be suitable for use by the
blockchain transaction values comprising a new transaction blockchain network . In some configurations, transactions
block ; and a hashing module of the processing server recorded in the blockchain may include a destination address
configured to generate a first hash value via application of and a currency amount, such that the blockchain records
one or more hashing algorithms to a specific block of the 10 how much currency is attributable to a specific address. In
plurality of transaction blocks included in the blockchain . some instances, additional information may be captured ,
The generation module of the processing server is further such as a source address , timestamp, etc . In some embodi
configured to generate a second hash value, wherein the ments , a blockchain may also consist of additional, and in
second hash value corresponds to the first hash value. The some instances arbitrary , data that is confirmed and validated
signing module of the processing server is configured to sign 15 by the blockchain network through proof ofwork and /or any
the generated second hash value using the generated mem other suitable verification techniques associated therewith .
ber private key. The transmitting device of the processing In some cases , such data may be included in the blockchain
server is configured to electronically transmit the new trans as part of transactions, such as included in additional data
action block and signed second hash value to the signing appended to transaction data . In some instances , the inclu
authority . 20 sion of such data in a blockchain may constitute a transac
tion . In such instances , a blockchain may not be directly
BRIEF DESCRIPTION OF THE DRAWING associated with a specific digital, virtual, fiat, or other type
of currency.
FIGURES
System for Signing Blockchain Transactions Using Digital
The scope of the present disclosure is best understood 25 Signatures
from the following detailed description of exemplary FIG . 1 illustrates a system 100 for the signing of block
embodiments when read in conjunction with the accompa- chain transactions by a trusted pool of participants using
nying drawings. Included in the drawings are the following v erifiable digital signatures .
figures : The system 100 may include a signing authority server
FIG . 1 is a block diagram illustrating a high level system 30 102. The signing authority server 102, discussed in more
architecture for signing blockchain transactions using digital detail below , may be associated with a blockchain and
signatures in accordance with exemplary embodiments. configured to digitally sign blocks of blockchain transac
FIG . 2 is a block diagram illustrating the signing authority tions for inclusion in the blockchain . In some instances, a
server of FIG . 1 for verifying signed blockchain transactions blockchain may be associated with a single signing authority
and digitally signing blockchain blocks in accordance with 35 server 102 , which may digitally sign every block that is
exemplary embodiments . added to the blockchain . In other instances , a blockchain
FIG . 3 is a block diagram illustrating the member pro may be associated with multiple signing authority servers
cessing server of FIG . 1 for digitally signing blockchain 102, each of which may be configured to digitally sign
transactions and validation thereof in accordance with exem blocks added to a blockchain separately , either for concur
plary embodiments . 40 rent or redundant signing . In latter instances , different sign
FIG . 4 is a flow diagram illustrating a process flow for ing authority servers 102 may have different keys , for
generating, signing , and distributing keys for use in digitally separate validation of respectively signed blocks by member
signing blockchain transactions in accordance with exem - systems, or may use the same key , with the resulting signed
plary embodiments . blocks compared for accuracy and validated by a member
FIG . 5 is a flow diagram illustrating a process for creating 45 system or other signing authority server 102 .
and digitally signing blocks of blockchain transactions for The system 100 may also include a plurality of member
inclusion in a blockchain in accordance with exemplary processing servers 104 , illustrated in FIG . 1 as member
embodiments . processing servers 104a and 104b . Member processing
FIGS. 6 and 7 are flow charts illustrating exemplary servers 104 , discussed in more detail below , may be asso
methods for using digital signatures for signing blockchain 50 ciated with the blockchain and configured to digitally sign
transactions in accordance with exemplary embodiments. blockchain transactions and create blocks for inclusion in
FIG . 8 is a block diagram illustrating a computer system the blockchain . Member processing servers 104 may also be
architecture in accordance with exemplary embodiments . configured to validate digitally signed blocks that have been
Further areas of applicability of the present disclosure will signed by other member processing servers 104 and /or
become apparent from the detailed description provided 55 signing authority servers 102 prior to inclusion in the
hereinafter. It should be understood that the detailed descrip blockchain . As discussed herein , the signing authority serv
tion of exemplary embodiments are intended for illustration ers 102 and member processing servers 104 may comprise
purposes only and are , therefore , not intended to necessarily a “ blockchain network ,” which may be understood by per
limit the scope of the disclosure . sons having skill in the relevant art to refer to the systems
60 and infrastructure used in themanagement and maintenance
DETAILED DESCRIPTION of a blockchain .
The system 100 may also include a plurality of participant
Glossary of Terms devices 106 , illustrated in FIG . 1 as participant devices
106a , 106 , 106c, 106 , 106e , and 106f. Each participant
Blockchain - A public ledger of all transactions of a 65 device 106 may be a computing device suitable for submit
blockchain - based currency . One ormore computing devices ting new blockchain transactions to a member processing
may comprise a blockchain network , which may be config - server 104 , for inclusion in a new block to be added to the
US 9, 948, 467 B2
blockchain . The computing device may be a desktop com 104 may receive a signed member public key for one or
puter, laptop computer , notebook computer, table computer , more other member processing servers 104 in the blockchain
cellular phone , smart phone , smart television , smart watch , network , such as for use in validating signatures made by the
wearable computing device , implantable computing device , one or more other member processing servers 104 . In some
etc . The participant device 106 may electronically transmit 5 instances, the signing authority server 102 may also distrib
data associated with a blockchain transaction to a member ute the signed domain public key to one or more member
processing server 104 for posting to the blockchain . The data processing servers 104 as well, for use in the validation of
transmitted to the member processing server 104 may be signatures made by the signing authority server 102 using
based on the type of transaction , properties of the block the domain private key .
chain , and other criteria , and may include, for example , a 10 In some embodiments , the signing authority server 102
source address , a destination address, and an amount of may be configured to authenticate a member processing
blockchain currency to be transferred . In some instances, server 104 prior to the distribution of any keys to the
multiple source or destination address may be included , and member processing server 104 . Authentication of member
a source address may be digitally signed by the participant processing servers 104 may be performed using a standard
device 106 for validation as an authorized user of the 15 registration scheme whereby a member processing server
associated blockchain currency. 104 and /or entity associated therewith may register with the
For use in digitally signing blocks and other data , the signing authority server 102 as a trusted server for use in
signing authority server 102 may generate a domain key digitally signing blockchain transactions . For example , a
pair. The domain key pair may be comprised of a domain member processing server 104 may provide industry cre
private key and a corresponding domain public key . The 20 dentials, identification information , detailed device data , etc .
domain keys may be used for the signing of blocks and other as part of the registration process to the signing authority
data , where the domain private key may be used to sign a 102 , which may verify the authenticity of the data and
piece of data and where the domain public key may be used register the server as a member processing server 104 in the
( e .g ., by another entity, such as a member processing server blockchain network to whom keys may be distributed . In
104 ) to validate or otherwise verify the signature . The 25 some instances , the signing authority server 102 may be
domain key pair may be generated using any suitable key configured to vet or otherwise determine the suitability of a
pair generation algorithm . The digital signing of data using processing server attempting to register as a member pro
the domain private key may use any suitable method for the cessing server 104 for use in digitally signing blockchain
digital signature of data using a private key that is consistent transactions. The determination may be based on , for
with the functions discussed herein . 30 example , the technology level of the processing server , the
Once the domain key pair is generated , the signing security protocols being used by the server and associated
authority server 102may have the domain public key signed . computing system , internal network infrastructure , etc . In
In some embodiments , the domain public key may be some cases, the signing authority server 102 may limit the
self- signed by the signing authority server 102 . In some number of member processing servers 104 , such as to a
instances, the domain public key may be self- signed only if 35 trusted group of member processing servers 104 of a limited
the signing authority server 102 and member processing size for security reasons .
servers 104 are part of a closed network for access and /or After being registered and receiving the signed member
submission to the associated blockchain . In other embodi- public keys and signed domain public key, a member
ments, the domain public key may be signed by a public processing server 104 may receive blockchain transactions
authority , such as a trusted third party entity configured to 40 for posting to the blockchain . To generate a new block for
sign public keys . The trusted third party may sign the the blockchain , the member processing server 104 must
domain public key, the signature of which may be validated search for a hash that corresponds to a hash of the previous
by one or more member processing servers 104 in the block in the blockchain to where the new block will be
blockchain network . added . The member processing server 104 may hash the
Each member processing server 104 may also generate a 45 previous block using one or more suitable hashing algo
key pair, referred to herein as a “member ” key pair. Each rithms to obtain a first hash value. The member processing
member key pair may be comprised ofa member private key server 104 may then search for a second hash value that
and a corresponding member public key. In some embodi- corresponds to the first hash value. The correspondence may
ments, the member key pair may be generated using the be an exact match (e . g ., where both hash values are equiva
same key pair generation algorithm used by the signing 50 lent) or may correspond in one or more other manners , such
authority server 102 in the generation of the domain key as where the second hash value is a reverse of the first hash
pair. Each member processing server 104 may securely store value , where a specific number of characters in the hash
their respective member private key and may electronically value are equivalent, where a number of the last characters
transmit their respective member public key to a signing in the first hash value are equivalent to the number of first
authority server 102 for signing . The member public keys 55 characters of the second hash value , etc. The correspondence
may be electronically transmitted to a signing authority that may be accepted may be based on a desired time length
server 102 via superimposition on a data signal that is for searching, a desired security level, preferences of the
transmitted using any suitable type of communication net- blockchain network , etc .
work or method , such as a local area network , wide area After a suitable second hash value has been found , the
network , wireless area network , radio frequency , Bluetooth , 60 member processing server 104 may sign the hash value
near field communication , the Internet, etc . using their member private key. The member processing
The signing authority server 102 may be configured to server 104 may then electronically transmit a block com
sign each of the member public keys using the domain prised of the blockchain transactions and the signed hash
private key. The signed member public keys may then be value to the signing authority server 102. The signing
redistributed to the member processing servers 104 for later 65 authority server 102 may then sign the block using their
use in validation of signed blocks and blockchain transac - domain private key. The signing authority server 102 may
tions . In some embodiments , each member processing server distribute the digitally signed block to one ormore member
US 9 ,948 ,467 B2
processing servers 104 for validation . In some embodiments , area networks, wide area networks, radio frequency net
the digitally signed block may be validated by a member works, the Internet. In some embodiments, the receiving
processing server 104 other than the member processing device 202 may be comprised of multiple devices, such as
server 104 where the block originated . For instance , in the different receiving devices for receiving data over different
example illustrated in FIG . 1 , the member processing server 5 networks, such as a first receiving device for receiving data
104a may provide the transactions and signed hash value to over near field communication and a second receiving
the signing authority server 102 , and the signed block may device for receiving data over the Internet. The receiving
be distributed to the member processing server 104b for device 202 may receive electronically data signals that are
validation . transmitted , where data may be superimposed on the data
The member processing server 104 may use the signed 10 signal and decoded , parsed , read , or otherwise obtained via
domain public key associated with the signing authority receipt of the data signal by the receiving device 202. In
server 102 that signed the block , as well as the signed some instances , the receiving device 202 may include a
member public key associated with the member processing parsingmodule for parsing the received data signal to obtain
server 104 that signed the hash value, to validate the block . the data superimposed thereon . For example , the receiving
Validation ofthe block may include application of the signed 15 device 202 may include a parser program configured to
domain public key to the signed block using a suitable receive and transform the received data signal into usable
hashing algorithm to yield the transactions and signed hash input for the functions performed by the processing device
value, as well as application of the signed member public to carry out the methods and systems described herein .
key to the signed hash value to yield the unsigned hash The receiving device 202 may be configured to receive
value. The unsigned hash value may then be verified as 20 data signals electronically transmitted by member process
equivalent to the hash value of the previous block in the ing servers 104. Data signals from member processing
blockchain to which the new block is to be added . Once the servers 104 may be superimposed with member public keys
block has been validated , the new block may be added into for signing, with transaction blocks and signed hash values
the blockchain . In some embodiments , the block may first be for signing, and results from validations performed on
validated by multiple member processing servers 104. In 25 signed transaction blocks . The receiving device 202 may
some instances, a new block may be validated by a partici- also be configured to receive data signals electronically
pant device 106 . In such an instance , the participant device transmitted by participant devices 106 , which may be super
106 may receive the signed domain public key and signed imposed with validation results . In some embodiments, the
member public key for use in validating the signed block as receiving device 202 may receive data signals from third
discussed above. In some cases, the member processing 30 party entities , such as data signals received during the
server 104 or participant device 106 performing the valida - signing of the domain public key .
tion may also validate a certificate trust chain of the domain The signing authority server 102 may also include a
public key, such as used in the signing of the domain public communication module 204 . The communication module
key by the trusted third party entity . 204 may be configured to transmit data between modules ,
The methods and systems discussed herein may provide 35 engines, databases , memories , and other components of the
for the signing and validation of new blocks of blockchain signing authority server 102 for use in performing the
transactions in a blockchain that can be performed using less functions discussed herein . The communication module 204
computational power and reduce energy waste while main may be comprised of one or more communication types and
taining the same level of security used in existing blockchain utilize various communication methods for communications
systems. By using digital signatures , security and authen - 40 within a computing device . For example , the communication
ticity of transaction blocks can be maintained , while using module 204 may be comprised of a bus , contact pin con
less computational power, which may further result in more nectors , wires , etc . In some embodiments , the communica
efficient adding of blocks to the blockchain and in turn , tion module 204 may also be configured to communicate
negate the use of additional nodes in the blockchain network between internal components of the signing authority server
and reduce energy waste . In addition , the use of digital 45 102 and external components of the signing authority server
signatures may also enable participant devices 106 to vali- 102, such as externally connected databases , display
date transaction blocks , which may be impossible or imprac devices, input devices, etc . The signing authority server 102
tical for participant devices in traditional blockchain net- may also include a processing device . The processing device
works due to computational requirements . may be configured to perform the functions of the signing
Signing Authority Server 50 authority server 102 discussed herein as will be apparent to
FIG . 2 illustrates an embodiment of the signing authority persons having skill in the relevant art. In some embodi
server 102 of the system 100 . It will be apparent to persons ments , the processing device may include and /or be com
having skill in the relevant art that the embodiment of the prised of a plurality of engines and /or modules specially
signing authority server 102 illustrated in FIG . 2 is provided configured to perform one or more functions of the process
as illustration only and may not be exhaustive to all possible 55 ing device , such as a querying module 206 , generation
configurations of the signing authority server 102 suitable module 208 , signing module 210 , authentication module
for performing the functions as discussed herein . For 212 , etc. As used herein , the term “module” may be software
example , the computer system 800 illustrated in FIG . 8 and or hardware particularly programmed to receive an input,
discussed in more detail below may be a suitable configu - perform one or more processes using the input, and provide
ration of the signing authority server 102 . 60 an output . The input, output, and processes performed by
The signing authority server 102 may include a receiving various modules will be apparent to one skilled in the art
device 202. The receiving device 202 may be configured to based upon the present disclosure .
receive data over one or more networks via one or more The signing authority server 102 may include a querying
network protocols . In some instances, the receiving device module 206 . The queryingmodule 206 may be configured to
202 may also be configured to receive data from member 65 execute queries on databases to identify information . The
processing servers 104 , participant devices 106 , and other querying module 206 may receive one or more data values
entities via suitable communication networks , such as local or query strings, and may execute a query string based
US 9 ,948 ,467 B2
10
thereon on an indicated database , such as a memory 216 , to be parsed by a receiving computing device . In some
identify information stored therein . The querying module instances, the transmitting device 214 may include one or
may then output the identified information to an appropriate more modules for superimposing , encoding, or otherwise
engine or module of the signing authority server 102 as formatting data into data signals suitable for transmission .
necessary . The querying module 206 may, for example , 5 The transmitting device 214 may be configured to elec
execute a query on the memory 216 to identify keys , tronically transmit data signals to member processing serv
blockchain data , and other data for use in the methods ers 104 . Data signals electronically transmitted to member
discussed herein . processing servers 104 may be superimposed with signed
The signing authority server 102 may include a generation public keys, including signed member public keys and
module 208 . The generation module 208 may be configured 10 signed domain public keys , and signed transaction blocks
to generate key pairs and shared secrets . The generation for validation . The transmitting device 214 may also be
module 208 may receive a request as input, may perform the configured to electronically transmit data signals superim
requested functions to generate data , and may output the posed with signed transaction blocks to participant devices
requested data for use by another module or engine of the 106 for validation thereby. In some instances , the transmit
signing authority server 102. For example, the generation 15 ting device 214 may be further configured to electronically
module 206 may be configured to generate key pairs , such transmit data signals to third party entities , such as data
as a domain key pair used in the signing and validation of signals superimposed with domain public keys for signing
new blocks of blockchain transactions for inclusion in the by a trusted third party .
blockchain . The generation module 206 may be configured The signing authority server 102 may also include the
to generate domain key pairs using any suitable key pair 20 memory 216 . The memory 216 may be configured to store
generation algorithm . Domain key pairs may be comprised data for use by the signing authority server 102 in perform
of a domain private key and a corresponding domain public ing the functions discussed herein . The memory 216 may be
key. configured to store data using suitable data formatting
The signing authority server 102 may further include a methods and schema and may be any suitable type of
signing module 210. The signing module 210 may be 25 memory , such as read -only memory , random access
configured to receive data to be signed , may sign the data memory , etc . The memory 216 may include, for example , a
using a private key, and may output the signed data to domain private key, a signed domain public key , signed
another module or engine of the signing authority server member public keys , data associating each signed member
102. In some instances , the signing module 210 may also be public key with a member processing server 104 , a block
provided with the private key to use for signing . In other 30 chain , etc . The memory 216 may be configured to store the
instances, the signing module 210 may obtain the private key pair generation algorithm , hashing algorithms, and other
key , such as by issuing an instruction to the querying module algorithms for use in performing the functions of the signing
206 to identify a private key in the memory 216 for use in authority server 102 discussed herein .
signing the data . The signingmodule 210 may be configured Signing Authority Server
to , for example, sign member public keys and completed 35 FIG . 2 illustrates an embodiment of the member process
transaction blocks using the domain private key generated ing server 104 of the system 100 . It will be apparent to
by the generation module 208 . In some embodiments, the persons having skill in the relevant art that the embodiment
signing module 210 may also be configured to self-sign the of the member processing server 104 illustrated in FIG . 2 is
domain private key generated by the generation module 208 . provided as illustration only and may not be exhaustive to all
The signing authority server 102 may also include an 40 possible configurations of the member processing server 104
authentication module 212 . The authentication module 212 suitable for performing the functions as discussed herein .
may be configured to receive data for authentication , may For example, the computer system 800 illustrated in FIG . 8
authenticate the data , and may output a result ( e . g ., success and discussed in more detail below may be a suitable
or failure ) of the authentication to another module or engine configuration of the member processing server 104 .
of the signing authority server 102 . For example , the signing 45 The member processing server 104 may include a receiv
authority server 102 may receive data from a member ing device 302 . The receiving device 302 may be configured
processing server 104 ( e . g ., received via the receiving device to receive data over one or more networks via one or more
202 ), which may be authenticated by the authentication network protocols. In some instances , the receiving device
module 212 as part of a standard registration process, which 302 may also be configured to receive data from signing
may register the member processing server 104 as a node in 50 authority servers 104 , participant devices 106 , and other
the blockchain network . entities via suitable communication networks, such as local
The signing authority server 102 may also include a area networks, wide area networks, radio frequency net
transmitting device 214 . The transmitting device 214 may be works, the Internet. In some embodiments , the receiving
configured to transmit data over one or more networks via device 302 may be comprised ofmultiple devices, such as
one or more network protocols. In some instances, the 55 different receiving devices for receiving data over different
transmitting device 214 may be configured to transmit data networks, such as a first receiving device for receiving data
to member processing servers 104 , participant devices 106 , over near field communication and a second receiving
and other entities via suitable communication networks , device for receiving data over the Internet. The receiving
such as local area networks, wide area networks, radio device 302 may receive electronically data signals that are
frequency networks, the Internet. In some embodiments , the 60 transmitted , where data may be superimposed on the data
transmitting device 214 may be comprised of multiple signal and decoded , parsed , read , or otherwise obtained via
devices, such as different transmitting devices for transmit receipt of the data signal by the receiving device 302 . In
ting data over different networks, such as a first transmitting some instances, the receiving device 302 may include a
device for transmitting data over near field communication parsing module for parsing the received data signal to obtain
and a second transmitting device for transmitting data over 65 the data superimposed thereon . For example , the receiving
the Internet . The transmitting device 214 may electronically device 302 may include a parser program configured to
transmit data signals that have data superimposed that may receive and transform the received data signal into usable
US 9 ,948,467 B2
12
input for the functions performed by the processing device hash values and validation of new blocks of blockchain
to carry out the methods and systems described herein . transactions for inclusion in the blockchain . The generation
The receiving device 302 may be configured to receive module 306 may be configured to generate member key
data signals electronically transmitted by signing authority pairs using any suitable key pair generation algorithm .
servers 102 . Data signals received from signing authority 5 Member key pairs may be comprised of a member private
servers 102 may be superimposed with signed domain key and a corresponding member public key . The generation
public keys and signed member public keys , as well as module 306 may also be configured to generate hash values .
signed transaction blocks for validation by the member Hash values may be generated via the application of one or
processing server 104 . The receiving device 302 may also be more hashing algorithms to data for the generation thereof.
configured to receive data signals from participant devices 10 For example , the generation module 306 may be configured
106 , which may be superimposed with blockchain transac - to generate hash values for a block in the blockchain . The
tions for inclusion in a new block as well as validation generation module 306 may also be configured to generate
results in instances where participant devices 106 may a matching or otherwise corresponding hash value using a
perform validation of new blocks . suitable method, such as by applying a hashing algorithm to
The member processing server 104 may also include a 15 data , performing a calculation using one or more algorithms,
communication module 304 . The communication module etc .
304 may be configured to transmit data between modules, The member processing server 104may further include a
engines, databases, memories , and other components of the signing module 310 . The signing module 310 may be
member processing server 104 for use in performing the configured to receive data to be signed , may sign the data
functions discussed herein . The communication module 304 20 using a private key , and may output the signed data to
may be comprised of one or more communication types and another module or engine of the member processing server
utilize various communication methods for communications 104 . In some instances , the signing module 310 may also be
within a computing device. For example , the communication provided with the private key to use for signing . In other
module 304 may be comprised of a bus , contact pin con - instances, the signing module 310 may obtain the private
nectors, wires, etc. In some embodiments , the communica - 25 key , such as by issuing an instruction to the queryingmodule
tion module 304 may also be configured to communicate 306 to identify a private key in the memory 316 for use in
between internal components of the member processing signing the data . The signing module 310 may be configured
server 104 and external components of the member process - to , for example , sign hash values generated by the genera
ing server 104, such as externally connected databases , tion module 208 for inclusion with blockchain transactions
display devices , input devices, etc . The member processing 30 in a new block to be included in the blockchain .
server 104 may also include a processing device . The The member processing server 104 may also include a
processing device may be configured to perform the func - validation module 312 . The validation module 312 may be
tions of the member processing server 104 discussed herein configured to receive data for validation , may validate the
as will be apparent to personshaving skill in the relevant art. data , and may output a result ( e. g., success or failure ) of the
In some embodiments , the processing device may include 35 validation to another module or engine of the member
and/ or be comprised of a plurality of engines and/or modules processing server 104 . For example , the validation module
specially configured to perform one or more functions of the 312 may receive (e . g ., via the receiving device 302 ) a signed
processing device , such as a querying module 306 , genera - block , which may be validated by the validation module 312
tion module 308 , signing module 310 , validation module using a signed domain public key associated with the
312, etc . As used herein , the term “ module ” may be hard - 40 signing authority server 102 that signed the block . The
ware particularly programmed by specific purpose software validation module 312 may also validate signed hash values
to receive an input, perform one or more processes using the (e . g ., which may be obtained via the validation of a signed
input, and provide an output. The input, output, and pro - block including the signed hash value) using a signed
cesses performed by various modules will be apparent to one member public key . The member public key may be the
skilled in the art based upon the present disclosure. 45 member public key generated by the generation module 308 ,
The member processing server 104 may include a que - or may be a member public key received from the signing
rying module 306 . The querying module 306 may be con - authority server 102 that is associated with the member
figured to execute queries on databases to identify informa- processing server 104 used to sign the hash value . In the
tion . The querying module 306 may receive one or more data latter instance , the signing authority server 102 may provide
values or query strings , and may execute a query string 50 (e. g ., with the signed block ) the signed member public key
based thereon on an indicated database , such as a memory or an indication which member public key is to be used for
316 , to identify information stored therein . The querying validation .
module may then output the identified information to an The member processing server 104 may also include a
appropriate engine or module of the member processing transmitting device 314 . The transmitting device 314 may be
server 104 as necessary. The querying module 306 may, for 55 configured to transmit data over one or more networks via
example , execute a query on the memory 316 to identify one or more network protocols. In some instances, the
keys , blockchain data , and other data for use in the methods transmitting device 314 may be configured to transmit data
discussed herein . to signing authority servers 102, participant devices 106 , and
The member processing server 104 may include a gen - other entities via suitable communication networks, such as
eration module 308 . The generation module 308 may be 60 local area networks, wide area networks, radio frequency
configured to generate key pairs and shared secrets . The networks, the Internet . In some embodiments , the transmit
generation module 308 may receive a request as input, may ting device 314 may be comprised of multiple devices , such
perform the requested functions to generate data , and may as different transmitting devices for transmitting data over
output the requested data for use by another module or different networks , such as a first transmitting device for
engine of the member processing server 104 . For example , 65 transmitting data over near field communication and a
the generation module 306 may be configured to generate second transmitting device for transmitting data over the
key pairs , such as a member key pair used in the signing of Internet. The transmitting device 314 may electronically
US 9 ,948,467 B2
13 14
transmit data signals that have data superimposed that may tion module 212 of the signing authority server 102 may
be parsed by a receiving computing device. In some authenticate the member processing server 104 using the
instances, the transmitting device 314 may include one or provided authentication data . Once authentication is com
more modules for superimposing, encoding, or otherwise pleted , then , in step 414 , the signing module 210 of the
formatting data into data signals suitable for transmission . 5 signing authority server 102 may sign the member public
The transmitting device 314 may be configured to elec - key using the domain private key .
tronically transmit data signals to signing authority servers In step 416 , the transmitting device 214 of the signing
102 . Data signals electronically transmitted to signing authority server 102 may electronically transmit a data
authority servers 102 may be superimposed with a member signal to the member processing server 104 using a suitable
public key for signing, signed hash values , transaction 10 communication network that is superimposed with the
blocks to be added to the blockchain , validation results , and signed member public key , as well as additional signed
other data suitable for use in performing the functions member public keys associated with other member process
discussed herein . The transmitting device 314 may also be ing servers 104 . In some instances , the signed domain public
configured to electronically transmit data signals superim - key may also be transmitted to the member processing
posed with signed transaction blocks to participant devices 15 server 104 . In step 418 , the receiving device 302 of the
106 for validation thereby. member processing server 104 may receive the data signal
The member processing server 104 may also include the for parsing of the data included therein .
memory 316 . Thememory 316 may be configured to store Generation and Validation of Digitally Signed Blocks
data for use by the member processing server 104 in FIG . 5 illustrates a process for the generation of a digitally
performing the functions discussed herein . The memory 316 20 signed block of blockchain transactions and validation
may be configured to store data using suitable data format - thereof using the signing authority server 102 and member
ting methods and schema and may be any suitable type of processing server 104 of the system 100 illustrated in FIG .
memory , such as read -only memory , random access
memory, etc . The memory 316 may include , for example , a In step 502 , the receiving device 302 of the member
member private key, a corresponding signed member public 25 processing server 104 may receive a plurality of blockchain
key, signed member public keys associated with other mem - transactions . Each blockchain transaction may be received
ber processing servers 102, data associating each additional from a participant device 106 and may include data associ
signed member public key with another member processing a ted with a transaction to be posted to a blockchain associ
server 104 , a blockchain , a signed domain public key, etc . ated with the member processing server 104 . In step 504 , the
The memory 316 may be configured to store the key pair 30 generation module 308 of the member processing server 104
generation algorithm , hashing algorithms, and other algo may generate a new block comprised of the blockchain
rithms for use in performing the functions of the member transactions. In some instances, the block may also include
processing server 104 discussed herein . additional data , such as a header , transaction counter, and
Generation and Distribution of Keys for Digital Signatures other data . Additional data included in a block for a block
FIG . 4 illustrates a process for the generation and distri- 35 chain may be dependent on the characteristics of the block
bution of keys by the signing authority server 102 and chain as will be apparent to persons having skill in the
member processing servers 104 of the system 100 illustrated relevant art.
FIG . 1 for use in the digital signing of blockchain transac - In step 506 , the generation module 308 of the member
tions for inclusion in a blockchain . processing server 104 may find a suitable hash value . The
In step 402 , the generation module 208 of the signing 40 finding of a suitable hash value may include the generation
authority server 102 may generate a domain key pair . The of a first hash value by application of a hashing algorithm to
domain key pair may be generated using a suitable key pair a prior block in the blockchain , such as the block to precede
generation algorithm , and may be comprised of a domain the new block being added , as well as the generation or other
private key and a corresponding domain public key. In step identification of a second hash value that corresponds to the
404, the signing module 210 of the signing authority server 45 first hash value. Once the suitable hash value is identified ,
102 may self- sign the domain public key . In some instances , then , in step 508 , the signing module 310 of the member
the domain public key may be signed using the correspond processing server 102 may sign the hash value using their
ing domain private key . In other instances, a different private member private key .
key may be used . In some embodiments , step 404 may be In step 510, the transmitting device 314 of the member
replaced by the signing of the domain public key by a 50 processing server 104 may electronically transmit a data
trusted , third party entity . signal to the signing authority server 102 using a suitable
In step 406 , the generation module 308 of a member communication network that is superimposed with the new
processing server 104 may generate a member key pair . The block and the signed hash value . In step 512, the receiving
member key pair may be generated using a suitable key pair device 202 of the signing authority server 102 may receive
generation algorithm , and may be comprised of a member 55 the data signal for parsing of the data superimposed thereon .
private key and a corresponding member public key. In step In step 514 , the signing module 210 of the signing authority
408 , the transmitting device 314 of the member processing server 102 may sign the combined block , comprised of the
server may electronically transmit a data signal to the new block and the signed hash value , using their domain
signing authority server 102 using a suitable communication private key.
network , where the data signal is superimposed with the 60 In step 516 , the transmitting device 214 of the signing
generated member public key and authentication data . The authority server 102 may electronically transmit a data
authentication data may be data associated with the member signal superimposed with the digitally signed block to the
processing server 104 suitable for the identification and /or member processing server 104 using the suitable commu
authentication thereof. nication network . In step 518 , the receiving device 302 of
In step 410 , the receiving device 202 of the signing 65 the member processing server 104 may receive the signed
authority server 102 may receive the data signal from the block and , in step 520 , the validation module 312 of the
member processing server 104 . In step 412 , the authentica member processing server 104 may validate the signed
US 9 ,948 ,467 B2
15 16
block using the signed domain public key and signed private key and a member public key may be generated by
member public key . In some embodiments , steps 518 and a generation module ( e .g ., the generation module 308 ) of the
520 may be performed by a different member processing processing server .
server 104 than the one used in steps 502 through 510 . In In step 706 , the generated member public key may be
such embodiments , the validation performed in step 520 5 electronically transmitted by a transmitting device ( e.g ., the
may use the signed member public key associated with the transmitting device 314 ) of the processing server to a
member processing server 104 used to sign the hash value in signing authority (e . g ., the signing authority server 102 )
step 508 . associated with a blockchain network . In step 708 , a plu
First Exemplary Method for Using Digital Signatures for 10 rality of blockchain transaction values may be received by a
receiving device ( e. g ., the receiving device 302 ) of the
Signing Blockchain Transactions
FIG . 6 illustrates a method 600 for the digital signing of processing server that comprise a new transaction block .
In step 710 , a hashing module ( e . g ., the generation
a block of blockchain transactions that includes a signed module 308 ) of the processing server may hash a first hash
hash value for validation thereof. value via application of one or more hashing algorithms to
In step 602 , a domain key pair may be generated by a 15 a specific block of the plurality of transaction blocks
generation module (e . g ., the generation module 208 ) of a included in the blockchain . In step 712 , a second hash value
processing server ( e.g ., the signing authority server 102 ), may be generated by the generation module of the process
wherein the domain key pair comprises a domain private key ing server that corresponds to the first hash value .
and a domain public key and where the domain public key In step 714 , the generated second hash value may be
is signed after generation . In step 604 , a plurality ofmember 20 signed by a signing module (e.g ., the signing module 210 )
public keys may be received by a receiving device (e .g ., the of the processing server using the generated member private
receiving device 202 ) of the processing server, wherein each key . In step 716 , the new transaction block and signed
member public key is received from an associated member second hash value may be electronically transmitted by the
(e .g ., member processing server 104 ) of a blockchain net- transmitting device of the processing server to the signing
work and is a public key in a key pair comprising the 25 authority .
member public key and a member private key corresponding In one embodiment, the second hash value may be gen
to the associated member. erated via application of the one or more hashing algorithms
In step 606 , each member public key of the plurality of to the received new transaction block . In some embodi
member public keys may be signed by a signing module m ents , the method 700 may also include electronically
( e . g ., the signing module 210 ) of the processing server using 30 transmitting , by the transmitting device of the processing
the domain private key. In step 608, a transaction block may server, authentication information to the signing authority .
be received by the receiving device of the processing server In one embodiment, the method 700 may also include :
from a specific member of the blockchain network , wherein receiving, by the receiving device of the processing server,
the transaction block includes a plurality of blockchain a signed transaction block and signed domain public key
transaction values and a hash signed using the member 35 from the signing authority , wherein the signed transaction
private key corresponding to the specific member. block includes the new transaction block and signed second
In step 610, the received transaction block may be signed hash value and is signed using a domain private key corre
by the signing module of the processing server using the sponding to the signed domain public key ; and validating, by
domain private key. In step 612 , the signed transaction block a validation module (e .g ., the validation module 312 ) of the
may be electronically transmitted by a transmitting device 40 processing server , the signed transaction block using the
( e. g ., the transmitting device 214 ) of the processing server. member public key and signed domain public key . In a
In one embodiment, the method 600 may also include further embodiment, validating the signed transaction block
electronically transmitting, by the transmitting device of the may include : applying the signed domain public key to the
processing server, each signed member public key to one or signed transaction block to yield the new transaction block
more members of the blockchain network . In some embodi- 45 and signed second hash value ; applying the member public
ments , the domain public key may be signed by a public key to the signed second hash value to yield the second hash
authority . In other embodiments , the domain public key may value ; and validating the yielded second hash value as
be signed by the signing module of the processing server. In corresponding to the generated second hash value.
one embodiment, the method 600 may further include : Computer System Architecture
receiving, by the receiving device of the processing server, 50 FIG . 8 illustrates a computer system 800 in which
authentication information from each member of the block embodiments of the present disclosure, or portions thereof,
chain network ; and authenticating, by an authentication may be implemented as computer -readable code . For
module (e . g ., the authentication module 212 ) of the process - example , the signing authority server 102 and member
ing server, each member of the blockchain network using the processing server 104 of FIG . 1 may be implemented in the
received authentication information prior to signing the 55 computer system 800 using hardware , software , firmware,
associated member public key . non -transitory computer readable media having instructions
Second Exemplary Method for Using Digital Signatures for stored thereon , or a combination thereof and may be imple
Signing Blockchain Transactions mented in one or more computer systems or other processing
FIG . 7 illustrates a method 700 for the digital signing of systems. Hardware , software , or any combination thereof
a hash value for inclusion in a block of blockchain transac - 60 may embody modules and components used to implement
tions for digital signature and inclusion in a blockchain . the methods of FIGS. 4 -7 .
In step 702 , a blockchain may be stored in a memory ( e. g ., If programmable logic is used , such logic may execute on
the memory 316 ) of a processing server (e.g ., the member a commercially available processing platform or a special
processing server 104 ), wherein the blockchain includes a purpose device . A person having ordinary skill in the artmay
plurality of transaction blocks , each transaction block 65 appreciate that embodiments of the disclosed subjectmatter
including at least a plurality of blockchain transaction val- can be practiced with various computer system configura
ues . In step 704 , a member key pair comprising a member tions, including multi -core multiprocessor systems, mini
US 9 ,948,467 B2
17 18
computers, mainframe computers, computers linked or clus - removable storage units 822 and interfaces 820 as will be
tered with distributed functions, as well as pervasive or apparent to persons having skill in the relevant art.
miniature computers that may be embedded into virtually Data stored in the computer system 800 (e .g., in the main
any device . For instance , at least one processor device and memory 808 and/ or the secondary memory 810 ) may be
a memory may be used to implement the above described 5 stored on any type of suitable computer readable media ,
embodiments . such as optical storage (e .g., a compact disc, digital versatile
A processor unit or device as discussed herein may be a disc , Blu - ray disc , etc .) or magnetic tape storage ( e . g ., a hard
single processor, a plurality of processors, or combinations disk drive ). The data may be configured in any type of
suitable database configuration , such as a relational data
thereof. Processor devicesmay have one ormore processor 10 base , a structured query language (SQL ) database , a distrib
“ cores .” The terms " computer program medium ,” “ non - 10 uted database , an object database , etc . Suitable configura
transitory computer readable medium ," and " computer tions and storage types will be apparent to persons having
usable medium ” as discussed herein are used to generally skill in the relevant art.
refer to tangible media such as a removable storage unit 818 , The computer system 800 may also include a communi
a removable storage unit 822 , and a hard disk installed in 15 cations interface 824 . The communications interface 824
hard disk drive 812 . may be configured to allow software and data to be trans
Various embodiments of the present disclosure are ferred between the computer system 800 and external
described in terms of this example computer system 800 . devices. Exemplary communications interfaces 824 may
After reading this description , it will become apparent to a include a modem , a network interface (e.g ., an Ethernet
person skilled in the relevant art how to implement the 20 card ), a communications port, a PCMCIA slot and card , etc .
present disclosure using other computer systems and /or Software and data transferred via the communications inter
computer architectures . Although operations may be face 824 may be in the form of signals , which may be
described as a sequential process , some of the operations electronic , electromagnetic , optical, or other signals as will
may in fact be performed in parallel, concurrently, and /or in be apparent to persons having skill in the relevant art. The
a distributed environment, and with program code stored 25 signals may travel via a communications path 826 , which
locally or remotely for access by single or multi- processor may be configured to carry the signals and may be imple
machines. In addition , in some embodiments the order of mented using wire , cable, fiber optics, a phone line, a
operations may be rearranged without departing from the cellular phone link , a radio frequency link , etc .
spirit of the disclosed subject matter. The computer system 800 may further include a display
Processor device 804 may be a special purpose or a 30 interface 802 . The display interface 802 may be configured
general purpose processor device specifically configured to to allow data to be transferred between the computer system
perform the functions discussed herein . The processor 800 and external display 830 . Exemplary display interfaces
device 804 may be connected to a communications infra - 802 may include high - definition multimedia interface
structure 806 , such as a bus, message queue , network , (HDMI), digital visual interface (DVI), video graphics array
multi- core message - passing scheme, etc . The network may 35 (VGA ), etc . The display 830 may be any suitable type of
be any network suitable for performing the functions as display for displaying data transmitted via the display inter
disclosed herein and may include a local area network face 802 of the computer system 800 , including a cathode
(LAN ), a wide area network (WAN ), a wireless network ray tube (CRT) display , liquid crystal display (LCD ), light
( e.g ., WiFi), a mobile communication network , a satellite e mitting diode (LED ) display , capacitive touch display,
network , the Internet , fiber optic , coaxial cable , infrared , 40 thin - film transistor ( TFT) display, etc .
radio frequency (RF ), or any combination thereof. Other Computer program medium and computer usable medium
suitable network types and configurations will be apparent to may refer to memories , such as the main memory 808 and
persons having skill in the relevant art. The computer system secondary memory 810 , which may be memory semicon
800 may also include a main memory 808 (e .g., random ductors (e.g., DRAMs, etc .). These computer program prod
access memory , read -only memory , etc. ), and may also 45 ucts may be means for providing software to the computer
include a secondary memory 810 . The secondary memory system 800 . Computer programs (e .g., computer control
810 may include the hard disk drive 812 and a removable logic ) may be stored in the main memory 808 and /or the
storage drive 814 , such as a floppy disk drive , a magnetic secondary memory 810 . Computer programs may also be
tape drive , an optical disk drive , a flash memory , etc . received via the communications interface 824 . Such com
The removable storage drive 814 may read from and/ or 50 puter programs, when executed, may enable computer sys
write to the removable storage unit 818 in a well-known tem 800 to implement the present methods as discussed
manner. The removable storage unit 818 may include a herein . In particular, the computer programs, when
removable storage media that may be read by and written to executed , may enable processor device 804 to implement the
by the removable storage drive 814 . For example , if the methods illustrated by FIGS. 4 - 7 , as discussed herein .
removable storage drive 814 is a floppy disk drive or 55 Accordingly , such computer programs may represent con
universal serial bus port, the removable storage unit 818 may trollers of the computer system 800 . Where the present
be a floppy disk or portable flash drive, respectively . In one disclosure is implemented using software , the software may
embodiment, the removable storage unit 818 may be non be stored in a computer program product and loaded into the
transitory computer readable recording media . computer system 800 using the removable storage drive 814 ,
In some embodiments , the secondary memory 810 may 60 interface 820 , and hard disk drive 812 , or communications
include alternative means for allowing computer programs interface 824 .
or other instructions to be loaded into the computer system The processor device 804 may comprise one or more
800 , for example , the removable storage unit 822 and an modules or engines configured to perform the functions of
interface 820 . Examples of such means may include a the computer system 800 . Each of the modules or engines
program cartridge and cartridge interface ( e .g ., as found in 65 may be implemented using hardware and, in some instances ,
video game systems), a removable memory chip (e . g ., may also utilize software , such as corresponding to program
EEPROM , PROM , etc .) and associated socket , and other code and /or programs stored in the main memory 808 or
US 9 ,948,467 B2
19 20
secondary memory 810 . In such instances, program code electronically transmitting, by the transmitting device of
may be compiled by the processor device 804 (e. g., by a the processing server, the signed new transaction block
compiling module or engine ) prior to execution by the for validation by a member of the blockchain network .
hardware of the computer system 800 . For example , the 2 . The method of claim 1, wherein the domain public key
program code may be source code written in a programming 5 is signed by a public authority.
language that is translated into a lower level language, such 3. The method of claim 1, wherein the domain public key
as assembly language or machine code , for execution by the is signed by the signing module of the processing server.
processor device 804 and / or any additional hardware com 4 . The method of claim 1, further comprising :
ponents of the computer system 800 . The process of com receiving, by the receiving device of the processing
pilingmay include the use of lexical analysis , preprocessing, 10
parsing, semantic analysis , syntax -directed translation , code server, authentication information from each member
generation , code optimization , and any other techniques that of the blockchain network ; and
may be suitable for translation of program code into a lower authenticating, by an authentication module of the pro
level language suitable for controlling the computer system cessing server, each member of the blockchain network
800 to perform the functions disclosed herein . It will be 15 using the received authentication information prior to
apparent to persons having skill in the relevant art that such signing the associated member public key.
processes result in the computer system 800 being a spe 5 . A method for using digital signatures for signing
cially configured computer system 800 uniquely pro - blockchain transactions, comprising:
grammed to perform the functions discussed above. storing, in a memory of a processing server, a blockchain ,
Techniques consistent with the present disclosure provide, 20 wherein the blockchain includes a plurality of transac
among other features , systems and methods for using digital tion blocks , each transaction block including at least a
signatures for signing blockchain transactions. While vari plurality of blockchain transaction values ;
ous exemplary embodiments of the disclosed system and generating , by a generation module of the processing
method have been described above it should be understood server, a member key pair comprising amember private
that they have been presented for purposes of example only , 25 key and a member public key ;
not limitations. It is not exhaustive and does not limit the electronically transmitting , by a transmitting device of the
disclosure to the precise form disclosed . Modifications and processing server , the generated member public key to
variations are possible in light of the above teachings ormay a signing authority associated with a blockchain net
be acquired from practicing of the disclosure , without
departing from the breadth or scope . 30
work ;
What is claimed is: receiving , by a receiving device of the processing server,
a plurality of blockchain transaction values comprising
1. A method for using digital signatures for signing a new transaction block ;
blockchain transactions, comprising : hashing, by a hashing module of the processing server; a
generating, by a generation module of a processing server , first hash value via application of one or more hashing
a domain key pair comprising a domain private key and 35
a domain public key , wherein the domain public key is algorithms to a specific block of the plurality of trans
signed after generation ; action blocks included in the blockchain ;
receiving, by a receiving device of the processing server, generating, by the generation module of the processing
a plurality of member public keys, wherein each mem server, a second hash value, wherein the second hash
ber public key is received from an associated member 40 value corresponds to the first hash value ;
of a blockchain network and is a public key in a key signing, by a signingmodule of the processing server, the
pair comprising the member public key and a member generated second hash value using the generated mem
private key corresponding to the associated member ; ber private key ;
signing , by a signing module of the processing server, electronically transmitting, by the transmitting device of
each member public key of the plurality of member 45 the processing server , the new transaction block and
public keys using the domain private key; signed second hash value to the signing authority ;
receiving , by the receiving device of the processing receiving , by the receiving device of the processing
server, a transaction block from a specific member of server, a signed transaction block and signed domain
the blockchain network , wherein the transaction block public key from the signing authority, wherein the
includes a plurality of blockchain transaction values 50 signed transaction block includes the new transaction
and a hash signed using the member private key block and signed second hash value;
corresponding to the specific member ; applying themember public key to the signed second hash
signing , by the signing module of the processing server, value to yield the second hash value ; and
the received transaction block using the domain private validating the yielded second hash value as corresponding
key ; 55 to the generated second hash value to validate the
electronically transmitting, by a transmitting device of the signed transaction block for addition to the blockchain .
processing server, the signed transaction block ; 6 . The method of claim 5 , wherein the second hash value
electronically transmitting, by the transmitting device of is generated via application of the one or more hashing
the processing server, each signed member public key algorithms to the received new transaction block .
to one or more members of the blockchain network ; 60 7 . The method of claim 5 , further comprising:
receiving , by the receiving device of the processing electronically transmitting, by the transmitting device of
server, a new transaction block and a signed second the processing server, authentication information to the
hash value from the specific member of the blockchain signing authority .
network ; 8 . The method of claim 5 ,
signing , by the signing module of the processing server, 65 wherein the signed transaction block is signed using a
the received new transaction block using the domain domain private key corresponding to the signed domain
private key ; and public key ; and the method further comprises:
US 9, 948, 467 B2
validating, by a validation module of the processing the authentication module of the processing server is
server, the signed transaction block using the member configured to authenticate each member of the block
public key and signed domain public key . chain network using the received authentication infor
9 . The method of claim 8 , wherein validating the signed mation prior to signing the associated member public
transaction block includes: 5 key.
applying the signed domain public key to the signed 14 . A system for using digital signatures for signing
transaction block to yield the new transaction block and blockchain transactions, comprising:
signed second hash value. a signing module of a processing server;
10 . A system for using digital signatures for signing a memory of the processing server configured to store a
blockchain transactions, comprising : 10
10
blockchain , wherein the blockchain includes a plurality
a transmitting device of a processing server ; of transaction blocks, each transaction block including
a generation module of the processing server configured
to generate a domain key pair comprising a domain at least a plurality of blockchain transaction values;
private key and a domain public key, wherein the a generation module of the processing server configured
domain public key is signed after generation ; 15 to generate a member key pair comprising a member
a receiving device of the processing server configured to private key and a member public key ;
receive a plurality of member public keys, wherein a transmitting device of the processing server configured
each member public key is received from an associated to electronically transmit the generated member public
member of a blockchain network and is a public key in key to a signing authority associated with a blockchain
a key pair comprising the member public key and a 20 network ;
member private key corresponding to the associated a receiving device of the processing server configured to
member; and receive a plurality of blockchain transaction values
a signing module of the processing server configured to comprising a new transaction block ; and
sign each member public key of the plurality of mem a hashing module of the processing server configured to
ber public keys using the domain private key , wherein 25 generate a first hash value via application of one or
the receiving device of the processing server is further more hashing algorithms to a specific block of the
configured to receive a transaction block from a spe plurality of transaction blocks included in the block
cific member of the blockchain network , wherein the chain , wherein
transaction block includes a plurality of blockchain the generation module of the processing server is further
transaction values and a hash signed using the member 30 configured to generate a second hash value, wherein the
private key corresponding to the specific member, second hash value corresponds to the first hash value,
the signing module of the processing server is further the signing module of the processing server is configured
configured to sign the received transaction block using
the domain private key, to sign the generated second hash value using the
the transmitting device of the processing server is further 35 generated member private key, and
configured to electronically transmit the signed trans the transmitting device of the processing server is con
action block , and figured to electronically transmit the new transaction
electronically transmit each signed member public key to block and signed second hash value to the signing
one or more members of the blockchain network , authority .
the receiving device of the processing server is further 40 15 . The system of claim 14 , wherein the second hash
configured to receive a new transaction block and a value is generated via application of the one or more hashing
signed second hash value from the specific member of algorithms to the received new transaction block .
the blockchain network , 16 . The system of claim 14 , wherein the transmitting
the signing module of the processing server is further device of the processing server is further configured to
configured to sign the received new transaction block 45 electronically transmit authentication information to the
using the domain private key, and signing authority.
the transmitting device of the processing server is further 17 . The system of claim 14 ,
configured to electronically transmit the signed new wherein
transaction block for validation by a member of the the signed transaction is signed using a domain private
blockchain network . key corresponding to the signed domain public key, and
11 . The system of claim 10 , wherein the domain public the validation module of the processing server is config
key is signed by a public authority. ured to validate the signed transaction block using the
12 . The system of claim 10 , wherein the domain public member public key and signed domain public key.
key is signed by the signing module of the processing server.
13 . The system of claim 10 , further comprising: 55 18. The system of claim 17 ,wherein validating the signed
an authentication module of the processing server, transaction block includes :
applying the signed domain public key to the signed
wherein
the receiving device of the processing server is further transaction block to yield the new transaction block and
configured to receive authentication information from signed second hash value.
each member of the blockchain network ; and * * * * *