  Securing the traceability of products in the supply chain is an urgent issue.
Recently, supply chain systems that use public blockchain (PBC) have been
proposed. In these systems, PBC is used as a common database shared between
supply chain parties to secure the integrity and reliability of distribution
information such as ownership transfer records. Thus, these systems secure a
high level of traceability in the supply chain. However, the distribution
information, which can be private information, is made public since the
information recorded in PBC can be read by anyone. In this paper, we propose a
method for preserving privacy while securing traceability in a supply chain
system using PBC. The proposed method preserves privacy by concealing the
distribution information via encryption. In addition, the proposed method
ensures distribution among legitimate supply chain parties while concealing
their blockchain address by using a zero-knowledge proof to prove their
authenticity. We implement the proposed method on Ethereum smart contracts and
evaluate cost performance based on transaction fees. The results show that the
fee per party is at most 2.6 USD.
