一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

提供区块链账户信息的电子装置及其操作方法与流程

2022-04-02 05:54:23 来源:中国专利 TAG:


1.本公开涉及提供区块链账户信息的电子装置及其操作方法。更具体地,本公开涉及自动生成分层确定性路径,而不管分层确定性路径的级别类型如何,用于从根种子导出与区块链账户的地址相对应的公钥,并提供根种子的区块链账户信息


背景技术:

2.自从基于区块链的比特币上市以来,区块链在多个领域都有应用,诸如基于智能合约的平台服务、云存储服务、区块链计算服务以及加密货币系统,例如比特币。
3.区块链平台允许系统参与者(节点)在它们相应的块中分发和存储数据,因此它基本上没有数据伪造和篡改(可靠性),并且允许参与者拥有他们分发的信息(透明性),而不需要单独的中央服务器管理器。需要用户信息和加密密钥来保留、发送/接收和处理与区块链技术相关的加密硬币,并且这是通过区块链电子钱包实现的。
4.区块链电子钱包加密技术分为对称加密和非对称加密。一个示例性对称加密方案在标识(id)和密码匹配时解锁加密信息。非对称加密使用两个密钥,一个私钥用于完全访问加密信息,以及一个公钥对称,与私钥对称,用于认证目的。大多数基于区块链的电子钱包采用非对称加密。
5.尽管区块链电子钱包功能方便,但它存在丢失、暴露或被黑客攻击的风险,并且对于熟悉相关领域的金融服务的人来说可能不方便


技术实现要素:

