| timezone |
|---|
UTC+8 |
GitHub ID: evelive3
Telegram: @oxwayland
Web2从业者;全栈偏后端开发,主力语言Python、Golang,学习Rust中;爱好矿晶、化石、游戏
- 乡村特点:优点分散
- 基础设施建设:VR类,远程通信、操作类
- 离散发行代币:用于分发和映射本地现实价值
- 代币交换:与相邻村庄交换价值
- 数据收集
- 统一代币发行:数据收集完毕,分析后可尝试发行统一代币
- 完成首个Typst模板的编写,实现出版物级的PDF渲染,效果非常不错
- 了解rainbowkit框架,在本地通过
bun安装测试
- 熟悉Typst语法,制作研究报告模板
- 尝试使用Typst编写文档并渲染为PDF文件,用于取代
Markdown+Pandoc+Miktex复杂又臃肿的PDF生成工作流
- 完成Unity Essential: Audio练习,为测试
GameFi做一些简单的准备
关于farcaster新一代社交基础设施
- Farcaster本身是一个开源的、去中心化的底层协议
- Farcaster的创始人将其理念描述为“充分去中心化”(Sufficiently Decentralized)。其核心目标是确保网络上的任意两个用户之间能够自由通信,即使网络的其他部分试图阻止他们,同时避免为了追求极致的去中心化而牺牲用户体验
- Farcaster采用了一种创新的混合架构,将身份和关键安全数据存储在链上,而将绝大多数社交数据(如帖子、点赞、关注)存储在链下 。
- Farcaster的链上系统由部署在以太坊二层网络OP Mainnet上的三个核心智能合约构成
- 身份注册合约 (Id Registry)
- 密钥注册合约 (Key Registry)
- 存储注册合约 (Storage Registry)
- 链下数据层:Hubs网络
- 社交原语:Casts、Channels与可移植的社交图谱
- 增长催化剂:Farcaster Frames
- 生态机制:Warps、打赏与新兴经济体
- 社区文化:高信噪比、开发者中心与实验精神
- SocialFi与链上商业
- dApp的可组合平台
- vs 中心化巨头 (X/Twitter)
- vs. Lens Protocol
- vs. Nostr
- Farcaster团队正积极开发协议升级以解决当前存在的局限性。计划中的“Frames v2”将支持更复杂的全屏应用和链上交易,进一步提升其交互能力 。同时,一个名为“Snapchain”的新数据层正在开发中,旨在提高链下网络的扩展性和效率
- Farcaster的未来发展面临多重挑战。首先是技术层面,随着网络规模的增长,Hubs网络的可扩展性将面临严峻考验 。其次是用户层面,如何在最初的炒作周期和空投预期过后留住用户,是所有Web3项目共同的难题 。此外,与机器人和垃圾信息的持续斗争 ,以及如何让不熟悉Web3概念的主流用户顺利上手,都是其通往大规模采用之路上的巨大障碍
组员分析本周一次由老师PPT没动事件
- 听众两次反馈后集体沉默了,过了很久才第三次反馈,让讲课老师意识到PPT没动的问题 本来是一件很小的事,我没多想,但是有群友使用了形式化验证的方式描述该问题和提出解决方案,让我非常震惊
- don't trust,verify it
- 使用区块链的思想,防止出现类似问题,如引入验证者、有惩罚保证验证者行使验证职能、必须超过2/3的节点投通过票才算验证通过
求职经历:
- 注意合法合规,如果对方有多级返佣,没有做KYC就代表高风险,别因为工作把自己搞进去了
成长经历:
- 一定要强化学习能力和输出能力,不然会始终保持入门者的水平,自然也只能匹配入门者的薪资
- defillama是一个Web3相关数据分析网站
- theblockbeats行业资讯
- panewslab行业资讯
- speedrunethereum教学资源
- wtf.academy教学资源
主题:一个真实的DApp开发全流程
嘉宾:WongSSH
- 写了V3和V4的数学库
- FFI allows you to execute an arbitrary shell command and capture the output.
- The Contract Application Binary Interface (ABI), is the standard way to interact with contracts in the Ethereum ecosystem, both from outside the blockchain and for contract-to-contract interaction.
- Multi-chain deployments: Deploying and verifying multiple smart contracts on multiple chains in one go is possible by using forking cheatcodes.
- EVM中Address类型的长度为什么是160位长?因为Keccak-256(64字节公钥) = 32字节哈希值,再截取后20位字节
- UniSwap V3 和V4的科学计算库是一样的
- 编写单元测试检查V3和V4是否等效
- 使用Soldeer代替Git进行版本管理
- 解决Solidify版本冲突问题,采用了将V3编译为字节码的方式
- 通过FFI与JS、Python计算的结果进行横向对比,确保通过Solidity实现的科学计算库的准确性
- Python使用mpmath计算库,确保与Solidity计算结果一致
- 使用Python写出函数,实现和验证功能,再转换为Solidity版本
- 通过内联汇编实现了很多优化,省Gas
- 组合大于继承,功能通过library实现,减少使用继承和重载,不要使用多重继承和复数个重载(影响可读性,审计友好)
- 类型别名(type xxx is xxxtype, using xxx for xxxx)语法糖,可以提升代码可读性,编译后还原为原始类型
- mapping会算一个hash,更费Gas
- 减少写View函数,建议都用internal修饰符,不写public(写public会被Foundry编译为一个view,会占用代码存储空间,当前单个合约有24KB的大小限制),通过函数来获取存储slot的值
- 合约的状态是warm还是cold,热合约使用更少的Gas
- 递归用起来很酷,但很烧脑,而且EVM也存在栈深度的问题
- Morpho和UniSwap不收Flash load费用,Aave会收
想入职DEX的,能读懂 Uniswap V3~V4的非数学库部分,就算是够到Web3的入职门槛 想入职借贷的,读懂ERC20 -> Morpho
- ERC20 -> Safe -> AAVE v3
- Uniswap v2 / Uniswap v3 / Uniswap v4
- Soldeer, the modern package manager for Solidity development.
- uv Python的环境和包管理工具
- Yul is an intermediate language that can be compiled to bytecode for different backends.
- VSCode extension: Solidity
- 执行层EL,通过JSON-RPC接口与用户通信
- 共识层CL,与Validator通信
- 验证者Validator
- 轻节点
- 完整节点
- 如果需要同步主网数据,需要准备2T SSD
- Geth,基于
Go - Reth,基于
Rust - Foundry Anvil,基于
Rust - Hardhat Network,基于
nodejs
- Lighthouse,基于
Rust
- kurtosis,基于
Go编写,开发环境搭建工具,
- Prometheus
- Grafana
- 完成可观测环境的搭建
- 去中心化
- 无许可
- 可验证
- 可组合性
- UniSwap:以太坊上最大DEX,通过自动化做市商(AMM)模型实现无需订单簿的代币交易
- 业界前沿,一定要读它的白皮书
- SuShiSwap:最初是UniSwap V2的分叉
- 吸血鬼攻击是一种非常好的项目启动方式
- MakerDAO
- DAI
- 可组合性:
- DeFi乐高,协议间可无缝集成
- 创新加速:直接调用现有协议
- 吸血鬼攻击
- 风险点为不可持续,一定要发展出自己的特色,占领独特的生态位
- 代币标准化
- 减少重复造轮子
- 治理与团队稳定性
- 长期主义VS短期投机
- UniSwap:长期专注,最终脱颖而出
- SuShiSwap:产品线混乱
对比传统金融业,有许多优点
- 公开透明
- 24小时可用
- 市场自动调节
- 个人可以真正参与到社区决策共建中
- web3.career,可以在该网站查看招聘要求、业内薪资水平等
- 智能合约
- Solidity:智能合约开发语言
- OpenZeppelin:安全、经过审计的智能合约库和开发工具集(基于Solidity)
- Hardhat:EVM智能合约开发环境和任务运行器
- Hardhat Ignition:Hardhat官方推出的模块化部署工具
- 区块链网络交互
- wagmi:用于在React项目中和以太坊(EVM 兼容链)交互
- viem:TypeScript原生的区块链交互工具库
- 前端
- NextJS:React技术栈的再封闭
- RainbowKit:React技术栈的钱包连接UI组件库
- TailwindCSS:通用样式库
- 合约开发&部署
- 前端集成&测试
- 为什么说合约是不可变的?这种不可变带来什么样的特性?
- 是否可以在前端与链上交互期间实现中间人攻击?
- 前端->区域链,后端在Web3可以扮演怎样的角色?
- 开发智能合约需要充分ERC和对OpenZeppelin,接下来需要收集和学习相关资料
- 远程工作较多
- 跨国协作机会较多
- 英语作为主要沟通语言
- 工作单位相对不固定,流动性较大
- 沟通能力
- 积极性
- 学习能力
- 主动改进
type ServerCodec interface {
peerInfo() PeerInfo
readBatch() (msgs []*jsonrpcMessage, isBatch bool, err error)
close()
jsonWriter
}分别在HTTP和Websocket和IPC协议上实现了编解码接口
type Server struct {
services serviceRegistry
idgen func() ID
mutex sync.Mutex
codecs map[ServerCodec]struct{}
run atomic.Bool
batchItemLimit int
batchResponseLimit int
httpBodyLimit int
}- RegisterName实现了RPC注册
- serveSingleRequest处理单个连接的请求生命周期
- K桶结构体为
BucketNode,使用了json标签,应该是需要序列化为JSON格式与外部交互 - 节点表结构体为
tableNode,主要保存enode.Node的指针,有一些控制/记录类的属性成员 unwrapNodes方法用于转换[]*tableNode为[]*enode.NodenodesByDistance结构体核心属性entries []*enode.Node,该列表保存了所有通信的节点信息,使用Kademlia算法XOR算出的逻辑距离决定保存顺序
nodesByDistance结构体的核心方法push,用于维护节点表,如果节点表元素已经满员,则使用copy(h.entries[ix+1:], h.entries[ix:])将节点元素整体前移一位,再append新节点信息至表末尾
比较意外的是还有一段使用了Go泛型的代码
func containsID[N nodeType](ns []N, id enode.ID) bool {
for _, n := range ns {
if n.ID() == id {
return true
}
}
return false
}作用是搜索入参id enode.ID是否存在于泛节点类型[]nodeType(包含T.ID()方法的类型)中
群除我佬啊 群除我佬啊 群除我佬啊
- 前端和合约强无敌的
Segment7 - 熟悉密码学的
阿哲- 抗量子计算很重要,因为随着量子计算机技术的成熟,现有加密算法存在被攻破的风险
节点发现上,采用了非常经典的类Kademlia算法,对比Kademlia的算法主要有以下不同
- ID长度不同,
Kademlia使用 160 bit ID (SHA1),Geth使用 256 bit ID (Keccak-256/SHA3) - K桶数量不同,
Kademlia有 160 个桶,Geth只有 17 个,并且只维护与自己距离hashBits - nBuckets外的节点 - K桶容量,与原算法一致,为16
- 仅实现了节点发现功能(合理裁剪)
// Constant
// https://github.com/ethereum/go-ethereum/blob/c3ef6c77c24956ebe1156205869259ffb8892486/common/types.go#L39
const (
// HashLength is the expected length of the hash
HashLength = 32
// AddressLength is the expected length of the address
AddressLength = 20
)
// https://github.com/ethereum/go-ethereum/blob/c3ef6c77c24956ebe1156205869259ffb8892486/p2p/discover/table.go/#L48C33-L48C37
const (
alpha = 3 // Kademlia concurrency factor
bucketSize = 16 // Kademlia bucket size
maxReplacements = 10 // Size of per-bucket replacement list
// We keep buckets for the upper 1/15 of distances because
// it's very unlikely we'll ever encounter a node that's closer.
hashBits = len(common.Hash{}) * 8
nBuckets = hashBits / 15 // Number of buckets
bucketMinDistance = hashBits - nBuckets // Log distance of closest bucket
// IP address limits.
bucketIPLimit, bucketSubnet = 2, 24 // at most 2 addresses from the same /24
tableIPLimit, tableSubnet = 10, 24
seedMinTableTime = 5 * time.Minute
seedCount = 30
seedMaxAge = 5 * 24 * time.Hour
)消化中,有点费劲 Execution Layer
- 区块状态转换函数$\sigma_{t+1} \equiv \Pi(\sigma_t, B)$
- 账户存储 Trie 根$\mathrm{TRIE}(L_I^{*}(\sigma[a]_s)) \equiv \sigma[a]_s$,用于将合约存储压缩成一个 32 字节的根,放进账户的
storageRoot字段
嘉宾: 饶炜彤@曼昆事务所
- 虚拟货币的发行和募资
- 交易所玩杠杆(开设赌场)
- 开设交易所(非法集资)
- 是否涉及法币(非常少项目持有完善的经济经营牌照)
- 交易所与虚拟货币基金
- 海外的合规性是否完备(AML与KYC)
- 技术上是否排除中国大陆用户
- 扩张过程的合规:回避多级返佣(传销特征)和团队奖励(变相多级返佣)(跟保险公司发展销售员的套路好像)
- 非典型安全:合约交易(可能被某些地方公安以此为理由抓捕)
- NFT的合规玩法设计(如果玩法设计有随机性,且投入现金有机率超过获得现金,就会被定性为开设赌场)
** 求职时注意观察自己在雇主是否满足以上特征 **
- 是洗钱链条的一环
- 是外汇兑换的媒介(被用于突破国家外汇管制)
出现不清楚的情况时,提高自身警惕
难点: 资金的来龙去脉对于非管理层来说难以知晓
- 以明显高于市场的价格购买NFT(可能会查不到当事人,但会为了图方便直接把平台端了)
- 出入的结算法币不同?比如美元进,人民币出
- 项目是否有明确的负责组织,是否在明确、受监管的司法辖区内注册
- 是否为了取得合规资质,经过专业机构的第三方审计或安全测试
- 是否具备KYC、AML等反洗钱与用户身份识别制度
- 是否对外公开项目负责人、团队背景、资金来源路径等基本信息
- 是否具备高风险模块(比如混币器)
- 是否存在高风险的扩张方式(多级返佣)
- 收外汇要小心,需要汇款方是合规的
- 核心管理层
- 宣传负责人或社区负责人(甚至风险高于核心管理层,因为直接接触用户)
- 核心链条
- 纯粹技术
- 即使是纯粹的技术提供者,也必须保持审慎判断
- 明知可疑而不询问,知情推断,只有完全不知情才能免责
- 免责的前提是尽力防范
币安在最难取得资质的日本都持牌了,考虑尽快从OKX迁移到币安
外贸使用USDT收款,在做KYC的前提下,只有税务风险 使用USDT结算工资时,因为国内还不支持USDT,所以存在税务风险 但由于如果对USDT收入征税的话,等于变相承认数字货币的合法性,与中央精神冲突,所以他们一般选择不管 USDT收入换回法币:小额C2C 大额去香港换 但磨损很大
KYC(Know Your Customer)
- 目的:确认客户身份、评估风险等级、防止匿名或虚假账户。
- 关键动作:
- 身份核验:护照、驾照、人脸识别、活体检测等。
- 地址验证:近期水电账单、银行对账单等。
- 资金来源与用途:了解客户资金从哪来、用来干什么。
- 持续监控:账户行为发生异常时重新评估风险
AML(Anti-Money Laundering)
- 目的:发现并阻止洗钱、恐怖融资等金融犯罪。
- 关键动作:
- 客户风险评级(CDD/EDD)。
- 交易监控:对大额、频繁、异常交易实时预警。
- 制裁名单筛查:与OFAC、EU、UN 等制裁名单实时比对。
- 可疑交易报告(SAR):一旦触发阈值,必须向监管机构报告。
- 员工培训与内部审计:确保制度长期有效。
- 参考My first NFT,完成了NFT铸造
- 使用etherscan查看了智能合约源码,确定该NFT使用的
ERC-721标准
- Satoshi Nakamoto1
- Vitalik buterin(V神)
- Dan Larimer(ByteMaster)
- 特点
- 第一个Dex
- DPOS2治理
- 失败原因
- 没有智能合约
- 订单簿?难以对抗传统交易所
- 稳定币是区块链的刚需
- 特点
- 史上最大规模3
- DPOS,21个超级节点,中心化程度过高
- 失败原因
- 未兑现技术承诺
- DApp生态发展迟缓
- 治理机制设计失败
- 竞争压力大
去中心化和高性能,应该优先选择谁?
- 个人认为应该优先考虑去中心化,参考EOS的失败经验,如果纯考虑高性能,那区块链永远也干不过Web2
- 去中心化程度足够高的前提下,也应该重试优化性能
公链的不同治理模型有哪些?对比异同
- 因为之前只关注技术,不知道治理模型,AI了一下奇怪的知识又增加了🎉
| 分类 | 描述 | 示例 |
|---|---|---|
| 🔹 链下治理(Off-chain Governance) | 治理活动在链下进行,由开发者、基金会、社区讨论达成共识 | Bitcoin、Ethereum |
| 🔸 链上治理(On-chain Governance) | 所有提案与投票通过智能合约在链上执行,自动生效 | Tezos、Polkadot、Decred |
| 🔹 委托治理(Delegated Governance) | 社区将治理权委托给代表,由代表负责表决与提案 | EOS(DPoS)、Cosmos(部分) |
| 🔸 混合治理(Hybrid Governance) | 链上+链下结合,既有链上投票,又保留链下协调机制 | Ethereum 2.0、Polkadot |
应该优先激活哪些生态用户
- 先激活开发者,实现生态的建设,就像玩RTS游戏先造农民
- 再激活中间层,即基础设施提供者
- 然后激活内容创作者
- 最后是终端用户
公链如何管理资金来获取用户信任
- 传统方式通过成立基金会进行管理,类似Blender Foundation, Apache Foundation等
- Web3特色方式为链上国库 + DAO治理
- 不论是传统还是链上,都需要透明、公开,让用户多参与
- foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust. #Rust #Tools #Opensource #Web3
- bun is an ^^all-in-one^^ toolkit for JavaScript and ^^TypeScript^^ apps. It ships as ^^a single executable^^ called
bun. #Zig #Opensource - OpenSea
- etherscan
- reth
- Pinata,使用IPFS技术的图床
- MetaMask,小狐狸钱包
- WSL,由于在Windows下
# 由于其它工具已经安装,此处仅记录Foundry的安装,记得先准备魔法
curl -L https://foundry.paradigm.xyz | bash
source ~/.zshenv
# It will automatically install the latest version of the precompiled binaries to system
foundryupforge init sepolia-nft- 非常方便,执行后即在当前目录创建了
sepolia-nft目录,克隆好了forge-std仓库,组织好了项目文件 - 打开
src/Counter.sol文件,就可以看到默认生成的智能合约了
# 本地测试
forge test
# 在reth网上测试
forge test --fork-url https://reth-ethereum.ithaca.xyz/rpcanvil
# 如果运行正常,可以看到`Listening on 127.0.0.1:8545`的信息- 部署至某节点只需要更改
private key与rpc-url,私钥来源于钱包
# 确认本地节点运行后,往上翻可以看到private key,取一个进行测试
# **不建议将私钥写在命令行、代码中**
export PRIVATE_KEY="0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80"
# 部署合约至本地节点
forge script script/Counter.s.sol --rpc-url http://127.0.0.1:8545 --broadcast --private-key $PRIVATE_KEY- 再理解下Solidity和ERC提案,编写一个
ERC-721的智能合约 - 将
Mabinogi 2015年跨年线上音乐会游戏截图铸造为NFT
- OpenSea查看NFT详情,
Details->Blockchain details,可以看到Contract Address,点击后会跳转到etherscan - 点击
Contract即可查看智能合约源码
NFT协议主要有两种
ERC-721,具有天然唯一性ERC-1155,可以指定数量,可以批量铸造,我所获得的Casual Hackathon奖牌就是通过ERC-1155的智能合约铸造
- 分享嘉宾: 0xRory@DefiHackLabs
- 在DeFiHackLabs上收录了大量攻击事件的PoC
- 钓鱼攻击量非常高
- 主要目的是偷资产
- 被盗后难以追回
- 沉浸式体验钓鱼手法
- 重现和体验历史案例
- 邀请安全研究员贡献新的安全教育案例
- 建立信任
- 制造状况
- 诱导操作
- 窃取资产
-
🎯
- 构造相似的地址,利用人的直觉替换真实地址
- 监听剪切板,替换内存中的钱包地址
🛡️
- 使用工具核对目标地址,转帐付款时复制、粘贴和发送时都要检查,不要相信直觉和眼睛
- 安装可信的防毒软件,养成良好习惯,接收到的文件使用联合防毒扫描引擎扫描
-
🎯
- 高仿网站&应用
- 利用AI快速生成高仿钓鱼网站&应用
🛡️
- 细心观察甄别,或者通过本地DNS白名单过滤钓鱼网站
- 放慢操作速度,不要着急,认真确认每一步操作
-
🎯
- 诱导用户切换使用恶意RPC端点
🛡️
- 对一切保持怀疑
-
🎯
- 利用朋友、上级视频或音频,诱导用户放松警惕
🛡️
- 切换不同的认证方式,主动二次或多次确认
-
🎯
- 利用招聘、社区协作机会,在源码内投毒,诱导用户执行恶意程序
🛡️
- 仔细检查构建过程,避免运行恶意程序
-
🎯
- 将恶意攻击动作插入到正常交易流程之中,以正常行为掩盖攻击行为
🛡️
- 熟悉交易环节,对异常事件(如交易时间变长、多余的动作&动画等)
-
🎯
- 提供一个有余额的钱包(包括助记词都给了),需要提供Gas费转出内部资金
- 其实该钱包是一个没有转账权限的子钱包
- 等用户提供Gas费后,Gas费被转走
🛡️
- 别贪心
-
🎯
- 中间人撮合线下双方交易,双方把资产都打到中间人账户
- 中间人把交易双方的钱都骗走,或者双方联手骗用户
🛡️
- 非法活动不受法律保护,不参与线下交易
```txt
助记词 (Mnemonic)
↓(通过 BIP-39)
种子 (Seed)
↓(通过 BIP-32/BIP-44 路径派生)
私钥 (Private Key)
↓(通过椭圆曲线算法生成公钥,再哈希)
地址 (Address)
```
- 签名过程
- 椭圆曲线算法(私钥, 哈希(明文)) => 摘要
- 发送摘要与明文给接收方
- 验证过程:
- 接收摘要与明文
- 椭圆曲线算法(公钥, 哈希(明文)) => '摘要
- 摘要 == '摘要 ? 通过 :失败
- 一切从助记词开始
- 相同的助记词可以生成相同的密钥树
- 一棵密钥数可以包含无数个密钥
- 一般钱包只开放了
m/44'/60'/0'/0/0,即第一个私钥
- 昨天从faucet领取了0.05个Sepolia
- 今天尝试从sepolia-faucet.pk910.de挖了2.5个Sepolia
- 给同学发了0.03个Sepolia
- 参加了以太坊中文周会并做了笔记
- 完成了unphishable钓鱼攻防挑战初级和中级内容
- 完成了Web3 实习手册内容的学习(其实前几天也在断断续续的看),拟了下近期学习目标
- 写了一篇关于sepolia-faucet.pk910.de的分析笔记
- 网站
- 行为分析
- Sepolia是eth的测试网,已经完成PoS改造,不可能通过PoW获取到代币奖励
- 运行该网站的mine程序后,CPU占用上升,最高可达100%,界面上可以看到Hash rate
- 结束mine后,会向用户配置的钱包地址汇入Sepolia代币
- 结合以上表现,猜测该网站可能以Mine Sepolia为诱饵,使用户自行执行可CPU mine的币种挖矿程序
- 官方网站声明
- github:pk910/PoWFaucet
- For clarification: This faucet does NOT generate new coins with the "mining" process. It's just one of the protection methods the faucet uses to prevent anyone from requesting big amount of funds and draining the faucet wallet. If you want to run your own instance you need to transfer the funds you want to distribute to the faucet wallet yourself!
- How Our Faucet Protects Itself and You
- 该网站声明,PoW确实不能产生新币,mine过程只是为了防止恶意请求快速消耗faucet钱包余额,而设置的自我保护措施
- github:pk910/PoWFaucet
- 代码分析
- 该项目主要由三部分组成
- 静态资源
- typescript
- 核心为faucet-client,实现了程序入口、三种worker和CSS外观
- wasm
- 包含CryptoNight, Scrypt, Argon2等抗ASIC加密算法的wasm实现,及一个sqlite3实现
- client与server间通信通过WebSocket,端点为
/ws/pow,通过session id参数进行会话管理 - 框架使用
React
- 该项目主要由三部分组成
- 运行中ws数据流监听
- 端点
wss://sepolia-faucet.pk910.de/ws/pow?session=0e17686e-05d8-41f4-a2f9-312cfb49d0d4&cliver=2.4.0
- Sent
-
```json { "id": 1, "action": "foundShare", "data": { "nonce": 71, "data": null, "params": "argon2|0|13|4|4096|1|16|13", "hashrate": 491.471512640656 } } ``` -
```json { "id": 44, "action": "verifyResult", "data": { "shareId": "902358ad-899d-4592-bc4e-890d322525fd", "params": "argon2|0|13|4|4096|1|16|13", "isValid": true } } ```
-
- Received
-
```json { "action": "ok", "data": null, "rsp": 1 } ``` -
```json { "action": "verify", "data": { "shareId": "46096c68-9f81-4ce8-b73d-a6b9ae68852b", "preimage": "tMSRZ3ecDcE=", "nonce": 2430725, "data": null } } ``` -
```json { "action": "updateBalance", "data": { "balance": "1986000000000000", "reason": "valid share (reward: 1986000000000000)" } } ``` - 每次完成验证后,
rsp+1开启下一个任务
-
- 端点
- 结论
- 使用了抗ASIC矿机的专用算法,与门罗等CPU币使用的算法高度重合,可能是为了自我保护,也可能是真实挖矿行为
- 如果将计算部分完全剥离,用户侧只代理计算过程,与矿池通信完全放在server端,用户无法直接发现异常
- 如果只针对钱包地址做防护,为每个地址设置24小时的冷却时间,无法防止通过大量钱包地址发起的恶意领取,使用CPU PoW确实是有效的防御手段
- 无法证伪官方的声明,不排除使用用户CPU挖矿的可能,建议使用不需要挖矿的faucet,警惕需要额外授权的行为,注意CPU使用率是否异常升高