Tornado 龙卷风混币原理
项目背景Tornado(https://tornado.cash/)是以太坊隐私赛道著名的混币项目,其混币技术主要使用了 zk-SNARK 零知识证明。 1、关于 zk-SNARK 零知识证明的原理可以参见 if(DAO) 之前的文章: https://mirror.xyz/0xd05cFA28Eaf8B4eaFD8Cd86d33c6CeD1a1875417/X3qSOjObTknXQ_iGhDBFYETibD0TVW0twz5QDIthjGI 2、混币的意思是混币者通过 Tornado 合约将混币者的以太坊地址和资金去向地址失去关联,从而达到隐匿资金去向的目的。项目原理1、Bob 是第 3 个将自己的代币 Deposit 存入龙卷风合约进行混币的客户。 2、Alice 是第 4 个将自己的代币 Deposit 存入龙卷风合约进行混币的客户。 3、Alice 在 Deposit 时(1)Alice random k4 ,r4。k4 和 r4 in { 0 ,1 } ^ 256。( k4 ,r4 ) 也是 Alice 未来的取款凭证 note4。 (2)Alice 计算得到 C4 ...
零知识证明之zk-STARK
zk-STARK(零知识的可扩展的透明知识论证)zero knowledge - Scalable Transparent ARgument of Knowledge zero knowledge(零知识):Private input(秘密的输入)将会被隐藏,除了 Prover 以外的任何人都不知道 Private input 的内容,在知识论证的过程中也不能反推出 Private input。 Scalable(扩展性):与 Replay Computation 的验证耗时相比,zk-STARK 生成 Proof 的时间复杂度近似于计算的复杂度 (O(n)),而 Verify Proof 的时间复杂度远小于计算的复杂度 (O(log))。 假设区块链网络中 Verifier 的 VerifyTime = Transcation 交易数量的对数的平方。当一个区块包含 10000 Transcation 时,验证者的 VerifyTime = (log₂ 10000)² ~ (13.2)² ~ 177 ms;当一个区块包含 100 0000 Transcation 时,验证者的 V...
Curve War(流动性战争)
一、Stablecoin(稳定币之争)加密稳定币的发展主要历程了三个阶段,这些稳定币各有各的优势与问题:在目前百花齐放的 DeFi 协议中,去中心化的算法稳定币的市场份额一直在攀升。 而流动性战争的核心是:解决算法稳定币的价值锚定和提供代币使用场景。 如何锚定算法稳定币的价值呢?二、Curve 的探索之路在众多的 AMM 之间大家最终选择了 Curve:Curve 优点一如上图所示:曲线1(Uniswap)的兑换会随着交易额增大而出现更大的交易滑点在;曲线2(Constant price 是理想中的1:1刚性兑换;曲线3(Curve)池子深度足够大时几乎和曲线2重合。 Curve 提供的 Stableswap 算法使得其在同样盘口深度下比 Uniswap V1 的滑点更低。这一算法优势使得其可以满足:稳定币大额低滑点交易的需求。因此围绕 Curve 逐渐建立起稳定币兑换的生态。 本质上讲,Curve 是稳定币价值锚定的 DeFi 基础组件,Uniswap 是新币价值发现的 DeFi 基础组件。两者并不是直接竞争的关系。 如何让 Curve Pool 的深度足够大,便成了下一个亟待...
Tornado 龙卷风混币原理
项目背景Tornado(https://tornado.cash/)是以太坊隐私赛道著名的混币项目,其混币技术主要使用了 zk-SNARK 零知识证明。 1、关于 zk-SNARK 零知识证明的原理可以参见 if(DAO) 之前的文章: https://mirror.xyz/0xd05cFA28Eaf8B4eaFD8Cd86d33c6CeD1a1875417/X3qSOjObTknXQ_iGhDBFYETibD0TVW0twz5QDIthjGI 2、混币的意思是混币者通过 Tornado 合约将混币者的以太坊地址和资金去向地址失去关联,从而达到隐匿资金去向的目的。项目原理1、Bob 是第 3 个将自己的代币 Deposit 存入龙卷风合约进行混币的客户。 2、Alice 是第 4 个将自己的代币 Deposit 存入龙卷风合约进行混币的客户。 3、Alice 在 Deposit 时(1)Alice random k4 ,r4。k4 和 r4 in { 0 ,1 } ^ 256。( k4 ,r4 ) 也是 Alice 未来的取款凭证 note4。 (2)Alice 计算得到 C4 ...
零知识证明之zk-STARK
zk-STARK(零知识的可扩展的透明知识论证)zero knowledge - Scalable Transparent ARgument of Knowledge zero knowledge(零知识):Private input(秘密的输入)将会被隐藏,除了 Prover 以外的任何人都不知道 Private input 的内容,在知识论证的过程中也不能反推出 Private input。 Scalable(扩展性):与 Replay Computation 的验证耗时相比,zk-STARK 生成 Proof 的时间复杂度近似于计算的复杂度 (O(n)),而 Verify Proof 的时间复杂度远小于计算的复杂度 (O(log))。 假设区块链网络中 Verifier 的 VerifyTime = Transcation 交易数量的对数的平方。当一个区块包含 10000 Transcation 时,验证者的 VerifyTime = (log₂ 10000)² ~ (13.2)² ~ 177 ms;当一个区块包含 100 0000 Transcation 时,验证者的 V...
Curve War(流动性战争)
一、Stablecoin(稳定币之争)加密稳定币的发展主要历程了三个阶段,这些稳定币各有各的优势与问题:在目前百花齐放的 DeFi 协议中,去中心化的算法稳定币的市场份额一直在攀升。 而流动性战争的核心是:解决算法稳定币的价值锚定和提供代币使用场景。 如何锚定算法稳定币的价值呢?二、Curve 的探索之路在众多的 AMM 之间大家最终选择了 Curve:Curve 优点一如上图所示:曲线1(Uniswap)的兑换会随着交易额增大而出现更大的交易滑点在;曲线2(Constant price 是理想中的1:1刚性兑换;曲线3(Curve)池子深度足够大时几乎和曲线2重合。 Curve 提供的 Stableswap 算法使得其在同样盘口深度下比 Uniswap V1 的滑点更低。这一算法优势使得其可以满足:稳定币大额低滑点交易的需求。因此围绕 Curve 逐渐建立起稳定币兑换的生态。 本质上讲,Curve 是稳定币价值锚定的 DeFi 基础组件,Uniswap 是新币价值发现的 DeFi 基础组件。两者并不是直接竞争的关系。 如何让 Curve Pool 的深度足够大,便成了下一个亟待...

Subscribe to Ethan - if(DAO)

Subscribe to Ethan - if(DAO)
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers
1、Erasure Code是一种编码技术,它可以将 n 份原始数据,增加 m 份数据,并能通过n+m份中的任意 n 份数据,还原为原始数据。即如果有任意小于等于 m 份的数据失效,仍然能通过剩下的数据还原出来。
2、纠删码技术在分布式存储系统中的应用主要有三类
(1)RS( Reed-Solomon )里德-所罗门纠删码
(2)AC( Array Code: RAID5、RAID6等)阵列纠删码
(3)LDPC( LowDensity Parity Check Code )低密度奇偶校验纠删码( LDPC 目前主要用于通信、视频和音频编码等领域 )
副本策略和纠删码是存储领域常见的两种数据冗余技术。相比于副本策略,纠删码具有更高的磁盘利用率:

Reed-Solomon(RS)码是存储系统较为常用的一种纠删码,它有两个参数n和m,记为RS(n ,m)。n 代表原始数据块个数。m代表校验块个数。以n=5,m=3为例 :
1、encoding 编码过程(D是原始数据块,得到的C为校验块,构建 Bi 有专门的数学方法,比如范德蒙矩阵,具体可参见大学的线性代数知识)

即5个原始数据块,乘上一个 (n+m) * n 的矩阵,然后得出一个 (n+m) * 1 的矩阵。根据矩阵特点可以得知结果矩阵中前面5个值与原来的5个数据块的值相等(如图D),而最后3个则是计算出来的校验块(如图C)。
2、假设丢失了 m 块数据(D1、D4、C2丢失)

我们如何从剩余的 n 个数据块( 剩余的n块可能包含几个原始数据块+几个校验块 )恢复出来原始的n个数据块呢,就需要通过下面的decoding(解码)过程来实现。
3、decoding 解码过程
(1)构建变形矩阵 B'
从编码矩阵中删去丢失数据块和丢失编码块对应行。 将删掉m个块的(n+m) * 1个矩阵变形为n * 1 矩阵,同时B矩阵也需要删掉对应的m个行得出一个 B' 的变形矩阵,这个 B' 就是 n * n 矩阵,如下图所示

(2)计算 B' 的逆矩阵( 具体计算过程参见大学课程:线性代数 )

(3)等式两边分别乘上 B' 的逆矩阵

(4) B' 和它的逆矩阵相乘得到单位矩阵 I

(5)最后左边只剩下原始数据矩阵D,至此解码过程完成,即我们恢复出了全部数据D1-D5

Near Protocol 是 V神 点名表扬的区块链一层扩容协议,协议采用的是状态分片技术,其核心原理就是使用了纠删码技术使得跨分片的账户间的转账可以被容易的确定状态转化是否正确。

即 Near 区块链的每个区块都被分割为很多个 Shard 分片,每个 Shard 分片通过 Erasure Code 进行编码分成很多个 Part ,不同的 Part 发送给 Near 区块链网络上的不同 Validators,这些 Validators 可以通过 Erasure Code 的解码过程还原每个 Shard 分片的状态,并确定状态转换的最终一致性。
想进行更深入的研究可以参见 Near Protocol 夜影分片协议的原文链接:
1、Erasure Code是一种编码技术,它可以将 n 份原始数据,增加 m 份数据,并能通过n+m份中的任意 n 份数据,还原为原始数据。即如果有任意小于等于 m 份的数据失效,仍然能通过剩下的数据还原出来。
2、纠删码技术在分布式存储系统中的应用主要有三类
(1)RS( Reed-Solomon )里德-所罗门纠删码
(2)AC( Array Code: RAID5、RAID6等)阵列纠删码
(3)LDPC( LowDensity Parity Check Code )低密度奇偶校验纠删码( LDPC 目前主要用于通信、视频和音频编码等领域 )
副本策略和纠删码是存储领域常见的两种数据冗余技术。相比于副本策略,纠删码具有更高的磁盘利用率:

Reed-Solomon(RS)码是存储系统较为常用的一种纠删码,它有两个参数n和m,记为RS(n ,m)。n 代表原始数据块个数。m代表校验块个数。以n=5,m=3为例 :
1、encoding 编码过程(D是原始数据块,得到的C为校验块,构建 Bi 有专门的数学方法,比如范德蒙矩阵,具体可参见大学的线性代数知识)

即5个原始数据块,乘上一个 (n+m) * n 的矩阵,然后得出一个 (n+m) * 1 的矩阵。根据矩阵特点可以得知结果矩阵中前面5个值与原来的5个数据块的值相等(如图D),而最后3个则是计算出来的校验块(如图C)。
2、假设丢失了 m 块数据(D1、D4、C2丢失)

我们如何从剩余的 n 个数据块( 剩余的n块可能包含几个原始数据块+几个校验块 )恢复出来原始的n个数据块呢,就需要通过下面的decoding(解码)过程来实现。
3、decoding 解码过程
(1)构建变形矩阵 B'
从编码矩阵中删去丢失数据块和丢失编码块对应行。 将删掉m个块的(n+m) * 1个矩阵变形为n * 1 矩阵,同时B矩阵也需要删掉对应的m个行得出一个 B' 的变形矩阵,这个 B' 就是 n * n 矩阵,如下图所示

(2)计算 B' 的逆矩阵( 具体计算过程参见大学课程:线性代数 )

(3)等式两边分别乘上 B' 的逆矩阵

(4) B' 和它的逆矩阵相乘得到单位矩阵 I

(5)最后左边只剩下原始数据矩阵D,至此解码过程完成,即我们恢复出了全部数据D1-D5

Near Protocol 是 V神 点名表扬的区块链一层扩容协议,协议采用的是状态分片技术,其核心原理就是使用了纠删码技术使得跨分片的账户间的转账可以被容易的确定状态转化是否正确。

即 Near 区块链的每个区块都被分割为很多个 Shard 分片,每个 Shard 分片通过 Erasure Code 进行编码分成很多个 Part ,不同的 Part 发送给 Near 区块链网络上的不同 Validators,这些 Validators 可以通过 Erasure Code 的解码过程还原每个 Shard 分片的状态,并确定状态转换的最终一致性。
想进行更深入的研究可以参见 Near Protocol 夜影分片协议的原文链接:
No activity yet