# An Ordered Universal Accumulator Based on a Hash Chain
## 3 Hash Chain Accumulator Scheme  
We propose a hash chain accumulator, which offers a lightweight and efficient alternative. The hash chain accumulator significantly reduces computational and communication overhead on resource-constrained devices, such as mobile or IoT devices, while maintaining secure data verification. Additionally, in blockchain scenarios, its smaller witness sizes help minimize transaction volumes, enhance throughput, and reduce storage costs. The sequential nature of hash chains also provides inherent advantages for auditing and traceability applications.  
This scheme uses a collision-resistant hash function to calculate the hash value of the elements to be accumulated in the set. The collision-resistant hash function is defined as follows:  
**Definition 4**.: _A hash function family \(\mathfrak{H}:K\times M\to Y\) is a set of many hash functions \(H\), where \(K\) and \(Y\) are non-empty sets, and \(M\) and \(Y\) are sets of strings [30]._  
**Definition 5**.: _Collision-resistant hash function: a hash function family \(\mathfrak{H}:K\times M\to Y\) with the security parameter \(k=|K|=|Y|\). If, for every polynomial-time algorithm, there is \(Pr\Big{[}\kappa\stackrel{{ R}}{{\leftarrow}}K;(m,m^{\prime}) \gets A(k):m\
eq m^{\prime},\mathfrak{H}_{\kappa}(m)=\mathfrak{H}_{ \kappa}(m^{\prime})\Big{]}=negl(k)\), where \(\kappa\stackrel{{ R}}{{\leftarrow}}K\) means \(\kappa\) is randomly selected in the key space \(K\), and \(A\) is given \(\kappa\) as input, then it is said that \(\mathfrak{H}\) is collision-resistant._  
**Definition 6**.: _A hash function is randomly selected from the hash function family \(\mathfrak{H}\) to be denoted by \(H\). For a given set \(X\), we define the hash chain set \(H\) as follows: for \(X\subseteq M\), \(X=[x_{1},x_{2},\ldots,x_{n}]\), there is a set \(\mathrm{H}=[\mathrm{H}_{1},\mathrm{H}_{2},\ldots,\mathrm{H}_{n}]\), where \(\mathrm{H}_{1}=H(x_{1})\), \(\mathrm{H}_{2}=H(H(x_{1})||x_{2})\), and \(\mathrm{H}_{n}=H(\ldots H(H(x_{1})||x_{2})||\ldots||x_{n})\), and the set \(\mathrm{H}\) is called a hash chain set._  
A hash chain (\(\mathrm{H}_{1}\), \(\mathrm{H}_{2}\), \(\ldots\), \(\mathrm{H}_{n}\)) is a collection of values. Each \(\mathrm{H}_{i}\) value (except the first value, \(\mathrm{H}_{0}\)) is a hash function of the previous value \(\mathrm{H}_{i-1}\) and the element \(\mathrm{x}_{i}\). As shown in the figure, an initial value is randomly selected to calculate the first node value \(\mathrm{H}_{0}\) of the hash chain. After that, each node in the hash chain set is accumulated by a combination of the previous hash chain node value and the current element. Suppose there is a public environment where all (accumulator) participants can see the published information (in this environment), and no one else can delete or revoke the published information. This hypothesis was proposed to ensure that, in this environment, even if there is an attacker who publishes false information, participants can quickly recognize it. In fact, blockchain and two-terminal communication are two scenarios that meet the above conditions and are among the application scenarios of the schemes proposed in this article. The process continues until all data elements are processed, resulting in the final hash value \(\mathrm{H}_{n}\), which serves as the accumulator value.