US9948467B2 — Method and system for blockchain variant using digital signatures

Bitcoin Research — Law, Regulation, Markets & Origins (2026)

Patents

2015-12-21

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                                        *   *   * *    *