6.【技术问题】
7.许多基于区块链的加密货币遵守比特币改进提案(bip)-32,这是一种从根种子导出或获得私钥和公钥以识别加密货币账户的算法。bip-32的核心是从根种子导出的私钥和公钥始终是相同的。bip-44定义了用于实现bip-32的方案,并提出了五个级别的分层确定性(hd)路径作为从根种子导出或获得私钥和公钥的方法。然而,bip-44规范并不是强制性的,并且每个电子钱包制造商可以使用不遵循bip-44的分层确定性路径的不同级别。理论上,所有公钥可以通过使用具有相同根种子的相同分层确定性路径来导出或获得。用上述技术识别加密货币账户被称为hd钱包。例如,钱包的类型分为不确定性钱包和确定性钱包。hd钱包已经被开发以从同一个种子生成不同的密钥。hd钱包具有以树结构生成的密钥。父密钥和子密钥可以从树结构中创建,而孙密钥可以从子密钥中创建。这样,理论上可以创建无限数量的密钥。使用hd钱包的最大原因是可以创建和管理几个密钥来解决区块链的透明度和安全性问题。
8.根种子是一个基本值,从中可以创建许多密钥和地址。属于整个分层确定性钱包的密钥可以通过根种子来恢复。作为根种子,助记词序列被频繁使用。例如,根种子可以从通过基于散列的消息认证码(hmac)-安全散列算法(sha)512算法功能生成的散列值生成主私钥和主链码。在散列值的512个位中,左256个位可以被用作私钥,并且右256个位可以被
用作链码。可以使用椭圆曲线函数从私钥获得公钥。这样,私钥和公钥甚至区块链地址都可以通过根种子导出。
9.如果在从根种子导出公钥的过程期间所需的分层确定性路径(例如,hd钱包密钥标识符路径)的级别类型在每个分层确定性钱包制造商中不同,则相关技术的hd钱包可能无法识别已经使用的加密货币账户。
10.分层确定性路径(hd钱包密钥标识符)可以使用命名规则“路径”来标识。在包括在hd钱包中的上述树地址关系中,树级别可以通过斜线(/)来区分。
11.虽然分层确定性路径的选择可以留给用户,但是分层确定性路径具有普通用户难以识别的结构,并且使用hd钱包是不舒服的。
12.以上信息仅作为背景信息提供,以帮助理解本公开。关于上述任何内容是否可以作为现有技术应用于本公开,还没有做出确定,也没有做出断言。
13.【解决方案】
14.本公开的各方面旨在至少解决上述问题和/或缺点,并且至少提供下述优点。因此,本公开的一个方面是提供一种电子装置,用于自动生成分层确定性路径,而不管分层确定性路径的级别类型如何,用于从根种子导出与区块链账户的地址相对应的公钥,并提供根种子的区块链账户信息。
15.附加的方面将在下面的描述中部分阐述,并且部分将从描述中显而易见,或者可以通过所呈现的实施例的实践来了解。
16.根据本公开的一个方面,提供了一种电子装置。所述电子装置包括:显示器;和处理器,所述处理器被配置为生成至少一个分层确定性路径,使用根种子和至少一个分层确定性路径获得至少一个公钥,从至少一个公钥获得区块链账户的区块链地址,基于区块链地址从区块链网络获得关于区块链地址的信息,关于区块链地址的信息包括关于区块链账户的余额的信息,并且基于关于区块链账户的余额的信息,通过显示器显示关于区块链地址的信息的至少一部分。
17.根据本公开的另一方面,提供了一种用于操作电子装置的方法。所述方法包括:生成至少一个分层确定性路径;使用根种子和至少一个分层确定性路径获得至少一个公钥;从至少一个公钥获得区块链账户的区块链地址;基于区块链地址从区块链网络获得关于区块链地址的信息,关于区块链地址的信息包括关于区块链账户的余额的信息;以及基于关于区块链账户的余额的信息,通过电子装置的显示器显示关于区块链地址的信息的至少一部分。
18.根据本公开的另一方面,提供了一种电子装置。所述电子装置包括:显示器;和处理器,所述处理器被配置为使用根种子和第一分层确定性路径获得第一公钥,使用第一公钥和第二分层确定性路径获得第二公钥,使用第二公钥获得区块链地址,基于区块链地址从区块链网络获得关于区块链地址的信息,关于区块链地址的信息包括关于区块链地址的余额的信息,并且基于关于区块链地址余额的信息,通过显示器提供关于区块链地址的信息中的至少一个。
19.根据本公开的另一方面,提供了一种电子装置。所述电子装置包括:显示器;和处理器,所述处理器被配置为生成可以从根种子导出的至少一个第一分层确定性路径,使用至少一个第一分层确定性路径从所述根种子获得至少一个第一公钥,将至少一个第一公钥
发送到服务器以根据所述至少一个第一公钥获得区块链账户的至少一个区块链地址,从服务器获得关于与至少一个区块链地址相对应的区块链账户的信息,并通过显示器显示关于区块链账户的信息的至少一部分。
20.从以下结合附图公开了本公开的各种实施例的详细描述中,本公开的其他方面、优点和显著特征对于本领域技术人员来说将变得显而易见。
附图说明
21.从以下结合附图的描述中,本公开的某些实施例的上述和其他方面、特征和优点将变得更加明显,其中:
22.图1是图示根据本公开的实施例的网络环境中的电子装置的框图;
23.图2是示意性图示根据本公开的实施例的电子装置的框图;
24.图3a、图3b和图3c是图示根据本公开的各种实施例的操作电子装置以提供区块链账户信息的方法的视图;
25.图4a是图示根据本公开的实施例的网络环境中的电子装置的框图;
26.图4b是图示根据本公开的实施例的网络环境中的电子装置的框图;
27.图4c是图示根据本公开的实施例的分层确定性路径的视图;
28.图5是图示根据本公开的实施例的区块链签名模块的操作的框图;
29.图6是图示根据本公开的实施例的操作电子装置来为根种子提供区块链账户信息的方法的流程图;
30.图7a和图7b图示了用于描述根据本公开的各种实施例操作的电子装置来为根种子提供区块链账户信息的方法的数据流;
31.图8a是图示根据本公开的实施例的根据bip-44的五个级别的路径的视图;
32.图8b是图示根据本公开的实施例的四个级别的路径的视图;
33.图9a和图9b是图示根据本公开的各种实施例的根据bip-44基于五个级别的路径来识别根种子的账户信息的方法的视图;
34.图10a和图10b是图示根据本公开的各种实施例的提供关于根种子的区块链账户信息的用户界面的视图;
35.图11是图示根据本公开的实施例的经由认证来恢复根种子的区块链账户的方法的流程图;以及
36.图12a、图12b和图12c图示了根据本公开的各种实施例的用于描述经由认证来恢复根种子的区块链账户的方法的用户界面。
37.在所有附图中,相似的附图标记将被理解为指代相似的部件、组件和结构。
具体实施方式
38.参考附图的以下描述被提供来帮助全面理解由权利要求及其等同物定义的本公开的各种实施例。它包括有助于理解的各种具体细节,但是这些仅仅被认为是示例性的。因此,本领域普通技术人员将认识到,在不脱离本公开的范围和精神的情况下,可以对这里描述的各种实施例进行各种改变和修改。此外,为了清楚和简明起见,可以省略对众所周知的功能和结构的描述。
39.在以下描述和权利要求中使用的术语和词语不限于书目意义,而是仅由发明人使用,以使得能够清楚和一致地理解本公开。因此,对于本领域的技术人员来说,很明显,提供本公开的各种实施例的以下描述仅仅是为了说明的目的,而不是为了限制由所附权利要求及其等同物限定的本公开。
40.应当理解,单数形式“一个”和“所述”包括复数指代物,除非上下文另有明确规定。因此,例如,提及“部件表面”包括提及一个或多个这样的表面。
41.图1是示出根据各种实施例的网络环境100中的电子装置101的框图。
42.参照图1,网络环境100中的电子装置101可经由第一网络198(例如,短距离无线通信网络)与电子装置102进行通信,或者经由第二网络199(例如,长距离无线通信网络)与电子装置104或服务器108进行通信。根据实施例,电子装置101可经由服务器108与电子装置104进行通信。根据实施例,电子装置101可包括处理器120、存储器130、输入装置150、声音输出装置155、显示装置160、音频模块170、传感器模块176、接口177、触觉模块179、相机模块180、电力管理模块188、电池189、通信模块190、用户识别模块(sim)196或天线模块197。在一些实施例中,可从电子装置101中省略所述部件中的至少一个(例如,显示装置160或相机模块180),或者可将一个或更多个其它部件添加到电子装置101中。在一些实施例中,可将所述部件中的一些部件实现为单个集成电路。例如,可将传感器模块176(例如,指纹传感器、虹膜传感器、或照度传感器)实现为嵌入在显示装置160(例如,显示器)中。
43.处理器120可运行例如软件(例如,程序140)来控制电子装置101的与处理器120连接的至少一个其它部件(例如,硬件部件或软件部件),并可执行各种数据处理或计算。根据一个实施例,作为所述数据处理或计算的至少部分,处理器120可将从另一部件(例如,传感器模块176或通信模块190)接收到的命令或数据加载到易失性存储器132中,对存储在易失性存储器132中的命令或数据进行处理,并将结果数据存储在非易失性存储器134中。根据实施例,处理器120可包括主处理器121(例如,中央处理器(cpu)或应用处理器(ap))以及与主处理器121在操作上独立的或者相结合的辅助处理器123(例如,图形处理单元(gpu)、图像信号处理器(isp)、传感器中枢处理器或通信处理器(cp))。另外地或者可选择地,辅助处理器123可被适配为比主处理器121耗电更少,或者被适配为具体用于指定的功能。可将辅助处理器123实现为与主处理器121分离,或者实现为主处理器121的部分。
44.在主处理器121处于未激活(例如,睡眠)状态时,辅助处理器123可控制与电子装置101(而非主处理器121)的部件之中的至少一个部件(例如,显示装置160、传感器模块176或通信模块190)相关的功能或状态中的至少一些,或者在主处理器121处于激活状态(例如,运行应用)时,辅助处理器123可与主处理器121一起来控制与电子装置101的部件之中的至少一个部件(例如,显示装置160、传感器模块176或通信模块190)相关的功能或状态中的至少一些。根据实施例,可将辅助处理器123(例如,图像信号处理器或通信处理器)实现为在功能上与辅助处理器123相关的另一部件(例如,相机模块180或通信模块190)的部分。
45.存储器130可存储由电子装置101的至少一个部件(例如,处理器120或传感器模块176)使用的各种数据。所述各种数据可包括例如软件(例如,程序140)以及针对与其相关的命令的输入数据或输出数据。存储器130可包括易失性存储器132或非易失性存储器134。
46.可将程序140作为软件存储在存储器130中,并且程序140可包括例如操作系统(os)142、中间件144或应用146。
47.输入装置150可从电子装置101的外部(例如,用户)接收将由电子装置101的其它部件(例如,处理器120)使用的命令或数据。输入装置150可包括例如麦克风、鼠标、键盘或数字笔(例如,手写笔)。
48.声音输出装置155可将声音信号输出到电子装置101的外部。声音输出装置155可包括例如扬声器或接收器。扬声器可用于诸如播放多媒体或播放唱片的通用目的,接收器可用于呼入呼叫。根据实施例,可将接收器实现为与扬声器分离,或实现为扬声器的部分。
49.显示装置160可向电子装置101的外部(例如,用户)视觉地提供信息。显示装置160可包括例如显示器、全息装置或投影仪以及用于控制显示器、全息装置和投影仪中的相应一个的控制电路。根据实施例,显示装置160可包括被适配为检测触摸的触摸电路或被适配为测量由触摸引起的力的强度的传感器电路(例如,压力传感器)。
50.音频模块170可将声音转换为电信号,反之亦可。根据实施例,音频模块170可经由输入装置150获得声音,或者经由声音输出装置155或与电子装置101直接(例如,有线地)连接或无线连接的外部电子装置(例如,电子装置102)的耳机输出声音。
51.传感器模块176可检测电子装置101的操作状态(例如,功率或温度)或电子装置101外部的环境状态(例如,用户的状态),然后产生与检测到的状态相应的电信号或数据值。根据实施例,传感器模块176可包括例如手势传感器、陀螺仪传感器、大气压力传感器、磁性传感器、加速度传感器、握持传感器、接近传感器、颜色传感器、红外(ir)传感器、生物特征传感器、温度传感器、湿度传感器或照度传感器。
52.接口177可支持将用来使电子装置101与外部电子装置(例如,电子装置102)直接(例如,有线地)或无线连接的一个或更多个特定协议。根据实施例,接口177可包括例如高清晰度多媒体接口(hdmi)、通用串行总线(usb)接口、安全数字(sd)卡接口或音频接口。
53.连接端178可包括连接器,其中,电子装置101可经由所述连接器与外部电子装置(例如,电子装置102)物理连接。根据实施例,连接端178可包括例如hdmi连接器、usb连接器、sd卡连接器或音频连接器(例如,耳机连接器)。
54.触觉模块179可将电信号转换为可被用户经由他的触觉或动觉识别的机械刺激(例如,振动或运动)或电刺激。根据实施例,触觉模块179可包括例如电机、压电元件或电刺激器。
55.相机模块180可捕获静止图像或运动图像。根据实施例,相机模块180可包括一个或更多个透镜、图像传感器、图像信号处理器或闪光灯。
56.电力管理模块188可管理对电子装置101的供电。根据实施例,可将电力管理模块188实现为例如电力管理集成电路(pmic)的至少部分。
57.电池189可对电子装置101的至少一个部件供电。根据实施例,电池189可包括例如不可再充电的原电池、可再充电的蓄电池、或燃料电池。
58.通信模块190可支持在电子装置101与外部电子装置(例如,电子装置102、电子装置104或服务器108)之间建立直接(例如,有线)通信信道或无线通信信道,并经由建立的通信信道执行通信。通信模块190可包括能够与处理器120(例如,应用处理器(ap))独立操作的一个或更多个通信处理器,并支持直接(例如,有线)通信或无线通信。根据实施例,通信模块190可包括无线通信模块192(例如,蜂窝通信模块、短距离无线通信模块或全球导航卫星系统(gnss)通信模块)或有线通信模块194(例如,局域网(lan)通信模块或电力线通信
(plc)模块)。这些通信模块中的相应一个可经由第一网络198(例如,短距离通信网络,诸如蓝牙、无线保真(wi-fi)直连或红外数据协会(irda))或第二网络199(例如,长距离通信网络,诸如蜂窝网络、互联网、或计算机网络(例如,lan或广域网(wan)))与外部电子装置进行通信。可将这些各种类型的通信模块实现为单个部件(例如,单个芯片),或可将这些各种类型的通信模块实现为彼此分离的多个部件(例如,多个芯片)。无线通信模块192可使用存储在用户识别模块196中的用户信息(例如,国际移动用户识别码(imsi))识别并验证通信网络(诸如第一网络198或第二网络199)中的电子装置101。
59.天线模块197可将信号或电力发送到电子装置101的外部(例如,外部电子装置)或者从电子装置101的外部(例如,外部电子装置)接收信号或电力。根据实施例,天线模块197可包括天线,所述天线包括辐射元件,所述辐射元件由形成在基底(例如,pcb)中或形成在基底上的导电材料或导电图案构成。根据实施例,天线模块197可包括多个天线。在这种情况下,可由例如通信模块190(例如,无线通信模块192)从所述多个天线中选择适合于在通信网络(诸如第一网络198或第二网络199)中使用的通信方案的至少一个天线。随后可经由所选择的至少一个天线在通信模块190和外部电子装置之间发送或接收信号或电力。根据实施例,除了辐射元件之外的另外的组件(例如,射频集成电路(rfic))可附加地形成为天线模块197的一部分。
60.上述部件中的至少一些可经由外设间通信方案(例如,总线、通用输入输出(gpio)、串行外设接口(spi)或移动工业处理器接口(mipi))相互连接并在它们之间通信地传送信号(例如,命令或数据)。
61.根据实施例,可经由与第二网络199连接的服务器108在电子装置101和外部电子装置104之间发送或接收命令或数据。电子装置102和电子装置104中的每一个可以是与电子装置101相同类型的装置,或者是与电子装置101不同类型的装置。根据实施例,将在电子装置101运行的全部操作或一些操作可在外部电子装置102、外部电子装置104或服务器108中的一个或更多个运行。例如,如果电子装置101应该自动执行功能或服务或者应该响应于来自用户或另一装置的请求执行功能或服务,则电子装置101可请求所述一个或更多个外部电子装置执行所述功能或服务中的至少部分,而不是运行所述功能或服务,或者电子装置101除了运行所述功能或服务以外,还可请求所述一个或更多个外部电子装置执行所述功能或服务中的至少部分。接收到所述请求的所述一个或更多个外部电子装置可执行所述功能或服务中的所请求的所述至少部分,或者执行与所述请求相关的另外功能或另外服务,并将执行的结果传送到电子装置101。电子装置101可在对所述结果进行进一步处理的情况下或者在不对所述结果进行进一步处理的情况下将所述结果提供作为对所述请求的至少部分答复。为此,可使用例如云计算技术、分布式计算技术或客户机-服务器计算技术。
62.根据各种实施例的电子装置可以是各种类型的电子装置之一。电子装置可包括例如便携式通信装置(例如,智能电话)、计算机装置、便携式多媒体装置、便携式医疗装置、相机、可穿戴装置或家用电器。根据本公开的实施例,电子装置不限于以上所述的那些电子装置。
63.应该理解的是,本公开的各种实施例以及其中使用的术语并不意图将在此阐述的技术特征限制于具体实施例,而是包括针对相应实施例的各种改变、等同形式或替换形式。对于附图的描述,相似的参考标号可用来指代相似或相关的元件。将理解的是,与术语相应
的单数形式的名词可包括一个或更多个事物,除非相关上下文另有明确指示。如这里所使用的,诸如“a或b”、“a和b中的至少一个”、“a或b中的至少一个”、“a、b或c”、“a、b和c中的至少一个”以及“a、b或c中的至少一个”的短语中的每一个短语可包括在与所述多个短语中的相应一个短语中一起列举出的项的任意一项或所有可能组合。如这里所使用的,诸如“第1”和“第2”或者“第一”和“第二”的术语可用于将相应部件与另一部件进行简单区分,并且不在其它方面(例如,重要性或顺序)限制所述部件。将理解的是,在使用了术语“可操作地”或“通信地”的情况下或者在不使用术语“可操作地”或“通信地”的情况下,如果一元件(例如,第一元件)被称为“与另一元件(例如,第二元件)结合”、“结合到另一元件(例如,第二元件)”、“与另一元件(例如,第二元件)连接”或“连接到另一元件(例如,第二元件)”,则意味着所述一元件可与所述另一元件直接(例如,有线地)连接、与所述另一元件无线连接、或经由第三元件与所述另一元件连接。
64.如这里所使用的,术语“模块”可包括以硬件、软件或固件实现的单元,并可与其他术语(例如,“逻辑”、“逻辑块”、“部分”或“电路”)可互换地使用。模块可以是被适配为执行一个或更多个功能的单个集成部件或者是该单个集成部件的最小单元或部分。例如,根据实施例,可以以专用集成电路(asic)的形式来实现模块。
65.可将在此阐述的各种实施例实现为包括存储在存储介质(例如,内部存储器136或外部存储器138)中的可由机器(例如,电子装置101)读取的一个或更多个指令的软件(例如,程序140)。例如,在处理器的控制下,所述机器(例如,电子装置101)的处理器(例如,处理器120)可在使用或无需使用一个或更多个其它部件的情况下调用存储在存储介质中的所述一个或更多个指令中的至少一个指令并运行所述至少一个指令。这使得所述机器能够操作用于根据所调用的至少一个指令执行至少一个功能。所述一个或更多个指令可包括由编译器产生的代码或能够由解释器运行的代码。可以以非暂时性存储介质的形式来提供机器可读存储介质。其中,术语“非暂时性”仅意味着所述存储介质是有形装置,并且不包括信号(例如,电磁波),但是该术语并不在数据被半永久性地存储在存储介质中与数据被临时存储在存储介质中之间进行区分。
66.根据实施例,可在计算机程序产品中包括和提供根据本公开的各种实施例的方法。计算机程序产品可作为产品在销售者和购买者之间进行交易。可以以机器可读存储介质(例如,紧凑盘只读存储器(cd-rom))的形式来发布计算机程序产品,或者可经由应用商店(例如,play storetm)在线发布(例如,下载或上传)计算机程序产品,或者可直接在两个用户装置(例如,智能电话)之间分发(例如,下载或上传)计算机程序产品。如果是在线发布的,则计算机程序产品中的至少部分可以是临时产生的,或者可将计算机程序产品中的至少部分至少临时存储在机器可读存储介质(诸如制造商的服务器、应用商店的服务器或转发服务器的存储器)中。
67.根据各种实施例,上述部件中的每个部件(例如,模块或程序)可包括单个实体或多个实体。根据各种实施例,可省略上述部件中的一个或更多个部件,或者可添加一个或更多个其它部件。可选择地或者另外地,可将多个部件(例如,模块或程序)集成为单个部件。在这种情况下,根据各种实施例,该集成部件可仍旧按照与所述多个部件中的相应一个部件在集成之前执行一个或更多个功能相同或相似的方式,执行所述多个部件中的每一个部件的所述一个或更多个功能。根据各种实施例,由模块、程序或另一部件所执行的操作可顺
序地、并行地、重复地或以启发式方式来执行,或者所述操作中的一个或更多个操作可按照不同的顺序来运行或被省略,或者可添加一个或更多个其它操作。
68.图2是示意性图示根据本公开的实施例的电子装置的框图。
69.参考图2,电子装置201可以包括处理器220、存储器230、通信模块250和显示器260。例如,电子装置201可以被实现为与图1的电子装置101或102基本相同或相似。例如,电子装置201可以执行电子钱包(例如,冷钱包)功能。
70.根据本公开的实施例,处理器220可以控制电子装置201的整体操作。例如,处理器220可以生成分层确定性(hd)路径,以从区块链根种子导出(或获得)区块链账户(或地址)。例如,分层确定性路径可以包括指示用于从根种子导出(或获得)与区块链账户(或地址)相对应的公钥的路径或方法的信息。
71.根据实施例,处理器220可以(自动)生成可以从特定根种子导出的多个分层确定性路径。例如,当运行区块链签名应用时,处理器220可以生成多个分层确定性路径,这些分层确定性路径可以针对存储在存储器230中的特定根种子而导出。例如,多个分层确定性路径可以包括具有相同级别(或深度)和/或不同级别(或深度)的路径。
72.根据实施例,处理器220可以(自动)生成与第一区域(例如,与一级至三级相对应的区域)相对应的第一路径和与第二区域(例如,与四级和五级相对应的区域或与四级相对应的区域)相对应的第二路径,第一路径可以仅利用根种子的私钥来导出,第二路径甚至可以利用公钥来导出。例如,能够导出特定区块链地址的分层确定性路径可以是第一路径和第二路径的混合路径。例如,当运行区块链签名应用时,处理器220可以生成第一路径,其可以仅利用存储在存储器230中的根种子的私钥来导出,并且生成即使利用公钥也可以导出的第二路径。例如,处理器220可以使用生成的第一路径和第二路径来获得或导出区块链地址。
73.根据实施例,处理器220可以使用多个分层确定性路径来获得多个公钥,这些公钥可以从存储在存储器230中的特定根种子中导出。例如,处理器220可以从根种子导出私钥,并使用私钥获得多个公钥。例如,处理器220可以使用多个分层确定性路径从私钥获得父公钥和多个子公钥。
74.根据实施例,处理器220可以使用多个公钥获得区块链账户的多个地址。例如,处理器220可以使用多个子公钥中的每一个来获得对应的账号(或账户地址)。
75.根据实施例,处理器220可以通过通信模块150识别多个地址中的每一个是否是区块链网络中的有效账户。例如,处理器220可以通过通信模块250请求区块链网络290识别与多个地址相对应的账户是否有效。例如,有效账户可以意味着该账户有交易历史或余额。换句话说,处理器220可以通过包括在区块链网络中的多个节点来识别多个地址是否有效。
76.根据实施例,根据来自电子装置201的识别请求,区块链网络290可以通过包括在区块链网络290中的多个节点来识别与对应地址相对应的账户是否有效。例如,区块链网络290可以是包括多个节点的网络组。多个节点可以通过节点之间的网络共享和管理区块链信息。
77.根据实施例,处理器220可以基于关于区块链地址(或账户)的余额的信息和与区块链地址的交易相关的计数信息中的至少一个来识别对应的区块链地址是否有效。例如,与区块链地址的交易相关的计数信息可以包括区块链地址的交易次数(例如,汇款次数和/
或存款次数)和关于交易历史的信息(例如,汇款历史和/或存款历史)。
78.根据实施例,处理器220可以通过通信模块250从区块链网络290获得关于账户(区块链地址)的信息。账户(区块链地址)信息可以包括关于例如硬币种类、信用余额、余额、交易历史(例如汇款和/或存款历史)、交易次数(例如汇款和/或存款次数)、最新交易信息、交易类型(例如货币、物品或代币)和/或制造商提示(例如关于相应账户是通过什么电子钱包制造商创建的提示)的信息。处理器220可以基于账户信息来识别账户是否有效。例如,当账户没有交易历史时,处理器220可以确定账户无效。换句话说,当存在账户的交易历史时,处理器220可以确定账户有效。当账户有剩余余额时,处理器220可以确定账户有效。
79.根据实施例,处理器220可以通过显示器260显示从区块链网络290获得的账户信息(或区块链地址信息)的至少一部分。例如,处理器220可以基于区块链地址信息(例如,区块链账户的余额和交易历史(例如,存款和汇款历史))以及交易次数(例如,汇款次数和/或存款次数)来显示区块链地址信息的至少一部分。处理器220可以基于包括在区块链地址信息中的区块链地址(或账户)的余额信息来显示区块链地址信息的至少一部分。换句话说,处理器220可以仅选择(或整理)从区块链网络290获得的账户信息的一部分,并将所选择的信息显示为关于与区块链地址相对应的账户的信息。例如,显示器260可以实现为与图1的显示装置160基本相同或相似。
80.根据实施例,处理器220可以使用从区块链网络290获得的账户信息(或区块链地址信息)来生成和显示附加信息。例如,附加信息可以是通过处理从区块链网络290获得的账户信息而生成的新信息。例如,附加信息可以包括基于从区块链网络290获得的账户信息推断(或确定)的制造商信息。附加信息可以包括例如从区块链网络290获得的账户的最后交易日期、传输类型(例如,指示交易的对象是货币还是代币(或物品)的信息)以及关于交易的另一方的账户信息。也就是说,附加信息可以是不同于所获得的账户信息的信息。例如,处理器220可以通过处理从区块链网络290获得的账户信息来生成(或获得)附加信息,并通过显示器显示生成的附加信息。例如,处理器220可以与账户信息一起显示附加信息。或者,处理器220可以在显示账户信息之前或之后显示附加信息。
81.根据实施例,处理器220可以在存储器230中存储根种子。例如,根种子可以被存储在存储器230的安全区域中。例如,存储器230可以被实现为与图1的存储器130基本相同或相似。根据实施例,处理器220可以将根种子存储在电子装置201外部的存储器(未示出)(或外部电子装置)中。
82.根据实施例,电子装置201可以进一步包括辅助处理器(未示出)和非易失性存储器(未示出)中的至少一个。例如,辅助处理器可以被实现为与图1的辅助处理器123相同或相似。例如,辅助处理器可以控制区块链相关功能并将区块链相关信息(或数据)存储在非易失性存储器中。或者,电子装置201可以进一步仅包括辅助处理器,并且可以将区块链相关信息(或数据)存储在存储器230的安全区域中。换句话说,辅助处理器可以执行这里描述的处理器220的至少一部分操作。
83.图3a、图3b和图3c是图示根据本公开的各种实施例的操作电子装置来提供区块链账户信息的方法的视图。
84.参考图3a,在操作301,电子装置(例如,图2的电子装置201)可以运行区块链钱包应用。例如,电子装置201可以根据用户的输入运行用于识别区块链账户信息的区块链钱包
应用。
85.根据实施例,区块链钱包应用可以访问用户的加密货币,管理密钥和地址,识别信用余额,以及生成和签署交易。根据实施例,用户的加密货币可以由通过区块链网络参与的节点记录在区块链上。区块链钱包应用可以包括私钥和公钥,以生成要包括在区块链中的交易。用户可以经由区块链钱包应用、利用用户的私钥签署交易来发送/接收用户的硬币(或加密货币)。
86.在操作303,电子装置201可以为存储在存储器(例如,图2的存储器230)中的根种子生成多个分层确定性路径。例如,当运行区块链钱包应用时,电子装置201可以经由区块链钱包应用为根种子生成多个分层确定性路径。例如,多个分层确定性路径可以包括遵循bip-44规则的五个级别的路径和不遵循bip-44提议的其他级别(例如,四个级别的)的路径。例如,区块链签名应用可以是存储和/或管理根种子的应用。
87.根据实施例,区块链签名应用可以与区块链钱包应用分开实现,或者可以被包括在区块链钱包应用中。例如,当区块链签名应用被包括在区块链钱包应用中时,区块链钱包应用可以执行区块链签名应用的功能(或角色)。
88.根据实施例,根种子可以使用各种类型的种子。例如,根种子可以使用十六进制数的种子或由12字助记符组成的种子。在这种情况下,助记符可以包括用户可以感知的单词格式。例如,根种子可以使用基于bip-39标准的助记符。助记码和种子可以基于bip-39标准生成。
89.参考图3b,根据实施例,使用助记符生成根种子的方法可以如下执行。盐值(例如,用户输入的密码)和包括在助记符中的单词作为因子,以及密钥扩展函数可以用于生成512位种子。密钥扩展函数(例如,基于密码的密钥导出函数2(pbkdf2))可以使用两个因子值输出常数(512位)值。例如,密钥扩展函数可以使用散列算法(例如,基于散列的消息认证码(hmac)-安全散列算法(sha)512)对两个因子值重复执行散列,并生成最终输出值作为种子。
90.在操作305,电子装置201可以使用多个分层确定性路径从根种子获得与区块链账户的多个地址相对应的多个公钥。例如,电子装置201可以通过区块链签名应用使用多个分层确定性路径从根种子获得多个公钥。此外,电子装置201可以基于多个公钥获得区块链账户的多个地址。
91.参考图3c,可以基于标准bip-32,执行使用标准bip-44中定义的分层确定性路径(hd路径)的因子值和基于标准bip-39生成的种子密钥来生成(或获得)加密货币的地址的方法(例如,基于三个深度)。
92.在生成加密货币的地址的方法中,随着深度的加深,与下一个值相对应的子密钥导出函数(ckd)的因子值可以继续增加。例如,当从0深度到1深度时,可以使用ckd(m,0),并且当一个深度进一步加深时(例如,当从1深度到2深度时),可以使用ckd(m.0,0)。例如,子密钥导出(ckd)函数可以使用如下的hmac-sha512散列函数。
93.child key derivation function~ckd(x,n)=hmac-sha512(x
chain
,x
pubkey
||n)
94.在操作307,电子装置201可以通过区块链网络识别至少一个区块链账户(或区块链地址)。电子装置201可以通过操作305获得关于多个地址(例如,多个公共地址)的信息。多个地址可以分别是区块链的多个账户。电子装置201可以使用多个地址中的每一个来访
问区块链网络,并且从区块链网络上的多个账户中识别有效账户。例如,电子装置201可以基于在操作305获得的公钥来识别公共地址,并且使用公共地址来识别关于区块链网络上的公共地址的信息。例如,区块链网络可以提供可以使用公共地址识别区块链账户信息(例如,与公共地址相对应的交易历史或余额)的机制(例如,api)。当在区块链网络上存在对应账户的交易历史(或交易记录)时,电子装置201可以确定该账户是有效账户。或者,当区块链网络上在对应账户的特定时期内存在交易历史时,电子装置201可以确定该账户是有效账户。例如,交易历史的存在可能不仅仅意味着金融交易的存在,还意味着用户使用账户从而包含特定信息的情况。根据实施例,当从区块链网络获得的账户信息是被确认为可靠的地址(例如,特定交换地址或由组织认证的地址)时,电子装置201可以确定账户是有效的。根据实施例,当在区块链网络中存在对应账户的余额时,电子装置201可以确定该账户是有效账户。
95.在操作309,电子装置201可以通过区块链网络基于关于至少一个账户的信息(例如,余额信息)来确定账户的有效性,并且提供关于被确定为有效的账户的信息。电子装置201可以提供关于被确定为有效的账户的信息(例如,关于账户余额、交易历史(汇款和存款历史)和/或交易次数(汇款次数和/或存款次数)的信息)。例如,电子装置201可以取决于硬币的种类分别管理至少一个有效账户。取决于硬币的种类,电子装置201可以获得关于有效账户的信息,例如余额、信用余额、交易历史(例如汇款和/或存款历史)、交易次数(例如汇款次数和/或存款次数)、最新交易信息和/或制造商。
96.图4a是图示根据本公开的实施例的网络环境中的电子装置的框图。图4c是图示根据本公开的实施例的分层确定性路径的视图。
97.参考图4a,电子装置401可以由处理器(例如,图2的处理器220)运行第一区块链签名应用410、区块链服务模块430和区块链钱包应用450。例如,第一区块链签名应用410、区块链服务模块430和区块链钱包应用450可以是存储在电子装置401中的应用。根据实施例,第一区块链签名应用410、区块链服务模块430和区块链钱包应用450可以在一个区块链钱包应用450中实现。
98.根据实施例,第一区块链签名应用410可以管理或存储根种子。第一区块链签名应用410可以生成可以从单个根种子导出的多个分层确定性路径。
99.根据实施例,第一区块链签名应用410可以使用可以从根种子导出的多个分层确定性路径中的每一个从根种子获得私钥,并且从私钥获得公钥。第一区块链签名应用410可以将公钥发送到区块链服务模块430。例如,第一区块链签名应用410可以将从根种子导出(或获得)的每个硬币(per-coin)的父公钥发送到区块链服务模块430。例如,第一区块链签名应用410可以是存储或嵌入在电子装置401中的应用。第一区块链签名应用410可以是可以将私钥单独存储在电子装置的安全区域中并管理私钥的应用。根据实施例,第一区块链签名应用410可以是安全增强应用,其可以仅在单独的安全操作系统或安全内核上运行,可以在逻辑上或物理上分离存储器(例如,图2的存储器230)的一部分并将该部分配置为安全区域(例如,可信执行环境(tee)),并且可以在安全区域中存储和管理私钥。根据实施例,第一区块链签名应用410可以将密钥存储在电子装置外部的存储器中并且支持附加的认证操作,以经由单独的认证允许存储在外部存储器中的密钥被使用。根据实施例,第一区块链签名应用410可以在普通操作系统或非安全区域(例如,丰富执行环境(ree))上运行以管理私
钥。
100.根据实施例,第二区块链签名应用420可以执行与第一区块链签名应用410相同的功能。然而,与第一区块链签名应用410不同,第二区块链签名应用420可以不被存储或嵌入在电子装置401中。例如,第二区块链签名应用420可以是被存储或嵌入在外部装置中的应用。例如,当外部装置连接到电子装置401并且存在来自区块链服务模块430的请求时,第二区块链签名应用420可以将公钥发送到区块链服务模块430。第二区块链签名应用420可以将父公钥发送到区块链服务模块430,识别基于父公钥生成的区块链地址,并且识别区块链地址的列表。例如,第二区块链签名应用420可以将从根种子导出(或获得)的每个硬币的父公钥(例如,最高公钥)发送到区块链服务模块430。例如,最高公钥可以意味着基于从分层确定性(hd)钱包的根种子生成的私钥而生成的公钥,并且是分层结构(例如,树结构)中的最高公钥。
101.根据实施例,区块链服务模块430可以从第一区块链签名应用410或第二区块链签名应用420获得公钥(例如,父公钥)。区块链服务模块430可以使用多个分层确定性路径中的任何一个,从自区块链签名应用410或420获得的公钥(例如,父公钥)导出(或获得)用于恢复与区块链账户相对应的地址的公钥(例如,子公钥)。
102.参考图4c,区块链签名应用410或420可以基于可以仅用私钥导出的区域或每个制造商的相同区域来获得公钥(父公钥),并且由于剩余的分层确定性(hd)路径(例如,深度4)及其后续的hd路径甚至可以用公钥导出,并且其是否被使用取决于制造商而变化,所以其可以在改变与剩余的分层确定性路径相对应的深度4和5的因子值的同时导出子公钥。例如,区块链签名应用410或420可以顺序地增加深度5的“账户_索引(account_index)”以导出子公钥。区块链签名应用410或420可以使用导出的公钥生成每个硬币的区块链地址。生成的区块链地址可以经由区块链网络验证其有效性,并且区块链签名应用410或420可以存储被确定为有效的区块链地址的列表。
103.例如,在识别区块链地址的有效性的操作中,区块链服务模块430可以经由区块链网络490识别每个硬币的地址的余额和/或交易历史。例如,区块链服务模块430可以请求区块链网络490识别该地址的余额和/或交易历史。当该地址有余额和/或交易历史时,该账户可以被确定为有效账户,并且当该地址没有余额和/或交易历史时,该账户可以被确定为无效账户。区块链服务模块430可以获得有效账户列表和有效账户信息。根据实施例,区块链服务模块430可以被实现为服务开发工具包(sdk)。
104.根据实施例,区块链钱包应用450可以从区块链服务模块430获得有效账户信息,以从可以从根种子生成的账户当中识别有效账户。区块链服务模块430可以通过区块链网络490识别与账户相对应的区块链地址相关的信息(例如,交易信息)。例如,区块链服务模块430可以基于区块链地址识别余额或交易历史,并且当存在余额或交易历史时,确定与区块链地址相对应的账户是有效账户。
105.根据实施例,区块链钱包应用450可以通过显示器(例如,图2的显示器260)显示有效账户信息。例如,有效账户可以意味着具有用户交易历史(例如,在特定时期内)的账户。或者,有效账户可能是指具有关于对应区块链地址的余额的账户。根据实施例,区块链钱包应用450可以是执行分层确定性(hd)钱包功能的应用。
106.图4b是图示根据本公开的实施例的网络环境中的电子装置的框图。
107.参考图4b,与图4a的系统相比,图4b的系统可以进一步包括服务器470。
108.根据实施例,服务器470可以执行由图4a的区块链服务模块430执行的至少一些操作。因此,在图4b中,由区块链服务模块430执行的操作可以部分不同于图4a的操作。相反,图4b的区块链签名应用410和420、区块链钱包应用450和区块链网络490的操作可以与图4a的相同。
109.根据实施例,区块链服务模块430可以从第一区块链签名应用410或第二区块链签名应用420获得父公钥。区块链服务模块430可以使用多个分层确定性路径中的任何一个,从自区块链签名应用410或420获得的父公钥(例如,最高父公钥)中导出(或获得)较低级的父公钥。区块链服务模块430可以将导出的父公钥发送到服务器470。
110.根据实施例,服务器470可以使用多个分层确定性路径中的任何一个,从自区块链服务模块430获得的父公钥导出(或获得)最终级的子公钥,以恢复与区块链账户相对应的地址。服务器470可以从导出的子公钥生成(或获得)每个硬币的地址。
111.根据实施例,区块链服务模块430可以使用多个分层确定性路径中的一些(例如,从深度0到深度3的hd路径)来获得每个硬币的父公钥。区块链服务模块430可以将获得的父公钥发送到服务器470。服务器470可以基于获得的父公钥,使用多个分层确定性路径的剩余路径(例如,从深度4到深度5的hd路径)来导出最终要使用的公钥。例如,在分层确定性路径当中的深度4(变化)的情况下,可以不使用相应的参数,并且相应的参数设置值可以取决于制造商而变化。根据实施例,服务器470可以识别市场中的变化,并且将变化应用于设定值并管理设定值。在分层确定性路径当中的深度5(账户索引)的情况下,服务器470可以通过从0开始逐一增加相应的参数来导出公钥。
112.服务器470可以从自区块链服务模块430获得的父公钥导出(或获得)最终级的子公钥,以恢复与区块链账户相对应的地址。服务器470可以从导出的最终公钥生成(或获得)每个硬币的地址。根据实施例,分层确定性钱包(hd钱包)可以使用子密钥导出函数(ckd)从父公钥获得子公钥。
113.根据实施例,服务器470可以经由区块链网络490获得(或识别)关于每个硬币的地址的信息。例如,区块链服务模块430可以请求区块链网络490识别该地址的余额、交易次数(例如汇款次数和/或存款次数)和/或交易历史(例如汇款历史和/或存款历史)。当存在该地址的余额、交易次数和/或交易历史时,该账户可以被确定为有效账户,并且当没有该地址的余额、交易次数和/或交易历史时,该账户可以被确定为无效账户。区块链服务模块430可以获得有效账户列表和有效账户信息(例如,关于余额、信用余额、交易次数和/或交易历史的信息)。服务器470可以将有效账户列表和有效账户信息发送到区块链服务模块430。区块链服务模块430可以将有效账户信息发送到区块链钱包应用450。
114.根据实施例,服务器470可以获得除了通过区块链网络获得的账户信息(例如,关于余额、信用余额、交易次数和/或交易历史的信息)之外的其他信息。例如,服务器470可以通过监视区块链账户的交易来获得关于特定账户的详细信息。详细信息可以是关于特定账户的最后交易日期、交易目标地址信息和交易类型(例如,货币、物品或代币)的信息。服务器470可以将获得的详细信息发送到电子装置401(例如,区块链服务模块430)。
115.图5是图示根据本公开的实施例的区块链签名模块的操作的框图。
116.参考图5,区块链签名应用410可以存储和管理根种子412。例如,区块链签名应用
410可以将根种子412存储在存储器(例如,图2的存储器230)中并管理它。
117.根据实施例,区块链签名应用410可以生成可以从根种子412导出的多个分层确定性路径414。例如,区块链签名应用410可以生成可以从根种子412导出的情况的分层确定性路径414。根据实施例,区块链签名应用410可以使用多个分层确定性路径中的至少一个从根种子412导出(或获得)私钥416和公钥417。例如,公钥417可以是最高父公钥。例如,至少一个分层确定性路径可以通过选择分配给用私钥创建的密钥对的分层确定性(hd)路径中的对应深度的参数来确定。此外,区块链签名应用410可以使用多个分层确定性路径中的至少一个,从私钥416导出(或获得)私钥418和公钥419。也就是说,区块链签名应用410可以获得密钥对、私钥418和公钥419。例如,公钥419可以是最高父公钥的子公钥。
118.根据实施例,在从根种子导出私钥的操作中,私钥和链码可以从使用散列算法(例如,hmac-sha512)对根种子进行散列得到的值中生成。散列值以512位生成,并且散列值的左256位可以用作私钥,而右256位可以用作链码。可以通过将预定函数(例如,椭圆曲线函数)应用于私钥来生成公钥。
119.根据实施例,区块链签名应用410可以将公钥419发送到区块链服务模块(例如,图4a和图4b的区块链服务模块430)。例如,根种子412和私钥416可以不被发送到区块链服务模块430,而公钥419可以单独被发送到区块链服务模块430。例如,区块链签名应用410可以使用可以从根种子412导出的多个分层确定性路径414来获得多个公钥,并且可以将获得的公钥发送到区块链服务模块430。
120.尽管图5图示了与区块链钱包应用450分离的区块链签名应用410执行对应操作,但是根据实施例,区块链钱包应用450和区块链签名应用410可以被集成来执行对应操作。例如,区块链钱包应用450可以结合区块链签名应用410来执行上面结合图5描述的操作。
121.图6是图示根据本公开的实施例的操作电子装置来为根种子提供区块链账户信息的方法的流程图。
122.参考图6,区块链签名应用410和区块链钱包应用450可以被实现为一个应用。或者,区块链签名应用410和区块链钱包应用450可以是彼此分离的应用。
123.参考图6,在操作601,电子装置(例如,电子装置401)可以运行区块链钱包应用450。
124.在操作603,电子装置401可以恢复(并存储)根种子。电子装置401可以接收特定助记词,并恢复与助记词相对应的根种子412。例如,当电子装置401是新购买的或者电子装置401自工厂重置以来首先被操作时,电子装置401可以使用区块链钱包应用450(或区块链签名应用410)来恢复根种子。例如,电子装置401可以使用区块链钱包应用来识别是否存在预先存在的根种子,并且如果存在,则识别是否恢复根种子。电子装置401可以响应于用户输入的选择用于从区块链钱包应用程序450提供的用于恢复根种子的对象来恢复根种子。或者,电子装置401可以使用区块链签名应用410来恢复(并存储)根种子,该根种子曾经被另一个区块链签名应用420使用。例如,电子装置401可以接收特定助记词并恢复(或获得)与助记词相对应的根种子。例如,电子装置401可以使用区块链签名应用410(例如,三星区块链密钥库(samsung blockchain keystore))来恢复根种子,该根种子曾经被另一个区块链签名应用420(例如,nano s)使用。
125.在操作605,电子装置401可以使用区块链钱包应用(或区块链签名应用410)生成
可以从恢复的根种子导出的多个分层确定性路径。例如,电子装置401可以(自动)生成与第一区域(例如,与一级至三级相对应的区域)相对应的第一路径和与第二区域(例如,与四级和五级相对应的区域或与四级相对应的区域)相对应的第二路径,第一路径可以仅利用根种子的私钥来导出,第二路径甚至可以利用公钥来导出。此外,电子装置401可以通过第一路径和第二路径为特定区块链账户生成分层确定性路径。
126.在操作607,电子装置401可以使用多个分层确定性路径从根种子获得多个公钥,这些公钥可以获得区块链账户。例如,电子装置401可以通过区块链签名应用410使用多个分层确定性路径中的任何一个(例如,从深度0到深度4的值)从根种子获得父公钥。电子装置401可以由区块链服务模块430使用分层确定性路径从父公钥获得与区块链账户(或地址)相对应的子公钥。
127.在操作609,电子装置401可以基于子公钥来识别区块链账户的地址,并且经由区块链网络来识别与该地址相对应的账户。例如,电子装置401可以通过区块链网络识别与该地址相对应的账户是否有效。在确定账户有效时,电子装置401可以获得关于账户的信息。例如,确定账户有效的操作可以使用被提供来确定账户在区块链网络上的有效性的功能(例如,api)。例如,当区块链地址作为参数被发送到api时,诸如以太(ethereum)网中的“以太交易计数(ethgettransactioncount)”,电子装置401可以基于从api获得的信息来识别与区块链地址相对应的账户的有效性。
128.在操作611,电子装置401可以通过区块链钱包应用450的用户界面提供关于有效账户的信息。此外,电子装置401可以更新有效账户信息。
129.图7a和7b图示了用于描述根据本公开的各种实施例操作电子装置来为根种子提供区块链账户信息的方法的数据流。
130.图7a图示了用于具体描述如上结合图4a所述的操作电子装置401的方法的数据流。
131.参考图7a,在操作701,区块链签名应用410可以生成可以从根种子导出的多个分层确定性路径。区块链签名应用410可以使用可以从根种子导出的多个分层确定性路径中的任何一个从根种子获得私钥,并且从私钥获得第一公钥。例如,第一公钥可以是与分层确定性路径中的最高级相对应的父公钥。
132.在操作703,区块链签名应用410可以向区块链服务模块430发送第一公钥。
133.在操作705,区块链服务模块430可以使用分层确定性路径从区块链第一公钥导出(或获得)用于恢复与区块链账户相对应的地址的第二公钥。例如,区块链服务模块430可以使用子密钥导出函数(ckd)获得作为第一公钥的子密钥的第二公钥。例如,第二公钥可以是与分层确定性路径中的最终级相对应的子公钥。此外,区块链服务模块430可以从第二公钥生成(或获得)与区块链账户相对应的地址。
134.在操作707,区块链服务模块430可以请求区块链网络490识别与地址相对应的账户的交易历史。
135.在操作709,区块链网络490(或包括在区块链网络中的多个节点)可以识别与地址相对应的账户的交易历史。当存在该地址的交易历史时,区块链网络490可以确定该账户是有效账户,并且当不存在该地址的交易历史时,区块链网络490可以确定该账户是无效账户。
136.在操作711,区块链服务模块430可以从区块链网络490获得有效账户列表和有效账户信息。在操作713,区块链服务模块430可以识别有效账户信息。例如,有效账户信息可以包括例如信用余额、交易历史、交易次数、最新交易信息和/或制造商提示。
137.在操作715,区块链钱包应用450可以接收或获得从区块链服务模块430发送的有效账户信息。在操作717,区块链钱包应用450可以通过显示器(例如,图2的显示器260)提供或显示有效账户信息。例如,区块链钱包应用450可以提供关于已经导出(或获得)的有效账户的分层确定性路径的类型或者有效账户已经由什么人开设的信息。例如,区块链钱包应用450可以显示账户是从五个级别的分层确定性路径导出的还是从四个级别的分层确定性路径导出的。
138.图7b图示了根据本公开的实施例的用于具体描述如上结合图4b所述的操作电子装置401的方法的数据流。
139.参考图7b,在操作751,区块链签名应用410可以生成可以从单个根种子导出的多个分层确定性路径。区块链签名应用410可以使用可以从根种子导出的多个分层确定性路径中的任何一个从根种子获得私钥,并且从私钥获得第一公钥。例如,第一公钥可以是与分层确定性路径中的最高级相对应的父公钥。
140.在操作753,区块链签名应用410可以向区块链服务模块430发送第一公钥。
141.在操作755,区块链服务模块430可以使用分层确定性路径,从区块链第一公钥导出(或获得)较低级别的第二公钥。例如,第二公钥可以是与bip-44中提出的五个级别的分层确定性路径中的三个级别相对应的子公钥。
142.在操作757,区块链服务模块430可以向服务器470发送第二公钥。
143.在操作759,服务器470可以使用分层确定性路径从第二公钥导出(或获得)用于恢复与区块链账户相对应的地址的最终级的第三公钥。此外,服务器470可以从第三公钥生成(或获得)与区块链账户相对应的地址。
144.在操作761,区块链服务模块430可以请求区块链网络490识别与该地址相对应的账户的交易历史。
145.在操作763,区块链网络490(或包括在区块链网络中的多个节点)可以识别与该地址相对应的账户的交易历史。当存在该地址的交易历史时,区块链网络490可以确定该账户是有效账户,并且当不存在该地址的交易历史时,区块链网络490可以确定该账户是无效账户。
146.在操作765,服务器470可以从区块链网络490获得有效账户列表和有效账户信息。在操作767,区块链服务模块430可以从服务器470获得有效账户列表和有效账户信息。在操作769,区块链服务模块430可以识别有效账户信息。
147.在操作771,区块链钱包应用450可以接收或获得从区块链服务模块430发送的有效账户信息。在操作773,区块链钱包应用450可以通过显示器(例如,图2的显示器260)提供或显示有效账户信息。
148.尽管图7a和7b图示了与区块链钱包应用450分离的区块链签名应用程序410执行特定操作,但是根据实施例,区块链钱包应用程序450和区块链签名应用程序410可以被集成来执行这些操作。例如,区块链钱包应用450可以结合区块链签名应用410来执行上面结合图7a和7b描述的操作(例如,区块链签名应用410的操作)。
149.图8a是图示根据本公开的实施例的根据bip-44的五个级别的路径的视图。
150.参考图8a,五个级别的分层确定性路径801可以包括指示“目的(purpose)”的第一级别810、指示“硬币_类型(coin_type)”的第二级别820、指示“账户(account)”的第三级别830、指示“变化(change)”的第四级别840以及指示“地址_索引(address_index)”的第五级别850。
151.根据实施例,第一级别810,即“目的”,可以指示所使用的规范。例如,当它由bip-44规范创建时,第一级别810可以使用44’。第二级别820可以意味着硬币类型,并且指示硬币类型的值可以由制造商确定(保留)。例如,可以确定bts(比特币)=“0”,eth(以太币)=“60”。用于每种加密货币的硬币类型代码可以基于slip0044标准进行设置。指示“账户”的第三级别830可用于区分接收地址和变化地址。可以取决于或不取决于区块链的种类来使用这些值。例如,比特币使用“账户”,但以太币可能不使用“账户”。第三级别830可以从0开始顺序增加,以便在逻辑上分开使用。第四级别840是源自btc的参数,并且基本上大多数硬币可以将“0”设置为固定值。第五级850,“地址_索引”可以意味着增加的地址编号。第五级别850可以从0开始顺序增加。如上所述,取决于所使用的区块链,每个级别可以被设置为不同的值,或者可以被省略。
152.根据实施例,电子装置201或401可以在与bip-44中提出的五个级别相对应的值(或参数)当中修改与每个硬币的“硬币_类型”相对应的第二级别值,并且从0开始以整数顺序增加与“账户”相对应的第三级别值和与“地址_索引”相对应的第五级别值,从而地理联网多个分层确定性路径。
153.根据实施例,电子装置201或401可以将与bip-44中提出的五个级别相对应的值(或参数)中与“账户”相对应的第三级别值和与“地址_索引”相对应的第五级别值从0开始依次增加整数,从而识别每个硬币的有效账户。
154.图8b是图示根据本公开的实施例的四个级别的路径的视图。
155.参考图8b,根据bip-44,分层确定性路径802可以排除五个级别中的至少一些。也就是说,取决于区块链签名应用的制造商,可以使用具有所有五个级别的分层确定性路径或仅具有五个级别中的一些级别(例如,如图8b所示排除第四级别)的分层确定性路径(例如,如图8b所示的四个级别的分层确定性路径)。或者,取决于区块链签名应用的制造商,可以使用除了五个级别之外还包括一个级别的分层确定性路径。
156.图9a和图9b是图示根据本公开的各种实施例的根据bip-44基于五个级别的路径来识别根种子的账户信息的方法的视图。
157.参考图9a和图9b,电子装置201或401可以使用区块链签名应用410生成可以从根种子905导出的多个分层确定性路径。
158.根据实施例,图9a的分层确定性路径901可以是多个分层确定性路径中的任何一个。参考图9a,在五个级别的分层确定性路径901中,取决于所使用的规范,每个级别可以具有不同的含义。例如,当由bip-44规范创建时,第一级别910可以被设置为44。第二级别920可以是指示硬币类型的值。例如,当被设置为60时,这可以指示eth(以太币)的分层确定性路径。在比特币的情况下,第三级别930可以用于区分接收地址和变化地址,或者取决于区块链的种类,它可以不被使用。第四级别940是源自btc的参数,并且基本上大多数硬币可以将“0”设置为固定值。第五级别950,即地址_索引,可以意味着地址编号增加,并且可以从0
开始顺序增加。如上所述,取决于所使用的区块链,每个级别可以被设置为不同的值,或者可以被省略。
159.根据实施例,在电子装置201或401上运行的区块链签名应用410可以使用分层确定性路径901生成用于导出(或获得)与区块链账户相对应的地址的公钥。
160.根据实施例,子密钥导出(ckd)函数可以用于导出bip-32标准中的公钥。此时,作为ckd的因子值,可以使用在分层确定性(hd)路径中输入的输入值、父公钥和其他各种值。输入值可以取决于级别增加1,并且下一个子密钥可以从增加的输入值中导出。例如,可以取决于分层确定性(hd)路径的因子值来生成无数的密钥值,像子密钥值是用级别1处的ckd(m/0)、下一级别即级别2处的ckd(m/0/0)、级别3处的ckd(m/0/0/1)、级别4处的ckd(m/0/0/1/0)、...、ckd(m/0/0/0/k)导出的。同时,本文描述的创建分层确定性路径的因子值的方案仅仅是一个示例,并且不限于bip-32标准,而是可以采用生成分层确定性(hd)路径的各种方案。
161.根据实施例,电子装置201或401可以从根种子905导出私钥,并从私钥导出第一级别910的值“44”的公钥。电子装置201或401可以从第一级别910的值“44”的公钥中导出第二级别920的值“60”的公钥(其是指示eth(以太币)的值)。电子装置201或401可以从第二级别920的值“60”和第一级别910的值“44”的公钥中导出不同值(例如,在btc(比特币)的情况下为“0”)的公钥。然而,省略了电子装置201或401从“60”导出不同值的公钥的过程。
162.根据实施例,电子装置201或401可以从第二级别920的值“60”的公钥导出第三级别930的值“0”的公钥。电子装置201或401可以从第二级别920的值“60”的公钥按整数顺序增加第三级别930的值,并为按整数顺序增加的值(例如,包括从“0”增加1)导出公钥。然而,省略了电子装置201或401从“0”导出不同值的公钥的过程。
163.根据实施例,电子装置201或401可以从第三级别930的值“0”的公钥中导出第四级别940的值“0”的公钥。
164.根据实施例,电子装置201或401可以从第四级别940的值“0”的公钥导出第五级别950的值“0”的公钥960。电子装置201或401可以从第四级940的值“0”的公钥按整数顺序增加第五级别950的值,并且为按整数顺序增加的值(例如,包括从“0”增加1的“1”)导出公钥。然而,省略了电子装置201或401从“0”导出不同值的公钥的过程。
165.根据实施例,电子装置201或401可以从第五级别950的值“0”的公钥960获得与区块链账户相对应的地址970。例如,地址970可以通过对公钥960应用特定算法来获得。例如,在比特币的情况下,特定算法可以是“address=ripemd160(sha256(public key))”算法。在比特币地址的情况下,电子装置201或401可以用公钥生成sha256散列,并且可以再次执行ripemd160散列以获得160位比特币地址。
166.根据实施例,电子装置201或401可以经由区块链网络(例如,290或490)识别与地址970相对应的账户是否有效。
167.如上所述,电子装置201或401可以使用多个分层确定性路径从根种子获得多个公钥,并且获得与多个公钥相对应的地址。此外,电子装置201或401可以有效地识别与多个地址相对应的账户是否有效以及关于账户的信息。
168.根据实施例,在图7a中,从第一级别910到第五级别950的公钥可以从电子装置401导出(或获得)。相反,在图7b中,从第一级别910到第三级别930的公钥可以从电子装置401
导出(或获得),并且第三级别930之后的公钥,例如从第四级别940到第五级别950的公钥,可以从服务器470导出(或获得)。此时,服务器470可以从第五级别950的值“0”的公钥960获得与区块链账户相对应的地址970,并且可以经由区块链网络(例如,290或490)识别与地址970相对应的账户是否有效。此外,服务器470可以向电子装置401发送关于账户是否有效的信息和关于有效账户的信息。
169.图10a和图10b是图示根据本公开的各种实施例的提供关于根种子的区块链账户信息的用户界面的视图。
170.参考图10a,电子装置1001(例如,图2或4的电子装置201或401)可以提供关于区块链账户的信息。例如,当运行区块链钱包应用(例如,图4的区块链钱包应用450)时,电子装置1001可以通过区块链钱包应用450的用户界面1010提供区块链账户信息。
171.根据实施例,用户界面1010可以提供关于包括在所有账户中的总信用余额的信息。例如,用户界面1010可以考虑当前每个硬币的市场价格和账户信用余额来提供关于包括在所有账户中的总信用余额的信息。
172.根据实施例,用户界面1010可以提供关于eth(以太币)账户1的信息1021、关于阿姨币(aeternity)账户1的信息1026和关于eth账户2的信息1030。例如,eth账户1可以是使用四级分层确定性路径从外部电子装置(例如,“nano s”)生成或导入的账户,并且eth账户2可以是使用五级分层确定性路径从另一个区块链应用(例如,samsung“keystore”或“trezor”)生成或导入的账户。例如,阿姨币账户1可以是使用四级分层确定性路径从外部电子装置(例如,“nano s”)生成或导入的账户。
173.根据实施例,用户界面1010可以为eth(以太币)账户1、阿姨币账户1和eth账户2提供信用余额、当前硬币价格信息和兑换成特定货币的价格。此外,用户界面1010可以为eth(以太币)账户1、阿姨币账户1和eth账户2提供制造商提示1025和1035。例如,由于eth账户1是使用四级分层确定性路径导出的,因此可以提供使用四级分层确定性路径的制造商(nano s)提示1025。由于eth账户2是使用五级分层确定性路径导出的,因此可以提供使用五级分层确定性路径的制造商(三星samsung“keystore”或“trezor”)提示1035。
174.根据实施例,用户界面1010可以根据分层确定性路径的级别类型对账户进行分组。例如,用户界面1010可以将从四级分层确定性路径导出的eth(以太币)账户1和阿姨币账户1分组为第一组1020,并将使用五级分层确定性路径导出的eth账户2分组为第二组1030。
175.参考图10a和图10b,每条账户信息1021、1026和1031可以提供关于每个账户的详细信息。例如,在关于eth(以太币)账户1的信息1021中,当用户的触摸输入发生在详细信息对象1022上时,电子装置1001可以显示关于eth(以太币)账户1的详细信息1023。例如,详细信息1023可以包括关于对应账户的交易次数、交易的最后交易历史和/或日期、对应账户上交易的地址信息(来自地址信息)以及交易类型信息的信息。例如,详细信息1023可以包括使用从区块链网络获得的区块链地址信息另外获得的信息。
176.尽管为了便于描述,图10a和图10b图示了用户界面1010仅提供关于账户的特定信息,但是本公开的技术精神不限于此。
177.图11是图示根据本公开的实施例的通过认证恢复根种子的区块链账户的方法的流程图。
178.参考图11,根据实施例,在操作1101,电子装置201或401可以执行恢复(或更新)区块链账户的操作。例如,当运行区块链钱包应用450时,电子装置201或401可以开始识别可以从根种子恢复的区块链账户的操作。
179.在操作1103,在恢复操作之前,电子装置201或401可以执行认证操作。例如,电子装置201或401可以将预先注册的生物信息和/或pin码与从用户输入的生物信息和/或pin码进行比较,从而执行认证操作。根据实施例,用户可以基于助记符来恢复根种子。在操作1105,电子装置201或401可以使用恢复的根种子,基于分层确定性路径,恢复基于根种子生成的地址。
180.在操作1105,当认证完成时,电子装置201或401可以生成可以用根种子驱动的分层确定性路径。此外,电子装置201或401可以使用分层确定性路径导出(或获得)多个公钥以获得与区块链账户相对应的地址。电子装置201或401可以使用多个公钥来获得多个地址。
181.在操作1107,电子装置201或401可以经由区块链网络在与多个地址相对应的账户中识别有效账户。此外,电子装置201或401可以获得关于至少一个有效账户的信息(例如,信用余额、最新交易时间、交易历史(例如,汇款和/或存款历史)、交易次数(例如,汇款次数和/或存款次数)、硬币种类和/或账户已经被开立的钱包种类(应用))。
182.在操作1109,电子装置201或401可以向用户提供关于可恢复的区块链账户的信息。用户可以通过参考关于可恢复的区块链账户的信息,使用电子装置201或401来恢复区块链账户。
183.图12a、图12b和图12c图示了根据本公开的各种实施例的用于描述通过认证恢复根种子的区块链账户的方法的用户界面。
184.参考图12a至图12c,电子装置1201(例如,图2或图4的电子装置201或401)可以执行恢复(或更新)区块链账户的操作。例如,当运行区块链钱包应用450时,电子装置1201可以使用区块链签名应用410开始恢复(或更新)区块链账户的操作。
185.参考图12a和图12b,电子装置1201可以在恢复(或更新)区块链账户之前执行认证操作。例如,电子装置1201可以经由预设认证机制执行认证操作。
186.参考图12a,当pin码已经被预设为认证机制时,电子装置1201可以显示用户界面1210以接收pin码。当用户向pin码输入窗口1215输入pin码时,电子装置1201可以将预先注册的码与输入的pin码进行比较,从而执行认证操作。当输入的pin码与预先注册的pin码相同时,电子装置1201可以完成认证。
187.参考图12b,当生物信息被设置为认证机制时,电子装置1201可以显示用户界面1220以接收生物信息。当用户向生物信息输入窗口1225输入生物信息(例如,指纹信息)时,电子装置1201可以将预先注册的生物信息与输入的生物信息进行比较,从而执行认证操作。当输入的生物信息(例如,指纹信息)与预先注册的生物信息(例如,指纹信息)相同时,电子装置1201可以完成认证。
188.根据实施例,认证操作可以经由多个认证机制来执行。例如,电子装置1201可以从用户接收pin码和生物信息二者,并且当接收到的pin码和生物信息二者与预先注册的信息相同时,可以完成认证。
189.参考图12c,当认证完成时,电子装置1201可以显示用户界面1230,用户界面1230
包括关于可以被恢复(或更新)的区块链账户的信息。根据实施例,电子装置201可以提供屏幕(未示出)来接收助记词以恢复区块链账户。根据实施例,电子装置1201可以基于接收到的助记值来恢复根种子,并且基于恢复的根种子来恢复已经基于分层确定性路径生成的账户信息。用户可以通过参考关于可以被恢复(或更新)的区块链账户的信息,使用电子装置1201来恢复(或更新)区块链账户。
190.根据实施例,电子装置包括显示器;以及处理器,被配置为:生成至少一个分层确定性路径,使用根种子和至少一个分层确定性路径获得至少一个公钥,从至少一个公钥获得区块链账户的区块链地址,基于区块链地址从区块链网络获得关于区块链地址的信息,关于区块链地址的信息包括关于区块链账户余额的信息,并且基于关于区块链账户余额的信息,通过显示器显示关于区块链地址的信息的至少一部分。
191.至少一个分层确定性路径可以包括划分成多个级别的至少一个因子。处理器可以被配置为通过修改至少一个因子来生成至少一个其他分层确定性路径。
192.处理器可以被配置为使用至少一个分层确定性路径中的第一分层确定性路径从根种子获得父公钥,并且使用与第一分层确定性路径相关的第二分层确定性路径从父公钥获得至少一个子公钥。
193.处理器可以被配置成使用至少一个子公钥中的最终级的子公钥来获得区块链地址。
194.第一分层确定性路径可以包括划分成多个级别的多个因子。处理器可以被配置为通过修改多个因子中的每一个的值来获得父公钥。
195.第二分层确定性路径可以包括划分成至少一个级别的至少一个因子。处理器可以被配置为通过修改至少一个因子的值来获得子公钥。
196.处理器可以被配置为使用通过根种子获得的至少一个私钥来生成第一分层确定性路径。
197.处理器可以被配置为向区块链网络发送关于区块链地址的交易信息的请求。
198.关于区块链地址的信息可以进一步包括区块链地址的存款次数、汇款次数、账户列表、余额、交易次数、交易历史、最新交易信息和制造商提示中的至少一个。
199.处理器可以被配置成使用预先注册的认证信息来恢复与根种子相对应的区块链地址。
200.处理器可以被配置为通过显示器显示使用关于区块链地址的信息获得的附加信息。
201.根据实施例,一种用于操作电子装置的方法包括:生成至少一个分层确定性路径;使用根种子和至少一个分层确定性路径获得至少一个公钥;从至少一个公钥获得区块链账户的区块链地址;基于区块链地址从区块链网络获得关于区块链地址的信息,关于区块链地址的信息包括关于区块链账户的余额的信息;并且基于关于区块链账户的余额的信息,通过电子装置的显示器显示关于区块链地址的信息的至少一部分。
202.所述方法还可以包括通过修改包括在至少一个分层确定性路径中、被划分成多个级别的至少一个因子来生成至少一个其他分层确定性路径。
203.获得至少一个公钥可以包括使用至少一个分层确定性路径当中的第一分层确定性路径从根种子获得父公钥,以及使用与第一分层确定性路径相关的第二分层确定性路径
从父公钥获得至少一个子公钥。
204.获得区块链地址可以包括使用至少一个子公钥当中的最终级的子公钥来获得区块链地址。
205.根据实施例,一种电子装置包括显示器和处理器,所述处理器被配置为使用根种子和第一分层确定性路径获得第一公钥,使用第一公钥和第二分层确定性路径获得第二公钥,使用第二公钥获得区块链地址,基于区块链地址从区块链网络获得关于区块链地址的信息,关于区块链地址的信息包括关于区块链地址的余额的信息,并且基于关于区块链地址的余额的信息,通过显示器提供关于区块链地址的信息中的至少一个。
206.第二分层确定性路径可以包括被划分成至少一个级别的至少一个因子。处理器可以被配置为通过修改至少一个因子的值来获得第二公钥。
207.处理器可以被配置为使用通过根种子获得的至少一个私钥来生成第一分层确定性路径。
208.根据实施例,一种电子装置包括显示器和处理器,所述处理器被配置为生成可以从根种子导出的至少一个第一分层确定性路径,使用至少一个第一分层确定性路径从根种子获得至少一个第一公钥,将至少一个第一公钥发送到服务器以从至少一个第一公钥获得区块链账户的至少一个区块链地址,从服务器获得关于与至少一个区块链地址相对应的区块链账户的信息,并通过显示器显示关于区块链账户的信息的至少一部分。
209.服务器可以使用与至少一个第一分层确定性路径相关的至少一个第二分层确定性路径,基于从至少一个第一公钥生成的至少一个第二公钥来识别至少一个区块链地址。
210.电子装置的每个前述组件可以包括一个或多个部件,并且部件的名称可以随着电子装置的类型而变化。根据本公开的各种实施例的电子装置可以包括前述组件中的至少一个、省略其中的一些,或者包括其他附加组件。一些组件可以组合成一个实体,但是所述实体可以执行与组件相同的功能。
211.从前面的描述中显而易见的是,根据本公开的各种实施例,当用于从根种子导出与区块链账户相对应的公钥的分层确定性路径的方案彼此不同时,电子装置甚至可以不通过用户而是直接选择分层确定性路径来提供根种子的区块链账户信息。
212.虽然已经参考本公开的各种实施例示出和描述了本公开,但是本领域技术人员将理解,在不脱离本公开的精神和范围的情况下,可以在形式和细节上进行各种改变。因此,本公开的范围由所附权利要求及其等同物限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献