Buidling Web3.
一文读懂Uniswap,附Uniswap使用教程
一、加密货币交易形式当我们要进行加密货币交易时,使用最早也是目前使用最多的形式还是中心化交易所,在中心化交易所,我们首先需要注册,然后加密货币也需要存入到交易所,由交易所进行托管,如果要提现加密货币出来,也需要经过交易所审核同意。 虽然中心化交易所有诸多优势,例如交易速度较快、用户不需要管理私钥,降低了用户的使用门槛,但是它的弊端也是显而易见的,用户的加密货币由交易所托管,交易所是有跑路风险的。也确实发生过多起交易所跑路的事件,几乎每年都有发生。 那么,有没有更好的加密货币交易形式呢? 随着区块链技术的不断发展,加密货币交易形式也变得越来越多样化,我们不但可以使用中心化交易所进行交易,也可以使用去中心化交易所进行交易。 在中心化交易所进行交易时,不需要注册,只需要使用数字钱包连接去中心化交易所就可以进行加密货币的交易了,交易完成后,相应的加密货币会自动转入到用户的数字钱包中,用户的资产始终在自己的钱包中,并非像中心化交易所那样托管在交易所,所以,在去中心化交易所进行交易,安全性大大提高了。 目前,去中心化交易所主要有两种形式,一种是交易所撮合买方用户和卖方用户的订单,只不过操作过...
多签钱包Gnosis Safe使用教程
原作者:Gnosis Safe 团队 在过去的 4 年里,多重签名钱包 Gnosis Safe 的发展已经到达了全新的高度。它已经成为 Web3 的关键基础设施,为 DAO、机构、项目和个人保护数字资产。仅在以太坊主网上,Gnosis Safe 用户就管理着价值超过640 亿美元的资产,并且所有这些都是自我保管的!什么是多重签名?Gnosis Safe 的基础知识大多数以太坊用户习惯于使用单一密钥钱包(例如:MetaMask),通常称为外部账户(EOA)。这些帐户使用私钥进行保护,私钥可以转换为用户的 12 个单词的"助记词"。如果该私钥以任何方式被泄露,则资金可能会被盗。 如果您的企业由多于 1 个人组成,则外部帐户不是管理加密业务资金的安全方式。如果员工道德低劣或对于私钥不够小心,资金将永远丢失。即使您的企业只由您自己组成,我认为这仍然是一种糟糕的资金管理方式。那么,更好的解决方案是什么? 使用多重签名。Gnosis Safe 是一个运行在以太坊上的智能合约钱包,需要最少数量的人在交易发生之前批准,交易才会发生(M-of-N)。例如,如果您的企业中有 3 个主要利益相关者,则...
零知识证明——zk-stark数学入门
原文:CYC Labs咕咕 STARK的出现是为了解决计算完整性(CI)的问题。CI是商业的基本属性,有了CI我们才能信任银行账单和账户余额。文章讨论了无需可区块链中在无信任的情况下完成CI。 在旧世界的金融系统中,会有机制激励他们诚信的给社会服务,还有一个变体,就是可信执行环境(TEE)。比如Intel生产SGX芯片,Intel是一个可信的硬件制造商,所以现在的CI是基于对硬件和它的制造商的信任,并且假设不可能在这样的物理设备中提取密钥。在新世界中,即区块链,提供了一种更加直接的方式实现CI,“dont trust, verify” ,就是直接验证,只需要一个节点,只需要它设置了标准计算,比如一个联网的笔记本电脑就可以给所有交易提供完整性验证。但是这也直接导致两个挑战,隐私和可扩展。所以这就引出了证明系统。 证明系统开始于1985年提出的交互证明(interactive proof),通过prover和verifier两个实体,发送信息进行多轮交互,利用随机性产生零知识证明,验证者最后会输出一个决策来接受或者拒绝这个新状态。当状态A更新到B,证明系统解决了CI时,就会有可靠性(...
一文读懂Uniswap,附Uniswap使用教程
一、加密货币交易形式当我们要进行加密货币交易时,使用最早也是目前使用最多的形式还是中心化交易所,在中心化交易所,我们首先需要注册,然后加密货币也需要存入到交易所,由交易所进行托管,如果要提现加密货币出来,也需要经过交易所审核同意。 虽然中心化交易所有诸多优势,例如交易速度较快、用户不需要管理私钥,降低了用户的使用门槛,但是它的弊端也是显而易见的,用户的加密货币由交易所托管,交易所是有跑路风险的。也确实发生过多起交易所跑路的事件,几乎每年都有发生。 那么,有没有更好的加密货币交易形式呢? 随着区块链技术的不断发展,加密货币交易形式也变得越来越多样化,我们不但可以使用中心化交易所进行交易,也可以使用去中心化交易所进行交易。 在中心化交易所进行交易时,不需要注册,只需要使用数字钱包连接去中心化交易所就可以进行加密货币的交易了,交易完成后,相应的加密货币会自动转入到用户的数字钱包中,用户的资产始终在自己的钱包中,并非像中心化交易所那样托管在交易所,所以,在去中心化交易所进行交易,安全性大大提高了。 目前,去中心化交易所主要有两种形式,一种是交易所撮合买方用户和卖方用户的订单,只不过操作过...
多签钱包Gnosis Safe使用教程
原作者:Gnosis Safe 团队 在过去的 4 年里,多重签名钱包 Gnosis Safe 的发展已经到达了全新的高度。它已经成为 Web3 的关键基础设施,为 DAO、机构、项目和个人保护数字资产。仅在以太坊主网上,Gnosis Safe 用户就管理着价值超过640 亿美元的资产,并且所有这些都是自我保管的!什么是多重签名?Gnosis Safe 的基础知识大多数以太坊用户习惯于使用单一密钥钱包(例如:MetaMask),通常称为外部账户(EOA)。这些帐户使用私钥进行保护,私钥可以转换为用户的 12 个单词的"助记词"。如果该私钥以任何方式被泄露,则资金可能会被盗。 如果您的企业由多于 1 个人组成,则外部帐户不是管理加密业务资金的安全方式。如果员工道德低劣或对于私钥不够小心,资金将永远丢失。即使您的企业只由您自己组成,我认为这仍然是一种糟糕的资金管理方式。那么,更好的解决方案是什么? 使用多重签名。Gnosis Safe 是一个运行在以太坊上的智能合约钱包,需要最少数量的人在交易发生之前批准,交易才会发生(M-of-N)。例如,如果您的企业中有 3 个主要利益相关者,则...
零知识证明——zk-stark数学入门
原文:CYC Labs咕咕 STARK的出现是为了解决计算完整性(CI)的问题。CI是商业的基本属性,有了CI我们才能信任银行账单和账户余额。文章讨论了无需可区块链中在无信任的情况下完成CI。 在旧世界的金融系统中,会有机制激励他们诚信的给社会服务,还有一个变体,就是可信执行环境(TEE)。比如Intel生产SGX芯片,Intel是一个可信的硬件制造商,所以现在的CI是基于对硬件和它的制造商的信任,并且假设不可能在这样的物理设备中提取密钥。在新世界中,即区块链,提供了一种更加直接的方式实现CI,“dont trust, verify” ,就是直接验证,只需要一个节点,只需要它设置了标准计算,比如一个联网的笔记本电脑就可以给所有交易提供完整性验证。但是这也直接导致两个挑战,隐私和可扩展。所以这就引出了证明系统。 证明系统开始于1985年提出的交互证明(interactive proof),通过prover和verifier两个实体,发送信息进行多轮交互,利用随机性产生零知识证明,验证者最后会输出一个决策来接受或者拒绝这个新状态。当状态A更新到B,证明系统解决了CI时,就会有可靠性(...
Buidling Web3.

Subscribe to DK

Subscribe to DK
Share Dialog
Share Dialog
在NFT项目中,常见的发放NFT的方式有很多种,包括公售、拍卖、空投,白名单等等。其中最重要的就是公售和白名单。拍卖、空投等发放方式大多都和项目的营销方式相关,通常不具有必要性,而公售和白名单是一个项目必要的发放方式。而公售因为是面向公众的售卖,通常不需要特殊操作,只需要按需限定是否支持合约mint即可,白名单机制由于需要对钱包地址进行合法性校验,因此产生了很多校验方案。本文即是对NFT项目中涉及到的白名单技术进行了调研和总结。
实际上白名单机制是对公售机制的一种补足,由于公售本身的定义,他对于所有用户是平等的,所有用户需要支付同样的费用,拥有平等的机会。之所以说白名单是对公售的一种补足,是因为白名单是在公售基础上,抽出了一部分存量,在公售之前提前发放给一部分人(在白名单中)。
项目方通过抽取出这一部分存量,可以预支一部分价值用于项目的运营和推广。因为大多数项目方可能缺少运营所需的成本,缺少给支持项目的用户反馈的方式。白名单即是为了满足这些需求而在平等上做出的妥协。因此,项目需要白名单机制来弥补运营上的缺失,同时需要白名单机制来完成用户的激励。
白名单机制包含两个核心问题:设置和验证。设置指添加列表元素的过程,简单来说就是将一个钱包地址添加到白名单中,这是项目方的主动操作。验证则是当一个钱包地址到来时,判断其是否存在于白名单中,是否有资格进行白名单mint。两个操作都可以放在链上或者链下完成。
根据设置和验证两个操作所在的位置,可以将白名单方案分为以下几类:
(注:此处的链上与链下指的是操作的完成是通过合约或中心化服务器)
这种方案只需要在中心化服务器上维护一套白名单列表即可,mint必须由中心化服务器发起,在mint方法中传递验证结果即可。核心难点在于如何链上进行验证结果的合法性校验。
优点:链上不需要存储,减少部署消耗。设置与验证都在中心化服务器上完成,无消耗。
缺点:非常中心化的方案,白名单数据完全脱离公链,用户信任度不足。同时,合法性校验的设计非常关键,容易被攻击。
这一方案与上述方案存在的问题基本相同,验证如果不是透明的,那么中心化服务器很容易伪造验证结果,用户信任度就会随之降低。同样,因为可伪造,项目也就存在了被攻击的风险。
这一方案将白名单的设置移动到链下,在智能合约中完成验证工作,将验证过程公开。这种方案实际上是试图寻找存储消耗和安全性之间的平衡。核心问题在于如何在链上存储足够少的数据即可完成验证任务。
为了实现这样的目标,基于Merkle Tree的白名单机制出现了。
要理解为什么Merkle Tree可以应用于白名单的设置和验证,需要先了解Merkle Tree的原理。
定义
Merkle tree又称Hash Tree,是一种树形数据结构。每个叶节点均以数据块的哈希作为标签,而除了叶节点以外的节点则以其子节点标签的加密哈希作为标签 。哈希树能够高效、安全地验证大型数据结构的内容,是哈希链的推广形式[1]。哈希树的概念由瑞夫·墨克于 1979 年申请专利,故亦称墨克树(Merkle tree)。(以上摘自维基百科对哈希树的定义)
简单来说,Merkle Tree的每一个根,都是根据他所有的孩子节点通过公式计算得到的,因此同样存在不可篡改性,一旦某个叶子节点更改,就无法通过公式计算出相同的结果。通过这种性质,可以实现两个目标:
将最高层的root值存储到链上之后,根据链上数据的公开性结合树本身的不可篡改性从而达到去中心化信任的目标。
由于root值是由每一个节点值递归计算得到的,再加上本身是一个n叉树的结构,因此可以实现从一个地址出发,在不知晓其他地址的情况下,计算得到root。通过这一步骤实现将链上验证操作。
使用Merkle Tree实现白名单机制的优点很明显,保证了去中心化信任的同时减少了链上的操作消耗,并且由于链上的验证操作是零知识的,不需要知道其他所有的白名单地址,因此一定程度上保证了项目方保密性的要求。
缺点:这一方案并没有完全脱离中心化服务器的依赖,白名单用户在mint时必须访问中心化服务器得到Merkle Proof才能进行链上验证。
这一方案最简单,最容易理解,当然也存在一定的代价,就是部署成本很高。
对比上一方案只需要在链上存储root节点值,这一方案需要在链上存储全套的白名单列表,需要智能合约提供方法供项目方设置白名单列表。而设置白名单列表的消耗往往是非常大的。
优点:保证了绝对的安全公开可信,脱离了中心化服务器,达到完全的自运行。
缺点:项目方链上操作数量多,gas消耗大。
总的来看,目前NFT市场中的白名单技术大多使用纯链上/Merkle Tree方案,这两种方案都选择在链上完成验证操作,核心思想是将验证暴露给公众从而换取可信度。
在NFT项目中,常见的发放NFT的方式有很多种,包括公售、拍卖、空投,白名单等等。其中最重要的就是公售和白名单。拍卖、空投等发放方式大多都和项目的营销方式相关,通常不具有必要性,而公售和白名单是一个项目必要的发放方式。而公售因为是面向公众的售卖,通常不需要特殊操作,只需要按需限定是否支持合约mint即可,白名单机制由于需要对钱包地址进行合法性校验,因此产生了很多校验方案。本文即是对NFT项目中涉及到的白名单技术进行了调研和总结。
实际上白名单机制是对公售机制的一种补足,由于公售本身的定义,他对于所有用户是平等的,所有用户需要支付同样的费用,拥有平等的机会。之所以说白名单是对公售的一种补足,是因为白名单是在公售基础上,抽出了一部分存量,在公售之前提前发放给一部分人(在白名单中)。
项目方通过抽取出这一部分存量,可以预支一部分价值用于项目的运营和推广。因为大多数项目方可能缺少运营所需的成本,缺少给支持项目的用户反馈的方式。白名单即是为了满足这些需求而在平等上做出的妥协。因此,项目需要白名单机制来弥补运营上的缺失,同时需要白名单机制来完成用户的激励。
白名单机制包含两个核心问题:设置和验证。设置指添加列表元素的过程,简单来说就是将一个钱包地址添加到白名单中,这是项目方的主动操作。验证则是当一个钱包地址到来时,判断其是否存在于白名单中,是否有资格进行白名单mint。两个操作都可以放在链上或者链下完成。
根据设置和验证两个操作所在的位置,可以将白名单方案分为以下几类:
(注:此处的链上与链下指的是操作的完成是通过合约或中心化服务器)
这种方案只需要在中心化服务器上维护一套白名单列表即可,mint必须由中心化服务器发起,在mint方法中传递验证结果即可。核心难点在于如何链上进行验证结果的合法性校验。
优点:链上不需要存储,减少部署消耗。设置与验证都在中心化服务器上完成,无消耗。
缺点:非常中心化的方案,白名单数据完全脱离公链,用户信任度不足。同时,合法性校验的设计非常关键,容易被攻击。
这一方案与上述方案存在的问题基本相同,验证如果不是透明的,那么中心化服务器很容易伪造验证结果,用户信任度就会随之降低。同样,因为可伪造,项目也就存在了被攻击的风险。
这一方案将白名单的设置移动到链下,在智能合约中完成验证工作,将验证过程公开。这种方案实际上是试图寻找存储消耗和安全性之间的平衡。核心问题在于如何在链上存储足够少的数据即可完成验证任务。
为了实现这样的目标,基于Merkle Tree的白名单机制出现了。
要理解为什么Merkle Tree可以应用于白名单的设置和验证,需要先了解Merkle Tree的原理。
定义
Merkle tree又称Hash Tree,是一种树形数据结构。每个叶节点均以数据块的哈希作为标签,而除了叶节点以外的节点则以其子节点标签的加密哈希作为标签 。哈希树能够高效、安全地验证大型数据结构的内容,是哈希链的推广形式[1]。哈希树的概念由瑞夫·墨克于 1979 年申请专利,故亦称墨克树(Merkle tree)。(以上摘自维基百科对哈希树的定义)
简单来说,Merkle Tree的每一个根,都是根据他所有的孩子节点通过公式计算得到的,因此同样存在不可篡改性,一旦某个叶子节点更改,就无法通过公式计算出相同的结果。通过这种性质,可以实现两个目标:
将最高层的root值存储到链上之后,根据链上数据的公开性结合树本身的不可篡改性从而达到去中心化信任的目标。
由于root值是由每一个节点值递归计算得到的,再加上本身是一个n叉树的结构,因此可以实现从一个地址出发,在不知晓其他地址的情况下,计算得到root。通过这一步骤实现将链上验证操作。
使用Merkle Tree实现白名单机制的优点很明显,保证了去中心化信任的同时减少了链上的操作消耗,并且由于链上的验证操作是零知识的,不需要知道其他所有的白名单地址,因此一定程度上保证了项目方保密性的要求。
缺点:这一方案并没有完全脱离中心化服务器的依赖,白名单用户在mint时必须访问中心化服务器得到Merkle Proof才能进行链上验证。
这一方案最简单,最容易理解,当然也存在一定的代价,就是部署成本很高。
对比上一方案只需要在链上存储root节点值,这一方案需要在链上存储全套的白名单列表,需要智能合约提供方法供项目方设置白名单列表。而设置白名单列表的消耗往往是非常大的。
优点:保证了绝对的安全公开可信,脱离了中心化服务器,达到完全的自运行。
缺点:项目方链上操作数量多,gas消耗大。
总的来看,目前NFT市场中的白名单技术大多使用纯链上/Merkle Tree方案,这两种方案都选择在链上完成验证操作,核心思想是将验证暴露给公众从而换取可信度。
<100 subscribers
<100 subscribers
No activity yet