跳至内容
深圳市捷比信实业有限公司 · 产品选型与采购咨询联系业务人员
低温漂电阻捷比信 · 专业器件主题站

如何设计一个安全的加密货币钱包

作为加密货币爱好者和区块链行业建设者的一员,我将尽力更好地构建加密货币生态系统。在本文中,我将分享我的经验,如何为数字资产交易设计安全的加密货币钱包。希望帮助建立基于区块链和加密货币经济的业务基础。数字资产管理至关重要,特别是对于那些基于区块链的机构而言。一个典型的用例是加密货币交换或场外交易平台(OTC),它使成千上万的交易者可以撤回或剥离其数字资产,而不受时间和空间的限制。银行级别的安全性和高可用性架构是此类创业公司的基本要求。本文不会介绍有关热钱包,热钱包和冷钱包的常识,但我们应该学习这三个钱包之间的交易业务系统。 ·热钱包:仅用于从系统发送交易,应预留足够但不太多的资金用于服务提款。它应该有严格的政策来限制硬币的数量,也就是说,小额取款应该尽可能地自动化,但是大额取款应该在获得提款之前得到管理部门的批准。 ·暖钱包:用于向系统中的所有存款,并要求一个地址,以便在新用户加入时向其汇款。客户向暖钱包充值的资金应自动或定期提取到冷钱包中。 ·冷钱包:用于存储系统中的大部分资金,我认为至少为7/10,用于为热钱包充值。冷钱包也称为脱机钱包,因为它旨在在未连接到任何网络的设备上运行。因此,在讨论加密货币钱包系统架构的设计思想时,需要考虑三个关键问题:私钥的安全存储,智能风险控制提取系统以及存款链确认。如果必须优先考虑这些安全因素的开发,则这些密钥的重要性将逐渐降低,因为最重要的是私有密钥存储。基于实际用例的架构拥有自己的私钥是采用加密货币的主要原因。传统的金融方法,尤其是跨境汇款,使汇款非常麻烦。使用数字资产钱包时,个人或机构之间的业务逻辑存在许多差异。如何设计数字资产钱包取决于您存储私钥的位置。共有三种主要模式:将私钥存储在手机,区块链的整个节点或安全的网络程序环境中。 1.去中心化的移动应用程序钱包握住密钥并签署原始交易。当移动应用创建钱包时,公共密钥会注册到网络程序(主要是Web服务)中。该网络程序与p2p网络进行交互,以从区块链分类账中获取信息(维护UTXO,查询以太坊账户余额,现时价值,交易历史记录等),并广播新交易。这些链条可以满足大多数人在钱包中的使用。 2.带钱包的区块链节点提供全方位的服务,直接在网络环境中创建和签署原始交易。与全方位服务节点的系统集成通过JSON-RPC与区块链全方位服务节点进行交互来管理钱包。钱包私钥与区块链分类帐一起存储,并且还暴露于安全性较低的开放网络环境中。有许多由黑客入侵案件引起的json-rpc连接。我认为使用由区块链节点实现的原始钱包是一种不好的做法。有人建议比特币内核应将节点和钱包与功能分开。 3.为了提高安全性,可以使用在更安全的环境中运行的单独的钱包程序来生成私钥,我们将其称为签名程序。完整服务的另一部分是网络程序,该程序构造原始交易和广播签名交易。整个过程是网络程序创建一个未签名的事务并将该未签名的事务成功地转移到签名程序(然后,签名程序将已签名的事务返回给网络程序,最后网络程序将已签名的事务广播给Peer。对等网络签名程序和网络程序钱包完整服务包括四个部分:第一个是钱包管理,私钥是由钱包核心(签名程序)程序生成并由levelDB存储的;第二个是外部端点,提款过程随着钱包的产生,钱包网关(网络程序)构造原始交易,提供外部