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

生成表情符号序列标识以识别区块链钱包的钱包地址的制作方法

2022-11-23 11:50:53 来源:中国专利 TAG:

生成表情符号序列标识以识别区块链钱包的钱包地址
相关申请的交叉引用
1.本技术要求享有2020年2月7日提交的美国临时申请第62/971,666号的权益,其全部内容通过引用并入本文。
技术领域
2.本公开总体涉及生成表情符号序列标识(id),并且尤其涉及生成表情符号序列id以识别区块链钱包的钱包地址。


背景技术:

3.公钥和私钥是建立在区块链网络上的加密货币的不可或缺的组成部分,并且是被称为公钥密码术(pkc)或非对称加密的更大加密领域的一部分。pkc的目标是从第一状态(例如,私钥)轻松地过渡到第二状态(例如,公钥),而几乎无法从第二状态逆转到第一状态,并且在该过程中,证明拥有密钥而不暴露该密钥。该结果由此是一种单向数学函数,由于无法伪造拥有第一状态(如密钥),因此这使其非常适合确认交易(如加密货币交易)的真实性。pkc依赖于双密钥模型,即公钥和私钥。
4.pkc的一般目的是在易受潜在的恶意窃听者攻击的公共信道中使用数字签名来实现安全的私人通信。在加密货币的背景下,目标是证明一笔已花费的交易确实是由资金的所有者签署的,并且不是伪造的,所有交易都发生在对等方之间的公共区块链网络上。区块链钱包的私钥解锁区块链钱包所有者花费区块链钱包中的加密货币资金的权利,因此必须保持私密。区块链钱包的钱包地址与区块链钱包的私钥加密链接,并对所有用户公开,以使其他用户能够将加密货币发送到用户的区块链钱包。例如,钱包地址可能是使用一种或多种pkc算法从区块链钱包的私钥生成的公钥。
5.区块链钱包的钱包地址通常以人类易读的形式以下列三种方式之一表示:以十六进制表示、以base64表示或以base58表示。在这些表示钱包地址的常用方式的每一种中,每个钱包地址都使用一串字母和数字表示,通常长度超过20个字符。字母数字字符串的长度和随机性使钱包地址笨拙且难以记住,从而降低了其可用性并阻碍了加密货币的采用。


技术实现要素:

