智能合约安全分析与闪电贷利用

受众群体:

  1. 对智能合约感兴趣的
  2. 了解安全的
  3. 希望了解区块链和智能合约安全的

演讲稿:

大家好,今天分享的是智能合约安全分析与闪电贷攻击,我将从以下几个方面来讲解,可能里面有不对的地方,请多多指正。

首先我们知道区块链大致上可以分为以下几层:从最底层的数据层,这一块大部分来说是用的 LevelDB 数据库,然后是从中间的 P2P 协议层,以及最后的应用层,纵观这些范围来讲,其实每一个地方都存在着安全风险。不管是比特币,还是以太坊,在历史上都出现过很多的漏洞。

这里就给大家举两个例子,一个是比特币在 2018 年的 CVE,,可以造成拒绝式攻击,严重的话可以造成通胀,就是地址余额变多了,相当于是超发了,这个也算是比较严重的漏洞了,那它是怎么造成的呢?这里主要是在 CheckBlock() 函数,该函数在节点接收到新的区块时被调用。CheckTransaction() 函数对于传入的交易消息进行检测,其中包括了检测一笔交易是否发生双花。如果发现 utxo 被重复记录了两次,就会返回处理失败的信息。可以看出,这段检测代码在被 CheckBlock() 函数的调用过程中被认为是费时的,并通过将函数的第三个参数设置为 False 的方式,使其跳过。利用的话,如果通过 p2p 传播交易,就会被检查出来,但是如果是有一个恶意区块,里面的双花交易是没有经过内存池的,所以就会被绕过校验,从而形成一种增发的现象,并且也会造成 DoS,形成恐慌。

另一个例子的话,可能大家都有经历过,就是前段时间,以太坊出的那个关于 EVM 的漏洞,同样的话,攻击者如果构造一个恶意合约,可以将节点直接打崩溃,危害其实也很大的,配合上做空机制,攻击者同样也能赚到很多钱,那它是怎么造成的呢?大家可以看一下这块的代码,在 staticCall 的时候,被重复覆盖了数据。导致前后不一致,这个时候没有更新代码的节点就会崩溃。这里的 staticCall 其实只是读取一个合约,然后读取相关的信息,而攻击者提供的参数正好是一个预编译合约,0x4,这个合约也很简单,就是返回原有的内容。然后传递的参数中,正好输入和输出的产生了重叠,而 staticCall 处理的时候,是按指针处理的,正好影响到了输出,于是产生了不一致,就无法通过,实际造成了链的分叉。

不管是底层服务,还是中间的协议,应用层,基础设施,其实很需要注重安全的,尤其是那些和钱打交道的一些服务,比如说交易所,比如说钱包,很多攻击者,就一直盯着这些服务,如果是中心化的,那么就会更加的容易被攻击。之前交易所被攻击的太多了,数不过来,之前币安有一次都被盗了八千多个 BTC,讨论矿工去强行逆转那笔交易,当然最后没有实行,损失如果算起来的话,也很严重的。

不知道大家有没有想过一件事情,如果从一个地址或者公钥可以反推出私钥,或者是破解了这个私钥,那么不就可以把钱转走,或者通过量子计算机去破解,那就可以很有钱了。这也说明了密码学对于虚拟货币的重要性,基础的话基本上是数学的基本推理,前段时间,有人发了一个关于门限 ECDSA 的两种安全攻击,里面影响了 zcash,Binance,Anyswap 等用到这个协议的,这个发现大概价值 50 万美金,所以说,底层的安全影响也很大的。关于这个攻击就不给大家讲了,主要我也不会,不是密码学博士,里面要求数学和密码学的功底还是很高的。

区块链最直接的,跟我们联系最紧密的还是应用层,像一些 defi 项目,或者是 Dapp,在这两年经历了很多攻击,其中也不乏一些没有审计过的应用。在这个过程中,只有黑客是获利最大的,项目方尽可能地挽回损失然后跑路,直接造成投资者的损失。并且之前还出过很多比较简单的漏洞,造成几十亿的损失,之后会详细讲一下。

大家大致了解了区块链安全以后,接下来一起来看一下智能合约。

