区块链安全,要从设计抓起 (www.liaoxuefeng.com)

【简介】

最近爆发的层出不穷的区块链安全问题,从以太坊RPC攻击转移用户资产,到ERC20代币频繁爆出溢出漏洞,这些问题其实大部分应该在区块链系统的设计阶段解决,而不是留给开发者来自己关注安全问题。

我们先来看一下以太坊的设计。首先值得肯定的是,有别于比特币UTXO模型,以太坊设计了账户模型。账户模型对于实现智能合约是十分合理而且非常必要的,直接在UTXO模型上嫁接智能合约的做法显得不伦不类。

然而,以太坊的设计仍然存在不少问题,有许多设计问题实际上是引发安全漏洞的源头。如果在设计时避免了这些问题,至少不会大面积爆发各种安全问题。
RPC安全

点击查看原文 >>

@技术头条 2018-07-04 23:56 / 原作者微博:@廖雪峰 / 0个评论
赞过的人: @技术头条
要不要再学学下面的文章?
浅谈 Follow 中的设计理念 (innei.in)
本文分享了 Follow 应用中的核心设计理念,包括多种图标转换方式、Peek 模态预览、优雅的动效过渡(通过 Framer Motion)、层叠模态框的层级处理以及 AutoResize 组件的平滑高度调整。这些设计细节提升了用户体验,同时控制了动态效果强度,确保设备性能与用户偏好。
by @技术头条 2024-11-02 16:58 查看详情
IM系统重构到 SDK 设计的最佳实践 (crossoverjie.top)
本文介绍了 CIM 系统重构为 SDK 的实践,使用 Builder 模式创建客户端,实现了长连接、心跳检测及自动重连等功能,极大简化了消息收发流程。还优化了请求代理,通过 `ProxyManager` 动态管理 URL,提升了代码复用性。集成测试涵盖多服务器重连和消息验证,确保系统高可用性。重构增强了模块间解耦,使 SDK 更易于维护和扩展。
by @技术头条 2024-11-02 16:49 查看详情
领域驱动设计DDD在B端营销系统的实践 (tech.meituan.com)
领域驱动设计(DDD)在复杂业务系统中的应用非常有效,特别是在 B 端营销系统中。本文分享了美团如何通过 DDD 实践,优化营销系统的架构与设计,提升业务应对能力。想了解如何应对复杂业务需求的变化?千万别错过!
by @技术头条 2024-09-09 23:41 查看详情
防呆设计 (ixyzero.com)
设计中的“防呆”理念,是为了防止用户出错,让复杂的操作变得简单直观。本文介绍了防呆设计的10大原则,如自动化、顺序操作、视觉标识等,帮助产品经理和设计师更好地为用户提供无错体验。想要提升用户体验,降低操作错误率?快来了解这些设计技巧!
by @技术头条 2024-09-08 23:28 查看详情
IM服务器设计-如何解决消息的乱序 (www.codedump.info)
IM消息需要面对的另一个难题:如何保证收到的消息不乱序。下面先展开看看要解决这个难题有哪些障碍。
by @技术头条 2024-03-21 23:00 查看详情
IM服务器设计-网关接入层 (www.codedump.info)
IM服务系列文章: IM服务器设计-基础 IM服务器设计-消息存储 网关接入层负责维护与客户端之间的长连接,由于它是唯一一个与客户端进行直接通信的服务入口,
by @技术头条 2024-03-21 23:00 查看详情
IM服务器设计-消息存储 (www.codedump.info)
这部分专门讲述IM消息存储的设计。消息存储的难度在于,要考虑以下的场景:

1、离线消息存储。即发送消息时对方不在线该怎么处理。
2、单聊、群聊消息。
3、随着用户量越来越大,应该以后如何扩展。
by @技术头条 2024-03-13 13:33 查看详情
IM服务器设计-基础 (www.codedump.info)
IM做为非常经典的服务器系统,其设计时候的考量具备代表性,所以这一次花几个篇幅讨论其相关设计。

主要内容相当部分参考了 一套海量在线用户的移动端IM架构设计实践分享一文,在此之上补充了更好的消息存储设计以及集群设计。

by @技术头条 2024-03-13 13:32 查看详情
真实世界的Go设计模式 - 对象池模式 (colobu.com)
对象池(object pool pattern)是一种设计模式。一个对象池包含一组已经初始化过且可以使用的对象,而可以在有需求时创建和销毁对象。池的用户可以从池子中取得对象,对其进行操作处理,并在不需要时归还给池子而非直接销毁它。这是一种特殊的工厂对象。

若初始化、实例化的代价高,且有需求需要经常实例化,但每次实例化的数量较少的情况下,使用对象池可以获得显著的效能提升。从池子中取得对象的时间是可预测的,但新建一个实例所需的时间是不确定。

另外,利用对象池,我们可以重用对象,减少对象的分配,对于垃圾回收的编程语言,也是一种提高性能的手段。
by @技术头条 2023-09-10 23:38 查看详情
真实世界的Go设计模式 - 原型模式 (colobu.com)
*原型模式(Prototype Pattern)是创建型模式的一种,其特点在于通过“复制”一个已经存在的实例来返回新的实例,而不是新建实例。被复制的实例就是我们所称的“原型”,这个原型是可定制的。
如果你有一个对象,并希望生成与其完全相同或者类似的一个复制品,你该如何实现呢?首先你必须新建一个属于相同类的对象,或者类似的对象,然后你必须遍历原始对象的所有成员变量,并将成员变量值复制到新对象中。在Go生态圈中,我们常常使用下面的库来做这份工作。
by @技术头条 2023-09-10 23:32 查看详情