6.如上所述,钱包地址通常以人类易读的形式表示为一长串字母和数字,用户难以记住并且在用户输入以交易加密货币时容易出错。因此,需要系统和方法为区块链钱包生成非文本表示。在一些实施例中,可以为区块链钱包生成用于识别钱包地址的表情符号序列id,以减少与钱包地址的传统字母数字表示相关联的缺点。表情符号序列id包括唯一识别钱包地址的表情符号序列。不仅表情符号序列中的每个表情符号代表钱包地址的多个字符,从而缩短了钱包地址的表示,而且表情符号更容易被用户记住。因此,表情符号序列id可以作为助记表情符号字符串,帮助用户更容易记住用户的钱包地址。
7.在一些实施例中,用于生成识别区块链钱包的钱包地址的表情符号序列标识(id)
的方法包括:接收区块链钱包的钱包地址,钱包地址包括预定位数;将钱包地址的预定位数划分为多个不重叠的序列位组;基于预定的表情符号列表将每组序列位转换为对应的表情符号id,其中表情符号id包括从表情符号列表中选择的预定数量的表情符号,并且其中组中每个唯一的位序列映射到唯一的表情符号id;将每组序列位的表情符号id连接成表情符号序列;以及基于表情符号序列,输出识别钱包地址的表情符号序列id。
8.在该方法的一些实施例中,表情符号列表存储为对应的unicode字符列表。在该方法的一些实施例中,表情符号列表包括从unicode标准中选择的多个表情符号。
9.在该方法的一些实施例中,多个表情符号与对应的多个值相关联。在一些实施例中,多个表情符号存储在数组中,并且多个值是该数组的多个对应索引。
10.在该方法的一些实施例中,每组序列位对应于一个数字,该数字被转换为与表情符号表示中的预定数量的表情符号相对应的预定数量的值。
11.在该方法的一些实施例中,多个表情符号包括图形相似的多个表情符号集合,并且其中图形相似的每个表情符号集合具有指定的相关联的值。在一些实施例中,图形相似的表情符号集合包括描绘同一对象的类型的多个表情符号。
12.在该方法的一些实施例中,钱包地址的预定位数包括由钱包地址的预定义部分表示的校验和。
13.在一些实施例中,基于识别钱包地址的表情符号序列标识(id)推导区块链钱包的钱包地址的方法包括:接收识别钱包地址的表情符号序列id,表情符号序列id包括具有预定数量的表情符号的表情符号序列;将表情符号序列的预定数量的表情符号划分为多个不重叠的序列表情符号组;基于预定的表情符号列表将每组序列表情符号转换为对应于预定的位数的相应文本表示,其中列表中的每个表情符号与一个值相关联,其中表情符号组中的每个唯一的表情符号序列映射到唯一数字,并且其中转换包括:基于预定的表情符号列表识别与每个组中的多个表情符号对应的多个值,其中每个表情符号组中的每个表情符号对应于来自预定的表情符号列表的表情符号,并基于多个识别的值生成对应于文本表示的数字;以及将每组序列表情符号的文本表示连接成识别钱包地址的文本表示序列。
14.在该方法的一些实施例中,接收表情符号序列id包括:接收钱包地址对应的qr码;从qr码中推导表情符号序列;将表情符号序列显示为钱包地址的表情符号序列id,其中将钱包地址显示为表情符号序列使用户能够图形化地验证钱包地址。
15.在该方法的一些实施例中,接收表情符号序列id包括:从存储已复制对象的剪贴板接收表情符号序列。
16.在该方法的一些实施例中,表情符号序列的预定义部分对应于用于验证表情符号序列id的校验和,并且该方法包括:从表情符号序列中提取预定义部分以生成结果表情符号序列,其中预定义部分包括一个或多个表情符号;基于预定的表情符号列表,将预定义部分转换为校验和值;应用校验和算法,以基于结果表情符号序列计算钱包地址的值;以及确定计算值是否与校验和值匹配。
17.在该方法的一些实施例中,响应于确定计算值与校验和值不匹配,该方法包括:生成指示钱包地址的表情符号序列id无效的通知。
18.在一些实施例中,一种用于生成识别区块链钱包的钱包地址的表情符号序列标识(id)的系统包括:一个或多个处理器;存储器,其包括本地存储;以及一个或多个程序,其中
一个或多个程序被存储在存储器中并且被配置为由一个或多个处理器执行,一个或多个程序包括使一个或多个处理器执行以下操作的指令:接收区块链钱包的钱包地址,钱包地址包括预定位数;将钱包地址的预定位数划分为多个不重叠的序列位组;基于预定的表情符号列表将每组序列位转换为对应的表情符号id,其中表情符号id包括从表情符号列表中选择的预定数量的表情符号,并且其中组中每个唯一的位序列映射到唯一的表情符号id;将每组序列位的表情符号id连接成表情符号序列;以及基于表情符号序列,输出识别钱包地址的表情符号序列id。
19.在一些实施例中,一种非暂时性计算机可读存储介质包括用于生成识别区块链钱包的钱包地址的表情符号序列标识(id)的一个或多个程序,其中一个或多个程序在由一个或多个处理器执行时,使一个或多个处理器执行以下操作,该操作包括:接收区块链钱包的钱包地址,钱包地址包括预定位数;将钱包地址的预定位数划分为多个不重叠的序列位组;基于预定的表情符号列表将每组序列位转换为对应的表情符号id,其中表情符号id包括从表情符号列表中选择的预定数量的表情符号,并且其中组中每个唯一的位序列映射到唯一的表情符号id;将每组序列位的表情符号id连接成表情符号序列;以及基于表情符号序列,输出识别钱包地址的表情符号序列id。
20.在一些实施例中,一种基于识别钱包地址的表情符号序列标识(id)推导区块链钱包的钱包地址的系统包括:一个或多个处理器;存储器,其包括本地存储;以及一个或多个程序,其中一个或多个程序被存储在存储器中并且被配置为由一个或多个处理器执行,一个或多个程序包括使一个或多个处理器执行以下操作的指令:接收识别钱包地址的表情符号序列id,表情符号序列id包括具有预定数量的表情符号的表情符号序列;将表情符号序列的预定数量的表情符号划分为多个不重叠的序列表情符号组;基于预定的表情符号列表将每组序列表情符号转换为对应于预定的位数的相应文本表示,其中列表中的每个表情符号与一个值相关联,其中表情符号组中的每个唯一的表情符号序列映射到唯一数字,并且其中转换包括:基于预定的表情符号列表识别与每个组中的多个表情符号对应的多个值,其中每个表情符号组中的每个表情符号对应于来自表情符号预定列表的表情符号,并基于多个识别的值生成对应于文本表示的数字;以及将每组序列表情符号的文本表示连接成识别钱包地址的文本系列表示。
21.在一些实施例中,一种非暂时性计算机可读存储介质包括:基于识别钱包地址的表情符号序列标识(id)推导区块链钱包的钱包地址的一个或多个程序,其中一个或多个程序在由一个或多个处理器执行时,使一个或多个处理器执行以下操作,包括:接收识别钱包地址的表情符号序列id,表情符号序列id包括具有预定数量的表情符号的表情符号序列;将表情符号序列的预定数量的表情符号划分为多个不重叠的序列表情符号组;基于预定的表情符号列表将每组序列表情符号转换为对应于预定的位数的相应文本表示,其中列表中的每个表情符号与一个值相关联,其中表情符号组中的每个唯一的表情符号序列映射到唯一数字,并且其中转换包括:基于表情符号预定列表识别与每个组中的多个表情符号对应的多个值,其中每个表情符号组中的每个表情符号对应于来自表情符号预定列表的表情符号,并基于多个识别的值生成对应于文本表示的数字;以及将每组序列表情符号的文本表示连接成识别钱包地址的文本序列表示。
附图说明
22.现在将参照附图,仅以举例的方式对本公开进行描述,其中:
23.图1说明了根据一些实施例的用于使用表情符号序列标识(id)来识别区块链钱包的钱包地址的系统的框图;
24.图2说明了根据一些实施例的用于生成识别区块链钱包的钱包地址的表情符号序列id的方法的流程图;
25.图3说明了根据一些实施例的用于基于识别钱包地址的表情符号序列id推导区块链钱包的钱包地址的方法的流程图;
26.图4-图12示出了根据一些实施例的用于使用表情符号序列id来表示区块链钱包的钱包地址来交易加密货币的图形用户界面的各种屏幕;以及
27.图13说明了根据一些实施例的计算机的示例。
具体实施方式
28.在各种实施例的以下描述中,参照附图,在附图中以说明的方式示出了可以实施的具体实施例。该描述的提出是为了使本领域的普通技术人员能够制造和使用本发明,并且是在专利申请及其要求的背景下提供的。对所述实施例的各种修改对于本领域技术人员来说将是显而易见的,并且本文的一般原理可以应用于其他实施例。因此,本发明并不旨在受限于所示实施例,而是要符合与本文所描述的原理和特征一致的最宽范围。
29.如本文所用,在以下描述中使用的单数形式“a”、“an”和“the”旨在也包括复数形式,除非上下文另有明确指示。应该理解的是,如本文所用的术语“和/或”是指并涵盖一个或多个相关列出的项的任何和所有可能的组合。还应理解,术语“包括(或包含,includes、including、comprises和/或comprising),当在本文中使用时,指定存在所述特征、整体、步骤、操作、元件、组件和/或单元,但不排除一个或多个其他特征、整体、步骤、操作、元件、组件、单元和/或其组的存在或增加。
30.本发明的某些方面包括本文以方法的形式描述的过程步骤和指令。应该注意的是,本发明的过程步骤和指令可以体现在软件、固件或硬件中,并且当体现在软件中时,这些过程步骤和指令可以下载以驻留在各种操作系统使用的不同平台上,并由各种操作系统使用的不同平台操作。除非从下面的论述中明确说明,否则可以理解的是,在整个描述中,利用诸如“处理”、“计算”、“运算”、“确定”、“显示”等术语的论述是指计算机系统或类似电子计算设备的动作和过程,该动作和过程在计算机系统存储器或寄存器或其他此类信息存储、传输或显示设备中操纵和转换表示为物理(电子)量的数据。
31.在一些实施例中,本公开还涉及一种用于执行本文中的操作的设备。该设备可以为所需目的而专门构造,或者其可以包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这样的计算机程序可以存储在非临时性计算机可读存储介质中,例如但不限于任何类型的磁盘,包括软磁盘、usb闪存驱动器、外部硬盘驱动器、光盘、cd-rom、磁光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡、专用集成电路(asic)或适合存储电子指令的任何类型的介质,并且每个均耦合到计算机系统总线。此外,本说明书中提及的计算机可以包括单个处理器或者可以是采用多个处理器设计以增加计算能力的架构。
32.本文所描述的方法、设备和系统并不固有地与任何特定计算机或其他装置相关。根据本文的教导,各种通用系统也可以与程序一起使用,或者可以证明构造更专门的装置来执行所需的方法步骤是方便的。各种这些系统所需的结构将从下面的描述中出现。另外,本发明没有参照任何特定的编程语言来描述。应该理解的是,可以使用多种编程语言来实现如本文所描述的本发明的教导。
33.如上所述,区块链钱包的钱包地址通常表示为长串的随机字母数字字符,这些长串的随机字母数字字符难以记住并且容易被用户输入错误。因此,以图形表示形式(如唯一识别钱包地址的表情符号序列标识(id))表示区块链钱包的钱包地址将是有利的,如下面将进一步描述的。
34.图1说明了根据一些实施例的用于使用表情符号序列id来识别区块链钱包的钱包地址的系统100的框图。系统100包括区块链网络102、用户设备120、用户设备130和服务器110。
35.如图1所示,区块链网络102包括多个节点104a-104e(例如,服务器),每个节点均维护区块链的对应副本。在实际操作中,区块链网络102可以包括成数百或数千个节点。在一些实施例中,区块链网络102可以是本领域技术人员已知的分布式对等网络。在一些实施例中,区块链网络102的节点104a-104e实施已知的一致性算法来确认提交给区块链网络102的交易。经过验证的交易可以包括转移的加密货币、合同、记录或其他待记录到区块链的信息。在一些实施例中,将多个交易组合在一起形成跨区块链网络102验证的数据块。一旦验证,该数据块可以添加到由节点104a-104e中的每一个维护的现有区块链。
36.在一些实施例中,用户可以使用用户设备130发起待提交给区块链网络102的交易。例如,用户可以使用被配置为与区块链网络102交互的应用程序131来提交交易。例如,应用程序131可以生成加密货币交易并将其传输到节点104a以进行确认和验证。应用程序131可以包括从数字发行平台(例如,apple设备上的应用商店或windows设备上的微软商店)或内容服务器下载的软件。在一些实施例中,应用程序131提供图形用户界面(gui),该图形用户界面使用户能够在他或她的区块链钱包和加密货币资金的目标接受者的区块链钱包之间生成交易。通常,目标接受者的区块链钱包由钱包地址以人类易读的文本表示方式来识别。例如,钱包地址可以是诸如十六进制格式、base64格式或base58格式的一串数字和/或字符。如上所述,需要用户将长串数字和/或字符输入到应用程序131中以识别目标接受者的钱包地址是低效的并且容易出错。
37.在一些实施例中,为了使用户能够使用表情符号序列id来唯一地识别加密货币交易中区块链钱包的目标钱包地址,应用程序131可以实现表情符号列表132、表情符号编码器134和表情符号解码器136。
38.在一些实施例中,表情符号列表132可以存储在应用程序131的存储器中,并且包括用于使得能够使用表情符号序列id来识别区块链钱包的钱包地址的预定表情符号列表。在一些实施例中,预定列表包括从unicode标准中的表情符号中选择的表情符号子集。例如,表情符号列表132可以包括从unicode标准中选择的1626个表情符号。在一些实施例中,选择1626个表情符号是因为从1626个表情符号中选择的三个表情符号可以唯一地映射到四字节值。例如,从1626个表情符号中选择的三个表情符号的表情符号id可以包括1626^3个唯一表情符号id,这比可以由四字节(即32位)值表示的唯一值(即2^32)的总可能数量多
出不到0.1%。如本领域技术人员所理解的,可以选择其他数量的表情符号作为表情符号列表132的一部分以表示不同的位数。例如,具有46个表情符号的表情符号列表132可以使用两个表情符号来表示11位值(即,两个表情符号产生46*46=2116个唯一表情符号id,这比11位值的可能值2048提供了略多的唯一值)。
39.在一些实施例中,表情符号列表132中的表情符号可以选择为在视觉上不同,以减小用户在输入识别区块链钱包的钱包地址的表情符号序列id时输入不正确的表情符号的可能性。例如,可以选择表情符号,使得不存在两个表情符号描绘同一对象的轻微变化。例如,可以选择猫的单个表情符号并将其包括在表情符号列表132中,而不是选择描绘具有不同表情的猫(例如,咧嘴笑的猫、喜极而泣的猫和撅嘴的猫等)的多个表情符号并将其包括在表情符号列表132中。
40.在一些实施例中,为了允许在表情符号id和整数值之间进行转换,表情符号列表132包括与多个对应值相关联的多个表情符号。在一些实施例中,表情符号列表132可以存储为数组,其中数组中的每个表情符号具有基于其在数组中的位置的对应索引。因此,与表情符号相关联的每个值可以是指定给表情符号的索引。在其他实施例中,表情符号列表132可以包括存储多个表情符号并且存储对应于多个表情符号的多个值的表。在这些实施例中,表情符号列表132中图形相似的表情符号可以与相同的值相关联。在一些实施例中,图形相似的一组表情符号可以包括描绘同一对象的类型的多个表情符号。例如,表情符号列表132可以包括多个国旗表情符号,每个国旗表情符号均具有指定的关联值,例如9。
41.在一些实施例中,应用程序131可以包括将更多表情符号映射到表情符号列表132中的表情符号的表情符号映射表。例如,表情符号映射表可以包括unicode标准中的所有可用表情符号(即截至2020年1月的3,304个表情符号)。在一些实施例中,通过选择将表情符号映射到表情符号列表132中的表情符号,可以将两个或更多个图形相似的表情符号映射到同一表情符号。例如,显示描绘不同类型的时钟的两个或更多个表情符号可以映射到时钟的同一表情符号。表情符号映射表的使用可以将可能的表情符号归一化为表情符号列表,这些表情符号被选择在视觉上不同,以减少用户输入期间的错误以及增强视觉验证输入的表情符号序列id的容易性。
42.在一些实施例中,表情符号编码器134可以被配置为生成唯一识别钱包地址的表情符号序列id,该表情符号序列id包括预定位数(例如,128位地址或256位地址)。换句话说,表情符号编码器134可以将钱包地址编码成表情符号序列,使得每个钱包地址都由恰好一个表情符号序列唯一地表示。进一步地,有效的表情符号序列id恰好代表一个钱包地址。表情符号编码器134和表情符号解码器136分别执行的编码和解码函数是对称函数。这意味着将钱包地址a编码为其表情符号序列id,s,然后将解码函数应用于表情符号序列id,s,将始终得到原始编码的钱包地址a。
43.在一些实施例中,为了生成表情符号序列id,表情符号编码器134可以将钱包地址的预定位数映射到从表情符号列表132中选择的预定数量的表情符号,如下面将关于图2进一步描述的。在一些实施例中,钱包地址的预定位数可以划分为多个不重叠的序列位组。例如,钱包地址可以划分为4字节块。然后,表情符号编码器134可以基于表情符号列表132将每组序列位转换为包括预定数量的表情符号的表情符号id。最后,表情符号编码器134可以通过将每组序列位的每个表情符号id连接成表情符号序列来生成识别钱包地址的表情符
号序列id。
44.在一些实施例中,表情符号编码器134可以实施映射算法以将钱包地址转换为表情符号序列id。例如,映射算法可以包括bip39算法、electrum方案算法或从表情符号索引到具有至少1024个表情符号的表情符号列表132的10位值的简单映射。在一些实施例中,表情符号编码器134可以实施映射算法,该算法使用表情符号列表132中的表情符号的索引来将数值转换为预定数量的表情符号。
45.在一些实施例中,为了生成表情符号序列id,表情符号编码器134可以计算表情符号序列的校验和值。例如,表情符号编码器134可以应用诸如damm算法的校验和算法来计算校验和值。然后,表情符号编码器134可以将校验和值转换成包括预定数量的表情符号的表情符号表示。最后,表情符号编码器134可以通过将校验和的表情符号表示附加到先前计算的表情符号序列来输出识别钱包地址的表情符号序列id。
46.在一些实施例中,表情符号解码器136可以被配置为生成钱包地址,该钱包地址包括由表情符号序列id唯一识别的预定位数(例如,128位地址或256位地址)。换句话说,表情符号解码器136可以将识别钱包地址的表情符号序列id解码成与钱包地址唯一对应的文本表示序列。在一些实施例中,文本表示可以与区块链网络102处理加密货币交易所需的钱包地址的字母数字格式对应。例如,文本表示的序列可以是十六进制字符串、base64字符串或base58字符串。
47.在一些实施例中,为了生成识别钱包地址的文本表示序列,表情符号解码器136可以将表情符号序列id中的表情符号序列映射到基于表情符号列表132识别钱包地址的数值,如下面将关于图3进一步描述的。在一些实施例中,表情符号解码器136可以使用表情符号列表132来确定数值以识别对应于表情符号序列id中的多个表情符号的多个值。例如,对于表情符号序列id中的表情符号,表情符号解码器136可以使用在表情符号列表132中标识的表情符号的索引作为与要用于生成数值的表情符号相关联的值。在一些实施例中,表情符号解码器136可以将生成的数值转换成唯一识别钱包地址的文本表示序列。
48.在一些实施例中,表情符号解码器136可以对表情符号序列id应用校验和算法以确定表情符号序列id是否有效。例如,表情符号解码器136可以应用校验和算法来检查表情符号序列id中的最后一个表情符号是否匹配对除最后一个表情符号之外的表情符号序列id应用校验和算法的结果。如上面关于表情符号编码器134所描述的,可以生成最后一个表情符号以表示表情符号序列id的校验和值。在一些实施例中,如果校验和失败,则表情符号解码器136可以停止处理,因为表情符号序列id无效。在一些实施例中,表情符号解码器136可以生成指示序列id无效的通知。
49.在一些实施例中,可以从表情符号序列id中提取一个或多个表情符号校验和,以生成结果表情符号序列。在一些实施例中,结果表情符号序列可以划分为多个不重叠的序列位组。例如,对于具有1626个表情符号的表情符号列表132,结果表情符号序列可以划分为每组3个表情符号的组,其中每个组表示4字节值。然后,表情符号解码器136可以基于表情符号列表132将每组序列表情符号转换为包括预定位数的文本表示。最后,表情符号解码器136可以通过连接每组序列表情符号的每个文本表示来生成识别钱包地址的文本表示序列。
50.在一些实施例中,应用程序131的功能可以在系统100的其他地方执行,如在区块
链网络102中的一个或多个节点104a-104e上执行。在这些实施例中,区块链网络102可以被配置为能够处理在其中使用表情符号序列id识别钱包地址的交易。在一些实施例中,表情符号序列id是多个表情符号的序列。
51.在一些实施例中,应用程序131的功能可以在系统100的其他地方执行,如在服务器上执行。例如,服务器110包括表情符号列表112、表情符号编码器114和表情符号解码器116,它们分别提供与表情符号列表132、表情符号编码器134和表情符号解码器136类似的功能。在一些实施例中,服务器110可以是使用户能够操作用户设备120上的客户端122以访问服务器110的功能的网络服务器。例如,客户端122可以是使用户能够连接到由服务器110提供的门户网站或界面的浏览器。因此,使用用户设备120的用户可以通过服务器110发起待由区块链网络102验证并添加到区块链网络102的交易。
52.图2说明了根据一些实施例的用于生成识别区块链钱包的钱包地址的表情符号序列id的方法200的流程图。在一些实施例中,方法200可以由诸如表情符号编码器134和表情符号解码器114的编码器来执行,如上面关于图1所描述的。
53.在步骤202中,编码器接收包括用于区块链钱包的预定位数的钱包地址。例如,流行加密货币(如比特币、莱特币和以太币)中使用的钱包地址是160位值。在一些实施例中,钱包地址是基于ecdsa公/私钥对生成的。例如,钱包地址可以是从公/私钥对的公钥部分生成的哈希值。在一些实施例中,可以应用一个或多个哈希算法以链式系列来生成钱包地址。示例系列是算法xi1,该算法包括由11种不同哈希算法组成的链。一个或多个哈希算法的示例可以包括以下任何类型的算法:消息摘要(例如,md、md2、md4、md5和md6)、ripemd(例如,ripend、ripemd-128、ripemd-160)、whirlpool(whirlpool-0、whirlpool-t和whirlpool)或安全哈希函数(例如,sha-0、sha-1、sha-2、sha-3)。在加密货币领域,sha-256(即sha-2算法的示例)是常用的哈希算法。
54.在步骤204中,编码器将钱包地址的预定位数划分为多个不重叠的序列位组。在一些实施例中,将钱包地址的位平均划分为多个组。因此,每个组可以包括相同的序列位数。
55.在步骤206中,编码器基于预定的表情符号列表将每组序列位转换为对应的表情符号id,其中每个表情符号id包括从表情符号列表中选择的预定数量的表情符号,并且组中每个唯一的位序列映射到唯一的表情符号id。在一些实施例中,编码器可以将该组转换为与来自预定列表的多个对应表情符号相对应的多个索引值。
56.在一些实施例中,编码器可以实施基于electrum的方案以将每组序列位转换为对应的表情符号id。例如,对于表情符号的索引从0到1625的长度为1626的表情符号列表,钱包地址可以平均划分为32位或4字节块的组。因此,对于以32字节(即256位)整数表示的钱包地址,钱包地址将被平均划分为8个4字节(即32位)组。在一些实施例中,编码器可以执行以下步骤来生成表情符号id:指定该组对应的4字节整数的值为x;将第一索引i_l确定为x%1626;将第二索引i_2确定为(x/1626 i_l)%1626,其中x/1626作为整数除法执行,其中忽略余数;将第三索引i_3确定为(x/(l626*1626) i_2)%1626;从预定列表中查找对应于第一、第二和第三索引的表情符号;并将查找到的表情符号连接到表情符号id。
57.在步骤208中,编码器将每组序列位的表情符号id连接成表情符号序列。在一些实施例中,表情符号序列包括预定数量的表情符号。
58.在步骤210中,编码器基于表情符号序列输出识别钱包地址的表情符号序列id。在
一些实施例中,表情符号序列id包括表情符号序列。在一些实施例中,编码器可以被配置为基于钱包地址生成校验和值并将校验和值转换为表情符号。在这些实施例中,表情符号序列id可以包括与校验和表情符号连接的表情符号序列。
59.图3说明了根据一些实施例的用于基于识别钱包地址的表情符号序列id推导区块链钱包的钱包地址的方法300的流程图。在一些实施例中,方法300可以由诸如表情符号编码器136和表情符号解码器116的解码器来执行,如上面关于图1所描述的。
60.在步骤302中,解码器接收识别钱包地址的表情符号序列id,并且表情符号序列id包括具有预定数量的表情符号的表情符号序列。例如,表示256位钱包地址的表情符号序列id可以包括24个表情符号的表情符号序列。在一些实施例中,表情符号序列中的一个或多个表情符号可以表示钱包地址的校验和。例如,表示256位钱包地址的表情符号序列id可以包括25个表情符号的表情符号序列,其中最后一个表情符号表示对应于表情符号序列中的前24个表情符号的校验和。
61.在步骤304中,解码器将表情符号序列的预定数量的表情符号划分为多个不重叠的序列表情符号组。在一些实施例中,每组序列表情符号均包括相同预定数量的表情符号。在表情符号序列id包括表示校验和的一个或多个表情符号的一些实施例中,表情符号序列表示具有用于被提取的校验和的一个或多个表情符号的表情符号序列id。
62.在步骤306中,解码器基于表情符号预定列表将每组序列表情符号转换为对应于预定位数的相应文本表示,其中列表中的每个表情符号均与值相关联。在一些实施例中,文本表示可以是数字表示、十六进制表示、二进制表示或诸如base64格式等的字母数字表示。在一些实施例中,步骤306可以包括步骤306a-306b。
63.在步骤306a中,解码器基于表情符号预定列表识别对应于每个组中的多个表情符号的多个值,其中每个表情符号组中的每个表情符号对应于来自表情符号预定列表的表情符号。
64.在步骤306b中,解码器基于多个识别的值生成对应于文本表示的数字。
65.在一些实施例中,解码器可以实现基于electrum的方案以将每组序列表情符号转换为与文本表示相对应的数字。例如,对于表情符号的索引从0到1625的长度为n(例如1626)的表情符号列表,表情符号序列可以平均划分为表示4字节值的每组3个表情符号的组。因此,对于具有25个表情符号(一个表情符号用于校验和)的表情符号序列id,24个非校验和表情符号将被平均划分为8个每组3个表情符号的组。在一些实施例中,解码器可以执行以下步骤来为每个三个表情符号的组生成数字:将第一值v_l设置为从预定表情符号列表中识别的第一表情符号的索引;将第二值v_2设置为从预定表情符号列表中识别的第二表情符号的索引;将第三值v_3设置为从预定表情符号列表中识别的第三表情符号的索引;并通过应用以下公式计算数字x:x=v_l n*{(v_2-v_l)%n) n*n{(v_3-v_2)%n)。在一些实施例中,可以将数字转换为文本表示,例如十六进制表示。
66.在步骤308中,解码器将每组序列表情符号的文本表示连接成识别钱包地址的文本表示序列。在一些实施例中,文本表示的序列可以是一串数字或字母数字字符。例如,文本表示的序列可以是十六进制表示、二进制表示或base64表示。在一些实施例中,解码器可以被配置为将文本表示的序列转换成不同的格式,如base58表示。在一些实施例中,文本表示可以是需要被包括在提交给区块链网络的交易中的格式。
67.图4-图12是示出了根据一些实施例的用于使用表情符号序列id来表示区块链钱包的钱包地址来交易加密货币的图形用户界面(gui)的各个示例屏幕400-1200。在一些实施例中,用于显示屏幕400-1200的gui可以由安装在用户设备上的应用程序(例如,应用程序130)或客户端122(例如,客户端122)提供,以使用户能够发起区块链交易。
68.图4说明了根据一些实施例的由gui显示以提示用户为用户的区块链钱包创建表情符号序列id的示例屏幕400。一旦用户选择继续按钮402,gui就可以被配置为生成识别用户的区块链钱包的钱包地址的表情符号序列id。
69.图5说明了在用户请求生成表情符号序列id之后由gui显示的示例屏幕500,如关于图4所描述的。如屏幕500所示,gui可以在部分502中显示生成的表情符号序列id。部分502显示了可以生成的示例表情符号序列id。在一些实施例中,gui显示继续按钮504,一旦用户选择继续按钮504,该按钮将导致gui使用户能够使用部分502中识别的用户钱包地址来发起区块链交易。
70.图6说明了由gui显示的示例屏幕600,以使用户能够输入识别目标用户的区块链钱包的表情符号序列id,以向目标用户发送加密货币。在一些实施例中,输入的表情符号序列id可以识别目标用户的区块链钱包的钱包地址。用户可以将表情符号序列id中的每个表情符号键入字段602。如上面关于图1所描述的,通过将目标用户的钱包地址显示为表情符号序列id,gui减轻了用户的输入负担,也减小了输入传统字母数字钱包地址时出错的可能性。
71.图7说明了由gui显示的示例屏幕700,其示出了gui允许用户输入目标用户的表情符号序列id的另一种方法。如图7所示,gui允许用户复制表情符号序列id702以粘贴到对应于屏幕600的字段602的字段704中。在其他实施例中,gui可以使用户能够拍摄qr码,并且gui可以被配置为从qr中提取目标用户的表情符号序列id。在另一实施例中,gui可以使用户能够输入指向目标用户的表情符号序列id的超链接。
72.图8说明了由gui显示的示例屏幕800,其示出了在用户输入目标用户的表情符号序列id之后如何允许用户生成加密货币交易,如上面关于图6和7所描述的。在一些实施例中,屏幕800显示了图形元素802,其描绘了识别目标用户的区块链钱包的目标用户的表情符号序列id。gui使用户能够使用按键接口804输入要转移到目标用户的区块链钱包的加密货币数量806。
73.图9说明了由gui显示的示例屏幕900,其使用户能够将加密货币交易的描述904输入到由部分902所示的表情符号序列id识别的目标用户的区块链钱包中。例如,描述904表明,目标用户是“史蒂夫”,并且请求的150单位的加密货币交易(如图8所示)是用于晚餐。在用户输入描述904之后,用户可以选择发送按钮来完成请求的交易。
74.图10说明了由gui显示的示例屏幕1000,以显示用户已向目标用户的表情符号序列id发送加密货币的交易确认1002。在一些实施例中,操作gui的应用程序可以生成区块链交易并将其传输到诸如区块链网络102的区块链网络以供验证。在一些实施例中,在传输区块链交易之前,应用程序(例如,表情符号解码器136)可以将识别目标用户的钱包地址的表情符号序列id转换为可由区块链网络处理的文本表示的序列。例如,文本表示的序列可以是十六进制字符串、base58字符串、base64字符串等。
75.图11说明了由gui显示的示例屏幕1100,以向用户显示未决交易1104和已完成交
易1108。如图11所示,屏幕1100显示了到由表情符号序列id1106识别的目标用户钱包的加密货币交易仍未决,如上文关于图7-图10所描述的。屏幕1100还显示了已完成的交易1108,其包括用户从名为“tari bof”的用户收到2500个单位的加密货币的交易。另外,屏幕1100可以显示基于未决交易1104和已完成交易的加密货币单位的可用余额1102。
76.在一些实施例中,一旦区块链网络验证交易并将其添加到区块链,gui就可以被配置为更新未决交易1104。例如,图12说明了由gui显示的示例屏幕1200,其显示已完成交易1202,已完成交易1202包括到由先前未决的表情符号序列id1204识别的的目标用户的区块链钱包的交易。
77.图13说明了根据一些实施例的计算设备1300的示例。设备1300可以是连接到网络的主机计算设备。例如,设备1300可以是上面关于图1描述的服务器110、用户设备120、用户设备130和一个或多个节点104a-104e中的一个或多个,的示例实现。设备1300可以是客户端计算机或服务器。如图13所示,设备1300可以是任何合适类型的基于微处理器的设备,如个人计算机、工作站或服务器。该设备可以包括例如处理器1310、输入设备1320、输出设备1330、存储器1340和通信设备1360中的一个或多个。输入设备1320和输出设备1330通常可以对应于上述那些设备并且可以与计算设备连接或集成。
78.输入设备1320可以是提供输入的任何合适的设备,如触摸屏、键盘或按键、鼠标或语音识别设备。输出设备1330可以是提供输出的任何合适的设备,如触摸屏、触觉设备或扬声器。
79.存储器1340可以是提供存储的任何合适的设备,如包括ram、高速缓存、硬盘驱动器或可移动存储盘的电、磁或光存储器。通信设备1360可以包括能够通过网络发送和接收信号的任何合适的设备,如网络接口芯片或设备。计算设备的组件可以以任何合适的方式连接,如通过物理总线或无线连接。
80.可以存储在存储器1340中并由处理器1310执行的软件1350可以包括例如体现本公开的功能(例如,上述设备所体现的)的程序。例如,软件1350可以包括系统软件(例如操作系统)、应用软件或安全软件。
81.软件1350还可以在任何非暂时性计算机可读存储介质中存储和/或传输,以供指令执行系统、装置或设备使用或与其结合使用,如上述那些,它们可从指令执行系统、装置或设备中获取与软件相关联的指令并执行指令。在本公开的上下文中,计算机可读存储介质可以是可含有或存储供指令执行系统、装置或设备使用或与其结合使用的程序的任何介质,如存储器1340。
82.软件1350还可以在任何传送介质中传播,以供指令执行系统、装置或设备使用或与其结合使用,如上述那些,它们可从指令执行系统、装置或设备中获取与软件相关联的指令并执行指令。在本公开的上下文中,传送介质可以是可以通信、传播或传送编程以供指令执行系统、装置或设备使用或与其结合使用的任何介质。传送可读介质可以包括但不限于电子、磁、光、电磁或红外有线或无线传播介质。
83.设备1300可以连接到网络,该网络可以是任何合适类型的互连通信系统。该网络可以实现任何合适的通信协议并且可以通过任何合适的安全协议来保护。该网络可以包含可以实现网络信号的发送和接收的任何合适布置的网络链路,如无线网络连接、t1或t3线路、电缆网络、dsl或电话线路。
84.设备1300可以实现任何适合在网络上运行的操作系统。软件1350可以用任何合适的编程语言编写,如c、c 、java或python。在各种实施例中,体现本公开的功能的应用软件可以部署在不同的配置中,例如在客户端/服务器布置中。
85.出于解释的目的,上述描述已经参照了具体实施例。然而,上述说明性论述并非旨在详尽无遗或将本公开限制为所公开的精确形式。鉴于上述教导,许多修改和改变都是可能的。选择和描述实施例是为了最好地解释这些技术的原理及其实际应用。从而使本领域的其他技术人员能够最好地利用适于预期的特定用途的各种修改的技术和各种实施例。
86.尽管已经参照附图充分描述了本公开和示例,但是应该注意,各种改变和修改对于本领域技术人员来说将是显而易见的。这样的改变和修改将被理解为包括在如权利要求书所限定的本公开和示例的范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献