CN111427891A - 区块挖掘装置 - Google Patents
区块挖掘装置 Download PDFInfo
- Publication number
- CN111427891A CN111427891A CN202010216367.2A CN202010216367A CN111427891A CN 111427891 A CN111427891 A CN 111427891A CN 202010216367 A CN202010216367 A CN 202010216367A CN 111427891 A CN111427891 A CN 111427891A
- Authority
- CN
- China
- Prior art keywords
- block
- message
- message table
- intermediate state
- header
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
- G06Q20/0655—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed centrally
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
- G06Q20/0658—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2220/00—Business processing using cryptography
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Devices For Executing Special Programs (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种区块链挖掘装置,包括:通过有选择地改变区块的一部分尤其是区块头部以开发n个中间状态的中间状态生成器;通过根据预定的扩展函数对消息扩展以发展成消息表的单个消息扩展器;其中n个压缩器共享一个消息过程,每个压缩器根据预定压缩函数发展的结果作为消息表的函数以及n个唯一的中间状态中的各自一个中间状态。压缩器可以是回旋式核心或流水式核心。
Description
相关申请的交叉参考
本申请涉及于2013年11月19日申请的临时申请序列号61/906,310(“临时专利申请”),该临时专利申请的主题及其全部内容以引用的方式明确地并入本文,并在此根据37CFR§1.78(a)(4)要求该临时专利申请的申请日的权益。
技术领域
本发明涉及用于挖掘(mining)区块(block),尤其是区块链(block chain)中的区块挖掘装置。
背景技术
一般而言,在以下说明书中,我们将以斜体表示本领域技术人员应该熟悉的本领域的每个专用术语的第一次出现。另外,当我们首次介绍我们认为是新的或在我们认为是新的环境中将使用的术语时,我们将以粗体来表示该术语并且提供我们意图应用于该术语的定义。另外,在整个说明书中,当指出信号、信号标志、状态位或类似设备呈现为其逻辑真或逻辑假状态时,有时我们将分别使用术语断言(assert)和否定(negate),并且使用术语切换(toggle)来表示信号从一个逻辑状态到另一逻辑状态的逻辑反转。可选地,我们可以将互斥的布尔(boolean)状态称作逻辑0(logic_0)和逻辑1(logic_1)。当然,众所周知的是,通过对全部这样的信号的逻辑含义取反能够获得一致的系统操作,使得本文中描述为逻辑真的信号变成逻辑假,反之亦然(vice versa)。此外,在这种系统中,选择哪些具体电压电平来表示每个逻辑状态毫无关系。为了便于参考,我们将使用“设置”一词来表示视情况需要的零、一或大于一的集合。
一般地,分布式网络(decentralized network)可以存储并引用区块链中的公共信息。在一典型的区块链中,每个区块(block)包含大致出现于同一时间的通常被称为交易(transactions)的信息单元。使用一预定义的协议(protocol),区块可以通过将其散列值(hash values)插入区块链的下一个顺序区块的指定字段(field)而相连(linked)。
区块链的挖掘过程的设计,是为了让系统达成一致性,其中计算机网络的所有节点(nodes)都符合同一个区块链。已经提出了若干种区块链系统,且一些正被实施。其中最早的系统之一,且目前最广泛认可的,是比特币系统。根据比特币协议,第一个成功确定候选(candidate)区块的工作量证明(proof-of-work)的矿机(miner)有权将该区块添加到区块链(有时被称为分类账(ledger)),并有权生成(generate)新的加密货币单元作为奖励。
区块的工作量证明包含随机数(nonce)值,如果将其插入该区块的指定字段,则其将使该区块的加密散列值(cryptographic hash value)达到一定的难度目标(difficultytarget)。由于加密散列函数(cryptographic hash function)实际上表现为随机指示(random oracle),除了简单地反复试验(trial-and-error)来查找正确的随机数,目前尚未发现更好的方法。因此挖掘过程是一个随机(stochastic)过程。在实践中,一个特定矿机成功开发一个区块(solving a block)的可能性,在任何特定的时间点,正比于该矿机的散。列率(hash rate),其与整个网络的散列率相关。
众所周知,美国国家安全局(NSA)已经设计并公布了一组被称为安全散列算法(“SHA”,Secure Hash Algorithms)的加密散列函数。特别地,应用SHA-256的比特币协议以如下伪代码描述:
**********
注1:所有变量都是32位无符号整数,并且加法按模232计算
注2:对于每个循环,在消息表数组w[i]中有一个循环常数k[i]和一项记录,0≤i≤63
注3:压缩函数使用从a到h的8个工作变量
注4:在表达该伪码中的常数,以及从字节到字地解析消息块数据时,使用大字节序约定,例如,在填充后,输入消息”abc”的第一个字是0x61626380
初始化散列值:(前8位素数2…19的平方根的小数部分的前32位)
h0:=0x6a09e667;
h1:=0xbb67ae85;
h2:=0x3c6ef372;
h3:=0xa54ff53a;
h4:=0x510e527f;
h5:=0x9b05688c;
h6:=0x1f83d9ab;
h7:=0x5be0cd19;
初始化循环常数的数组:(前64位素数2…311的立方根的小数部分的前32位)
k[0..63]:=0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5,0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174,0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967,0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85,0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070,0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3,0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2;
预处理:
在消息上追加比特'1';
追加k比特个'0';
其中,k是大于等于0的最小的数,使得所得到的消息长度(模512,单位为比特)为448追加消息的长度;
(没有比特'1'或填充),以比特为单位,64位大字节序(这将使整个后处理的长度为512比特的倍数)
以连续512比特一块的方式处理消息:
将消息按512比特一块拆分;
对于每个块:
{
创建一个64条记录的为32位字的消息表数组w[0..63];
(w[0..63]的初始值并不重要,所以这里用许多零填充)
将块复制到消息表数组的第一个16个字w[0..15];
将第一个16个字扩大到消息表数组的其余48个字w[16..63]:
对于i,其从16到63:
s0:=(w[i-15]右旋7)xor(w[i-15]右旋18)xor(w[i-15]右移3);
s1:=(w[i-2]右旋17)xor(w[i-2]右旋19)xor(w[i-2]右移10);
w[i]:=w[i-16]+s0+w[i-7]+s1;
初始化工作变量为当前散列值:
a:=h0;
b:=h1;
c:=h2;
d:=h3;
e:=h4;
f:=h5;
g:=h6;
h:=h7;
压缩功能的主循环:
对(for)i,从(from)0到63:
{
S1:=(e右旋(rightrotate)6)xor(e右旋11)xor(e右旋25);
ch:=(e and f)xor((not e)and g);
temp1:=h+S1+ch+k[i]+w[i];
S0:=(a右旋2)xor(a右旋13)xor(a右旋22);
maj:=(a and b)xor(a and c)xor(b and c);
temp2:=S0+maj;
h:=g;
g:=f;
f:=e;
e:=d+temp1;
d:=c;
c:=b;
b:=a;
a:=temp1+temp2;
}
将压缩块添加到当前散列值:
h0:=h0+a;
h1:=h1+b;
h2:=h2+c;
h3:=h3+d;
h4:=h4+e;
h5:=h5+f;
h6:=h6+g;
h7:=h7+h;
}
产生最终的散列值(大字节序):
摘要:=散列:=h0追加(append)h1追加h2追加h3追加h4追加h5追加h6追加h7
**********
下文中,为了便于参考,我们可以使用上面伪代码中提出的术语来谈本发明的各方面。此外,通过举例的方式,本公开内容将集中讨论研究比特币协议,尽管我们意识到其他加密货币系统可能受益于本发明。
许多散列函数,包括SHA-1、SHA-2和RIPEMD家族,采用与SHA-256类似的方案。每种算法采用一种适于将输入消息(message)扩展(expand)到消息表(message schedule)的扩展函数(expansion function)(有时被称为扩展操作(expansion operation)),然后采用一种适于将消息表压缩(compress)成散列值(value)或结果(result)(有时被称为消息摘要(message digest),或者简单地称为摘要(digest))的压缩函数(comp ressionfunction)(有时被称为压缩操作(compression operation))。通常情况下,压缩函数是可递归循环的(recursive),每次循环(round)压缩消息表中的一个字(word)。当应用于硬件实现时,这些函数的递归性质适合于公知的循环展开(loop unrolling)方法,结果得到计算元件(computational elements)的典型流水式(pipelined)配置。
通常,当在比特币内计算散列时,它被计算两次,即,SHA-256散列的SHA-256散列(有时被称为双SHA(double-SHA),或简单地SHA2)。大多数时候,只在例如散列的交易或区块头部(block headers)时使用SHA-256散列。然而,当更短的散列摘要是可取的时,例如,当对公钥(public key)散列以获得比特币地址(Bitcoin address)时,RIPEMD-160也可用于第二次散列。
通过设计,区块链具有竞争性。货币奖励正比于已开发(solved)的区块的数量,其反过来正比于散列率,而散列率与整个网络的散列率相关。随着竞争加剧,矿机都在积极寻求即使是改进小的散列率。一种改善散列率的已知方法是将散列查找(hash search)分散(scatter)到最大数量的散列引擎(hash engines),每种散列引擎适于独立地搜索(search)满足(satisfy)(例如,低于)所需难度目标的散列的整个随机数空间(noncespace)的相应部分。
通常,当在比特币内计算散列时,正被散列的消息具有固定长度。这对于例如区块头部(headers)(80个字节(bytes))是这样的情况,无论何时,散列值(32个字节)本身正被散列。散列值在所有双SHA应用中都被散列。在Merkle树(Merkle tree)的信息中,以树数据结构(tree data structure)排列的散列值对(64个字节)被散列。一般情况下,适用于散列固定长度消息的散列引擎可能会更优于且不同于适用于散列任意长度消息的散列引擎。
如果在专用集成电路(“ASIC”,application specific integrated circuit)中实现散列引擎时,设计目标的关键是改善功率、性能和面积。当许多相同的短长度的消息必须被散列时,采用流水式实现散列核心(core)是可能的。例如,图1示出了这种流水式的现有技术的一个程序块。在典型的ASIC中,在中央控制单元的控制下,若干个这样的流水式程序块被具现化并适于并行(parallel)或串行(serially)地操作,该中央控制单元(centralcontrol unit)可以是常规的微处理器单元(“MPU”,microprocessor unit)或是具现化于同一ASIC中的专用控制器(图未示出)。
在区块链的挖掘中,许多消息(区块)的散列仅在最后块(chunk)(即,该部分包含随机数)上不同。对于该特定类型的应用,压缩器(compressor)的中间状态(mid-state)(即,执行压缩功能的硬件部件)可被预先计算,只要它不依赖于随机数。然后,对于依赖于随机数的最后应用,可以使用如图1所示的流水式核心10。在图1中,我们已经使用常规符号表示总线宽度,用表示为32位的双字(“dwords”,double-words)作为单位。有时,根据使用环境,压缩器14可被称为半散列器(semi-hasher),而扩展器12和压缩器14的组合被称为全散列器(full-hasher)。对于本发明的目的,我们提出核心10可以流水线式(pipelined)或回旋式(rolled)具现化。
我们已于图2中示出了现有技术的回旋式核心(rolled core)10'的基本硬件结构。通常,在这种结构中,大约需要67个周期来计算一个SHA-256循环,包括64个计算周期加上少数的额外周期来加载具有初始值的寄存器。通常,若干核心10'之间共享常量(constants)的只读存储器(“ROM”,read-only-memory)。一般地,现有技术的专用回旋式核心10'可以概念化为如图3所示,其中散列计算硬件被描述成组合逻辑(combinationallogic)云(cloud)。图4通过示例方式描述了现有技术中高度结构化的SHA2流水式核心10。在图5中,我们已经示出了一种典型的比特币SHA2引擎16的高级表示。
图6所示为比特币区块头部的格式,其中,标示的字段长度(field sizes)是以8比特字节标示。可以看出,在偏移(offset)36处,32字节的Merkle根字段跨越区块头部的Block[0](有时简称为"B0")和Block[1]("B1")之间的边界。例如,图7已经示出了一3级Merkle树,其具有包含4次交易(transactions)的树叶(leaf),但是可以认识到,根据被散列的交易的数量,典型的Merkle树可以具有另外的分层散列层级(hierarchical hashlevels)。为了便于参考,图8中已经示出了比特币区块链内典型的3块序列,其中每个块包含一区块头部(请见图6)和各自的一组交易(以明文(clear text)方式呈现以便于区块浏览(block browsing))。在可用交易的数量小于二级工作证明(power-of-two)的情况,填充(padding)交易,例如其采用复制或虚设的方式,将被添加到树叶层级,以完成二级工作证明的树结构。根据比特币协议,每个区块的第一次交易常常是产量(generation)(或基于货币(coinbase))交易,其由将区块添加得到链的矿机而产出(generated)。
正如我们在临时申请中所解释的那样,已经提出了在区块头部(请见图6)划分4字节的版本(Version)字段,并使用例如高2字节部分作为附加随机数范围。可选地,比特币规范在基于货币(coinbase)或产量(generation)交易的格式中定义了extraNonce字段(请见图16b)。但是,比特币规范认可extraNonce字段的增加会导致Merkle树的重新计算,因为基于货币交易是最左边的叶节点。在这种方法中,每次增加extraNonce时,产生完整的Merkle根部,因此需要重新处理完整的区块头部。
我们可以察知到,当前的硬件平台设计存在一个问题,每个散列核心需要适于独立于实例化的硬件中的其他所有散列核心来进行完整的SHA-256。需要一种方法和装置来让多个压缩器时刻共享单个扩展器时刻。
发明内容
在本发明的一种实施例中,我们提供一种种区块挖掘装置,所述区块包括区块头部,作为应用在所述区块头部的选定的散列函数的函数,所述选定的散列函数包括扩展操作和压缩操作,所述装置包括:
中间状态生成器,用于通过有选择地改变区块的一部分以开发n个中间状态;
单个消息扩展器,用于通过根据预定的扩展操作对消息扩展以发展成消息表;
n个压缩器,所述n个压缩器分别和所述中间状态生成器和所述单个消息扩展器连接;
其中所述n个压缩器共享一个消息过程,分别用于对于所述n个中间状态中的每一个与所述消息表执行压缩操作以产生相应的n个结果中的一个;n为大于等于2的整数。
在一个实施例中,所述中间状态生成器用于通过有选择地改变区块头部以开发n个中间状态。
在一个实施例中,区块挖掘装置还包括:
与每个压缩器连接的中间状态寄存器和消息表寄存器,其中,所述中间状态寄存器包含预计算的中间状态,所述消息表寄存器包含预计算的消息表;
与每个压缩器连接的每个全散列器,每个压缩器与相应的每个全散列器进行流水处理。
在一个实施例中,所述单个消息扩展器适于共享相同消息表;所述n个压缩器包括一对同步运行的第一压缩器和第二压缩器;
其中,中间状态在完全随机数范围内保持恒定,而消息表字内的随机数在全流水线时钟速率时增加。
在一个实施例中,所述单个消息扩展器适于共享相同消息表;所述n个压缩器包括多个同步运行的压缩器,该多个同步运行的压缩器按级联方式连接,以便每个消息表元素从压缩器到压缩器顺序地传递,每个压缩器存在一个延迟间隔。
在一个实施例中,所述中间状态生成器用于动态地为n个压缩器中的每一个生成唯一的中间状态;
所述装置还包括:
适于延迟相应的中间状态到相应的压缩器的最后级的64级延迟FIFO。
在一个实施例中,中间状态生成器用于开发n个中间状态,每个中间状态作为有选择地改变所述区块头部的选定的第一部分的函数;
所述单个消息扩展器用于对所述区块头部的选定的第二部分执行所述扩展操作以产生消息表;以及
所述n个压缩器分别用于对于所述n个中间状态中的每一个,对所述中间状态与所述消息表执行压缩操作以产生相应的n个结果中的一个。
在一个实施例中,所述区块头部的第一部分包括所述区块头部的最前面的4个字节。
在一个实施例中,所述区块头部的第一部分包括交易的摘要。
在一个实施例中,产量交易包括多个交易中的一个;并且所述中间状态生成器基于改变所述产量交易开发n个中间状态。
在一个实施例中,所述中间状态生成器基于改变多个交易的订单开发n个中间状态。
在一个实施例中,所述第一部分包括树数据结构的根部。
在一个实施例中,所述树数据结构包括Merkle树。
在一个实施例中,所述中间状态生成器用于从多个第一候选子树散列中选择左子树散列;从多个第二候选子树散列中选择右子树散列;以及从所述左子树散列和所述右子树散列开发所述树数据结构的根部。
在一个实施例中,所述中间状态生成器用于还用于通过改变所述区块头部的第一部分开发候选区块头部;将过滤函数应用到所述候选区块头部,并且:如果所述候选区块头部未能通过所述过滤函数,丢弃所述候选区块头部;否则,开发作为所述候选区块头部的函数的中间状态;以及重复上述操作以开发m个中间状态,每个中间状态作为各自候选区块头部的函数。
在一个实施例中,所述候选区块头部的第一部分包含28个字节,所述候选区块头部的第二部分包含4个字节;以及
所受过滤函数还用于根据所述第二部分选择丢弃候选区块头部。
在一个实施例中,所述单个消息扩展器用于对所述区块头部执行扩展操作,以产生包含有序的消息表元素序列的消息表;
所述n个压缩器中的每一个用于对所述消息表元素序列执行压缩操作,以产生相应的m个结果中的一个。
附图说明
本发明可以通过一些优选实施方式以及附图的描述得以更全面的理解,其中附图包括:
图1以框图形式示出了现有技术中专用SHA流水线;
图2以框图形式示出了现有技术中专用SHA回旋式核心;
图3以框图形式示出了现有技术中另一专用SHA回旋式核心;
图4以框图形式示出了现有技术中具有流水式核心的比特币SHA2散列引擎;
图5以框图形式示出了现有技术中具有回旋式核心或流水式核心的比特币SHA2散列引擎;
图6以表格方式示出了比特币区块头部的格式;
图7以框图形式示出了比特币协议中采用的多层Merkle树;
图8以框图形式示出了包含区块链的比特币区块的通用格式;
图9以框图形式示出了根据我们的临时专利申请中公开的本发明构造的比特币SHA2散列引擎;
图10以框图形式示出了根据我们的临时专利申请中公开的本发明的一种可行的硬件具现化;
图11以逻辑流程图形式示出了根据我们的临时专利申请中公开的本发明的用于操作图10的实施例的一种可行的方法;
图12以框图形式示出了根据我们的临时专利申请中公开的本发明的一种可行的并行消息表共享(message schedule sharing)实施例;
图13以框图形式示出了根据本发明的一种可行的级联型(cascaded)消息表共享实施例;
图14以框图形式示出了根据本发明的一种替代的流水式消息表预计算(messageschedule pre-computation)实施例;
图15包含图15a和图15b,以框图形式示出了适于用在例如图14的可行的消息表预计算引擎;
图16包含图16a和图16b,以框图形式示出了用于图7的多层Merkle树的若干可行形式;
图17以流程图形式示出了根据本发明的一种用于产生多个Merkle根部的可行方法;
图18以框图形式示出了根据本发明的一种具有回旋式核心的可行的级联型消息表共享实施例;以及
图19以框图形式示出了根据本发明的具有回旋式核心的消息表预计算实施例。
在附图中,相似元件将尽可能标记相似。然而,该做法仅是为了便于参考并且避免不必要的附图标记的激增,而并不意在暗示或提示本公开内容要求若干实施方式中的功能或结构的一致性。
具体实施方式
图9以高层次形式示出根据我们的临时专利申请中公开的本发明构造的比特币SHA2散列引擎16。图10介绍了我们临时专利申请中公开的本发明的基本实现。优选的实施例是以ASIC形式具现化散列引擎16',其包含选定的多个例如200个SHA-256半散列器12以及相应的多个全SHA-256散列器14。每个半散列器12与相应的每个全散列器14进行流水处理。每个散列器流水线,其将一个半散列器12和一个全散列器14组合起来,输出结果为每时钟周期(clock tick)一个SHA2。每个半散列器12具有12字节中间状态寄存器18和64*4字节预计算的消息表寄存器20,其中,中间状态寄存器包含预计算的中间状态,消息表寄存器包含预计算的消息表,并且所有SHA循环展开(unrolled),并用硬件实现。按照常规,每个全散列器14包含消息表创建逻辑,以在每个时钟周期从输入区块获得消息表;并且循环也是展开的。消息表移位寄存器12a适于执行类似扩展器流水线,来以16双字滑动窗口(slidingwindows)(有时也称为通道(slots))的64深度下推堆栈(push-down stack)顺序地开发输入区块的消息表,其中,在堆栈中,消息的每个新的双字进入顶部,而最早的双字于底部被移除。在操作中,每个滑动窗口被向下推导下一个更深的通道,以跟随与通道相对应的散列循环。在全散列器14的循环61处,我们提供专用的中间比较逻辑模块22,以在进行所有64次循环之前检查区块的解决方案。如果发现解决方案,则唤起(raised)中断(interrupt)(“IRQ”);可选地,所有全散列器14可以被循序继续搜索其他的解决方案,或者可以停止以节省功率。采用外部的微处理器(“MPU”,microprocessor)来处理异常,读取全散列器14的输出,并从中找到一个可以解决区块的全散列器。此外,我们提供最后32比特的检查器26,以便于为预计算重用散列器流水线。
根据本发明的一个实施例,我们直接提出了选择性地改变位于Block[0](请见图6)的Merkle根部的28字节部分。我们的方法要求矿机先执行准备阶段(preparationstage),在该阶段构建许多不同的有效Merkle根部。然而,与通常的做法相反,我们的目标是要找到若干候选Merkle根部,其以相同的4字节格式结束。例如,一种方式是选择预定的固定格式(例如4个零字节)。另一种方式是为每种格式存储Merkle根部候选,直至发现足够的侯选根部以所需格式结束。
如我们在临时专利申请中所述,散列引擎16'的操作的功能流程如图11所示。这里通过伪代码形式(用缩进表示for循环(for-loop)结构)解释其工作:
**********
1.通过将SHA的第一块处理应用于区块头部来预计算s个中间状态MS0,..,MSs-1,该区块头部是通过设置Merkle根部字段到s个Merkle根部MR0,..,Mrs-1来修改。
2.为固定格式创建具有B1集合的最前面32比特的B1,所有MR_i的各自最后4个字节共用。为B1的其它字段(|比特|和|时间|)设置适当的值。
3.对于每个随机数v,
3.1.在B1中存储随机数,并为B1预计算消息表Wv。
3.1对于从0到s-1的每个i:
3.1.1使用预计算消息表Wv使中间状态成为完整SHA实施,以获得中间的摘要Ti,v。
3.1.2.将第二SHA操作应用到Ti,v,已得到双SHA摘要Di,v。
3.1.3.比较Di,v和目标(如果最后一轮优化在使用中,该比较将在第二SHA实施引擎内完成)。
**********
为了快速计算许多有效的候选根部,一种方式是通过增加extraNonce字段并重新计算树上的父节点直至根节点的散列来构造它们。另一种方式是通过交换子节点(例如左和右)来重新排列Merkle树的子树,并重新计算父节点直至根节点;这种方法可以包括置换(permuting)交易树叶。每计算一个新的候选根部,要重新检查所需的格式,如果不匹配,则丢弃候选根部,否则将它存储起来。正如我们在临时专利申请中指出的,当Merkle树种包含Q个交易时,这种技术要求矿机执行大约s*2^32*log2(Q)次SHA2散列摘要以获得相同结果的元素。
如我们在临时专利申请所解释的,我们提出通过组合两组预生成的Merkle子树来实现更高的性能(虽然可以动态地组合所生成的Merkle子树,但是我们发现这通常更糟)。
我们的准备阶段分三个步骤进行:
1.在准备阶段的第一步,我们通过有选择地重新排列Merkle树种的交易集合,或者,也许还可以通过从所有待处理的交易池中选择不同组的交易,开发K1个节点散列,这可以在大约(K1+1)*log2(#Q1)次SHA2操作中完成,其中Q1是一组交易散列,#Q1是该组(即,左节点)的交易散列的数量,由于一旦建立Q1交易的树,则,通过交换子节点可以获得新的根部,并且每个父节点的计算需要平均log2(Q1)次SHA2散列摘要。只有父节点散列需要保存,而实际的树随后可以从内存中去除。
2.在准备阶段的第二步,我们开发了一组节点子树的一组K2父节点散列摘要,其中交易的集合是Q2,交易(左节点)的数量是#Q2=#Q1(如上所述,这通常是可能的,因为比特币M e r k l e根部使用重复的交易散列来填充树的空节点)。注意,集合Q1和Q2不相交(intersect),并且通过将Q1的订单与Q2的任意订单级联(concatenation)而创建的交易的任何订单必须是有效的交易订单。另请注意,Q1的几乎所有可能的订单一般都是有效的,因为大多数矿机不产生那种具有依赖于区块内其他交易的交易区块(唯一例外的是,产量交易永远是第一位)。
对于Q1,左子树的可能候选根部的数量是(#Q1-1)!(存在3628800种可能的订单)。
对于Q2,为简单起见,我们可以假设没有重复的交易散列(即#Q1+#Q2是二级工作证明)。因此,右子树的可能候选根部的数量是(#Q2)!。如果我们选择#Q1=#Q2=11,那么存在至少2^46个可能的候选根部,其可以通过将左边集合的元素与右边集合的元素相组合而简单计算出。注意K1和K2并不需要很大,且能够表示一个小的可能订单的子集,并可使用#Q1和#Q2的更高的值。
3.在准备阶段的第三步(其通常用我们的散列引擎16'来执行),第一组的一个父节点的散列反复地与第二组的一个父节点组合(一个左节点组合一个右节点),然后进行SHA2散列,得到根部节点散列。每次组合只需要从表中获得2个散列并执行SHA2操作。
图12所示为适用于图9的系统的核心10,其包括一个适于共享相同消息表的扩展器12以及一对同步运行的压缩器14a和14b。如上所述,每个压缩器14从使用例如我们的候选根部生成处理来生成的唯一的中间状态开始。随着散列过程通过压缩器14继续同步向下进行,消息表字流并行地通过扩展器12向下。一旦完成,每个压缩器14提供一个相应的唯一的输出状态。如在我们的基本结构那样,中间状态在完全随机数范围内保持恒定,而消息表字内的随机数在全流水线时钟速率时增加。与传统结构形成鲜明对比的是,我们的散列引擎16'只需要单个共用的扩展器12,从而不仅总系统硬件明显减少,而且功耗也明显降低。
图13所示为适用于图9的系统的通用级联核心10,其包括一个适于共享相同消息表的扩展器12以及多个同步运行的压缩器14a-14b。在这个核心10中,若干个压缩器14按级联方式连接,每个消息表元素从压缩器到压缩器顺序地传递,每个压缩器存在一个延迟间隔(适用于特定的硬件实现)。每个压缩器14从唯一的中间状态开始,一旦完成,可提供各自的唯一输出状态;然而,对应相同消息的输出状态岁时间相隔一个延迟间隔而顺序提供。需要注意的是,这种设置包括谨慎协调的2维流水线以及从上到下、从左到右的工作流程。在操作中,在每一个周期,所有压缩器14产生各自的输出状态,但对应不同消息。
在图14已经示出了我们消息表预计算方法的通用级联形式,其中散列引擎16包含适于动态地为多个压缩器14中的每一个生成唯一的中间状态的中间状态生成器28,以及适于延迟相应的中间状态到相应的压缩器14的最后级的64级延迟FIFO 30。中间状态生成器28在每一压缩器的管道时钟必须开发新的中间状态,而每个中间状态要在相同的管道时钟频率沿这一连串的压缩器传递。在我们的消息表预计算散列引擎16的实施例中,通过合适的消息表预计算引擎32动态地开发消息表字W0-W63,其例子我们已在图15中示出。在散列引擎16中,消息表字和随机数在相对长的时间内恒定。在图15a所示的实施例中,输出的字存储于和每个压缩器14相关的一组64个消息表寄存器34中。虽然我们在图15a中示出了单个共享的回旋式消息扩展器32a,但每个压缩器14具有本地的回旋式消息扩展器32a(未示出)。在图15b所示的替代实施例中,每个压缩器14具有与其关联的适于动态生成消息表字的组合逻辑云32b;因此,在这个实施例中不需要寄存器34。由于消息表寄存器34的更新相对不频繁,应该有足够的时间来解决深逻辑32b。
在图16a中,为便于参考,我们已经描述了一简单的三级二进制Merkle树,其具有4个叶节点,即交易[1::4]。根据我们的发明,寻求产生尽可能多的候选根部散列,然后确定和存储那些最后双字匹配的。一种我们称之为分而治之("D&C",divide-and-conquer)的方法__的工作原理的伪代码形式如下:
**********
D&C算法:
输入:Q=2^n交易的集合(即树的叶)。
输出:L=k个根节点散列值的列表。
1.将叶集合划分成大小为2^(n-1)的两组Q1和Q2;
2.产生散列摘要列表L1,其中每个元素为通过置换树的节点而从Q1创建的Merkle树的根节点
3.产生散列摘要列表L2,其中每个元素为通过置换树的节点而从Q2创建的Merkle树的根节点
3.1对于L1中的所有x1:
3.1.1对于L2中的所有x2:
3.1.1.1计算x=SHA2(x1||x2),并追加到L;
4.返回包含#L1*#L2根部的列表L。
**********
注释:
1)本流程在图17中示出。在内部循环步骤2.1.1,我们使用"::"符合表示追加操作。
2)我们的基本交易交换机制通过例如图16a的示例示出,其中右子树Q2的交易3已经与右子树Q2的交易4的交换。
3)在图16b中,我们已强调产量交易必须始终是最左侧的交易。因此在我们的D&C算法的步骤1中,产量交易被限制留在Q1。
4)由于k1、k2可以相对较小(需要大约1M列表元素的订单),我们优选以驻留在MPU24内的软件模块来实现所有步骤,除了我们的D&C算法的外部递归外,即步骤2。一旦开发完,L1和L2可能会转发到散列核心10的流水线,以产生根部散列,然后搜索列表L中满足我们标准(大约1T列表元素的订单)的根部。
一种快速开发一组候选根部散列的可替代的方法是,在每个产量交易中增加可用的extraNonce字段(请见图16b)。由于extraNonce字段是从2到100个字节的可变长度,所以
通过简单地使用extraNonce字段可以容易且快速地生成很大的候选根部散列池。虽然迄今已建议使用extraNonce字段来增加挖掘操作的有效随机数范围,但是我们并不知道任何方案所得的一组根部散列的结果,其使用预定的过滤函数(filter function)进行过滤(filtered),该过滤函数特别适用于识别那些最后4字节匹配给定标准的散列,例如我们已在我们的临时专利申请中揭露的全零或任何其他给定值。我们方法的基本优点是,只有B0受影响,允许B1的消息表被预先计算。要记住的是,最终的目标是为了方便我们的两个主要机制:消息表共享以及消息表预计算。
在图18中,我们已经说明了根据本发明采用回旋式核心结构,来使用我们的消息表共享方法。在示出的核心10'中,由单个消息扩展器12开发的消息表,并行地应用到多个同步运行的压缩器14。如图12的实施例那样,每个压缩器14用不同的中间状态初始化;这是有效的,因为一般在已经用尽随机数范围之后,新中间状态的需求相对不频繁。
在图19中,我们已经说明了如何根据本发明的采用回旋式核心结构,来使用我们的消息表预计算方法。在示出的核心10'中,由单个消息扩展器12开发的消息表,并行地应用到多个级联的压缩器14。如图14的实施例那样,生成的中间状态级联地向下通过一组相应的中间状态寄存器,经由总线运行于大约核心频率/67的频率。在这个实施例中,由于消息表更新相对不频繁,我们可以在寄存器文件中增加常数以及存储预计算的总和。
虽然我们已经通过具体实施方式描述了本发明,但是本领域普通技术人员将容易地认识到,这些实施方式可以作出许多修改,以适用于特定的实现。在未来,如果比特币区块头部的其他部分可以用作扩展的随机数空间,例如前个区块散列(previous blockhash)的前32位,那么我们的方法和装置还可以使用这些额外的随机数空间,以创建本发明所需的一组中间状态。
因此,我们已经提供了区块挖掘的改进方法和装置。特别地,我们提出的新方法和装置允许一个单一的扩展时刻由多个压缩器时刻的共享。此外,我们提出的方法和设备提供了总体上优于最好的现有技术的性能。
Claims (12)
1.一种区块挖掘装置,所述区块包括区块头部,作为应用在所述区块头部的选定的散列函数的函数,所述选定的散列函数包括扩展操作和压缩操作,其特征在于,所述装置包括:
中间状态生成器,用于通过有选择地改变区块的一部分以开发n个中间状态;
单个消息扩展器,用于通过根据预定的扩展操作对消息扩展以发展成消息表;
n个压缩器,所述n个压缩器分别和所述中间状态生成器和所述单个消息扩展器连接;
其中所述n个压缩器共享一个消息过程,分别用于对于所述n个中间状态中的每一个与所述消息表执行压缩操作以产生相应的n个结果中的一个;n为大于等于2的整数。
2.根据权利要求1所述的区块挖掘装置,其特征在于,所述中间状态生成器用于通过有选择地改变区块头部以开发n个中间状态。
3.根据权利要求1所述的区块挖掘装置,其特征在于,还包括:
与每个压缩器连接的中间状态寄存器和消息表寄存器,其中,所述中间状态寄存器包含预计算的中间状态,所述消息表寄存器包含预计算的消息表;
与每个压缩器连接的每个全散列器,每个压缩器与相应的每个全散列器进行流水处理。
4.根据权利要求1所述的区块挖掘装置,其特征在于,所述单个消息扩展器适于共享相同消息表;所述n个压缩器包括一对同步运行的第一压缩器和第二压缩器;
其中,中间状态在完全随机数范围内保持恒定,而消息表字内的随机数在全流水线时钟速率时增加。
5.根据权利要求1所述的区块挖掘装置,其特征在于,所述单个消息扩展器适于共享相同消息表;所述n个压缩器包括多个同步运行的压缩器,该多个同步运行的压缩器按级联方式连接,以便每个消息表元素从压缩器到压缩器顺序地传递,每个压缩器存在一个延迟间隔。
6.根据权利要求5所述的区块挖掘装置,其特征在于,所述中间状态生成器用于动态地为n个压缩器中的每一个生成唯一的中间状态;
所述装置还包括:
适于延迟相应的中间状态到相应的压缩器的最后级的64级延迟FIFO。
7.根据权利要求1所述的区块挖掘装置,其特征在于,
中间状态生成器用于开发n个中间状态,每个中间状态作为有选择地改变所述区块头部的选定的第一部分的函数;
所述单个消息扩展器用于对所述区块头部的选定的第二部分执行所述扩展操作以产生消息表;以及
所述n个压缩器分别用于对于所述n个中间状态中的每一个,对所述中间状态与所述消息表执行压缩操作以产生相应的n个结果中的一个。
8.根据权利要求7所述的区块挖掘装置,其特征在于,所述区块头部的第一部分包括所述区块头部的最前面的4个字节;
和/或
所述区块头部的第一部分包括交易的摘要;
和/或
所述第一部分包括树数据结构的根部。
9.根据权利要求8所述的区块挖掘装置,其特征在于,产量交易包括多个交易中的一个;并且所述中间状态生成器基于改变所述产量交易开发n个中间状态;
和/或
所述中间状态生成器基于改变多个交易的订单开发n个中间状态;
和/或
所述树数据结构包括Merkle树;
和/或
所述中间状态生成器用于从多个第一候选子树散列中选择左子树散列;从多个第二候选子树散列中选择右子树散列;以及从所述左子树散列和所述右子树散列开发所述树数据结构的根部。
10.根据权利要求7所述的区块挖掘装置,其特征在于,所述中间状态生成器用于还用于通过改变所述区块头部的第一部分开发候选区块头部;将过滤函数应用到所述候选区块头部,并且:如果所述候选区块头部未能通过所述过滤函数,丢弃所述候选区块头部;否则,开发作为所述候选区块头部的函数的中间状态;以及重复上述操作以开发m个中间状态,每个中间状态作为各自候选区块头部的函数。
11.根据权利要求10所述的区块挖掘装置,其特征在于:
所述候选区块头部的第一部分包含28个字节,所述候选区块头部的第二部分包含4个字节;以及
所受过滤函数还用于根据所述第二部分选择丢弃候选区块头部。
12.根据权利要求7所述的区块挖掘装置,其特征在于,所述单个消息扩展器用于对所述区块头部执行扩展操作,以产生包含有序的消息表元素序列的消息表;
所述n个压缩器中的每一个用于对所述消息表元素序列执行压缩操作,以产生相应的m个结果中的一个。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361906310P | 2013-11-19 | 2013-11-19 | |
US61/906,310 | 2013-11-19 | ||
CN201480073590.9A CN106415530A (zh) | 2013-11-19 | 2014-11-19 | 区块挖掘方法和装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480073590.9A Division CN106415530A (zh) | 2013-11-19 | 2014-11-19 | 区块挖掘方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111427891A true CN111427891A (zh) | 2020-07-17 |
Family
ID=53180113
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480073590.9A Pending CN106415530A (zh) | 2013-11-19 | 2014-11-19 | 区块挖掘方法和装置 |
CN202010216367.2A Pending CN111427891A (zh) | 2013-11-19 | 2014-11-19 | 区块挖掘装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480073590.9A Pending CN106415530A (zh) | 2013-11-19 | 2014-11-19 | 区块挖掘方法和装置 |
Country Status (11)
Country | Link |
---|---|
US (1) | US11113676B2 (zh) |
EP (1) | EP3095044B1 (zh) |
KR (1) | KR102137956B1 (zh) |
CN (2) | CN106415530A (zh) |
CY (1) | CY1123686T1 (zh) |
DK (1) | DK3095044T3 (zh) |
ES (1) | ES2836139T3 (zh) |
PT (1) | PT3095044T (zh) |
RS (1) | RS61234B1 (zh) |
SI (1) | SI3095044T1 (zh) |
WO (1) | WO2015077378A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI775514B (zh) * | 2020-11-23 | 2022-08-21 | 大陸商深圳比特微電子科技有限公司 | 運算核、計算晶片和數據處理設備 |
Families Citing this family (98)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016046820A1 (en) * | 2014-09-23 | 2016-03-31 | Spondoolies Tech Ltd. | System and method for providing shared hash engines architecture for a bitcoin block chain |
US20170242475A1 (en) * | 2014-10-30 | 2017-08-24 | Spondoolies Tech Ltd. | Method and system for reducing power consumption in bitcoin mining via waterfall structure |
US10409827B2 (en) | 2014-10-31 | 2019-09-10 | 21, Inc. | Digital currency mining circuitry having shared processing logic |
US20160379212A1 (en) * | 2015-06-26 | 2016-12-29 | Intel Corporation | System, apparatus and method for performing cryptographic operations in a trusted execution environment |
US11488147B2 (en) | 2015-07-14 | 2022-11-01 | Fmr Llc | Computationally efficient transfer processing and auditing apparatuses, methods and systems |
US10644885B2 (en) | 2015-07-14 | 2020-05-05 | Fmr Llc | Firmware extension for secure cryptocurrency key backup, restore, and transaction signing platform apparatuses, methods and systems |
US11436598B2 (en) | 2017-12-15 | 2022-09-06 | Fmr Llc | Social data tracking datastructures, apparatuses, methods and systems |
US10504179B1 (en) | 2015-12-08 | 2019-12-10 | Fmr Llc | Social aggregated fractional equity transaction partitioned acquisition apparatuses, methods and systems |
US10992469B2 (en) | 2015-07-14 | 2021-04-27 | Fmr Llc | Seed splitting and firmware extension for secure cryptocurrency key backup, restore, and transaction signing platform apparatuses, methods and systems |
US10778439B2 (en) | 2015-07-14 | 2020-09-15 | Fmr Llc | Seed splitting and firmware extension for secure cryptocurrency key backup, restore, and transaction signing platform apparatuses, methods and systems |
US11636471B2 (en) | 2017-12-15 | 2023-04-25 | Fmr Llc | Social data tracking datastructures, apparatuses, methods and systems |
US10339523B2 (en) | 2015-07-14 | 2019-07-02 | Fmr Llc | Point-to-point transaction guidance apparatuses, methods and systems |
CN105245327A (zh) * | 2015-08-21 | 2016-01-13 | 北京比特大陆科技有限公司 | 比特币工作量证明哈希计算芯片优化的方法、装置和电路 |
JP6355168B2 (ja) * | 2015-11-09 | 2018-07-11 | 日本電信電話株式会社 | ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム |
US9645604B1 (en) | 2016-01-05 | 2017-05-09 | Bitfury Group Limited | Circuits and techniques for mesochronous processing |
US9660627B1 (en) | 2016-01-05 | 2017-05-23 | Bitfury Group Limited | System and techniques for repeating differential signals |
US9514264B1 (en) | 2016-01-05 | 2016-12-06 | Bitfury Group Limited | Layouts of transmission gates and related systems and techniques |
US10262164B2 (en) | 2016-01-15 | 2019-04-16 | Blockchain Asics Llc | Cryptographic ASIC including circuitry-encoded transformation function |
CN105740440B (zh) * | 2016-02-01 | 2019-03-26 | 上海凭安网络科技有限公司 | 一种加快区块链查询的索引方法 |
CN106100825A (zh) * | 2016-05-31 | 2016-11-09 | 深圳市风云实业有限公司 | 基于fpga的高吞吐量sha‑1算法 |
US10142098B2 (en) | 2016-06-29 | 2018-11-27 | Intel Corporation | Optimized SHA-256 datapath for energy-efficient high-performance Bitcoin mining |
US10313108B2 (en) * | 2016-06-29 | 2019-06-04 | Intel Corporation | Energy-efficient bitcoin mining hardware accelerators |
CN106407008B (zh) * | 2016-08-31 | 2019-12-03 | 北京比特大陆科技有限公司 | 挖矿业务处理方法、装置和系统 |
US10783279B2 (en) * | 2016-09-01 | 2020-09-22 | Atmel Corporation | Low cost cryptographic accelerator |
CN106407795B (zh) * | 2016-09-05 | 2019-05-14 | 北京众享比特科技有限公司 | 数据存在认证系统、认证方法及验证方法 |
US10755242B2 (en) | 2016-09-23 | 2020-08-25 | Intel Corporation | Bitcoin mining hardware accelerator with optimized message digest and message scheduler datapath |
US10367645B2 (en) * | 2016-10-26 | 2019-07-30 | International Business Machines Corporation | Proof-of-work for smart contracts on a blockchain |
US10491378B2 (en) | 2016-11-16 | 2019-11-26 | StreamSpace, LLC | Decentralized nodal network for providing security of files in distributed filesystems |
WO2018094299A2 (en) * | 2016-11-19 | 2018-05-24 | Dominic Williams | System architecture and method of processing data therein |
US10387684B2 (en) | 2016-12-09 | 2019-08-20 | International Business Machines Corporation | Interlocked blockchains to increase blockchain security |
WO2018112949A1 (zh) * | 2016-12-23 | 2018-06-28 | 深圳前海达闼云端智能科技有限公司 | 区块链的挖矿方法、装置和节点设备 |
US10419225B2 (en) | 2017-01-30 | 2019-09-17 | Factom, Inc. | Validating documents via blockchain |
EP3355513B1 (en) * | 2017-01-31 | 2020-10-14 | Sony Corporation | Electronic node and method for maintaining a distributed ledger |
CA3090944A1 (en) * | 2017-02-08 | 2018-08-16 | Upstream Data Inc. | Blockchain mine at oil or gas facility |
US10411897B2 (en) | 2017-02-17 | 2019-09-10 | Factom, Inc. | Secret sharing via blockchains |
CN107040582B (zh) * | 2017-02-17 | 2020-08-14 | 创新先进技术有限公司 | 一种数据处理方法及装置 |
US10817873B2 (en) | 2017-03-22 | 2020-10-27 | Factom, Inc. | Auditing of electronic documents |
CN107451007B (zh) * | 2017-03-24 | 2020-11-06 | 北京瑞卓喜投科技发展有限公司 | 针对增加区块进行勘误的区块链的验证方法及系统 |
CN107451002B (zh) * | 2017-03-24 | 2020-11-10 | 北京瑞卓喜投科技发展有限公司 | 针对修改区块体数据的区块链的主动验证方法及系统 |
CN106971342A (zh) * | 2017-03-29 | 2017-07-21 | 宁夏凯速德科技有限公司 | 去中心化的电子商务平台中基于区块链技术的交易方法及系统 |
US10685399B2 (en) | 2017-03-31 | 2020-06-16 | Factom, Inc. | Due diligence in electronic documents |
US10270599B2 (en) | 2017-04-27 | 2019-04-23 | Factom, Inc. | Data reproducibility using blockchains |
KR102017739B1 (ko) * | 2017-05-12 | 2019-09-03 | 박경옥 | 블록체인 시스템 및 블록체인 생성 방법 |
CN107402824B (zh) | 2017-05-31 | 2020-06-02 | 创新先进技术有限公司 | 一种数据处理的方法及装置 |
CN109391643B (zh) * | 2017-08-03 | 2020-08-07 | 中国移动通信有限公司研究院 | 区块链轻量化处理方法、区块链节点及存储介质 |
CN107580030B (zh) * | 2017-08-18 | 2021-03-02 | 重庆邮电大学 | 一种数据管理方法、装置及服务器 |
US11316696B2 (en) * | 2017-09-29 | 2022-04-26 | R3 Ltd. | Hash subtrees for grouping components by component type |
US11170000B2 (en) | 2017-10-20 | 2021-11-09 | Intuit Inc. | Parallel map and reduce on hash chains |
KR102010571B1 (ko) * | 2017-11-15 | 2019-08-13 | 한전케이디엔 주식회사 | 블록체인을 이용한 스마트그리드 이종 데이터 보안 저장 방법 |
CN108156219A (zh) * | 2017-11-30 | 2018-06-12 | 深圳市轱辘车联数据技术有限公司 | 一种设备找回的方法及服务器 |
US11177961B2 (en) * | 2017-12-07 | 2021-11-16 | Nec Corporation | Method and system for securely sharing validation information using blockchain technology |
CN108337461A (zh) * | 2017-12-14 | 2018-07-27 | 杭州微兔科技有限公司 | 用于区块链计算的装置、系统及装置的应用方法 |
CN108389044A (zh) * | 2018-02-28 | 2018-08-10 | 北京比特大陆科技有限公司 | 工作量证明的计算方法和系统、电子设备、程序和介质 |
US10372943B1 (en) * | 2018-03-20 | 2019-08-06 | Blockchain Asics Llc | Cryptographic ASIC with combined transformation and one-way functions |
US10256974B1 (en) | 2018-04-25 | 2019-04-09 | Blockchain Asics Llc | Cryptographic ASIC for key hierarchy enforcement |
US10783164B2 (en) | 2018-05-18 | 2020-09-22 | Factom, Inc. | Import and export in blockchain environments |
US11134120B2 (en) | 2018-05-18 | 2021-09-28 | Inveniam Capital Partners, Inc. | Load balancing in blockchain environments |
US11170366B2 (en) | 2018-05-18 | 2021-11-09 | Inveniam Capital Partners, Inc. | Private blockchain services |
CN108881433A (zh) * | 2018-06-15 | 2018-11-23 | 孙念 | 基于区块链的信息定时释放或发送方法及装置 |
CN109063049B (zh) * | 2018-07-18 | 2020-12-08 | 百度在线网络技术(北京)有限公司 | 一种区块链网络的账号处理方法、装置、设备及存储介质 |
CN110738472B (zh) * | 2018-07-20 | 2023-10-03 | 北京航空航天大学 | 区块链的存储方法和区块链的节点 |
US11989208B2 (en) | 2018-08-06 | 2024-05-21 | Inveniam Capital Partners, Inc. | Transactional sharding of blockchain transactions |
US20200042982A1 (en) | 2018-08-06 | 2020-02-06 | Factom | Digital Contracts in Blockchain Environments |
US11328290B2 (en) | 2018-08-06 | 2022-05-10 | Inveniam Capital Partners, Inc. | Stable cryptocurrency coinage |
US11164250B2 (en) | 2018-08-06 | 2021-11-02 | Inveniam Capital Partners, Inc. | Stable cryptocurrency coinage |
US11044095B2 (en) | 2018-08-06 | 2021-06-22 | Factom, Inc. | Debt recordation to blockchains |
CN109347639B (zh) * | 2018-09-21 | 2021-06-29 | 浪潮电子信息产业股份有限公司 | 一种序列号的生成方法及装置 |
CN109214817B (zh) * | 2018-10-08 | 2021-09-03 | 莆田市烛火信息技术有限公司 | 一种基于算力寄生的区块链共识装置 |
CN109558527B (zh) * | 2019-01-02 | 2023-10-20 | 平安科技(深圳)有限公司 | 基于区块链的高考分数查询方法、装置和计算机设备 |
WO2020150011A1 (en) * | 2019-01-15 | 2020-07-23 | Blockchain Asics, Inc. | Dynamic transform in blockchain header validation |
CN110264187B (zh) | 2019-01-23 | 2021-06-04 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
US11032074B2 (en) * | 2019-02-11 | 2021-06-08 | Pqsecure Technologies, Llc | Cryptosystem and method using isogeny-based computations to reduce a memory footprint |
CN110060161B (zh) * | 2019-03-28 | 2021-05-28 | 众安信息技术服务有限公司 | 用于区块链交易防重的客户端服务实现方法及服务组件 |
GB2582978B (en) * | 2019-04-12 | 2022-05-04 | Nchain Holdings Ltd | Methods and devices for propagating blocks in a blockchain network |
CN110113186A (zh) * | 2019-04-19 | 2019-08-09 | 浙江万胜智能科技股份有限公司 | 一种基于区块链的混合智慧城市网络结构 |
CA3139776A1 (en) | 2019-05-15 | 2020-11-19 | Upstream Data Inc. | Portable blockchain mining system and methods of use |
CN110176998A (zh) * | 2019-05-17 | 2019-08-27 | 北京众享比特科技有限公司 | 一种工作量证明的共识方法、装置、设备和存储介质 |
US11770256B1 (en) | 2019-06-20 | 2023-09-26 | Marvell Asia Pte, Ltd. | System and method for bitcoin mining with reduced power |
CN111095338B (zh) | 2019-06-28 | 2023-06-30 | 创新先进技术有限公司 | 用于执行不同类型区块链合约的系统和方法 |
US11438142B1 (en) | 2019-08-19 | 2022-09-06 | Marvell Asia Pte, Ltd. | System and method for mining digital currency in a blockchain network |
JP7383949B2 (ja) * | 2019-09-20 | 2023-11-21 | 富士電機株式会社 | 情報処理装置及びプログラム |
US11343075B2 (en) | 2020-01-17 | 2022-05-24 | Inveniam Capital Partners, Inc. | RAM hashing in blockchain environments |
US11164267B2 (en) | 2020-02-27 | 2021-11-02 | International Business Machines Corporation | Using blockchain to select energy-generating sources |
CA3076653A1 (en) | 2020-03-21 | 2021-09-21 | Upstream Data Inc. | Portable blockchain mining systems and methods of use |
US20220058167A1 (en) * | 2020-08-24 | 2022-02-24 | Intel Corporation | Device, system and method for version rolling with a blockchain mining engine |
US11652604B2 (en) | 2020-11-12 | 2023-05-16 | Paypal, Inc. | Blockchain data compression and storage |
CN112925504A (zh) * | 2021-02-20 | 2021-06-08 | 北京比特大陆科技有限公司 | 工作量证明的计算装置、asic芯片和工作量证明的计算方法 |
US12008526B2 (en) | 2021-03-26 | 2024-06-11 | Inveniam Capital Partners, Inc. | Computer system and method for programmatic collateralization services |
CN112950211B (zh) * | 2021-05-14 | 2021-07-30 | 腾讯科技(深圳)有限公司 | 一种交易验重方法、装置、设备以及介质 |
US12007972B2 (en) | 2021-06-19 | 2024-06-11 | Inveniam Capital Partners, Inc. | Systems and methods for processing blockchain transactions |
GB2611321A (en) | 2021-09-29 | 2023-04-05 | Quantum Blockchain Tech Plc | Message scheduling for cryptographic hashing |
US11989153B2 (en) | 2021-09-29 | 2024-05-21 | Chain Reaction Ltd. | Cryptocurrency miner with multiple power domains |
US12061513B2 (en) | 2021-11-01 | 2024-08-13 | Chain Reaction Ltd. | Cryptocurrency miner with current reducing compute engine arrangement |
US12026119B2 (en) | 2022-06-10 | 2024-07-02 | Chain Reaction Ltd. | Cryptocurrency miner and device enumeration |
US20240259184A9 (en) * | 2022-07-06 | 2024-08-01 | Block, Inc. | Computing architecture for energy-efficient hash computation |
US20240144249A1 (en) * | 2022-10-27 | 2024-05-02 | Marathon Digital Holdings | Systems And Methods For Overclocking Mining Rigs |
KR102708412B1 (ko) * | 2023-02-28 | 2024-09-23 | 서울대학교산학협력단 | 상태 트라이 노드를 이용한 블록체인 상태 데이터베이스 성능 향상 시스템 및 이의 마이닝 방법 |
KR102708405B1 (ko) * | 2023-02-28 | 2024-09-23 | 서울대학교산학협력단 | 상태 트라이 노드를 이용한 블록체인 시스템 및 이의 마이닝 방법 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5892900A (en) * | 1996-08-30 | 1999-04-06 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US6097811A (en) * | 1995-11-02 | 2000-08-01 | Micali; Silvio | Tree-based certificate revocation system |
US7359846B1 (en) * | 2002-12-05 | 2008-04-15 | Cadence Design Systems, Inc. | Modeling an ASIC based on static pipeline delays |
US7921300B2 (en) * | 2003-10-10 | 2011-04-05 | Via Technologies, Inc. | Apparatus and method for secure hash algorithm |
WO2005043802A1 (en) | 2003-10-20 | 2005-05-12 | Drm Technologies, Llc | Securing digital content system and method |
US7599489B1 (en) * | 2004-02-09 | 2009-10-06 | Sun Microsystems Inc. | Accelerating cryptographic hash computations |
JP5504592B2 (ja) * | 2008-08-25 | 2014-05-28 | ソニー株式会社 | データ変換装置、およびデータ変換方法、並びにプログラム |
KR20100047592A (ko) * | 2008-10-29 | 2010-05-10 | 한국전자통신연구원 | Sha 알고리즘 기반의 메시지 스케줄 연산 방법, 메시지 압축 연산 방법 및 이를 수행하는 암호장치 |
WO2011041610A1 (en) * | 2009-09-30 | 2011-04-07 | Zynga Game Network Inc. | Apparatuses, methods and systems for a trackable virtual currencies platform |
US8694703B2 (en) * | 2010-06-09 | 2014-04-08 | Brocade Communications Systems, Inc. | Hardware-accelerated lossless data compression |
US8838608B2 (en) * | 2010-12-20 | 2014-09-16 | Teradata Us, Inc. | Virtual R-tree mapped to an extendible-hash based file system |
US8856547B2 (en) * | 2012-06-07 | 2014-10-07 | Intel Corporation | Speed up secure hash algorithm (SHA) using single instruction multiple data (SIMD) architectures |
US8838997B2 (en) * | 2012-09-28 | 2014-09-16 | Intel Corporation | Instruction set for message scheduling of SHA256 algorithm |
US9495668B1 (en) * | 2013-05-10 | 2016-11-15 | EMC IP Holding Company LLC | Computing solutions to a problem involving inversion of a one-way function |
US10038550B2 (en) * | 2013-08-08 | 2018-07-31 | Intel Corporation | Instruction and logic to provide a secure cipher hash round functionality |
US10409827B2 (en) * | 2014-10-31 | 2019-09-10 | 21, Inc. | Digital currency mining circuitry having shared processing logic |
-
2014
- 2014-11-19 WO PCT/US2014/066470 patent/WO2015077378A1/en active Application Filing
- 2014-11-19 EP EP14864642.5A patent/EP3095044B1/en active Active
- 2014-11-19 SI SI201431718T patent/SI3095044T1/sl unknown
- 2014-11-19 ES ES14864642T patent/ES2836139T3/es active Active
- 2014-11-19 RS RS20201503A patent/RS61234B1/sr unknown
- 2014-11-19 PT PT148646425T patent/PT3095044T/pt unknown
- 2014-11-19 DK DK14864642.5T patent/DK3095044T3/da active
- 2014-11-19 CN CN201480073590.9A patent/CN106415530A/zh active Pending
- 2014-11-19 CN CN202010216367.2A patent/CN111427891A/zh active Pending
- 2014-11-19 KR KR1020167016434A patent/KR102137956B1/ko active IP Right Review Request
-
2016
- 2016-04-28 US US15/141,063 patent/US11113676B2/en active Active
-
2020
- 2020-12-17 CY CY20201101193T patent/CY1123686T1/el unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI775514B (zh) * | 2020-11-23 | 2022-08-21 | 大陸商深圳比特微電子科技有限公司 | 運算核、計算晶片和數據處理設備 |
Also Published As
Publication number | Publication date |
---|---|
WO2015077378A1 (en) | 2015-05-28 |
CN106415530A (zh) | 2017-02-15 |
KR20160106570A (ko) | 2016-09-12 |
EP3095044A1 (en) | 2016-11-23 |
CY1123686T1 (el) | 2022-03-24 |
RS61234B1 (sr) | 2021-01-29 |
SI3095044T1 (sl) | 2021-02-26 |
US20170243176A1 (en) | 2017-08-24 |
DK3095044T3 (da) | 2020-12-21 |
US11113676B2 (en) | 2021-09-07 |
ES2836139T3 (es) | 2021-06-24 |
KR102137956B1 (ko) | 2020-07-28 |
EP3095044A4 (en) | 2017-09-06 |
EP3095044B1 (en) | 2020-09-23 |
PT3095044T (pt) | 2020-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111427891A (zh) | 区块挖掘装置 | |
CN111464308B (zh) | 一种实现多种哈希算法可重构的方法和系统 | |
US8787563B2 (en) | Data converter, data conversion method and program | |
US20020032551A1 (en) | Systems and methods for implementing hash algorithms | |
Feng et al. | A byte-based guess and determine attack on SOSEMANUK | |
CN116318660B (zh) | 一种消息扩展与压缩方法及相关装置 | |
WO2021233198A1 (zh) | 用于执行散列算法的电路和方法 | |
JP2003288013A (ja) | 楕円曲線演算装置及び楕円曲線演算方法 | |
WO2024007506A1 (zh) | 一种通用轻量哈希处理方法、系统及可储存介质 | |
EP2328136A1 (en) | Data conversion device, data conversion method, and program | |
WO2017023195A1 (ru) | Способ линейного преобразования (варианты) | |
US20080010463A1 (en) | Method for producing truncated message digests | |
US20240007269A1 (en) | General-Purpose Lightweight Hash Processing Method and System and Storable Medium | |
Knudsen et al. | Preimage and collision attacks on MD2 | |
JP2009169316A (ja) | ハッシュ関数演算装置及び署名装置及びプログラム及びハッシュ関数演算方法 | |
CN106301764B (zh) | 基于路径散列的消息摘要方法和系统 | |
US8843457B2 (en) | Data conversion device, data conversion method, and program | |
KR100954843B1 (ko) | 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법, 그 장치 및 이를 기록한 기록 매체 | |
Rohit et al. | Practical Forgery attacks on Limdolen and HERN | |
CN101202618A (zh) | 利用环迭代结构生成消息摘要的方法和装置 | |
Li et al. | Low complexity bit-parallel $ GF (2^ m) $ multiplier for all-one polynomials | |
August et al. | PudgyTurtle: Using keystream to encode and encrypt | |
CN114626537B (zh) | 一种基于x86平台SIMD的不可约多项式及量子安全哈希值计算方法 | |
Sun et al. | How to search linear approximation for large non-surjective S-box | |
Júnior et al. | Application-Specific System Processor for the SHA-1 Hash Algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |