【Zcash】匿名交易
卡哇伊嘉人
post on 2022-12-24 10:32:06
26
0
0
Zcash 是对Bitcoin的fork,目的是融入zk-Snarks技术提高匿名性,它支持2种地址:[1]
z-addr的交易记录和交易金额被完全隐藏
t-addr的交易记录和交易金额被公开,和Bitcoin交易没有区别。
一笔交易可以包含 shielded input/output, transparent input/output[2],其中和z-addr有关的部分都是隐藏的,和t-addr有关的部分都是公开的。
Zcash相比Bitcoin的好处在于给人多提供了一个选择,交易可以公开、也可以不公开。用户可以随时在2者之间切换,根据需要而定。
这同时也意味着使用Zcash转账并不一定就是匿名的,得使用它的z-addr才能达到完全匿名的效果。事实上目前大部分钱包都只支持t-addr,不支持z-addr,也就是说即使你用这些钱包转ZEC(Zcash的coin代号),你的交易记录仍然是公开的。
如果只使用t-addr,而完全不用z-addr,那就没有发挥Zcash的作用,和使用Bitcoin没有多大区别(出于投资目的则另说)。只是区块间隔更短,交易的确认速度更快而已。
z-addr 的使用现状
94%的ZEC都使用公开的t-addr存储[3]
过去一个月匿名交易占所有交易次数的14%[4]
显然z-addr被使用的并不多,可能是因为大家对匿名的需求不高,或者觉得t-addr的匿名性对他们已经够用了,或者只是为了投资,对匿名性没有要求。另外最有可能是因为现有钱包都不支持 z-addr,要想使用z-addr只能安装全节点钱包。我见过的多资产钱包、交易所都不支持匿名的z-addr,包括Atomic Wallet, Cobo Wallet, Guarda, Bixin, huobi。
Zcash官网列出了一些当前支持Zcash的钱包,只有命令行的官方钱包和图形界面的zec-qt支持z-addr。它们俩都需要维护全节点,这样显然用的人就少了。
使用 zcash 全节点钱包
为了使用z-addr,我安装好软件zcash,花2个晚上同步好区块(目前Zcash整条区块链21GB)。
我的ZEC存在Atomic Wallet,我先用它将 ZEC 转到全节点钱包的 t-addr,然后再转到全节点钱包的 z-addr,然后就可以完全匿名交易了。
为什么不直接转到 z-addr 呢?
因为Atomic不支持转账到 z-addr,在收款地址输入 z-addr 会报错"Please check address"。
步骤
由于zcash只有命令行界面,下面就以命令行进行演示。[1:1]
创建t-addr、z-addr
zcash-cli getnewaddress # 创建t地址
zcash-cli z_getnewaddress # 创建z地址
zcash-cli getaddressesbyaccount "" # 查看t地址列表,注意加上2个双引号
zcash-cli z_listaddresses # 查看z地址列表
t地址以t开头,z地址以z开头,z地址大约是t地址的2倍长。
使用Atomic Wallet转账到上面生成的t地址
从t地址转账到z地址
zcash-cli z_sendmany "t1QdpvNaHbyYkEN8m92fajU7e5bUUz5t1Y7" '[{"address": "zs1jwj3wxhachdtrqx8utekhm0mcdm3gs29dd2l0lyfrx4l4wy7q047k5tk8m6nxmyhvlc7zkdny28" ,"amount": 0.05}]'
需要填入3个参数:付款地址、收款地址、金额,具体可以输入命令zcash-cli help z_sendmany查看帮助。另外付款地址需要注意预留交易费,0.0001ZEC,如果将余额全部转出会因为余额不够付交易费而失败。
查看交易是否成功以及txid
zcash-cli z_getoperationresult
结果显示 txid 为 c9669ef0661c375632c0893eac7d949a0218bfc4ae51a94cd226e1600ef21410
5. 查看结果
查看交易详情
zcash-cli gettransaction "c9669ef0661c375632c0893eac7d949a0218bfc4ae51a94cd226e1600ef21410"
查看当前余额在t-addr, z-addr的分布
zcash-cli z_gettotalbalance
查看z-addr余额
zcash-cli z_getbalance "zs1jwj3wxhachdtrqx8utekhm0mcdm3gs29dd2l0lyfrx4l4wy7q047k5tk8m6nxmyhvlc7zkdny28"
在线查看交易详情,只能看到t-addr,看不到z-addr,因为z-addr在交易记录中被隐藏了。
匿名交易
用这个z-addr转账的记录都是隐蔽的,不管转入还是转出。
下面在两个z-addr之间转账
zcash-cli z_sendmany "zs1jwj3wxhachdtrqx8utekhm0mcdm3gs29dd2l0lyfrx4l4wy7q047k5tk8m6nxmyhvlc7zkdny28" '[{"address": "zs14k2hkalm4g9sc8camna4cyyt40fr38rgxtmg3k3tw
jzl7hrd4d3vyjcxg6k99z52eg5zc9v9lrs" ,"amount": 0.01}]'
zcash-cli z_getoperationresult
zcash-cli gettransaction "99f88d9bced2b22953b833cf2c6cec7da0c4b5876a0e4293a0a6f67fcdb1be0b"
在线查看交易详情,什么也看不到,send/receiver地址、交易金额全部被隐藏。
https://zcash.readthedocs.io/en/latest/rtd_pages/user_guide.html ↩︎ ↩︎
https://z.cash/blog/anatomy-of-zcash ↩︎
https://explorer.zcha.in/statistics/value ↩︎
https://explorer.zcha.in/statistics/usage ↩︎
BitMere.com is Information release platform,just provides information storage space services.
The opinions expressed are solely those of the author,Does not constitute advice, please treat with caution.
The opinions expressed are solely those of the author,Does not constitute advice, please treat with caution.
Write the first review