跳至正文
Starone

能力

面向区块链与数字资产系统的生产级基础设施

我们构建围绕区块链的那些系统:密钥管理、交易管道、账本、索引器、监控,以及与它们交互的智能合约。这项工作,是把分布式系统与安全工程应用到一个失效模式与众不同的结算层上。

概览

区块链是一个共享的、只能追加的账本,并具备可编程的结算能力。对工程团队而言,它是一个具有特定属性的外部系统:交易一旦达到最终性便不可逆转,状态是公开的,执行是按量计费的,而访问网络所依赖的节点可能滞后、失效或彼此不一致。有用的产品是围绕这些属性来设计的,而不是假装它们不存在。

在一个生产系统中,智能合约通常是最小的那一部分。围绕着它的,有掌管签名密钥的钱包与托管基础设施,有负责构造、签名、提交并跟踪交易的交易服务,有把链上事件转化为可查询数据的索引器,有与链上状态对账的内部账本,还有同时盯着链与业务的监控。这些链下基础设施承载了大部分工程投入,也承载了大部分运营风险。

我们为从事数字资产、现实世界资产代币化、交易所与结算系统以及去中心化金融协议的组织构建这类基础设施。我们的角色是工程。法律架构、牌照申请与监管审批,是组织及其顾问的事务;我们负责把系统设计好,使这些义务所要求的控制措施、记录与报告能够得以实现。

我们构建什么

技术领域

01

智能合约工程

智能合约是持有价值的不可变程序,因此缺陷是公开的,而且往往无法挽回。我们为 EVM 网络编写 Solidity,采用小而可组合的合约、显式的访问控制,并优先使用经过审计的库代码而非自行实现。在任何独立审计之前,测试就已结合了单元测试、模糊测试、不变量测试以及基于真实链上状态的 fork 测试。

  • Ethereum 及 EVM 兼容网络上的 Solidity
  • Foundry 与 Hardhat 开发及测试工具
  • OpenZeppelin 合约库
  • ERC-20、ERC-721、ERC-1155 与 ERC-4626 代币标准
  • 带时间锁与多签管理的代理升级模式
  • 使用 Slither 进行静态分析,并进行基于属性的模糊测试
02

钱包基础设施与托管架构

托管这门工程,解决的是谁可以在什么条件下授权资产转移。我们围绕硬件安全模块、多方计算或多签合约来设计密钥的生成、存储与签名,并由策略引擎在签名产生之前评估每一笔交易。钱包分层把运营所需的流动资金与储备隔离开来,使在线层被攻陷时的损失有明确的上限。

  • 由 HSM 保护的密钥存储与签名
  • MPC 门限签名方案
  • Safe 等多签智能合约钱包
  • 热、温、冷钱包分层,并配有再平衡规则
  • 基于 BIP-32 与 BIP-44 的分层确定性地址派生
  • 带限额、允许列表与多人审批(quorum)的交易策略引擎
  • 基于 ERC-4337 智能账户的账户抽象
03

代币化与 RWA 基础设施

代币化是把一项资产或对资产的权利表示为代币,其转让规则由代码强制执行。对现实世界资产而言,代币只是一个更大系统中的一个组件,这个系统还包括投资者准入、资格校验、权威登记册、公司行为处理,以及与链下资产的对账。我们把链上合约与链下平台放在一起设计,使两份记录不可能在无人察觉的情况下出现偏差。

  • ERC-3643 与 ERC-1400 等许可型代币标准
  • 链上身份与资格登记册
  • 转让限制与合规规则模块
  • 发行、赎回与生命周期工作流
  • 分配与公司行为处理
  • 用于参考数据与证明的预言机集成
04

交易所与 DeFi 系统

交易所基础设施把低延迟撮合与严格的账务结合在一起。我们设计订单管理、撮合引擎、充值与提现管道,以及与链上余额持续对账的复式记账账本。对于去中心化金融,我们构建协议合约及其周边的链下服务,并关注预言机设计、清算机制,以及价格操纵这类经济层面的攻击面。

  • 订单簿撮合引擎与订单管理
  • 充值检测与提现处理管道
  • 带链上对账的复式记账内部账本
  • 自动做市商与借贷协议合约
  • 接入抗操纵价格源的预言机集成
  • 用于协议运维的 keeper 与自动化服务