讲 solidity 的话,先得讲一下脚本语言在比特币上的实现,中本聪其实很早地就在比特币上留下了脚本语言的模型,利用 utxo,我们可以往里存放一些脚本,比方说,在某一高度的时候进行转账,或者是一个简单点的,2 + 4 = 6,在比特币中是怎么实现的呢,具体的代码的话,是 2 4 ADD 6 EQUAL ,执行的时候,是以栈的方式来实现的,栈的大小是有限的,先将 2 和 4 压栈,然后 ADD,就变成 6,再将 6 进行压栈,然后最后通过 EQUAL 就可以得到结果 True 了。但这种方式实现的脚本编程是非图灵完备的,复杂性受限,也没有循环等,执行的次数有限。

这个时候,以太坊横空出世,号称下一代智能合约和去中心化应用平台,就用了 solidity 语言,现在用这个实现的技术越来越多,从最早的 DAO,到 Dapp,再到 Defi 等。它实现了图灵完备,有循环,合约之间也可以互相调用,甚至可以跨链调用,这个时候就有一个问题,比方说有个合约,它写了一个死循环,然后又发了一个激活这个合约的交易,矿工受到打包执行这笔交易的时候,也就在跑这一段代码,那么就让矿工和节点一直卡在那里,为了解决这个问题呢,以太坊一开始就设计了 gas 这个概念,合约每进行一个操作,就消耗一定的 gas,然后设置一个 gas limit,不能超过这个上限,然后消耗的 gas 再乘以当时设置的 gas price 就是最终的手续费,由矿工打包。这块详细的可以参考文档。

那么以太坊合约是在哪里执行的,像 java 有 java 虚拟机,有些语言有运行时,以太坊这边的话,是在 evm 上执行的,这里画了一张图吧,就是代表 evm 的结构,evm 也是一种基于栈的虚拟机,在存储上主要分为几部分,一类是,code 和 storage,这种是持久化的,code 用来保存合约的二进制,storage 的话,用来保存合约执行的全局变量。其他还有就是 stack 用来保存局部变量,最多有 16 个。memory 的话,就类似之前讲的内存一样,存储临时数据。还有 evm 是如何执行的,这里不是基于寄存器的,通过不断地压栈和弹栈,然后去取内存的内容,通过程序计数器记录当前的指令,不断地执行。

在讲指令之前,我想先介绍一下这个东西,ABI,全名的话是,应用二进制接口,可以通俗的理解为合约的接口说明,接口文档。当合约被编译后,那么它的 abi 也就确定了。当合约被调用的时候,会指定函数名和参数,这个在 web3.py 里或者是其他调用合约的代码,是根据 abi 来找到对应的函数,然后执行,生成编译码,传到交易的 data 字段。

我们在算 gas 的时候,不可避免的要和这个打交道,opcode,大家学过汇编的时候,应该要学一些指令,像什么 JMP,EIP,ESP,在 evm 里也不例外,最多只能有 256 条指令,就对合约这块做了更多的优化,尽可能的简单,每条指令消耗多少 gas 也比较清楚。所以说,大致的流程是这样的,开发人员写 solidity 代码,然后编译器会编译成字节码的形式,同时生成 abi 文件,然后将字节码和 abi 文件打包成合约,然后发布到以太坊上,然后用户可以通过以太坊的浏览器,查看合约的信息。节点收到交易的时候,对应的就会部署这个合约,有交易如果要打到这个合约地址上时,也会执行这个合约,通过字节码的形式。

那么 evm 是如何执行的,这里一般和电脑上的软件一样,也会分静态和动态,静态的话,会直接去反编译字节码,这里举两种方式,一种是通过在线反编译器,网址的话是这个,可以直接对链上的合约进行反编译,https://ethervm.io/decompile ,另一种的话,使用一些常见的工具,加一些插件,比如说 IDA 神器,反编译完成之后,就可以看到指令的具体内容,这样就可以更加直观的看到合约的执行过程和数据流了。这样有什么好处呢,比如说有一个没有开源的合约,我们想要去找它有没有问题,通过这样的分析手段,了解它的执行流程,分析其可能存在的问题吧。

