Digital Wallet Device
Patent Information
- Application Number
- JP2024023844
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2018-02-15
- Filing Date
- 2024-02-20
- Publication Date
- 2025-02-19
- Estimated Expiration
- 2039-02-14
Smart Images

Figure 0007633445000001 
Figure 0007633445000002 
Figure 0007633445000003
Abstract
Description
[Technical field]
[0001] [Related Applications] This application claims the benefit of priority to U.S. Provisional Patent Application No. 62 / 630,923, filed February 15, 2018, the contents of which are incorporated herein by reference in their entirety.
[0002] The present embodiments relate to hardware cryptocurrency wallets, and more particularly, but not exclusively, to electronically isolated hardware cryptocurrency wallets and methods of cryptocurrency account management.
[0003] Cryptocurrencies are based on blockchain technology, described in Non-Patent Document 1, which is a continuously growing list of cryptographically linked and secured records called blocks. A blockchain is a data structure that stores a list of transactions and can be thought of as a distributed electronic ledger that records transactions. Transactions are bundled into blocks, and every block (except the first) references or links back to the previous block in the chain. Computer nodes maintain the blockchain and cryptographically verify each new block and the transactions it contains.
[0004] Each block references or contains the cryptographic hash value of the previous block, making it difficult to modify or tamper with the data (transactions) it contains, as small modifications to the data affect the hash value of the entire block. Thus, the content of the blockchain becomes effectively immutable, even though it is visible to all.
[0005] Cryptocurrencies are digital assets designed to act as a transactional medium, using the blockchain to secure their transactions, control the creation of additional units, and verify transfers of assets.
[0006] Cryptocurrency funds are stored in digital wallets that typically contain a pair of keys. The wallet's public address is created from the public key, and the private cryptographic key is the wallet password, which allows its holder to spend the cryptocurrency contained in the wallet. These cryptocurrency wallets can be stored and accessed in a variety of ways, such as on a hard drive, a smartphone, or on an internet-accessible server. [Prior art documents] [Non-patent literature]
[0007] [Non-Patent Document 1] Satoshi Nakamoto, Bitcoin: A Peer-to-Peer Electronic Cash System, 2008 Summary of the Invention [Means for solving the problem]
[0008] According to some aspects of the present invention, there is provided a digital wallet device for storing and managing cryptocurrency, the digital wallet device comprising: a cryptocurrency management integrated circuit (IC) electronically isolated from other digital devices and isolated from any computer interfaces; a non-transitory computer readable storage medium mounted on the cryptocurrency management IC and storing a cryptocurrency public key and a cryptocurrency private key; a man-machine interface (MMI) for receiving input from a user; at least one processor mounted on the cryptocurrency management IC for executing transaction code to create a cryptocurrency transaction based on the input and sign the transaction using the private key; and unidirectional communication hardware for sending the transaction to a communication device for broadcasting the transaction over a network.
[0009] Optionally, the one-way communication hardware includes a data diode.
[0010] Optionally, the one-way communication hardware includes a presentation unit that presents a machine-readable code encoding a transaction that is captured by the sensor and decoded by the communication device.
[0011] Optionally, the machine readable code is a visual machine readable code and the sensor is an imaging device.
[0012] Optionally, the presentation unit is a screen.
[0013] Optionally, the presentation unit further presents a user interface for use by the user.
[0014] Optionally, the communication device is a mobile device, the sensor is a camera of the mobile device, and the decoding and broadcasting is performed by a software application installed on the mobile device.
[0015] Optionally, the input includes at least one of a destination account address of the transaction and a transaction amount.
[0016] Optionally, the digital wallet device further includes a sensor for capturing a destination machine readable code encoding a destination account address of the transaction, the destination machine readable code being decoded by the at least one processor, and the creation of the transaction being further based on the destination account address.
[0017] Optionally, the digital wallet device further comprises a removable non-transitory computer readable storage medium storing the transaction code.
[0018] Optionally, the non-transitory computer readable storage medium comprises a removable write-only data storage card that stores the private key.
[0019] Optionally, the digital wallet device further comprises an input IC isolated from the cryptocurrency management IC and a sensor embodied on the input IC.
[0020] Further optionally, the digital wallet device further comprises an input component connected to the cryptocurrency management IC and isolated from any other computer interface, and an output component electronically decoupled from the input component, the output component receiving the data pieces from the input IC and presenting to the user a representation of the data pieces indicative of a desired input action by the user according to a physical configuration of the input component.
[0021] Optionally, the man-machine interface (MMI) is a keyboard.
[0022] Optionally, the MMI is a touchscreen.
[0023] Optionally, the at least one processor further executes code to create a private key and a public key.
[0024] Optionally, the private key is further sent via one-way communication hardware.
[0025] Optionally, the at least one processor is further executing code for creating a message request based on the input and signing the message request using the private key, and the message request is transmitted by the one-way communication hardware to the communication device for transmission to a smart contract capable of managing the cryptocurrency based on the public key.
[0026] Optionally, the at least one processor further executes code to create rules or definitions for the cryptocurrency and to sign the rules or definitions using the private key.
[0027] Optionally, the at least one processor further executes code for creating a policy for the secure multi-signature scheme and signing the policy using the private key, the policy being transmitted by the unidirectional communication hardware to the communication device for transmission to a co-signatory of the multi-signature scheme.
[0028] Optionally, the multi-signature scheme is based on one of standard blockchain multi-signature and cryptographic key splitting mechanisms.
[0029] Optionally, the digital wallet device further comprises a mechanical input component for reading the machine-encoded data, and the creation of the transaction is further based on the machine-encoded data.
[0030] According to aspects of some embodiments of the present invention, there is provided a method for transferring cryptocurrency by a digital wallet device that is electronically isolated from other digital devices, the method including receiving input from a user via a man-machine interface (MMI) connected to a cryptocurrency management integrated circuit (IC) isolated from any computer interface; creating, by at least one processor on board the cryptocurrency management IC, a cryptocurrency transaction based on the input and signing the transaction using a cryptocurrency private key stored in a non-transitory computer readable storage medium on board the cryptocurrency management IC; and transmitting the transaction by unidirectional communication hardware to a communication device for broadcasting the transaction over a network.
[0031] An input system is provided for transferring complex data between electronically separated computing devices, comprising an input component connected to an input integrated circuit (IC) isolated from any computer interface, and an output component electronically separated from the input component, the output component receiving pieces of data from the output IC and presenting to a user representations of the pieces of data indicative of desired input actions by the user according to the physical configuration of the input component.
[0032] Optionally, the output component also includes an input facility for receiving an indication of a user's input action.
[0033] Further optionally, an output component further presents to the user the representation adjusted according to the indication of the input action.
[0034] Optionally, the input / output components are combined into one physical device.
[0035] Optionally, the input component is a keyboard and the output component is a surface having a plurality of light sources, each of the light sources adjacent to a key of the keyboard, and the representation includes turning on one of the plurality of light sources to indicate a desired press by the user on a key adjacent to the light source.
[0036] More optionally, when an adjacent key is pressed, a next one of said plurality of light sources is turned on to indicate a desired press by the user on the next adjacent key of the next light source.
[0037] Optionally, the input IC is included in the digital wallet device.
[0038] Optionally, the output IC is included in a communication device connected to a network.
[0039] Optionally, the output component includes a remote indicator that is physically separate from the input component.
[0040] Optionally, the input IC sends an indication of a user's input action to the output IC via unidirectional communication hardware.
[0041] Optionally, the input IC is contained in a first digital wallet device and the output IC is contained in a second digital wallet device.
[0042] In accordance with an aspect of some embodiments of the present invention, there is provided a method of transferring composite data between electronically decoupled computing devices, comprising receiving a piece of data by an output component from an output integrated circuit (IC) and presenting a representation of the piece of data to a user, the representation indicating a desired input action by the user according to a physical configuration of input components, the input component being electronically decoupled from the output component, the input being connected to a component input IC, and the input IC being isolated from any computing interface.
[0043] According to an aspect of some embodiments of the present invention, there is provided a method for creating a cryptocurrency account with a short public address comprising: generating, using at least one processor mounted on an integrated circuit (IC) isolated from any computer interface, a private key and a public key for the cryptocurrency account; commanding transmission of a hash of the public key to be added to a blockchain of the cryptocurrency; receiving via a man-machine interface (MMI) of the device a timestamp within a unique timeslot at which the hash will be added to the cryptocurrency account; verifying that the unique timeslot has elapsed; and commanding transmission of the public key to be registered on the blockchain, wherein the public address of the cryptocurrency account includes a number of bits representing the timestamp and representing the public key.
[0044] Optionally, the public address includes a number of bits created by a function operating on at least one of a timestamp and a public key.
[0045] Optionally, the representation of the public key includes a hash of the public key.
[0046] Optionally, a unique time slot is one calendar day.
[0047] Optionally, a predetermined number of bits of each of the public addresses are represented by a word from a predetermined list of words.
[0048] More optionally, the predetermined number of the plurality of bits is thirteen.
[0049] Optionally, the public address includes 13 bits representing a timestamp, 38 bits representing a public key, and 1 bit representing the method used to create the cryptocurrency account.
[0050] Optionally, the transfer of the hash is performed by sending the hash via one-way communication hardware.
[0051] Optionally, the transfer of the hash is performed by presenting a machine-readable code that encodes the hash by a presentation unit of the device, which is captured by the device sensor and decoded by the communication device to broadcast the hash over the network.
[0052] Optionally, the transfer of the public key is performed by sending the public key via one-way communication hardware.
[0053] Optionally, the transfer of the public key is performed by presenting a machine-readable code that encodes the public key by a presentation unit of the device, which is captured by a device sensor and decoded by the communication device to broadcast the public key over the network.
[0054] According to an aspect of some embodiments of the present invention, there is provided a method of creating a cryptocurrency account with a short public address comprising the steps of receiving from a device that is electronically isolated from other digital devices a hash of a public key generated by the device for the cryptocurrency account, broadcasting the hash to be added to a blockchain of the cryptocurrency, receiving a calendar time stamp within a unique time slot where the hash will be added to the blockchain, presenting the time stamp to a user for entry into the device via a man-machine interface (MMI), receiving the public key from the device after the unique time slot has passed, and transmitting the public key to be registered on the blockchain, wherein the public address of the cryptocurrency account represents the time stamp and includes a number of bits representing the public key.
[0055] Unless otherwise defined, all technical and / or scientific terms used herein have the same meaning as commonly understood by those skilled in the art to which the present invention pertains.Although methods and materials similar or equivalent to those described herein can be used in carrying out or testing embodiments of the present invention, exemplary methods and / or materials are described below.In case of conflict, the patent specification, including definitions, shall prevail.In addition, the materials, methods, and examples are illustrative only and are not necessarily intended to be limiting.
[0056] Implementation of the method and / or system of the present invention may include performing or completing selected tasks manually, automatically, or a combination thereof. Further, depending on the actual implementation and equipment of the method and / or system of the present invention, some selected tasks may be implemented by hardware, software, or firmware, or a combination thereof using an operating system.
[0057] For example, hardware for performing selected tasks according to embodiments of the present invention may be implemented as a chip or circuit. As software, selected tasks according to embodiments of the present invention may be implemented as a number of software instructions executed by a computer using any suitable operating system. In an exemplary embodiment of the present invention, one or more tasks according to exemplary embodiments of the methods and / or systems described herein are performed by a data processor, such as a computing platform for executing a number of instructions. Optionally, the data processor includes volatile memory for storing instructions and / or data, and / or non-volatile storage, such as a magnetic hard disk and / or removable media, for storing instructions and / or data. Optionally, a network connection is provided as well. A display and / or a user input device, such as a keyboard or mouse, are also optionally provided.
[0058] Some embodiments of the present invention are described herein, by way of example only, with reference to the accompanying drawings. Referring now to the drawings in detail, it is emphasized that the particulars shown are by way of example and for the purpose of illustrative discussion of the embodiments. In this regard, the description with reference to the drawings will make apparent to those skilled in the art how embodiments of the present invention may be practiced. [Brief description of the drawings]
[0059] [Figure 1] FIG. 1 is a schematic diagram of a digital wallet device for storing and managing cryptocurrency that is electronically isolated from other digital devices according to some embodiments of the present invention. [Diagram 2] FIG. 2 is a flow chart that generally illustrates a method for transferring cryptocurrency via a digital wallet device, according to some embodiments of the present invention. [Diagram 3] FIG. 3 is a sequence diagram that generally illustrates a method for transferring cryptocurrency by a digital wallet device, according to some embodiments of the present invention. [Figure 4] FIG. 4 is a sequence diagram that generally illustrates a method for a digital wallet device to transfer cryptocurrency via a smart contract, according to some embodiments of the present invention. [Diagram 5] FIG. 5 is a schematic diagram of a digital wallet device having an imaging device for storing and managing cryptocurrency that is electronically isolated from other digital devices according to some embodiments of the present invention. [Figure 6] FIG. 6 is a flow chart that generally illustrates a method for transferring cryptocurrency by a digital wallet device having an imaging device, in accordance with some embodiments of the present invention. [Figure 7] FIG. 7 is a sequence diagram that generally illustrates a method for transferring cryptocurrency by a digital wallet device having an imaging device, according to some embodiments of the present invention. [Figure 8] FIG. 8 is a schematic diagram of two digital wallet devices for storing and managing cryptocurrency that are electronically isolated from other digital devices according to some embodiments of the present invention. [Figure 9] FIG. 9 is a sequence diagram that generally illustrates a process for creating a cryptocurrency account and conducting a transaction with a digital wallet device without an imaging device for a digital wallet device with an imaging device, according to some embodiments of the present invention. [Figure 10] FIG. 10 is a schematic diagram of an input system for transferring composite data between electronically separated computing devices according to some embodiments of the present invention. [Figure 11] FIG. 11 is a sequence diagram that generally illustrates a method for using an input system to transfer composite data between electronically separated computing devices, according to some embodiments of the present invention. [Figure 12] FIG. 12 is a schematic diagram of a digital wallet device having a cryptocurrency management integrated circuit (IC) and an electronically separated input IC according to some embodiments of the present invention. [Figure 13] FIG. 13 is a schematic diagram of a digital wallet device having a cryptocurrency management IC and a communication device having an input IC according to some embodiments of the present invention. [Figure 14] FIG. 14 is a sequence diagram that generally illustrates a procedure for using an input device to transfer composite data between electronically separated digital wallet devices, according to some embodiments of the present invention. [Figure 15] FIG. 15 is a sequence diagram that generally depicts a method for creating a cryptocurrency account using a cryptocurrency protocol that provides a short public account address by an electronically isolated device, in accordance with some embodiments of the present invention. [Figure 16] FIG. 16 is a sequence diagram that generally illustrates a method for creating a cryptocurrency account using a cryptocurrency protocol that provides a short public account address by an online device, according to some embodiments of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0060] The present invention relates to hardware cryptocurrency wallets, and more particularly but not exclusively to electronically isolated hardware cryptocurrency wallets and methods of cryptocurrency account management.
[0061] According to some embodiments of the present invention, the cryptocurrency wallet device is completely isolated from other electronic devices and receives input only from the user via a man-machine interface (MMI), providing maximum security for the private keys stored on the wallet device since there is no way to remotely hack into the wallet device.
[0062] One vulnerability of electronic wallets is that even without physical access to the machine on which the wallet resides, a malicious entity may gain access to the wallet using malicious code and transfer all funds to a third-party account, effectively stealing the funds. Wallets may be encrypted so that they can only be accessed and used if a private key or password is present, but these encryptions are also potentially vulnerable to remote hacking. Existing hardware cryptocurrency wallets can in most cases be disconnected from the internet, but such a connection (whether direct or indirect) is still required for transactions to be broadcast.
[0063] To transfer cryptocurrency from an account stored in the wallet device, a user manually enters, via the wallet device's MMI, such as a keyboard, the amount of cryptocurrency to be transferred and the address of the account to which the cryptocurrency should be transferred. A processor in the wallet device creates a transaction and signs it using the private key of the account stored in the wallet device's storage. To broadcast a transaction, the transaction is sent via unidirectional communication hardware to a communication device that broadcasts the transaction to the blockchain system and is added to the blockchain. The unidirectional communication hardware provides electronic isolation and transfers data by having a component dedicated to sending on one side and a component dedicated to receiving on the other.
[0064] For example, the one-way communication hardware may include a presentation unit on the wallet device (a send-only component) and a sensor on the communication device (a receive-only component). For example, a machine-readable code (e.g., a visual code such as a Quick Response (QR) code or a linear barcode) encoding the transaction is presented on the presentation unit (e.g., a screen) of the wallet device. This code is captured by a sensor (e.g., an imaging device such as a camera), decoded, and broadcast to the blockchain system by the communication device. This may be done, for example, by an application on a mobile phone.
[0065] Alternatively, the unidirectional communication hardware may be a unidirectional network component such as a data diode, which is network hardware that has isolated transmitters (wallet device side) and receivers (communication device side) and allows continuous data movement in only one direction.
[0066] Optionally, the wallet device also includes a sensor, e.g., an imaging device such as a camera, to facilitate entry of the destination account address, which is typically a long code that is difficult for a human to enter without error, and other data required for the transaction. This may be done, for example, by scanning a machine-readable code that encodes the destination account address presented on a mobile phone screen. This wallet device with a sensor is less secure than a wallet device without a sensor, since the device that generates the machine-readable code could be hacked and another account address or even malicious code could be encoded in the machine-readable code.
[0067] Optionally, two wallet devices, one without sensors (secure) and one with sensors (less secure), can be used in combination to provide different levels of security. The wallet device with sensors may be used to store an account with a smaller amount of cryptocurrency for convenient frequent use, while a larger amount of cryptocurrency may be stored in an account stored in a wallet device without sensors and providing maximum security. In this configuration, a new cryptocurrency account for the insecure wallet device may be created by the secure wallet device and transferred to the insecure wallet account, so that the secure wallet device stores the address of this new cryptocurrency account and easily transfers cryptocurrency to this account without requiring further destination account address input. Optionally, a very small amount of cryptocurrency can be stored in an insecure account on the communication device.
[0068] According to some embodiments of the present invention, an input system for transferring complex data between electronically isolated computing devices is provided. This allows a user to input complex and / or long pieces of data into a computing device when a direct electronic connection for transmitting the data is not possible, for example, in a cryptocurrency wallet device. The system includes an input component connected to an integrated circuit (IC) isolated from any computer interface (optionally included in a computing device electronically isolated from other digital devices), and an output component electronically isolated from the input component (optionally including input functionality) that receives data from another IC (optionally included in the computing device), which may be less secure. The output component presents a representation of the data piece to the user, in accordance with the physical configuration of the input component, that indicates to the user how to input the data piece into the input component. For example, the system may include a keyboard input component and a surface output component that includes light sources attached to the keyboard, each of which is adjacent to a key on the keyboard. The light sources are turned on to indicate to the user that the key adjacent to the key should be pressed. When the user presses a key, the surface can also be pressed to present the next light source for the next key or an indication of the user's incorrect key press. For example, the system may include a keyboard input component and a remote indicator, such as a laser, that points to a key on the keyboard.
[0069] According to this embodiment, a cryptocurrency wallet device is provided that includes two ICs that are completely isolated from other electronic devices and completely isolated from each other. The wallet device may be an integrated device such as a credit card shaped device. The cryptocurrency management IC includes a storage device, a processor and is connected to a presentation unit, and the input IC includes a sensor such as an imaging device. Optionally, the wallet device includes an input device as described above, such that the input is connected to the output component and the cryptocurrency management IC is connected to the input component. A representation of the data acquired by the sensor is presented to the user, such that the user can input it to the processor via the input component.
[0070] According to some embodiments of the present invention, cryptocurrencies and cryptocurrency protocols are provided in which account addresses are short, memorable, and / or easy to type. In existing cryptocurrency protocols, e.g., Ethereum, an account address is the last 160 bits of a hash (sha3-256) of a public key associated with the account, which is difficult for a human to type without error, e.g., in the MMI of a wallet device that is completely isolated from other electronic devices. To reduce the bits used, it is possible to require new accounts to register in the blockchain by announcing a public key, while preventing two accounts from being created with the same last bits of the hash. However, when using such a protocol in a digital wallet device that relays on a compromised communication device to announce the public key to the blockchain system, the compromised communication device can generate a second account with the same last bits of the hash and announce the public key of the second account to the blockchain system instead.
[0071] A novel cryptocurrency protocol is proposed in which a wallet device first broadcasts a hash of a public key (different from the address hash) of a newly created account to the blockchain system via a communication device that may be compromised. The hash is created by performing a cryptographic hash function on the public key. The hash is added to the blockchain system at a specific time within a unique time slot entered by the user into the wallet device. Only after the unique time slot has passed, the wallet device announces the unhashed public key to the blockchain system. Then, it can be verified that the hash added to the blockchain system is indeed of the correct public key. The account address includes a number of bits representing the unique time slot of the public key and the hashed number of bits. Optionally, the value of each of the bits of the public account address is represented by a word from a list, so that it is easier for the user to type the word via the MMI and / or to remember the public account address. For example, each 13 bits is represented by a word, and a 52-bit public account address is represented by only 4 words, making it easier to enter into the MMI.
[0072] Before describing at least one embodiment of the invention in detail, it is to be understood that the invention is not necessarily limited in its application to the details of construction and arrangement of components and / or methods set forth in the following description and / or illustrated in the drawings and / or examples. The invention is capable of other embodiments or of being practiced or carried out in various ways.
[0073] The present invention may be a system, a method, and / or a computer program product. The computer program product may include a computer readable storage medium having computer readable program instructions for causing a processor to perform aspects of the present invention.
[0074] A computer-readable storage medium may be a tangible device capable of holding and storing instructions for use by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes portable computer diskettes, hard disks, random access memories (RAMs), read-only memories (ROMs), erasable programmable read-only memories (EPROMs or flash memories), static random access memories (SRAMs), portable compact disk read-only memories (CD-ROMs), digital versatile disks (DVDs), memory sticks, floppy disks, mechanically encoded devices such as punch cards or ridges in grooves structures having computer-readable instructions, and any suitable combination of the foregoing. A computer-readable storage medium as used herein should not be interpreted as being a transitory signal in itself, such as an electric wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a wave guide or other transmission medium (e.g., a light pulse passing through a fiber optic cable), or an electrical signal transmitted through a wire.
[0075] The computer-readable program instructions described herein can be downloaded from the computer-readable storage medium to each computing / processing device or to an external computer or external storage device over a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and transfers the computer-readable program instructions for storage in the computer-readable storage medium in the respective computing / processing device.
[0076] The computer readable program instructions for carrying out the operations of the present invention may be either source code or object code written in any combination of one or more programming languages, including assembler instructions, instruction set architecture (ISA) instructions, machine language, machine dependent instructions, microcode, firmware instructions, state setting data, or object oriented programming languages such as Smalltalk, C++, and conventional procedural programming languages such as the "C" programming language or similar programming languages. The computer readable program instructions may be executed entirely on the user's computer, as a stand-alone software package, partially on the user's computer, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), can execute computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry to perform aspects of the present invention.
[0077] Aspects of the present invention are described herein with reference to flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present invention. It will be understood that each block of the flowcharts and / or block diagrams, and combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer readable program instructions.
[0078] These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine such that the instructions, executed via the processor of the computer or other programmable data processing apparatus, create means for performing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams. These computer readable program instructions may also be stored on a computer readable storage medium that can direct a computer, programmable data processing apparatus, and / or other apparatus to function in a particular manner, such that a computer readable storage medium having instructions stored therein comprises a product including instructions that perform aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.
[0079] The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be executed on the computer, other programmable apparatus, or other device, such that the instructions executing on the computer, other programmable apparatus, or other device perform the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams, to generate a computer-implemented process.
[0080] The flowcharts and block diagrams in the figures illustrate possible implementation architectures, functions, and operations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or part of instructions, comprising one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions described in the blocks may occur out of the order described in the figures. For example, two blocks shown in succession may in fact be executed substantially simultaneously, or may sometimes be executed in the reverse order, depending on the functionality involved. It should also be noted that each block of the block diagrams and / or flowchart diagrams, as well as combinations of blocks in the block diagrams and / or flowchart diagrams, may be implemented by a special-purpose hardware-based system that executes the specified functions or operations, or executes a combination of special-purpose hardware and computer instructions.
[0081] Referring now to the drawings, FIG. 1 is a schematic diagram of a digital wallet device for storing and managing cryptocurrency electronically isolated from other digital devices, according to some embodiments of the present invention.
[0082] The digital wallet device 100 includes a cryptocurrency management IC 101 that is isolated from any computer interface. A computer interface can include any direct digital connection, either physical or wireless, to another computer device that transfers data. This means that the cryptocurrency management IC 101 does not include any electronic connectors, wireless interfaces, sockets, and / or electronic connections that connect to any IC outside of the digital wallet device 100. The digital wallet device 100 does not have two-way digital communication with other electronic devices, such as computers, digital components and / or ICs, Internet of Things (IoT) devices, and / or any other electronic devices. The digital wallet device 100 is non-interactive and can only present or transmit data, but cannot receive data directly from another electronic device.
[0083] The cryptocurrency management IC 101 includes a non-transitory computer-readable storage medium (or memory) 102 that stores one or more cryptocurrency private and public key pairs. The memory 102 may include, for example, one or more non-transitory persistent storage devices, such as a hard drive, a flash array, and / or the like.
[0084] The cryptocurrency may be any type of compatible cryptocurrency based on the blockchain, such as Ether, Ripple, NEO, and / or any other cryptocurrency. The cryptocurrency may also be specifically designed for best performance with the digital wallet device 100, as described above and below.
[0085] The blockchain is managed by a blockchain system, which may be a public blockchain computer system that includes many different individual computer systems operated by different entities that maintain a single blockchain. Alternatively, a blockchain system may include one or more individual computer systems all operated by a single entity (e.g., a private or closed blockchain computer system). A blockchain system includes many different computer nodes that each operate to "mine" and thereby validate transactions submitted to the blockchain. When a transaction is broadcast to the blockchain system, at least one node receives the transaction and can propagate the transaction to other nodes in the blockchain system. Cryptocurrency may be transferred from one cryptocurrency account to another by registering the transferring transaction on the blockchain.
[0086] Cryptocurrency management IC 101 also includes at least one processor 103. Processor 103 may include one or more processors configured for parallel processing, such as a cluster and / or one or more multi-core processors, neural network hardware, and / or any other processing hardware.
[0087] The digital wallet device 100 also includes an MMI 104 for receiving input from a user. The MMI 104 may include, for example, a keyboard, which may be a physical keyboard having physical buttons or a virtual keyboard presented on a touch screen, a pointing device such as a computer mouse, a joystick controller, and / or any other device for direct input by a human.
[0088] The digital wallet device 100 also includes one-way communication hardware, which may be, for example, a presentation unit 105. The presentation unit 105 presents machine-readable code and, optionally, a user interface. The presentation unit 105 may be a screen, a plotter, a printer, an audio output device such as a speaker, a three-dimensional graphics device, an antenna for transmitting electromagnetic waves such as a radio, and / or other output device for presentation to humans and / or machines.
[0089] The digital wallet device 100 also includes a power source, such as a battery and / or a connection to an external power source.
[0090] Optionally, the digital wallet device 100 also includes a removable non-transitory computer-readable storage medium (memory) 106, such as a memory card, flash card, or removable hard disk. The removable memory 106 can store transaction code and / or any other software modules, such as an OS, application code, tools, agents, services, scripts, and / or the like, each including a number of program instructions that may be executed by the processor 103. This provides the option to update, upgrade, and / or otherwise replace any of these software modules by removing and replacing the removable memory 106, for example, to add new operations and / or to add support for new types of cryptocurrencies. Alternatively, some or all of these software modules are stored in the memory 102.
[0091] Optionally, the digital wallet device 100 and / or memory 102 also include a removable write-only data storage card, such as a smart card, chip card, or integrated circuit card (ICC), and / or any pocket-sized card with an embedded integrated circuit. Optionally, the digital wallet device 100 and / or memory 102 also include a hardware security module (HSM). The write-only card or HSM can be used to create and store public and private keys for an account. The write-only card or HSM includes an integrated processor that can execute instructions to sign using the private key, e.g., to sign a transaction. The private key cannot be copied from the write-only card, providing added security from physical theft of the private key. This also allows a user to easily insert or replace account information in the digital wallet device 100, and optionally allows the write-only card to be stored separately to prevent physical theft.
[0092] Optionally, the digital wallet device 100 is physically housed in a tamper-proof enclosure. Optionally, the enclosure is designed to detect tampering and react, for example by deleting data in the memory 102.
[0093] Reference is now made to Figure 2, which is a flow chart that generally illustrates a method for transferring cryptocurrency by a digital wallet device, in accordance with some embodiments of the present invention. Reference is also made to Figure 3, which is a sequence diagram that generally illustrates a method for transferring cryptocurrency by a digital wallet device, in accordance with some embodiments of the present invention.
[0094] First, input from a user is received by the MMI 104, as shown at 201 and 301. The input may include a destination account address for the transaction and an amount for the transaction. The input may also include a desired transaction fee, depending on the type of cryptocurrency, and / or any other information required to create the transaction. The destination account address may be selected from known destination account addresses, for example, from a contact list stored in the memory 102.
[0095] The input may be of any data type, for example, an integer, a Boolean, a character, an alphanumeric string, and / or any other type. Optionally, the input data type may include or be converted to the hexadecimal number system commonly used in cryptocurrencies.
[0096] Next, as shown at 202, a cryptocurrency transaction is created and signed by the processor 103 by executing the transaction code. The transaction is created using the destination account address and amount (input received from the user) and optionally other information such as a gas limit, a nonce (which increments with every transaction), and / or other metadata. The transaction is based on a protocol related to the specific cryptocurrency, for example, the Ethereum protocol for the Ether cryptocurrency. This may include implementing a cryptographic hash function such as Sha3, or any other function depending on the type of cryptocurrency. The transaction is signed using the cryptocurrency's private key stored in memory 102. The signature is performed using, for example, the Elliptic Curve Digital Signature Algorithm (ECDSA), the Rivest-Shamir-Adleman (RSA) cryptosystem, the Digital Signature Algorithm (DSA), the Rabin cryptosystem, and / or any other algorithm or protocol based on the type of cryptocurrency.
[0097] A machine-readable code encoding the transaction is then presented on the presentation unit 105, as shown at 203. The machine-readable code may be, for example, a visual code, such as a linear or matrix barcode, such as a QR code, a color-coded image, and / or other visual representation of data that can be identified by a computer. The machine-readable code may also include sound waves, electromagnetic waves, and / or any other output.
[0098] The machine-readable code is then captured by a sensor, such as an imaging device 121, as shown at 204 and 302, and decoded by the communication device 120 to broadcast the transaction over the network 130 to the blockchain system to be added to the blockchain, as shown at 303.
[0099] Alternatively, the transaction data may be transferred to the communication device 120 via any other unidirectional communication hardware, for example, via a data diode.
[0100] Optionally, the communication device 120 verifies that there is enough cryptocurrency remaining in the cryptocurrency account to perform the transaction, which cannot be done by the digital wallet device 100 because information about the account is located in the blockchain system and requires network communication to obtain. Optionally, if there is not enough cryptocurrency remaining in the cryptocurrency account to perform the transaction, the communication device 120 cancels the transaction, for example, by deleting the transaction without broadcasting it.
[0101] The imaging device 121 may include one or more light capture sensors, such as a single or dual sensor camera on a mobile client device, a webcam, a single lens reflex camera (SLR), an action camera, a depth sensing camera, an omnidirectional camera, a camera included in a wearable device such as “smart glasses”, and / or any type of digital camera.
[0102] The sensors may also include acoustic or sound sensors such as microphones, vibration sensors, electromagnetic sensors, antennas capable of receiving electromagnetic waves, and / or any other devices, modules, and / or subsystems intended to detect their surroundings.
[0103] The communication device 120 may include one or more computing devices, such as a mainframe computer, an enterprise server, a workstation, multiple connected computers, one or more virtual machines, and / or a personal computer. The communication device 120 may be, for example, a processing node, a computer, a laptop, a server, a mobile device, a wearable device such as "smart glasses," and / or any processing device.
[0104] The operations of decoding the machine-readable code and / or broadcasting the transaction may be performed by a software application installed on the communication device 120. The application may perform other operations similar to those performed by existing cryptocurrency wallet applications, such as, for example, presenting information about any cryptocurrency accounts (including accounts stored in the digital wallet device 100), creating and / or managing unsecured cryptocurrency accounts, presenting a log of operations performed, and / or any other operation.
[0105] The communication device 120 may be connected to or may include the imaging device 121. The communication device 120 includes a communication module, such as a network card, a communication chip, and / or any other communication component for connecting to the network 130.
[0106] Network 130 may include, for example, a local area network (LAN), a wireless network such as a mobile network, a wireless local area network such as a wireless LAN (WiFi), a wireless personal area network (WPAN) such as the Bluetooth protocol, near field communication (NFC), and / or any other network.
[0107] Optionally, a new account for cryptocurrency can be created by the processor 103 by generating a private and public key pair. The key for the new account may be transferred to another device so that the account address is known to the digital wallet device 100.
[0108] Optionally, an existing cryptocurrency account can be inserted into the digital wallet device 100 and stored in the memory 102. This can be done by the user entering the account's private key via the MMI 104.
[0109] Optionally, an existing cryptocurrency account may be extracted from memory 102 to another device. This may be done, for example, via one-way communication hardware, by presenting a machine-readable code that encodes the private key of the existing cryptocurrency account to the presentation unit 105.
[0110] Optionally, use of the digital wallet device 100 and / or the communication device 120 requires a user authentication process, for example requiring two-factor authentication including a password and biometric data.
[0111] Optionally, for cryptocurrencies that require input from the blockchain system to create a transaction (such as NEO), a smart contract based on the blockchain system can be used. This is done to avoid inputting this blockchain system input by the user. A smart contract on the blockchain system is created that holds the cryptocurrency owned by the account stored in the digital wallet device 100. The contract can transfer the cryptocurrency from the account without a transaction created by the digital wallet device 100. To transfer cryptocurrency from a third party to the account, the third party transfers the cryptocurrency to the contract.
[0112] Reference is also made to FIG. 4, which is a sequence diagram that generally illustrates a method for transferring cryptocurrency by a digital wallet device via a smart contract, according to some embodiments of the present invention. When a user wants to transfer cryptocurrency from an account, he inputs the destination account address and amount into the digital wallet device 100, as described above. As shown at 401, the digital wallet device 100 creates a message request (optionally by the processor 103). The message request includes the destination account address, the amount, a nonce, and is signed using the private key of the account. The message request is then forwarded to the communication device 120 (optionally via the presentation unit 105), as shown at 402. The communication device 120 then wraps the message request with a transaction and forwards the message request to the contract, as shown at 403. As shown at 404, the contract verifies the signature of the account by using the public key of the account. If the message request is in the correct format with all required data and the signature is verified, the contract executes the transaction by adding it to the blockchain, as shown at 405. From the user's perspective, this process is identical to transferring cryptocurrency directly from the digital wallet device 100 by creating a transaction.
[0113] Optionally, the digital wallet device 100 (optionally by the processor 103) creates transaction rules and / or definitions, e.g., rules for creating smart contracts, message requests for creating smart contracts, policies for multi-signature schemes, and / or any other rules and / or definitions to be broadcast to the blockchain and / or sent to any other entities. Policies for multi-signature schemes may include, for example, standard blockchain multi-signature rules (e.g., using Bitcoin scripts) and policies for cryptographic key splitting mechanisms such as multi-signatures based on multi-party computation (MPC). The digital wallet device 100 signs the transaction rules and / or definitions using a private key. Since the digital wallet device 100 is disconnected from the Internet, this ensures that the transaction rules and / or definitions are authentic. The transaction rules and / or definitions may then be sent to the communication device 120, which broadcasts the transaction rules and / or definitions to the blockchain and / or sends the transaction rules and / or definitions to other entities. For example, the digital wallet device 100 creates rules for multi-signatures (e.g., the sum of all transactions broadcast by the wallet to the blockchain in a day is less than 100 coins). The rules are signed with a private key and then transmitted to the co-signatories of the multi-signature scheme (participants in the multi-signature process) and cannot be compromised or altered. Each co-signer decides whether or not to sign based on the rules. A less secure digital wallet that may be connected, deployed, and / or used by the communication device 120, for example, may then use the rules securely. This prevents a situation in which the communication device 120 is compromised, e.g., by a hacker attack, and the rules created by the less secure digital wallet are flawed, causing the co-signatories to sign fraudulent transactions based on the flawed rules.
[0114] Optionally, the digital wallet device 100 also includes a sensor, such as an imaging device 107, or any other sensor described above, to capture the machine-readable code. Reference is now made to Fig. 5, which is a schematic illustration of a digital wallet device having an imaging device for storing and managing cryptocurrency, electronically isolated from other digital devices, in accordance with some embodiments of the present invention. Reference is also made to Fig. 6, which is a flow chart that generally represents a method for transferring cryptocurrency by a digital wallet device having an imaging device, in accordance with some embodiments of the present invention. Reference is also made to Fig. 7, which is a sequence diagram that generally represents a method for transferring cryptocurrency by a digital wallet device having an imaging device, in accordance with some embodiments of the present invention.
[0115] Imaging device 107 may include any one or more light capture sensors as described above for imaging device 121 .
[0116] First, as shown at 601, a machine-readable code encoding the destination account address of the transaction, and optionally any other inputs such as the amount of the transaction, is presented, for example, on the presentation unit 122 of the communication device 120. The presentation unit 122 may be, for example, a screen as described above for the presentation unit 105. The destination account address, amount and / or other inputs may be pre-inserted or selected by a user in an application installed on the communication device 120. In this case, using a machine-readable code (as opposed to, for example, using continuous unidirectional communication hardware such as a data diode) provides an inherent limit on the amount of data transferred, thus improving security.
[0117] The machine-readable code is then captured by the imaging device 107 and decoded by the processor 103, as shown at 602 and 701.
[0118] Next, as shown in 603, the processor 103 creates a cryptocurrency transaction using the destination account address and amount (decoded from the machine-readable code) and signs the transaction as described above for 202 and 302.
[0119] The steps indicated at 604-605 and 702-703 are carried out as described above for 203-204 and 302-303.
[0120] Optionally, an existing cryptocurrency account can be inserted into the digital wallet device with the imaging device 107, for example, by capturing machine-readable code that encodes the private key of the existing account presented by the communication device 120.
[0121] Optionally, two digital wallet devices, one with a sensor such as an imaging device and one without, may be used in conjunction to provide different levels of security.
[0122] Reference is now made to Figure 8, which is a schematic diagram of two digital wallet devices for storing and managing cryptocurrency, electronically isolated from other digital devices, according to some embodiments of the present invention. In this configuration, a large amount of cryptocurrency may be stored in an account stored in digital wallet device 801, while a smaller amount of cryptocurrency may be stored in an account stored in digital wallet device 802, which has an imaging device and is therefore less secure, is more frequently used, and readily employs an imaging device to enter destination account addresses.
[0123] Optionally, for convenience in transferring cryptocurrency from digital wallet device 801 to a frequently used digital wallet device 802, a new account may be created by digital wallet device 801 for use with digital wallet device 802, and thus this account address is known to digital wallet device 801 and no input is required.
[0124] Reference is now made to FIG. 9, which is a sequence diagram that generally illustrates a method for creating a cryptocurrency account and performing a transaction by a digital wallet device having an imaging device versus a digital wallet device not having an imaging device, in accordance with some embodiments of the present invention.
[0125] A new cryptocurrency account is created (901) by a processor in digital wallet device 801 by generating a private and public key pair. The key is transferred to digital wallet device 802 (902), for example by presenting a machine-readable code encoding the key to a presentation unit in digital wallet device 801 and capturing the code with an imaging device in digital wallet device 802. Cryptocurrency may be transferred (904) from an existing cryptocurrency account stored in digital wallet device 801 to a new account stored in digital wallet device 802 by transaction as described above, using a communication device 803 (903) that broadcasts the transaction to the blockchain system. Creating a transaction is simple for the user, since digital wallet device 801 knows the account address and no input is required. Cryptocurrency can now be transferred from the new cryptocurrency account stored in digital wallet device 802 (905-907) as described above for 701-703.
[0126] Optionally, the digital wallet device 100 also includes a mechanical input component that reads mechanically encoded data having a finite number of characters, such as the destination account address of the transaction, and / or any other data required for the transaction according to the type of cryptocurrency. This may include, for example, punch cards, punch tape, magnetic ink character recognition (MIRC), and / or other readable mechanical storage of data. A user can view the data encoded in the mechanical input component and verify that it is the correct data before entering it into the digital wallet device 100. The data may be mechanically encoded by a device, such as a punch machine, optionally connected to the communication device 120.
[0127] Optionally, the MMI 104 includes an input system that provides instructions to the user and guides them through the input of the destination account address.
[0128] Reference is now made to Fig. 10, which is a schematic illustration of an input system for transferring composite data between electronically separated computing devices, in accordance with some embodiments of the present invention. Reference is now made to Fig. 11, which is a sequence diagram that generally illustrates a method of using an input system for transferring composite data between electronically separated computing devices, in accordance with some embodiments of the present invention.
[0129] This method provides a solution for inputting complex and / or long pieces of data into a computing device when a direct electronic connection for transferring the data is not possible.
[0130] The input device 1000 includes an input component 1001 connected to an input IC 1010 that is electronically separate from other digital devices, such as the digital wallet device 100. The input device 1000 also includes an output component 1002 that is electronically separate from the input component 1001 and is connected to an insecure output IC 1020 that is included in, for example, the communication device 120. The input component 1001 and the output component 1002 may be separate, adjacent, or integrated into the same physical device.
[0131] First, the output component 1002 receives (1101) a piece of data from the output IC 1020 to be input to the input IC 1010. The output component 1002 then presents (1102) a representation of the piece of data to the user. This representation indicates an input action by the user according to the physical configuration of the input component 1001. The representation may include, for example, a visual representation such as a series of lights, a pattern indicating a button to be pressed by the user on the input component 1001, one or more single scribbles or shapes presented on the screen to be drawn by the user on the touch screen of the input component 1001, a series of sounds, and / or any other indication. The representation may be an encoded version of the piece of data.
[0132] The user then inputs data via the input component 1001 according to the representation (1103), and the data piece is forwarded to the input integrated circuit 1010 (1104). Optionally, an indication of the data piece input by the user is also forwarded to the output IC 1020 (1106), e.g., via the output component 1002 (1105) if the output component 1002 also includes input functionality, or directly from the input IC 1010 via one-way communication. The output component 1002 can then present a representation that is adjusted based on the user's input. Optionally, when the user inputs a correct data piece, a next representation of the next data piece input to the input integrated circuit 1010 is presented by the output component 1002 (1107). Optionally, if the user inputs an incorrect data piece, an error indication is presented by the output component 1002 (1108). The user can then enter a command to restart the process (1109 and 1110), so that the original representation is re-presented by the output component 1002 for the user to correctly re-enter the piece of data.
[0133] For example, the input component 1001 may be a keyboard and the output component 1002 may include a surface attached to the keyboard. For example, if the surface is placed over the keyboard and the keyboard is transparent, one can blow on the keyboard. The surface may include light sources, such as light emitting diodes (LEDs), each adjacent to a key on the keyboard. The light sources on the surface are turned on to indicate to the user that an adjacent key should be pressed next. When the user presses a key, the surface is also pressed and the input is returned to the output IC 1020. When the user presses the correct key, the light source adjacent to the next key is turned on and the user is guided through a sequence of key presses. When the user presses an incorrect key, for example, all light sources may be turned on simultaneously to indicate an error and the first light source may be turned on to restart the sequence after the user presses a key to resume processing.
[0134] As another example, input component 1001 may be a keyboard and output component 1002 may include a remote indicator that directs the user to the next piece of data. For example, the remote indicator may include a laser pointed at the correct key to press next, an augmented reality device that presents an image representation of the keyboard to the user's vision, an audio speaker that reads to the user the keys to press, and / or other display device that is physically separate from input component 1001.
[0135] In another example, the input component 1001 may be a touch screen on which a pattern may be drawn by a user, and the output component 1002 may be a screen that presents the desired pattern to the user. The two screens may be integrated into one physical device.
[0136] Reference is made to FIG. 12, which is a schematic diagram of a digital wallet device having a cryptocurrency management IC and an electronically separated IC, according to some embodiments of the present invention.
[0137] Optionally, the digital wallet device 100 also includes an input IC 108, which is equipped with a sensor such as an imaging device 107. The input IC 108 is isolated from the cryptocurrency management IC 101 and, optionally, isolated from any computer interface. Alternatively, the input IC 108 receives data via other unidirectional communication hardware such as a data diode. Both ICs may be integrated into the same physical device, for example a credit card shaped device. Optionally, the input IC 108 is connected to a presentation unit, which presents the data acquired by the imaging device 107, for example the destination account address of the transaction, to the user, so that the user can input the data via the MMI 104.
[0138] Optionally, the digital wallet device 100 includes an input system 109, as described above, for transferring composite data between electronically separated computing devices and having two isolated portions. The input IC is connected to an output component of the input system 109, and the cryptocurrency management IC 101 is connected to an input component of the input system 109. Once a piece of data has been acquired via the one-way communication hardware, for example by the imaging device 107, a representation of the piece of data is presented by the output component of the input system 109, and a user may input the piece of data via the input component of the input system 109.
[0139] Reference is now made to FIG. 13, which is a schematic diagram of a digital wallet device having a cryptocurrency management IC and a communications device having an input IC, according to some embodiments of the present invention.
[0140] In this exemplary configuration, input to the more secure digital wallet device 1301 (e.g., equivalent to digital wallet device 100) is based on instructions from an input IC 1303 of a less secure device, such as a communication device 1302, which may be connected to a network (e.g., equivalent to communication device 120) or to a less secure digital wallet device (e.g., equivalent to digital wallet device 802). The input IC 1303 uses a remote indicator 1304, such as a laser device, that points to the keyboard 104 of the digital wallet device 1301. The remote indicator 1304 may be part of the digital wallet device 1301 (physically connected but electronically separate), part of the communication device 1302, or may be a separate device.
[0141] Reference is now made to FIG. 14, which is a sequence diagram that generally illustrates a method for using an input system for transferring compound data between electronically separated digital wallet devices, according to some embodiments of the present invention.
[0142] First, the input IC 1303 creates a data string to be entered, for example, by a user (1401). Next, the input IC 1303 sends a first piece of data to the remote indicator 1304 (1402). The remote indicator 1304 then indicates the piece of data to the user, for example, by pointing a laser beam at a key on the MMI 104 (1403). The user then inputs via the MMI 104 according to the instructions (1404), and the piece of data is transferred to the cryptocurrency management IC 101 (1405). Then, an indication of the piece of data entered by the user (or the currently entered data string) is sent from the cryptocurrency management IC 101 to the input IC 1303 via the one-way communication hardware (1406). For example, the indication of the piece of data is sent to the input IC 1303 via the data diode 1305. Alternatively, a presentation unit in the digital wallet device 1301 presents the instructions which are captured by an imaging device in the communication device 1302. Transmitting the instructions in this manner is vulnerable to errors but secure against malicious attacks.
[0143] Then, when the user inputs the correct piece of data, the input IC 1303 sends the next piece of data to the remote indicator 1304, which indicates the user of the data piece (1407). Optionally, when the user inputs an incorrect piece of data, an indication of the error is presented by the remote indicator 1304 (1408). The user can then input a delete command for the last piece of data (1409), which is forwarded to the cryptocurrency management IC 101 (1410). The cryptocurrency management IC 101 then transmits the currently input data string to the input IC 1303 without the incorrect piece of data (1411). The input IC 1303 then resends the correct piece of data to the remote indicator 1304 indicating the user of the data piece (1412).
[0144] Optionally, the digital wallet device 1301 can deactivate and / or block the remote indicator 1304. Optionally, the digital wallet device 1301 can present an indication to the user, for example by being presented on a presentation unit, that the remote indicator 1304 should be inactive. This helps, for example, to prevent a hacker who has gained control via the communication device 1302 from guiding the user to enter incorrect information when sensitive information is entered using the MMI 104.
[0145] Optionally, cryptocurrencies may be used that have short and / or memorable account addresses, thus making it easier for users to enter destination account addresses for transactions via the MMI 104.
[0146] In current cryptocurrency protocols, e.g. Ethereum, an account address is the last 160 bits of the hash of the public key associated with that account. If fewer bits are used, e.g. 52 bits, then there is a high probability (after about 226 = 32 million accounts) that two accounts with the same 52-bit hash will be created. This is problematic because the blockchain system and users cannot distinguish between them and funds will be transferred to the wrong account. A possible option to solve this challenge is to request new accounts to register on the blockchain by announcing their public key. If an account is created with the same 52-bit hash as an existing account, the new account will be rejected and not registered. However, it may not be secure to use such a protocol in a digital wallet device that relays the communication device to broadcast to the blockchain system, and after the account is created, the public key is transferred to the communication device to announce the public key to the blockchain system. At that stage, a communication device infected with malicious software or hacked may try to create a second account with the same 52-bit hash as the new account and announce the public key of the second account to the blockchain system. The funds designated for the new account are then transferred instead to the second account.There is a need for a cryptocurrency protocol that allows for easy and secure use of digital wallet devices that relay over untrusted communication devices.
[0147] Reference is now made to FIG. 15, which is a sequence diagram that generally illustrates a method for creating a cryptocurrency account using a cryptocurrency protocol that provides a short public account address by an electronically separated device, according to some embodiments of the present invention.
[0148] First, a private key and a public key for a cryptocurrency account are generated by another digital device (1501), e.g., a device electronically detached from the digital wallet device 100. A hash of the public key is presented on the presentation unit 105, captured by the imaging device 121 (1502), and sent by the communication device 120 and added to the blockchain (1503). This hash is different from the hash that represents the public key of the account address, e.g., other than sha3-256. A calendar time stamp of the hash added to the blockchain is received by the communication device 120 (1504) and presented to the user for input into the digital wallet device 100 via the MMI 104 (1505). A standard time for the time stamp (e.g., Greenwich Mean Time (GMT)) can be used. The calendar time is within a unique time slot defined by the protocol. The unique time slot may be, for example, an hour, a day, a week, and / or any other shorter, longer, or intermediate time slot. Only after verifying that this unique time slot for adding to the blockchain has elapsed (1506) is the unhashed public key presented on the presentation unit 105, captured by the imaging device 121 (1507), and transmitted by the communication device 120 to be registered in the blockchain (1508). The public key is then matched against the hash of the public key added to the blockchain to ensure it is the same account and that there are no other accounts with multiple bits of the same hash as the new account.
[0149] Optionally, to ensure that the correct calendar time is known to the digital wallet device 100, the digital wallet device 100 may include a clock, which may be powered by a separate backup power source, such as a battery, for example.
[0150] The public account address can then include bits representing a timestamp and fewer bits representing a public key, for example by hashing. The public account address can include bits created by a function that operates on the timestamp and / or the public key, for example generating bits representing a hash of a combination of both the timestamp and the public key. For example, the public account address can include 52 bits, where 13 bits represent the timestamp and 39 bits are a hash of the public key. For example, a date timestamp represented by 13 bits will not be repeated for approximately 22 years. The blockchain contains all the information about the public account address, i.e., the timestamp and the public key whose initial hash was added to the blockchain. The creation of the public account address can also include other steps, such as performing a hash (e.g., a RIPEMD-160 hash) on the result of the hash, adding a byte representing a version, converting the result from the byte string to another format such as a base58 string, and / or any other function or algorithm.
[0151] Optionally, the protocol can also be used to create cryptocurrency accounts by online devices such as communication device 120. In this case, the public account address can contain only the first 38 bits of the hash of the public key, with one bit indicating the manner in which the account was created. This method saves time waiting for a unique time slot to pass.
[0152] Reference is now made to FIG. 16, which is a sequence diagram that generally illustrates a method for creating a cryptocurrency account using a cryptocurrency protocol that provides a short public account address by an online device, according to some embodiments of the present invention.
[0153] An application installed on the communication device 120 generates (1601) a private key and a public key for a cryptocurrency account. The public key is added (1602) to the blockchain and a confirmation is received (1603). After some time has passed and several blocks have been created (1604) in the blockchain, a block containing the public key and several subsequent blocks is received (1605) and verified (1606) by the communication device 120 to verify that the account is registered. Because several blocks need to be created, the wait time may be less than the length of the unique time slot.
[0154] Optionally, cryptocurrency accounts can be created using the protocol without registering on the blockchain (e.g., in the absence of latency and / or to avoid transaction fees), in which case the public account address can contain the usual last 160 bits of the hash of the public key.
[0155] Optionally, each number of bits of the hash of the public account address is represented by a word from a list, so that it is easier for a user to enter a word via the MMI and / or memorize the public account address. For example, each 13 bits may be represented by a word from a list of 213=8192 words, so that a 52-bit public account address is represented by four words. A public account address including the last 160 bits of the hash of the public key may be represented by 13 words.
[0156] Optionally, transactions to unregistered addresses are not accepted by the blockchain system. This is necessary to prevent a situation where a hacked communication device falsely confirms to a user that an address is registered on the blockchain without registering it, causing the account to be unable to receive cryptocurrency transferred to it, or to prevent a malicious entity from creating an account based on a transaction with the purpose of receiving transferred cryptocurrency. Optionally, the transaction may include an expiration date, after which it is no longer accepted.
[0157] The description of various embodiments of the present invention is presented for illustrative purposes, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terms used in this specification are selected to best explain the principles of the embodiments, practical applications or technical improvements to the technology found in the market, or to enable those skilled in the art to understand the embodiments disclosed herein.
[0158] It is expected that many related digital wallets will be developed during the life of the patent starting with this application, and the scope of the term digital wallet is intended to include a priori all such new technologies.
[0159] The terms "comprises," "comprising," "includes," "including," "having," and conjugations thereof mean "including, but not limited to." This term encompasses the terms "consisting of" and "consisting essentially of."
[0160] The phrase "consisting essentially of" means that a composition or method may include additional components and / or steps, but only if the additional components and / or steps do not materially alter the basic and novel characteristics of the claimed composition or method.
[0161] As used herein, the singular forms "a," "an," and "the" include plural references unless the context clearly dictates otherwise. For example, the words "a compound" or "at least one compound" can include a plurality of compounds, including mixtures thereof.
[0162] The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment described as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments, and / or as excluding the incorporation of features from other embodiments.
[0163] The term "optionally" is used herein to mean "provided in some embodiments and not provided in other embodiments." Any particular embodiment of the invention may include multiple "optional" features unless such features are inconsistent.
[0164] Throughout this application, various embodiments of the invention may be presented in the form of a range. It should be understood that the description in the form of a range is merely for convenience and brevity and should not be construed as an inflexible limitation on the scope of the invention. Thus, the description of a range should be considered to have specifically disclosed all possible subranges as well as individual numerical values within that range. For example, the description of a range such as 1-6 should be considered to have specifically disclosed subranges such as 1-3, 1-4, 1-5, 2-4, 2-6, 3-6, etc., as well as individual numbers within that range, such as 1, 2, 3, 4, 5, and 6. This applies regardless of the breadth of the range.
[0165] Whenever a numerical range is given herein, it is meant to include any recited numbers (fractional or integer) within the given range. The phrases "ranging between" and "ranging from" a first indicated number and a second indicated number and the phrase "ranging from" a first indicated number to a second indicated number are used interchangeably herein and are meant to include the first indicated number and the second indicated number and all decimal and integer numbers therebetween.
[0166] It will be understood that certain features of the invention that are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment. Conversely, for brevity, various features of the invention that are described in the context of a single embodiment may also be provided separately or in any suitable subcombination or as appropriate with any other embodiment of the invention described. Certain features described in the context of various embodiments are not to be considered essential features of those embodiments, unless the embodiment is inoperable without those elements.
[0167] While the invention has been described in conjunction with specific embodiments thereof, it is evident that many alternatives, modifications, and variations will be apparent to those skilled in the art. Accordingly, the present invention is intended to embrace all such alternatives, modifications, and variations that fall within the spirit and broad scope of the appended claims.
[0168] All publications, patents, and patent applications mentioned in this specification are incorporated herein by reference in their entirety as if each individual publication, patent, or patent application was specifically and individually indicated to be incorporated herein by reference. Furthermore, citation or identification of any reference in this application should not be construed as an admission that such reference is available as prior art to the present application. To the extent that section headings are used, they should not be construed as necessarily limiting.
[0169] Additionally, all priority documents of this application are incorporated herein by reference in their entirety.
Claims
1. A digital wallet device for storing and managing cryptocurrency, the digital wallet device being electronically isolated from other digital devices; a cryptocurrency management integrated circuit (IC) isolated from any computer interface; A non-transitory computer-readable storage medium mounted on the cryptocurrency management IC and storing a public key of a cryptocurrency and a private key of the cryptocurrency; At least one of a keyboard, a touch screen, and a pointing device connected to the cryptocurrency management IC and isolated from any other computer interface for receiving input from a user; at least one processor on board the cryptocurrency management IC for receiving input via at least one of a keyboard, a touch screen, and a pointing device, and for executing transaction code to create a transaction in the cryptocurrency based on the input and to sign the transaction using the private key; unidirectional communication hardware for transmitting the transaction over a unidirectional channel to a communication device for broadcasting the transaction over a network; Equipped with the digital wallet device does not have sensors for capturing images or detecting the surroundings of the digital wallet that are electronically connected to the cryptocurrency management IC or the at least one processor; Digital wallet device.
2. the one-way communication hardware includes a data diode; 2. The digital wallet device of claim 1.
3. the one-way communication hardware includes a presentation unit that presents a machine-readable code encoding the transaction that is captured by a sensor and decoded by the communication device; 2. The digital wallet device of claim 1.
4. the machine-readable code is a visual machine-readable code and the sensor is an imaging device; 4. The digital wallet device of claim 3.
5. The presentation unit is a screen; 4. The digital wallet device of claim 3.
6. the presentation unit further presents a user interface for use by the user; 4. The digital wallet device of claim 3.
7. the communication device is a mobile device, the sensor is a camera of the mobile device, and decoding and broadcasting are performed by a software application installed on the mobile device; 4. The digital wallet device of claim 3.
8. the inputs include at least one of a destination account address for the transaction and an amount of the transaction; 2. The digital wallet device of claim 1.
9. further comprising a removable non-transitory computer readable storage medium storing the transaction code.
2. The digital wallet device of claim 1.
10. the non-transitory computer-readable storage medium includes a removable write-only data storage card that stores the private key; 2. The digital wallet device of claim 1.
11. a Hardware Security Module (HSM) for storing the private key; 2. The digital wallet device of claim 1.
12. an input IC isolated from the cryptocurrency management IC; unidirectional communication hardware for receiving data over a unidirectional channel to said input IC; The digital wallet device of claim 1 further comprising:
13. an output component electronically separated from at least one of the keyboard, the touch screen, and the pointing device; the output component receives data pieces from the input IC and presents to the user a representation of the data pieces indicative of a desired input action by the user according to a physical configuration of at least one of the keyboard, touch screen, and pointing device.
13. A digital wallet device as claimed in claim 12.
14. The output component also includes an input function for receiving an indication of the input action of the user.
14. A digital wallet device as claimed in claim 13.
15. the output component further presents to the user a representation adjusted according to the indication of the input action.
15. A digital wallet device as claimed in claim 14.
16. at least one of the keyboard, touch screen, and pointing device and the output component are integrated into one physical device; 14. A digital wallet device as claimed in claim 13.
17. the output component is a surface having a plurality of light sources, each of the light sources adjacent to at least one key of the keyboard, touch screen, and pointing device, and the representation includes turning on one of the plurality of light sources to indicate a desired depression by the user of a key adjacent to the light source.
14. A digital wallet device as claimed in claim 13.
18. when the adjacent key is pressed, a next one of the plurality of light sources is turned on to indicate a desired pressing by the user of a next adjacent key of the next light source.
18. A digital wallet device as claimed in claim 17.
19. the output component includes a remote indicator physically separate from at least one of the keyboard, the touch screen, and the pointing device; 14. A digital wallet device as claimed in claim 13.
20. The cryptocurrency management IC provides the data piece and transmits the instruction of the input operation of the user to an output IC included in the communication device via the one-way communication hardware; 14. A digital wallet device as claimed in claim 13.
21. the unidirectional communication hardware for receiving data includes at least one of a data diode and a sensor mounted on the input IC; 13. A digital wallet device as claimed in claim 12.
22. The input IC is connected to a presentation unit that presents data received via the one-way communication hardware to a user.
13. A digital wallet device as claimed in claim 12.
23. the at least one processor further executing code for creating the private key and the public key.
2. The digital wallet device of claim 1.
24. the private key is further transmitted via the one-way communication hardware.
2. The digital wallet device of claim 1.
25. the at least one processor further executes code for creating a message request based on the input and signing the message request using the private key, the message request being transmitted by the one-way communication hardware to the communication device for transmission to a smart contract capable of managing cryptocurrency based on the public key.
2. The digital wallet device of claim 1.
26. the at least one processor further executes code for creating rules or definitions for a cryptocurrency and signing the rules or definitions using the private key.
2. The digital wallet device of claim 1.
27. the at least one processor further executes code for creating a policy for a secure multi-signature scheme and signing the policy using the private key, the policy being transmitted by the one-way communications hardware to the communications device for transmission to a co-signatory of the multi-signature scheme.
2. The digital wallet device of claim 1.
28. The multi-signature scheme is based on one of standard blockchain multi-signature and cryptographic key splitting mechanisms; 28. A digital wallet device as claimed in claim 27.
29. 10. The digital wallet device of claim 1, further comprising a mechanical input component for reading machine-encoded data, wherein said creation of said transaction is further based on said machine-encoded data.
30. a cryptocurrency management IC physically connected to a remote indicator for directing at least one of the keyboard, the touch screen, and the pointing device based on an indication of a desired input action by a user from an input IC isolated from the cryptocurrency management IC; 2. The digital wallet device of claim 1.
31. The input IC resides in another device that is electronically isolated from the digital wallet device.
31. A digital wallet device as claimed in claim 30.
32. The cryptocurrency management IC transmits an indication of the data piece input by the user to the input IC via the one-way communication hardware.
32. A digital wallet device as claimed in claim 31.
Citation Information
Patent Citations
Virtual currency storage and transaction system and using method thereof
CN107194676A
Access right management system, communication processor and method, and computer program
JP2004015507A
A system that enables financial transaction services for telecommunications carriers and methods of conducting such transactions
JP2005524184A
Application setting device, IC chip, and program
JP2006154997A
Cryptocurrency Virtual Wallet System and Method
US20150324789A1