05

链上数据、分析与交易监控

链上数据是公开的,但无法以任何实用的形式直接从节点查询。我们构建索引器来摄取区块、解码事件与 trace、处理链重组,并把结果写入针对产品所需查询而设计的数据库。在此基础之上,是区块链分析、余额与持仓报表,以及依据既定风险规则筛查地址并标记可疑活动的交易监控。

  • 自建索引器,以及基于 The Graph 的 subgraph
  • 事件、日志与 trace 解码管道
  • 可感知链重组并跟踪确认数的数据摄取
  • 用于在线查询与分析的 PostgreSQL 和 ClickHouse
  • 地址筛查与风险评分集成
  • 基于规则的交易监控,以及向案件管理系统的数据推送
06

区块链 API、身份与跨链架构

应用不应直接与链对话。我们在产品服务与网络之间放置一层区块链 API:它屏蔽各条链之间的差异,管理 nonce 与手续费,保证提交的幂等性,并通过 webhook 回报状态。Web3 身份把钱包与已认证的会话及可验证凭证关联起来;至于跨链设计,评估时首先看的是所涉及的桥或消息协议的信任假设。

  • 跨链统一的交易与余额 API
  • 带故障切换的多供应商 RPC 网关
  • 使用 Sign-In with Ethereum 进行钱包认证
  • 去中心化标识符与可验证凭证
  • 跨链消息协议与桥的集成
  • Layer 2 rollup 的部署与集成

每一个区块链产品背后的工程问题

区块链系统的失效方式,是传统后端所没有的。一笔交易可能已提交却始终没有被打包,可能已被打包之后又被一次链重组移除,也可能已被打包却执行回滚,同时照样消耗手续费。节点可能返回过期的数据而不报任何错误。对于已经持有资金的地址,签名密钥无法被轮换掉。这些情况中的每一种都需要一个明确的设计对策,而一个区块链产品的质量,在很大程度上就是这些对策的质量。

我们把链视为一个最终一致的外部系统,并把交易管道构建成一台在每一步都有持久化状态的状态机:已创建、已签名、已提交、待处理、已打包、已确认、已达到最终性或已失败。每一次状态转移都是幂等的,并且在崩溃之后可以恢复。内部账本只在达到最终性时才变动,绝不在提交时变动,同时有一个对账流程持续地把内部余额与链上状态进行比对。

  • 密钥管理:密钥在 HSM 或 MPC 边界之内生成和使用,绝不导出,签名受策略与多人审批的约束
  • 交易最终性:每条链都有自己的最终性模型,因此确认深度按网络、按风险金额分别设定
  • 链重组:索引器与充值处理器必须检测到被替换的区块,并回滚由其派生的状态
  • nonce 管理:每个签名地址只设一个分配器,避免并发提交时出现空洞与冲突
  • gas 优化:EIP-1559 下的费用估算、对卡住交易的替换以及批量处理,共同控制成本与延迟
  • RPC 可靠性:多家供应商、健康评分与交叉校验,用来防范滞后或不一致的节点
  • 钱包安全:钱包分层、提现限额与地址允许列表,为任何单点被攻陷时的损失设定上限
  • 智能合约风险:重入、访问控制错误、预言机操纵与升级路径都经过测试并接受独立审计
  • 链上与链下一致性:账本通过幂等的处理器依据已达最终性的事件更新,并与链上状态对账
  • 区块链索引:数据摄取必须没有缺口,可以从任意区块重放,并能容忍供应商故障

架构