现在有人应该有个问题,我们如何收集链上的合约呢,总不能每次都要自己写吧,这里提几个思路,一种是查浏览器,有些浏览器会有个地方是合约列表,去爬这个列表,另一种的话是调用节点,通过 getCode 这个方法,传地址的参数,先爬一遍创建合约的地址,然后通过这个方法,获取合约的字节码什么的。但是这几种都有缺陷,现在合约有自毁的功能,比如有个合约不用了,然后它调一个 selfdestruct,那么这个合约就会自动被销毁,这个时候,我们就不能获取到这个合约的字节码了。还有一个思路就是修改节点,在相关地方插桩,hook 相关的地方,将合约信息保存下来,这样几天同步节点的时间就可以得到全部的合约了。

接下来的话,会讲一下,智能合约开发和分析当中,会遇到什么样的问题,之前有些机构排过智能合约风险前十大排名,可以简单了解一下,具体会详细的讲其中几个。

一个的话是溢出,这个可能有些人听过,在安全方面,溢出也很常见吧,在这里主要还是整形的溢出,分为上溢和下溢,上溢的话,给大家举个例子,比如说一个 4 位的数字,那么它就是从 0x0,到 0xFFFF,这个时候,如果 0x2 + 0xFFFF 如果不加以判断的话,就会造成一种溢出,或者是 0x01 - 0xFFFF,这个时候又会是另一种结果。这种也有实际例子,之前美图有一个链就是因为这个问题,损失了好几十亿,这种的话,挖掘需要判断输入的是否可控,传进的参数是否进行校验,是否使用了安全的库。

另一个是重入,之前 ETH 有一次很重要的分叉,就因为这个,分出了 ETC 这个币种,这个漏洞大致的原理是这样的,合约之间可以互相调用嘛,这里认为合约中所有的外部调用都是不安全的,都有可能存在重入漏洞。例如:如果外部调用的目标是一个攻击者可以控制的恶意的合约,那么当被攻击的合约在调用恶意合约的时候,攻击者可以执行恶意的逻辑然后再重新进入到被攻击合约的内部,通过这样的方式来发起一笔非预期的外部调用,从而影响被攻击合约正常的执行逻辑。

再给大家介绍一种情况,条件竞争。这个漏洞主要是这个 approve 函数,该函数的主要功能是授权给第三方让其代替当前账户转账给其他账户,但是在这个函数当中却存在“事务顺序依赖性问题”,假设有两个用户:用户A,用户B,首先用户A 通过调用 approve 函数允许用户B代其转账的数量为 N(N>0),经过一段时间后,用户A决定将 N 改为 M(M>0),所以再次调用 approve 函数;用户B在第二次调用被矿工处理之前迅速调用 transferFrom 函数转账 N 数量的 token;用户A对 approve 的第二次调用成功后,用户B便可再次获得M的转账额度,即用户B通过交易顺序攻击获得了 N+M 的转账额度。

其他的一些风险,没那么广泛,需要一定的利用条件,这里再简单列一下,有兴趣的话,下来可以继续讲一下。

在了解了这些安全问题以后,就会问了,我们怎么去利用他们,这里有几种利用方式,目前我还没有找到一些自动化利用框架,应该还处在科研阶段,一种是直接发交易,构造特殊的交易到这个合约地址上,另一种的话,是再部署一个恶意合约,这个合约去调用正常的合约,达到一些特殊的目的。这些可以通过起一个本地的测试链,加上一些合约部署工具来实现测试。

之前讲的基本上是以太坊平台的,其他平台其实或多或少地都有一定的问题,这里举几个攻击的例子,比如 BSC 上就遭遇过类似的攻击,按照原理上来说,这些风险都是差不多的。

休息时间。

