solidity
文章平均质量分 85
郑泽洲
IT Veteran
展开
-
基于Solidity的XX项目智能合约架构设计
背景之前在一家FinTech的公司和银行合作,做基于区块链的资金存管系统,从头开始基于Solidity设计项目的智能合约架构。转眼几年时间过去了,2B的热潮退去,但是DeFi的热潮上来了。所以总结一下过去的方案,顺便思考下新形势下的问题。典型交易分析(以投标交易为例):说明:这个交易阶段就是用户已经完成注册了,用户信息在链上了,也经过了验证了;而且账户里面有钱了业务思考问题:用户的定义以及其在链上的数据结构是啥?标的数据结构如何解耦,比如开发人员A和B分别写了一个,如何用creator直原创 2021-08-07 17:36:44 · 759 阅读 · 0 评论 -
北京项目EVM升级到拜占庭版本
## 好处总结牵头解决了最新版本编译器编译的代码在北京项目不能运行的问题(见如下鹏飞合约,李也碰到过)可以使用library,解决了多卡数据挤在数据合约的问题,极大简化了代码可以使用revert了,区分了系统异常和业务取消动作(之前的invalid opcode,其他同事都认为需要升级)突破了编译器版本限制,可以使用最新的语法了,提升了编程的表现力(版本可以定在0.4.21;但是实验...原创 2018-05-30 15:35:21 · 344 阅读 · 0 评论 -
智能合约反编译查错经验汇编
问题:为什么需要比较不同版本的solc编译器EVM在不断升级中,有些指令是后来加入的,比如revert,还有returndatasize同样的solidity代码,鹏飞在0.4.22编译出来后,就在未升级过的北京银行项目环境上运行报错,因为没有returndatasize这个指令(推测是同样的函数,后面的编译器版本动作不一样了,比如要先返回到buffer了,间接返回returndatasi...原创 2018-05-30 15:40:42 · 1920 阅读 · 0 评论 -
智能合约风险:SmartMesh攻击,uint溢出之祸
SmartMesh的理念智能合约又双叒叕出事了。这次是SmartMesh。SmartMesh其理念很好,想网络访问领域的去中心化,将来人们联网,不要路由器和交换机,直接相连,电信运营商都死翘翘,每个人按网络贡献挖矿获得收益,发出网络别人帮忙要给钱SmartMesh遭受的攻击具体攻击交易之一事件描述:d6a09bdb29e1eafa92a30373c44b09e2e2e...原创 2018-05-30 15:59:47 · 975 阅读 · 0 评论 -
北京项目链增加Quorum共识提升稳定性
## 北京项目目前的POA共识及存在问题POA共识介绍北京项目是网贷资金存管项目,其业务模式是以XX银行为中心的,为此我们采用了POA共识机制(同时也是限于修改代码的时间因素),其特点是单点出块,中心化方式也是一种共识,叫POA(proof of authurity)许可机制。所有节点的加入和退出都是由中心节点的管理员账户发出的。而且目前这个中心节点是写死的。ethereumj.c...原创 2018-05-30 16:16:26 · 460 阅读 · 0 评论 -
以太坊手续费详细分析
前言以太坊是新兴的区块链技术平台,其目标是成为“永不停机的世界计算机”,人们在其上可以部署各种应用供全世界使用。以太币是以太坊公链这台虚拟世界计算机器运行的“燃油”(以太坊英文名Ethereum词根eum含有燃油的意思),其理念是以太坊平台运行需要消耗资源,比如各节点的CPU、存储、带宽等资源,而这些资源消耗由以太坊平台给以计量和计价,并通过挖矿时对矿工的奖励给予补偿,这种奖励同时也是以太币去...原创 2018-10-17 09:57:12 · 26745 阅读 · 0 评论 -
智能合约支持C端的兼容设计
C端支持的问题目前市场上所谓的“区块链”项目,绝大部分情况下,最终用户对其账户并无控制权,由B端企业代管。XX项目原先最初稿设计支持C端,但是C端有个用户习惯的问题,在手机sdk,如果要保存密钥文件,那么是否需要加密?如果要加密,那么又要用户多输入一次密码,用户体验不佳,要做额外的市场教育工作,所以被毙了。但考虑到将来的趋势,所以要在智能合约这层做个兼容性的设计。二期项目涉及的4账户图:...原创 2019-01-10 09:56:07 · 195 阅读 · 0 评论