- 699DAO_什么是ETH(下)
风险提示:所有内容仅作为学术讨论研究,不作投资建议。数字货币风险很高,可能会损失全部本金,请注意控制风险。 --------------------------------------------------------------------------------------------------------------------------- 0x699DAO是一个匿名兴趣小组,创始成员9人,每周六晚上9点定期会对web3的最新进展进行讨论。 我们每一个成员都坚信web3的大趋势,希望能够通过自己的绵薄之力促进中文社区对于区块链世界的认知。我们的成员来自不同的背景,有传统一二级一线美元基金的合伙人,10年币圈经验的OG,也有世界顶级科技公司的技术专家。在世界剧变的时刻,我们拥抱变化,相信只有变化才是永恒,希望通过不断学习变成更好的自己。 我们相信通过不同的多元复合背景的讨论可以提升彼此之间对于web3的认知。我们的讨论内容不仅限于具体的区块链项目,也涉及历史、金融、消费等多个不同领域,希望能够多维度、多角度的深度思考区块链的未来,用更长的时间周期去探索区块链行业的发展。 0x699 DAO会每周把讨论成果分享给大众,也希望能够通过更多讨论去提升中文区块链世界的思考质量。--------------------------------------------------------------------------------------------------------------------------- How ETH Works: - BTC和ETH转账区别 以太坊有一个balance,这个数字是数据库里面可以查到。比特币很特别的,只查一个账户地址,是查不到这个账户里面有多少钱的,只能查到历史上的转入和转出金额。比特币行为模式跟现金比较相似也就是UTXO(一个任意的数字)。知道账户地址无法知道余额,统计这个账户在网络上转入转出的差值。如果查一个人的余额,需要查链上数据加总。普通大户可以掩饰自己拥有多少资产。 - Merkel tree的好处 通过个人的轻节点,凭借树根的hush,传输几kb的数据来证明交易的真实性。个人电脑不需要存储以太坊所有人的信息。 - Transaction流程 ECC算法生成私钥,构造出transactiondata,利用私钥去签名(确定独一无二性),ETH上所有网络节点会去广播,进入pool等待上链(空间有限排队),挖矿节点拿到transaction放到区块链上,然后transaction执行。像同一个数据库拥有几千个copy(保证安全性)。POS后机制没有变化。Metamask是把私钥存在本地,通过密码来加密。通过开源和抓包让大家来检查。 - 挖矿 所有人往区块链写数据会冲突,通过挖矿来确定谁是最后一个往上写数据的。POW就是猜hash值,第一个猜出来的去上链。内存or硬盘挖矿是算法机制不同。以太坊对内存需求大。矿工增多不会增加以太坊的效率,类似竞争高速路上的收费员。 - Accounts和Smart Contacts的差异 ETH有两种地址,Accounts和Smart Contracts。Accounts只有一个ETH余额数据,USDT不存在地址里。Smart Contacts可以存很多东西,比如数据和代码。Code和Data都可以在上链后查看。智能合约有一些可以被外界调用的接口。查询USDT的余额是通过Smart Contacts,通过Token的地址发起Transaction。查余额也是通过Smart Contacts,钱包里的数据只有ETH的余额。 - 区块链能做两件事情 一、 存储:所有人一起维护的数据库。二、执行代码:任何人可以执行调用上链的代码。执行代码代价很高,所以有gas。 - 从安全性,Web3真的比Web2好吗。 安全性基于分布式程度。几千个服务器挂掉一半,数据依然在。另一个是执行的安全性,几千个节点会同时验证。而中心化服务器可能会面临作弊的问题。 - ERC20如何实现 账本记录所有人的balance,mapping是address到int整数(两列报格),转账是balance+-value。 更改合约代码的复杂度,比如USDT更改转账的Basepoint Rate。 Public balance公开可访问的变量。USDT更改Basepoint Rate(参数)没有成本,但是已经写好的Code(规则)不能增加或修改,但数据可以被修改。 - Move和Solidy的区别 没有资产这一数据类型,使用整数对数字资产进行编码。这种编码方式使得编写与数字资产交互的智能合约变得繁杂且易出错。ERC-20代币等自定义资产使用整数来表示其价值和总供应量。每当铸造新代币时,智能合约代码必须手动检查。由于资产问题的间接表示,例如重复、重用或资产丢失。在实现诸如资产转入 /转出以及将资产存储在数据结构中这样的操作都需要特殊的语言支持。两种模式的区别是,Move将Resource定义为一种具象化的元素,类似为创建出不可被销毁的积木,语言围绕积木来进行编码。其只能由创建的对象修改,Resource的变动也需要经过严格的规则。这保证了资产的安全性,也规避了编码过程中可能出现的错误。 - NFT contract的安全性 卖NFT的时候需要调用合约的Transfer功能,黑客可以在合约里加一些特殊条件让transfer的权限变大。如果在授权合约的时候授权了USDT的transfer,转nft就可以划转usdt。Opensea这种版权Market会自觉遵守合约里的版权费,读合约里的版权费用值。但理论上Opensea可以修改参数,不认合约里的版权费,不给项目方打钱,项目方唯一可以做的也就是拉黑平台。 - 时间锁和合约升级 有的合约不能升级比如usdt。Proxy Contract是可以进行升级,用户去跟proxy contract进行交互,链接到后面不同的合约。黑客可以通过Proxy Contract升级来进行供给,但是Proxy Contract也不是全能的,合约升级只能改代码的执行逻辑,数据不能被改(就是余额不能被篡改)。 - 私钥销毁能不能在链上确认 私钥销毁很难确认,除非合约进行升级。所有号称销毁私钥的项目方都是不可信的,销毁私钥本质上还是一种君子协议,因为你永远无法避免项目方记住了自己的私钥。 - Hack 如果大部分节点被Hack,网络可以选择硬分叉,不认被hack的节点。(前后两组数据不一致)网络攻击一定会被公开,因为数字指纹会被验证。双花攻击不会长时间持续,即便短暂几分钟双花攻击成功,随着正确的链数量变多,正确的数据会被recover。 - ETH分叉 分叉后一部分链的数据会不被承认,tvl会大幅减少。如果一个项目方到了另一条链,本链上的token会减值。分叉对两条链都会有损失。分叉后拿本位币会保值,稳定币可能会在POW链上不被承认。 - Gas 有三个部分transaction fee,gas price,usage。 交易花费是gas price* usage。费用视复杂程度和gas价格。 上链需要成本去付给挖矿的miner,miner还会有手续费奖励因为需要维护网络安全。Gas fee高可以防止大流量攻击。Solana的问题是gas不动态,是固定,而且太低,所以容易被攻击。 Gas的usage和合约执行的机器指令有关。加减除花3个gas,乘花5个gas。可以通过EIP更改gas的收费规则。 Gas limit:可以指定单次最高愿意花费的Gas。提高单个区块的limit会提高tps。限制单个区块的limit是为了照顾大部分节点的处理能力,如果tps过高节点会处理不过来。目的是让普通人的电脑也可以跑起来,避免太过中心化。 - 为什么有的链失败了 大部分链不可持续,收入不足以覆盖支出,比如Solana gas fee约等于0,矿工要求性能很高,收益很低,随着矿工越来越少安全性也会越来越少。ETH占据了95%的公链收入。Solana能运行下去基本还是靠官方烧钱补贴。 国内的联盟链是另一种生态,矿工需要给蚂蚁链付钱当节点,totally反向操作。 一般以太坊sign是要付钱的。ERC20有个permit功能,在链下sign就可以,收钱的人在链上验证需要付gas fee。 1559升级之前,gas fee很难估算,只能根据上一个区块的gas去估计。升级后所有人都可以计算出需要的base fee是多少。Metamask可以调给矿工的额外补贴。 - 转账失败 Gas不够没能上链不扣gas。转账余额不够失败会被扣gas,因为函数已经执行很多行了已经花了一部分gas,和合约执行的多少有关。 交易执行有先后顺序,一个block里gas付的越高顺序就越靠前。Gasprice一样就取决于被广播的先后顺序。 会先执行Gas price高的。和transaction fee不关。没有规模效应,执行2个小块应用和1个大块的效率是一样的。 - Flashbots Flashbots是另一种矿工选择交易的排序方式,是一种封闭的集合竞价。一组Flashbots里的transaction相互竞价。走Flashbots不会给eth burn,会把全部交易手续费给矿工,所以对矿工有很大的经济激励,大矿场都在和flashbots合作。转pos后矿工的收入要更依赖Flashbots,挖矿的奖励没有了就只能依赖手续费。Flashbots的作用主要是为了夹子机器人,在公开pool里看到别人的在uniswap交易后,套利者把交易抢在前面,先花出钱买币,在受害者把价格抬高后再卖出去。 个人用户是很难避免这种套利的,唯一的方法是设置滑点才不会被割。
- 0x699DAO_什么是ETH(上)
风险提示:所有内容仅作为学术讨论研究,不作投资建议。数字货币风险很高,可能会损失全部本金,请注意控制风险。 --------------------------------------------------------------------------------------------------------------------------- 0x699DAO是一个匿名兴趣小组,创始成员9人,每周六晚上9点定期会对web3的最新进展进行讨论。 我们每一个成员都坚信web3的大趋势,希望能够通过自己的绵薄之力促进中文社区对于区块链世界的认知。我们的成员来自不同的背景,有传统一二级一线美元基金的合伙人,10年币圈经验的OG,也有世界顶级科技公司的技术专家。在世界剧变的时刻,我们拥抱变化,相信只有变化才是永恒,希望通过不断学习变成更好的自己。 我们相信通过不同的多元复合背景的讨论可以提升彼此之间对于web3的认知。我们的讨论内容不仅限于具体的区块链项目,也涉及历史、金融、消费等多个不同领域,希望能够多维度、多角度的深度思考区块链的未来,用更长的时间周期去探索区块链行业的发展。 0x699 DAO会每周把讨论成果分享给大众,也希望能够通过更多讨论去提升中文区块链世界的思考质量。--------------------------------------------------------------------------------------------------------------------------- How ETH Works: - BTC和ETH转账区别 以太坊有一个balance,这个数字是数据库里面可以查到。比特币很特别的,只查一个账户地址,是查不到这个账户里面有多少钱的,只能查到历史上的转入和转出金额。比特币行为模式跟现金比较相似也就是UTXO(一个任意的数字)。知道账户地址无法知道余额,统计这个账户在网络上转入转出的差值。如果查一个人的余额,需要查链上数据加总。普通大户可以掩饰自己拥有多少资产。 - Merkel tree的好处 通过个人的轻节点,凭借树根的hush,传输几kb的数据来证明交易的真实性。个人电脑不需要存储以太坊所有人的信息。 - Transaction流程 ECC算法生成私钥,构造出transactiondata,利用私钥去签名(确定独一无二性),ETH上所有网络节点会去广播,进入pool等待上链(空间有限排队),挖矿节点拿到transaction放到区块链上,然后transaction执行。像同一个数据库拥有几千个copy(保证安全性)。POS后机制没有变化。Metamask是把私钥存在本地,通过密码来加密。通过开源和抓包让大家来检查。 - 挖矿 所有人往区块链写数据会冲突,通过挖矿来确定谁是最后一个往上写数据的。POW就是猜hash值,第一个猜出来的去上链。内存or硬盘挖矿是算法机制不同。以太坊对内存需求大。矿工增多不会增加以太坊的效率,类似竞争高速路上的收费员。 - Accounts和Smart Contacts的差异 ETH有两种地址,Accounts和Smart Contracts。Accounts只有一个ETH余额数据,USDT不存在地址里。Smart Contacts可以存很多东西,比如数据和代码。Code和Data都可以在上链后查看。智能合约有一些可以被外界调用的接口。查询USDT的余额是通过Smart Contacts,通过Token的地址发起Transaction。查余额也是通过Smart Contacts,钱包里的数据只有ETH的余额。 - 区块链能做两件事情 一、 存储:所有人一起维护的数据库。二、执行代码:任何人可以执行调用上链的代码。执行代码代价很高,所以有gas。 - 从安全性,Web3真的比Web2好吗。 安全性基于分布式程度。几千个服务器挂掉一半,数据依然在。另一个是执行的安全性,几千个节点会同时验证。而中心化服务器可能会面临作弊的问题。 - ERC20如何实现 账本记录所有人的balance,mapping是address到int整数(两列报格),转账是balance+-value。 更改合约代码的复杂度,比如USDT更改转账的Basepoint Rate。 Public balance公开可访问的变量。USDT更改Basepoint Rate(参数)没有成本,但是已经写好的Code(规则)不能增加或修改,但数据可以被修改。 - Move和Solidy的区别 没有资产这一数据类型,使用整数对数字资产进行编码。这种编码方式使得编写与数字资产交互的智能合约变得繁杂且易出错。ERC-20代币等自定义资产使用整数来表示其价值和总供应量。每当铸造新代币时,智能合约代码必须手动检查。由于资产问题的间接表示,例如重复、重用或资产丢失。在实现诸如资产转入 /转出以及将资产存储在数据结构中这样的操作都需要特殊的语言支持。两种模式的区别是,Move将Resource定义为一种具象化的元素,类似为创建出不可被销毁的积木,语言围绕积木来进行编码。其只能由创建的对象修改,Resource的变动也需要经过严格的规则。这保证了资产的安全性,也规避了编码过程中可能出现的错误。 - NFT contract的安全性 卖NFT的时候需要调用合约的Transfer功能,黑客可以在合约里加一些特殊条件让transfer的权限变大。如果在授权合约的时候授权了USDT的transfer,转nft就可以划转usdt。Opensea这种版权Market会自觉遵守合约里的版权费,读合约里的版权费用值。但理论上Opensea可以修改参数,不认合约里的版权费,不给项目方打钱,项目方唯一可以做的也就是拉黑平台。 - 时间锁和合约升级 有的合约不能升级比如usdt。Proxy Contract是可以进行升级,用户去跟proxy contract进行交互,链接到后面不同的合约。黑客可以通过Proxy Contract升级来进行供给,但是Proxy Contract也不是全能的,合约升级只能改代码的执行逻辑,数据不能被改(就是余额不能被篡改)。 - 私钥销毁能不能在链上确认 私钥销毁很难确认,除非合约进行升级。所有号称销毁私钥的项目方都是不可信的,销毁私钥本质上还是一种君子协议,因为你永远无法避免项目方记住了自己的私钥。 - Hack 如果大部分节点被Hack,网络可以选择硬分叉,不认被hack的节点。(前后两组数据不一致)网络攻击一定会被公开,因为数字指纹会被验证。双花攻击不会长时间持续,即便短暂几分钟双花攻击成功,随着正确的链数量变多,正确的数据会被recover。 - ETH分叉 分叉后一部分链的数据会不被承认,tvl会大幅减少。如果一个项目方到了另一条链,本链上的token会减值。分叉对两条链都会有损失。分叉后拿本位币会保值,稳定币可能会在POW链上不被承认。 - Gas 有三个部分transaction fee,gas price,usage。 交易花费是gas price* usage。费用视复杂程度和gas价格。 上链需要成本去付给挖矿的miner,miner还会有手续费奖励因为需要维护网络安全。Gas fee高可以防止大流量攻击。Solana的问题是gas不动态,是固定,而且太低,所以容易被攻击。 Gas的usage和合约执行的机器指令有关。加减除花3个gas,乘花5个gas。可以通过EIP更改gas的收费规则。 Gas limit:可以指定单次最高愿意花费的Gas。提高单个区块的limit会提高tps。限制单个区块的limit是为了照顾大部分节点的处理能力,如果tps过高节点会处理不过来。目的是让普通人的电脑也可以跑起来,避免太过中心化。 - 为什么有的链失败了 大部分链不可持续,收入不足以覆盖支出,比如Solana gas fee约等于0,矿工要求性能很高,收益很低,随着矿工越来越少安全性也会越来越少。ETH占据了95%的公链收入。Solana能运行下去基本还是靠官方烧钱补贴。 国内的联盟链是另一种生态,矿工需要给蚂蚁链付钱当节点,totally反向操作。 一般以太坊sign是要付钱的。ERC20有个permit功能,在链下sign就可以,收钱的人在链上验证需要付gas fee。 1559升级之前,gas fee很难估算,只能根据上一个区块的gas去估计。升级后所有人都可以计算出需要的base fee是多少。Metamask可以调给矿工的额外补贴。 - 转账失败 Gas不够没能上链不扣gas。转账余额不够失败会被扣gas,因为函数已经执行很多行了已经花了一部分gas,和合约执行的多少有关。 交易执行有先后顺序,一个block里gas付的越高顺序就越靠前。Gasprice一样就取决于被广播的先后顺序。 会先执行Gas price高的。和transaction fee不关。没有规模效应,执行2个小块应用和1个大块的效率是一样的。 - Flashbots Flashbots是另一种矿工选择交易的排序方式,是一种封闭的集合竞价。一组Flashbots里的transaction相互竞价。走Flashbots不会给eth burn,会把全部交易手续费给矿工,所以对矿工有很大的经济激励,大矿场都在和flashbots合作。转pos后矿工的收入要更依赖Flashbots,挖矿的奖励没有了就只能依赖手续费。Flashbots的作用主要是为了夹子机器人,在公开pool里看到别人的在uniswap交易后,套利者把交易抢在前面,先花出钱买币,在受害者把价格抬高后再卖出去。 个人用户是很难避免这种套利的,唯一的方法是设置滑点才不会被割。