Web3 与数字资产基础设施
  1. 应用与 API

    • 客户端应用
    • API 网关
    • 合作方 API
    • 运营控制台
  2. 钱包与交易

    • 地址管理
    • 交易构建器
    • Nonce 与手续费控制
    • 策略引擎
  3. 密钥管理

    密钥绝不离开签名边界

    • HSM
    • MPC 签名
    • 多人审批门限
    • 密钥轮换
  4. 节点 / RPC 层

    • 全节点
    • RPC 服务商
    • 故障切换路由
    • Mempool 访问
  5. 索引与分析

    链上数据在最终确认前都是暂定的

    • 区块摄取
    • 事件解码
    • 重组处理
    • 查询 API
  6. 监控与合规

    • 交易监控
    • 地址筛查
    • 审计轨迹
    • 告警
数字资产产品所依赖的链下系统。智能合约只占整个体系的一小部分:托管、节点接入、索引与监控承担了大部分运营风险。

托管是一个密钥管理问题

谁能生成有效的签名,谁就控制着资产。因此托管架构可以归结为三个问题:密钥材料存在于何处,谁或什么可以触发一次签名,以及在签名产生之前要执行哪些检查。一个可靠的设计能够确保,任何单独的一个人、一台服务器或一份凭证,都不足以转移资金。

三种主要机制的区别,在于控制权位于何处。HSM 把完整的密钥保存在防篡改的硬件之内,并通过其自身的策略来控制访问。MPC 把密钥拆分为由不同参与方持有的分片,各方共同计算出签名,而密钥从头到尾都不会被重建。多签则把多方门限搬到链上,放进一个需要若干个独立签名的合约里。它们经常被组合使用,例如运营钱包使用由 HSM 保护的 MPC 分片,而资金库使用多签合约。

围绕这些机制的是策略层,大多数真实的事故正是在这一层被阻止或被放行的。提现限额、频率检查、目标地址允许列表、大额转账的时间延迟、发起人与审批人之间的职责分离,以及可发现篡改的审计日志,决定了一台被攻陷的应用服务器或一名内部人员实际上能做到什么。恢复同样重要:密钥分片的备份、密钥仪式的操作规程,以及经过测试的恢复流程,从一开始就是设计的一部分。

保持链上与链下状态一致

几乎每一个区块链产品都保有一份映射链上活动的链下记录:客户余额、订单状态、代币登记册、持仓。链与数据库无法在同一个原子事务中更新,因此一致性必须靠工程手段来实现。标准模式是:以链作为结算的事实来源,从已达最终性的事件推导出内部状态,并让每一个处理器都具备幂等性,使重放不会造成任何影响。

对于出站操作,系统先通过 outbox 把意图记录到数据库,然后提交交易并一路跟踪到最终性,之后才把该操作标记为完成。对于入站事件,索引器等待达到所需的确认深度,以交易哈希与日志索引作为键,确保事件恰好只被应用一次,并在发生链重组时撤销所有由孤块派生出来的内容。定期运行的对账任务把内部总额与链上余额进行比对,一旦出现任何差异就发出告警。

智能合约只是系统中的一层

部署到公链上的合约,暴露在网络中每一个参与者面前,严格按照所写的代码执行,并且可能无法修改。这就有理由采用一套保守的工程流程:尽量精简的链上逻辑,经过充分评审的库代码,包含模糊测试与不变量在内的完整测试覆盖,静态分析,以及部署之前的独立审计。可升级性是一项需要审慎做出的选择,因为升级密钥本身就是一种风险,需要时间锁与多方控制。

更宏观的设计问题是,究竟什么才应该放在链上。需要在互不信任的各方之间进行共享且可验证的强制执行的逻辑,应当放在合约里。需要隐私、繁重计算、频繁变更或大量数据的逻辑,应当放在链下,只把承诺或结果锚定到链上。把这条线划好,可以降低成本、缩小攻击面,并减少那些永远无法打补丁的代码量。

我们如何构建

我们的方法