接下来的话,就是讲一下闪电贷这个东西,我们知道有一个是原子性的东西,这个时候 Defi 出现了一种项目,如果你在同一个交易里完成了借款和还款的操作,那么是不用抵押东西的,也就是几乎没有成本,举个例子,比如说,有两家去中心化交易所有价差,这个时候我们怎么套利呢,比如一个交易所的交易对是另一个的一半价格,当然实际不会这么夸张,这个时候,我们可以走闪电贷,借点钱出来,在这两个交易所之间搬砖,先去这个交易所买点币,然后直接链上去另一个交易所卖掉,然后归还之前借的闪电贷,中间的收入减去手续费就是利润了。但这种现在比较少了,更多的是黑客进行攻击一些协议,之前这个协议就被攻击过,过程是这样的,首先从闪电贷借点 eth,然后去另一个借贷协议抵押一部分 eth 借到 wbtc,然后这个时候去 dZx 这里做保证金交易,开了一个 eth/btc 的做空,这个时候拿一部分钱去另一个交易所大量的用 eth 买入 btc,这个时候做空不是算亏损嘛,但是价格达到一个高点的时候,就在刚才的保证金交易进行抛售 btc,赚 eth,之前做空开了 5 倍,然后把钱还给闪电贷,中间的收入减去手续费就是利润了,这次赚了大概几十个 eth。

所以说闪电贷是一种致富思路和财富密码吧,如果发现某个 defi 协议有漏洞,就可以这样攻击,然后进行获利,这些协议都是开源的,这样的攻击也可以使得系统更加健全,之前的中心化金融就没有这么多应用了。

讲完这些问题以后,接下来讲一下,如何去分析出这些问题,当然有一种方式是找相关公司进行审计,花钱嘛,没有花钱办不到的事情,这里主要讲一下通过工具来进行分析的一些思路。这里主要分为几种,静态分析,动态,机器学习。

静态分析的话,目前业界主要是有两种思路,一种是生成控制流图,通过生成的控制流执行流,利用之前写的插件规则,校验对应的问题。缺点的话,就是需要维护规则,依赖生成的路径。

另一种的话是形式化验证,这个相对来说是有一定的技术门槛的。这里就不讲了。

动态分析的话,顾名思义,就是将这个合约跑起来,利用虚拟机提供的特性,进行模糊测试等。以及动态污点分析,其实也算是一种跟踪技术。这块实现业界还比较少,要么是论文,要么是公司产品。

机器学习。有一篇论文思路是通过 GNN 模型,来进行智能合约漏洞的检测,这种算是卷积神经网络和图的一种结合和升级。为什么要用这种,还是由于虚拟货币的一些特性,我们相互转账的行为,在分析上可以用图数据库的方式。具体可以看 《Smart Contract Vulnerability Detection Using Graph Neural Networks》这篇论文。总体来说,是将合约源代码特征化为合约图,然后规范化突出节点,用神经网络结合专家知识库进行检测。

最后一个内容的话,是如何去防御,这里简单提几点,一个是保持良好的编码习惯,尽可能地避免常见的漏洞,一个是找相关公司审计合约,然后就是多看之前人总结的经验,形成的一种官方库。

可能有些人想要了解一下,这个合约如何进行升级,比如临时发现了问题,想升级版本去解决,这个不像传统应用,直接发布到链上就不可更改的,但还是有一些升级的方式,目前升级的策略主要有以下两种,一种是数据分离,另一种是通过代理的方式。数据分离的意思是这样的,我们将逻辑和数据分开,部署成两个合约,然后升级的时候,数据合约修改逻辑合约的地址。代理的方式,主要是利用了 call 和 delegatecall 的上下文的不同,一个是上一个账户的,一个是外部账户的,在合约和账户中间,还会部署一个 proxy 代理合约,相当于传递数据给最终的合约,当合约升级的时候,proxy 合约的地址就会发生变化,指向升级后的合约。

未来的话,我觉得还是有很多可以值得思考的,但这里加密货币的特殊性,代码即法律,不像传统应用,会尽可能地隐藏代码,反调试,在智能合约领域,谁可以更快地找到或者避免这些问题,谁将更占优势。

谢谢大家。

具体 ppt 需要联系获取。

eth 扩容及 eth 2.0,机遇

