1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Pedersen Commitment

Last updated at Posted at 2021-09-23

作り方

位数が素数 $p$ の有限巡回群上に、ジェネレーター $G$ と $H$ を準備する。
位数が素数なので、群論のラグランジュの定理から $G$ と $H$ の位数は $p$ になり、$G$ 上の元は必ず $H$ 上にも存在して、$G^x=H$ や $H^y=G$ となる $x,y$ が存在するが、これがわからない形で、$G$ と $H$ を準備する。
その上で、Pedersen Commitment $C$ は、

$$C(a, b) = G^a \cdot H^b$$

使い方

ジェネレーター $G$ 上の $\cdot$ の演算は、準同型性があって、$G^x + G^y = G^{x+y}$ が成り立つので、
コミットメント同士を足した結果と、コミットメントへの入力を足してものの、コミットメントをを作った結果が一致する。
この性質を利用して、何かをする。

$$C(a,b) + C(c,d) = G^a \cdot H^b \cdot G^c \cdot H^d = G^a \cdot G^c \cdot H^b \cdot H^d = G^{a+c} \cdot H^{b+d} = C(a+c, b+d)$$

Liquid の Confidential Transaction での使用例

Perdersen Commitment を利用して、トランザクションの具体的な数量を明かさずに、tx-in の合計と、tx-out の合計が一致していることを示す。

例えば、こんなトランザクションがあったとする。

tx-in tx-out
5 10
10 32
17

この tx-in/out それぞれについて、blinding factor を割り当てる。その際に、blinding factor の tx-in 側の合計と、tx-out 側の合計が同じになるようにする。例えば、

tx-in tx-in-blinding-factor tx-out tx-out-blinding-factor
5 100 10 500
10 250 32 30
17 180

tx-in/out = a, blind factor = b を、$C(a,b)$ で置き換えて、トランザクションを公開する。

tx-in tx-out
C(5, 100) C(10, 500)
C(10, 250) C(32, 30)
C(17, 180)

こうすると、
$$
C(5, 100) + C(10, 250) + C(17, 180) - C(10, 500) - C(32, 30)
= G^{5+10+17-10-32} \cdot H^{100+250+180-500-30}
= G^0 \cdot H^0
= e \cdot e
= e
$$
となるので、具体的な数量を明かしていなくても、tx-in の合計と、tx-out の合計が一致していることがわかる。

参考サイト

https://link.springer.com/content/pdf/10.1007%2F3-540-46766-1_9.pdf
http://hooktail.sub.jp/algebra/LagrangeanTheorem/
https://techmedia-think.hatenablog.com/entry/2015/12/31/002253
https://www.blockchainengineer.tokyo/entry/confidential-transactions
https://elementsproject.org/features/confidential-transactions/investigation

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?