我们把链下系统与链上合约放在一起设计,并把密钥管理与对账视为头等需求。

  1. 01

    界定链上与链下的边界

    我们明确哪些状态与规则必须在链上强制执行,哪些属于常规服务。链的选择则取决于最终性、成本、吞吐量、工具成熟度,以及系统必须与之互操作的对手方。

  2. 02

    设计托管与签名路径

    我们明确规定密钥生成、存储、签名的多方门限、策略规则、钱包分层与恢复流程。这些要在应用开发之前确定下来,因为每一条交易流程都依赖于它。

  3. 03

    开发并验证合约

    合约依据规格说明编写,通过单元、模糊、不变量与 fork 测试,经过静态分析,并为独立审计做好准备。部署与升级流程以脚本实现,并在测试网上演练。

  4. 04

    构建交易与索引管道

    交易服务负责 nonce 分配、手续费策略、提交、跟踪与替换。索引器摄取并解码链上数据,处理链重组,并通过幂等的处理器向内部账本提供数据。

  5. 05

    加入监控、对账与控制措施

    我们对节点健康状况、待处理交易的滞留时长、钱包余额与合约事件进行监测,并在账本与链之间持续对账。在运营模式有要求时,还会集成地址筛查与交易监控规则。

  6. 06

    分阶段上线并运维

    系统上线时采用保守的限额,随着运营信心的增长再逐步放宽。runbook 覆盖卡住的交易、供应商故障、密钥仪式、合约暂停以及事件响应。

取舍

决定设计走向的决策

在确定架构之前,我们会与您的团队逐一厘清的问题。

托管采用 MPC、多签还是 HSM?
在智能账户支持成熟的链上,资金库与治理应选择多签合约:其多方门限是透明的,可在链上审计,并且不依赖任何供应商。当你需要在多条链上使用同一套签名方案,包括那些没有原生多签的链,或者希望在不转移资金的前提下调整多方门限时,选择 MPC。当策略必须在经过验证的硬件中强制执行,或签名吞吐量很重要时,选择 HSM。规模较大的运营方通常会将它们分层组合:运营钱包使用 MPC 或 HSM,储备使用多签。
公链、Layer 2 rollup,还是许可型账本?
当资产必须能被任何对手方访问,并且结算保障比交易成本更重要时,使用公共 Layer 1。当你需要更低的手续费与更高的吞吐量,并且接受其 sequencer 与桥的信任假设时,使用 Layer 2 rollup。只有在所有参与方都是已知的、彼此之间必须保有隐私,并且不需要公开流动性或可组合性时,才使用许可型账本;在这种情况下,一个常规的共享数据库往往是更诚实的答案。
可升级的智能合约,还是不可变的智能合约?
不可变合约给用户最强的保证,并且消除了升级密钥这一攻击途径,适合简单且已被充分理解的逻辑,例如一个基础代币。可升级代理允许修复缺陷并让规则演进,这通常是受监管资产与复杂协议所需要的。如果选择可升级,就要把升级权限置于多签钱包与时间锁之后,并公开整个流程。
自己运行节点,还是使用 RPC 供应商?
RPC 供应商是务实的起点,可以省去大量运维工作。至少使用两家,并配置健康检查与故障切换,因为单一供应商就是单点故障,而且可能返回过期的状态。当你需要大量的归档或 trace 数据、严格的延迟、在交易提交上不依赖第三方,或需要校验供应商的响应时,再运行自己的节点。托管与交易所系统一般两者都值得配备。
充值入账之前需要多少个确认?
这取决于链的最终性模型与风险金额。在具备确定性最终性的链上,等待已最终确定的检查点。在概率性最终性的链上,按金额设定深度:小额充值可以先显示为待处理,在达到适中的深度之后入账,而大额充值则等待更久。对于 Layer 2 上的充值,需要先判断 sequencer 的确认是否足够,还是必须等到在 Layer 1 上完成结算。
自建索引器,还是使用索引服务?
subgraph 这类托管式或基于协议的索引服务构建起来很快,适合读多写少、可以接受短暂数据滞后的产品功能。当数据驱动资金流转,或者你需要与内部数据做关联查询、需要严格的链重组处理、trace 或多链一致性时,就应自建索引器。依据链上事件为余额入账的系统,应当自己掌握这条管道。

生产就绪

怎样才算生产就绪

如何保障安全