目录

  • 目录
  • 扩容
    • 最近的 nft 热潮
    • 519 情况
    • 历史上的拥堵
    • 区块链不可能三角,Scalability
    • v神怎么说
    • 有哪些方案?侧链,Layer2
    • Optimistic
    • Zkrollup
    • Arbitrum
    • 其他链
    • 牛市
  • pos
    • 公有链
    • EIP-3675
    • pow 矿工怎么办
  • ETH 2.0
    • 阶段
    • 阶段0 - 信标链
    • 阶段1 - 分片链
    • 阶段2 - 分布式计算平台
    • 阶段n - 高性能区块链计算平台
    • 经济模型
    • eth 1.x 路线
    • 现在的流动性
    • Staking 收益
    • 问题:Staking vs Defi
    • 问题:验证器防御攻击者
  • 一些机遇
    • 数据分析类,Nansen,Dune Analytics,链上大师
    • 基础服务建设
      • 节点建设,浏览器建设
    • 相关公司业务合作
    • 质押 Staking,托管钱包
    • 更快获利,mev,IDO 等
    • 非托管式质押平台 Lido
      • Lido,stEth 流动性
      • 风险,智能合约风险,验证者风险,密钥管理风险,生态风险
    • 元宇宙与 eth 2.0
    • 热点流量,(包括最近的 NFT)

具体内容

大家好,今天的话,主要是分享一些 eth 相关的东西,之前的话,我记得也有同事分享类似的一些内容,这次主要是一些补充和扩展,以及一些最新的一些动态。

总的话,会分为以下几个内容,扩容,pos,eth2.0,以及我们可能会遇到的一些机遇与挑战。

为什么要讲扩容呢,这个有点避不开的话题,主要也和手续费有关。

不知道大家有没有注意过,最近 NFT 特别火,包括腾讯也推出了自己的 NFT 平台幻核,以及现在各式各样的链游,币安也推出了自己的 NFT 平台,最近还有个头像作为 NFT 商品,然后来卖的 CryptoPunk,一件商品卖个几十万美元,这不仅刷热点,而且还将以太坊的 gas 费推高,有个项目叫 Space Poggers,直接当时一度飙升到 600 多 GWei,当然现在基本正常了,中间的交易手续费因为 eip - 1559 的原因,也大部分被燃烧掉了。

之前有没有类似的拥堵的情况呢,今年也有, 5 月 19 日那天,可以说是今年的一个黑天鹅事件,那一天币价大跌,很多人当时就在进行一些 Defi 提款操作,当时有些人有一些恐慌情绪,当然也有人去进行抄底,在长期看来,当时的价格应该算是底部,于是链上的交易就很频繁,导致手续费推高,交易变得更拥堵,然后于是也就有了一些 mev 的机会。

拥堵的话,会导致用户体验变差,尤其是现在 Defi 和 NFT 热门的情况,比方说,之前 2017 年有一个应用,加密猫,其实就是现在的一种 NFT,但当时引起了巨大的轰动,导致正常交易不得不提高手续费,来尽快的确认,甚至可以影响到矿池,矿池每天打款的时候,实际上手续费是自己出的,所以拥堵情况会造成额外的一些支出。

为什么会这么拥堵呢?其实说到底的话,还是由于 tps 的问题。在区块链里面,有一个不可能三角,去中心化、安全和高性能。很少能同时满足的,一般越中心化,它的交易性能就越好,币安就是会比一些去中心化交易所要交易快,所以去中心化交易所必须自己自动去做市。比特币的话,是实现了去中心化,和安全,但性能实际不太好,以太坊也差不多,所以为了提升性能,有了扩容的一些方案,来提升 tps。

社区里面也提了很多方案,也有不少比较有代表性的。这里 Layer2 过渡性方案,最终还要过渡到 eth2.0 分片技术。

第一种是状态通道,第二种是侧链,侧链的话,就是在主链旁边,映射一种新的资产,并且把主链的账户锁住,交易完成以后,然后再返回主链,提交最终的结果,当然如何保证这种安全,有一种方案就出现了,就是 Plasma(帕拉斯马),就是子链,这个其实后来发现不太好走,于是有一种新的方案出现了,就是 Rollup,后来 v 神把 Rollup 和零知识证明结合起来,搞了个 Zk Rollup,后来,Plasma 研究组,提出了一种 Optimistic Rollup,这个方案需要实现质押一些资产,然后提款的时候,会有一定的观察期,这个时间里如果没有人反对,那就提取成功。

那么这么多方案 v 神是怎么说的呢?他说目前Layer2可行性最高的方案,应该还是 Rollup 这个方案,它集合了状态通道、侧链、Plasma 等解决方案的优势,他觉得最好的方案还是这个 Arbitrum。

Arbitrum,大概今年 8 月份会上线主网,现在也有很多 Defi 项目支持这个。

但是这些 Rollup 扩容方案,有个问题,那就是上线太慢了,于是币安,ok,这些交易所,就复制了以太坊的代码,搞了个 bsc 的公链,直接复制了很多应用过去,并且牺牲去中心化,提高了性能。其他公链的话,也有很多方案,比方说,直接大区块,闪电网络,Segwit。

当然有些公链,直接通过 PoS 来实现一定的扩容,虽然效果有限,之前有号称 eth 2.0 的 EOS,还有 Ada 币,甚至还有 eos 这种 DPoS 的共识,上半年还有很火的 Solana 公链也是用的 PoS。

大家也听说了,以后以太坊也要转 PoS,最近看到一个 EIP,就是讨论这件事情的,EIP - 3675,这个 eip 主要内容呢,讲,将现在的 PoW 的共识转变成 PoS 共识,当然现在还是草稿阶段,中间可能还会有一定的变化,现在大部分人预计的时间在明年的2,3月份,在今年的上海分叉升级完,应该就会集中到这个里面。

那么在转之前,PoW 的老矿工怎么办,其实长远看来,以太坊抛弃 PoW 的挖矿是趋势,eth 2.0 也只有 PoS,而且今年的 12 月份还会有难度炸弹,最近的 1559 也减少了一部分收益,到时候这些矿工也只能去切到其他币种了。

eth 2.0 可以说是近几年比较大的变革的事情了,之前也讲现在越来越堵,而且跑全节点占用的资源越来越大,为了提高性能,因此就开始规划这个 eth 2.0。

2.0 的话,主要分为以下几个阶段,阶段 0 的话,去年 12 月份上线了,一种信标链,也就是当时说的,需要 32 个 eth 才能成为验证人,这 32 个 eth 相当于质押在那里,有一定的锁仓时间,现在的话是取也取不出来的,锁仓最后也会有一定的收益。这个信标链,主要是为以后的 PoS 打基础,管理验证者,以及为第二个阶段分片提供一种方向,

第二阶段基本上就是分片了,现在的话,是要分 64 个切片,并且基本互不影响,验证可以是独立的,直接提升了很多的性能,这个还是值得期待的。

直到第三阶段,也就是阶段2,这个时候才可以拿到之前抵押的那些 eth 以及收益,这个时候基本上第一阶段和第二阶段都完了,基本上现在这个主链也合并到 eth 2.0 了,就基本上是一个分布式计算平台,然后执行一些智能合约基本上也不会有什么压力。

到阶段3以后,社区就会有更多的一些优化,优化性能部分,到时候会有更好的轻客户端实现,形成一个高性能的分布式计算平台。那个时候,就基本上是每秒上万笔交易的级别,有更多的应用。

那么以太坊1.0 这个版本的链怎么办,

在信标链阶段质押 eth 里面也有一个经济模型,目前的话,大概质押了 600 万的 eth,目前年化在 6 %,这个收益是根据质押量在变化的,其实现在每年的增发率也在不断地降低,现在很多 Defi 项目也在锁仓,然后再加上 eip-1559 的销毁,基本上以太坊是一种通缩的状态。

大概流动性的话,现在 2.0 质押了大概 600 万的 eth,可以占总的 5% 左右,Defi 项目做市和锁仓的现在也差不多也有 5%,然后每天销毁大概几百个 ETH,并且之前主要的 eth 在基金会和交易所比较多,实际现在的流通量会越来越少,价格上也会更多。

当然这里有个问题,用户是选择这种质押收益呢还是选择 Defi 借贷那种锁仓收益更好,其实我目前觉得,可能没有更多的比较,质押收益的话,锁仓的时间会更长,Defi 项目的话,会有一定的风险,质押收益的话,也会追求一定的在线率,保证节点的可用性,当然现在也有很多托管钱包可以帮别人做这些事情,然后收取一定的收益。

当然最后的收益也是通过 eth 去返还的,如果按法币本位的话,也有可能到时候收益降低,总之是收益和风险都会存在的。