签名密钥永不离开其 HSM 或 MPC 边界,每一笔交易都要经过带有限额、允许列表与多人审批的策略引擎,合约的管理函数则置于多签控制与时间锁之后。钱包分层、职责分离与可发现篡改的审计日志,限定了任何单一被攻陷的组件或个人所能做到的事情。

如何扩展

吞吐量受 nonce 顺序与区块空间的制约,因此交易服务使用地址池、批量处理与按地址划分的队列来安全地实现并行。索引器按链与区块范围分区,可以从任意高度重放,并由专门构建的存储而非节点来提供查询。

如何监控

我们监控节点同步高度与各供应商之间的偏差、mempool 与待处理交易的滞留时长、gas 价格状况、钱包余额与阈值的对比、合约事件以及索引器延迟。内部账本与链上余额之间的持续对账是首要的正确性信号,一旦出现任何差异就会立即呼叫值班人员。

如何部署

合约部署以脚本实现,先在 fork 与测试网上复现,在区块浏览器上完成验证,并通过多方审批来执行。链下服务遵循标准的 CI/CD 与金丝雀发布,并额外确保在途交易能够安然度过一次部署而不被重复提交。

如何集成

产品系统使用一层区块链 API,配合幂等请求与 webhook 状态回调,因此无需编写任何与具体链相关的逻辑。平台通过文档完备的接口,对接核心银行与支付系统、身份核验与地址筛查服务、会计账本以及报表管道。

技术

根据工作负载和您现有的技术资产来选择。

  • Solidity
  • Foundry
  • Hardhat
  • OpenZeppelin Contracts
  • Ethereum
  • Arbitrum and Optimism
  • viem and ethers.js
  • Safe
  • The Graph
  • Chainlink
  • PostgreSQL
  • ClickHouse
  • Apache Kafka
  • AWS CloudHSM

从零到生产

工程生命周期

  1. 01

    想法

  2. 02

    探索

  3. 03

    系统架构

  4. 04

    UX / 产品设计

  5. 05

    应用工程

  6. 06

    AI / 数据层

  7. 07

    云基础设施

  8. 08

    安全

  9. 09

    质量保证与性能

  10. 10

    部署

  11. 11

    可观测性

  12. 12

    持续演进

常见问题

常见问题

你们在哪些区块链上进行开发?

主要是 Ethereum 及 EVM 兼容网络,包括 Layer 2 rollup,因为它们的工具成熟,标准与经过审计的库也很丰富。我们设计的链下架构,涵盖托管、交易管道、索引与对账,与具体的链无关;链的选择则按项目而定,依据是最终性、成本与互操作性方面的需求。

你们审计智能合约吗?

我们把合约做到可随时接受审计的程度,具备规格说明、完整的测试、模糊测试、不变量检查与静态分析,并开展内部安全评审。由专业机构进行的独立审计是另外一个步骤,我们建议在任何合约持有价值之前完成它,并会与组织选定的审计方合作解决发现的问题。

你们能把区块链功能集成到现有平台中吗?

可以。通常的做法是建立一个区块链服务层,对外提供地址、转账、余额与事件方面的简单 API,其背后则是托管、交易管理与索引。现有平台与这一层集成并保留自己的数据模型,由对账来确保两边一致。

Starone 持有数字资产牌照或提供监管咨询吗?

不持有,也不提供。我们提供的是工程服务,不提供法律、财务或投资建议。牌照与监管义务由运营该系统的组织及其顾问承担。我们负责设计这些义务所要求的技术控制措施、审计轨迹与报告接口。

从技术上看,现实世界资产的代币化涉及哪些内容?

包括带有转让规则的许可型代币合约、身份与资格登记册、发行与赎回工作流、用于准入与后续服务的链下平台,以及代币登记册与底层资产记录之间的对账。赋予代币实际含义的法律架构是在技术之外确定的,它决定了合约必须强制执行什么。

有一套必须在生产环境中正常运行的系统?

告诉我们您正在构建什么。工程师会阅读您的留言,并在两个工作日内回复。