在 eth 2.0 的这一些生态里面,有哪些机遇呢?这里主要有以下几类吧,可能不一定全。

一类的话,是做数据分析,这方面比较成功的例子是这个 Nansen,之前融资融了大概有千万美元级别,其他的也做的不错。oklink 最近也推出了一个链上大师,专门去做一些数据分析的聚合。

也可以做一些基础服务的建设,比如说一些 eth 2.0 节点的建设,信标链浏览器的建设,可以增加一些流量。

在业务上的话,可以和一些相关的初创公司做合作,大概是今年年初的时候,有一个 eth2.0 相关的合作,主要是bison 公司的,

现在也有很多托管中心化钱包可以做相关的一些质押,然后中间抽取10%左右的利润,当然也会有一定的风险,考验一些技术能力,要保证节点一直在线,大概这个锁仓时间估计有两年左右的时间,所以是一种相对比较长期的事情。

最近还有看到一个非托管式的一个质押平台,Lido,去年开始开发的,今年上线的,基本上是通过智能合约的形式,将 eth 映射成另一种资产,然后通过这个平台获取对应的收益,当然实际上也会有风险,包括智能合约风险,验证者风险,密钥管理风险,生态风险。

最近元宇宙也比较热门,但觉得目前还算比较早期,当 eth 2.0 成熟了以后,就会有更多实际落地性的应用,而且性能提升了以后,支付的成本会变得很低,实现更多的区块链 3.0 的应用。

另外就是推出一些专题,然后增加一些 eth 2.0 相关的,相当于是跟随热度,增加流量吧。

具体 ppt 需要联系获取。

意难平 | 如何错过百倍的 Defi

Defi 的基础是安全和流动性,方向是可持续,鱼龙混杂,大浪淘沙,经历牛熊才是好的项目。本篇意难平,就教大家如何错过这样的项目与机遇。
Read more

比特向左,以太向右

比特币不断突破新高,是投机,还是投资,建立对其的信任很关键,当然也要发散性思维,扩展不同的愿景。
Read more

比特币新特性:Schnorr 签名系列:初识 Schnorr 签名

在隔离见证(Segwit)实行以后,令开发者振奋的 Schnorr 签名也将踏上日程。本文主要讲述比特币新特性:Schnorr 签名系列的初识 Schnorr 签名。介绍什么是 Schnorr 签名,以及发展历程,如何实现 Schnorr 的多重签名,还有 BCH 在 Schnorr 签名上的探索。
Read more

实时 OLAP, 从 0 到 1

BTC.com 是一家区块链数据与服务提供商,目前提供各种区块链方向的解决方案。在业务发展的过程中,有着各种实时和准实时以及 OLAP 的需求场景,面临着从 0 到 1 的挑战;Flink 作为计算基础设施组件,业务目前覆盖了在线业务支持、实时报表统计等,处于不断发展中。本次主要介绍 BTC.com 实时计算的起步与当前的 OLAP 技术架构。
Read more

PyFlink 流批一体以及 BTC.com 在区块链领域的专业实践

大家好,我们是 BTC.com 团队。 2020 年,我们有幸接触到了 Flink 和 PyFlink 生态,从团队自身需求出发,完善了团队内实时计算的任务和需求,搭建了流批一体的计算环境。在实现实时计算的过程中,我们在实践中收获了一些经验,在此分享一些这方面的心路历程。
Read more

浅谈自己的知识管理,即自我知识体系

当学习久了以后,就会意识到效率的重要性。计算机行业日新月异,作为一名计算机爱好者,同时也关注效率的人来说,需要不断的学习,才能跟得上发展。对自己的知识管理体系进行思考,并付诸实践。
Read more

DevOps 最佳实践之推进软件安全开发周期 SDL 建设

本文从 DevOps 的角度去浅显地探讨软件安全开发周期,而建设软件安全开发周期任重而道远,而面对大多数公司的安全性问题,能否使用软件安全开发周期解决。并且 DevOps 作为周期很重要的一环,如何推动公司的安全体系建设。当然 SDL 并不是银弹,只是能大量减少软件安全缺陷。
Read more