diff --git "a/basic/\345\237\272\347\241\200\346\246\202\345\277\265/\345\244\232\347\255\276\351\222\261\345\214\205.md" "b/basic/\345\237\272\347\241\200\346\246\202\345\277\265/\345\244\232\347\255\276\351\222\261\345\214\205.md" new file mode 100644 index 0000000..80a3452 --- /dev/null +++ "b/basic/\345\237\272\347\241\200\346\246\202\345\277\265/\345\244\232\347\255\276\351\222\261\345\214\205.md" @@ -0,0 +1,51 @@ +## 多签钱包概述 + +多签钱包(Multisignature Wallet,简称多签钱包)是一种特殊类型的数字钱包,其设计目的是提高区块链资产的安全性。与传统单签钱包不同,多签钱包要求多个私钥签名才能完成交易,从而增强了对资产的保护。 + +### 多签钱包的工作原理 + +多签钱包的核心理念是“多重签名”,即在执行交易之前,必须由多个私钥持有者进行签名。其基本机制如下: + +1. **密钥生成**:首先,创建一个多签钱包时,需要设置多个公钥和对应的私钥。这些密钥可以由不同的用户生成,或由同一用户生成多把钥匙。 + +2. **签名规则**:在创建多签钱包时,用户可以设定签名规则,例如“2/3”。这意味着在三把私钥中,至少需要两把签名才能完成一笔交易。 + +3. **交易执行**:当需要发起一笔交易时,交易请求会被广播到所有私钥持有者。只有在满足签名规则的情况下,交易才会被执行。 + +4. **链上验证**:一旦交易被所有必要的私钥签名,交易将被发送到区块链网络进行确认。区块链会验证签名的有效性,并将交易记录到公共账本上。 + +### 多签钱包的优势 + +1. **安全性**:由于需要多个签名才能执行交易,即使某一私钥被盗,攻击者也无法轻易转移资产。 + +2. **权限管理**:多签钱包允许对资产的控制进行细致的权限管理。例如,企业可以设定特定的管理层成员必须共同签名才能进行大额交易。 + +3. **防止单点故障**:在多签钱包中,没有单一的控制者,这样可以有效地防止由于个别用户失误或恶意行为导致的资产损失。 + +### 多签钱包的实现 + +实现多签钱包的技术方案通常依赖于智能合约,尤其是在以太坊等支持智能合约的区块链上。以下是实现多签钱包的基本步骤: + +1. **智能合约部署**:开发者创建并部署一个智能合约,合约中包含多签规则和地址管理功能。 + +2. **地址管理**:合约中会存储所有参与者的公钥以及签名规则。这些信息决定了如何处理交易请求。 + +3. **交易请求与签名**:用户发起交易后,合约会发送交易请求给所有相关私钥持有者,并等待他们的签名。 + +4. **执行交易**:一旦满足签名条件,合约将自动执行交易,将资产转移到目标地址。 + +### 多签钱包的应用场景 + +多签钱包在许多场景中都得到了广泛应用,包括: + +- **企业财务管理**:企业可以使用多签钱包管理公司资金,确保大额支出需经多个高管批准。 +- **联合投资**:多个投资者可以共同管理投资资金,确保每个投资决策都经过集体同意。 +- **遗产管理**:个人可以设定多签钱包,以确保在其去世后,资产需要多个继承人的同意才能转移。 + +## 相关概念与技术 + +1. **单签钱包**:单签钱包仅需要一个私钥进行交易,安全性相对较低,适合小额资产管理。 + +2. **去中心化自治组织(DAO)**:DAO通常使用多签钱包管理资金和决策,确保每个成员的投票权重和决策过程透明。 + +3. **冷钱包与热钱包**:冷钱包通常用于长期存储资产,安全性高;热钱包则用于日常交易,便捷但安全性较低。多签钱包可以作为冷钱包的一种实现方式,提高安全性。 \ No newline at end of file diff --git "a/basic/\345\237\272\347\241\200\346\246\202\345\277\265/\346\211\230\347\256\241\351\222\261\345\214\205.md" "b/basic/\345\237\272\347\241\200\346\246\202\345\277\265/\346\211\230\347\256\241\351\222\261\345\214\205.md" new file mode 100644 index 0000000..33c96da --- /dev/null +++ "b/basic/\345\237\272\347\241\200\346\246\202\345\277\265/\346\211\230\347\256\241\351\222\261\345\214\205.md" @@ -0,0 +1,51 @@ +## 托管钱包概述 + +托管钱包(Custodial Wallet)是一种由第三方服务提供商管理的数字资产存储解决方案。在这种模式下,用户的私钥和资产由托管服务提供商保管,用户通过账户访问和管理自己的资产。托管钱包的使用在加密货币交易所、金融科技公司及其他数字资产管理平台中非常普遍。 + +### 托管钱包的特点 + +托管钱包的核心机制涉及到用户的资产存储、私钥管理和交易执行。以下是其工作特点: + +1. **账户创建**: 用户在托管钱包平台上注册账户,通常需要提供一些个人信息和身份验证。这一过程确保了平台对用户身份的确认。 + +2. **私钥管理**: 用户的私钥由托管服务提供商生成和管理。这意味着用户无需担心私钥的安全性,但同时也失去了对私钥的完全控制。托管服务提供商会采用多种安全措施(如冷存储、加密和多重签名)来保护用户资产。 + +3. **交易执行**: 用户可以通过托管钱包平台发起交易,平台会处理交易请求并在区块链上执行。由于私钥由托管服务提供商管理,用户无需手动签名交易,简化了操作流程。 + +### 托管钱包的优缺点 + +#### 优点 + +1. **用户友好**: 托管钱包通常提供直观的用户界面,适合新手用户,无需深入了解区块链和私钥管理。 + +2. **安全性**: 尽管用户失去了对私钥的控制,但托管服务提供商通常会采取高标准的安全措施来保护用户资产。 + +3. **便捷性**: 用户可以方便地进行交易、存储和管理多种数字资产,支持多种支付方式。 + +#### 缺点 + +1. **信任问题**: 用户需要信任托管服务提供商,任何安全漏洞或管理不善都可能导致资产损失。 + +2. **资产控制权**: 用户无法完全控制自己的资产,若服务提供商遭遇法律问题或破产,用户可能面临资产无法取回的风险。 + +3. **费用问题**: 托管钱包通常会收取管理费用或交易费用,长期使用可能增加用户的成本。 + +### 适用场景 + +托管钱包适合以下几种场景: + +- **新手用户**: 对于缺乏区块链知识的新手用户,托管钱包提供了简单易用的解决方案。 +- **频繁交易者**: 需要快速交易和管理多种资产的用户,托管钱包提供了高效的操作体验。 +- **机构投资者**: 对于需要合规和安全管理的机构投资者,托管钱包提供了专业的服务和保障。 + +### 相关概念及区别 + +- **自托管钱包**: 用户完全控制自己的私钥和资产,提供更高的安全性,但需要用户具备一定的区块链知识。 + +- **热钱包(Hot Wallet)**: 连接互联网的数字资产存储方式,便于快速交易,但相对不如冷钱包安全。 + +- **冷钱包(Cold Wallet)**: 离线存储数字资产,安全性高,适合长期存储,但交易不够便捷。 + +- **硬件钱包(Hardware Wallet)**: 一种专用设备,用于离线存储私钥,结合了冷钱包的安全性和一定的便捷性。 + +通过理解托管钱包的工作原理及其优缺点,开发者可以更好地为用户提供合适的数字资产管理解决方案。 \ No newline at end of file diff --git "a/basic/\345\237\272\347\241\200\346\246\202\345\277\265/\346\217\222\344\273\266\351\222\261\345\214\205.md" "b/basic/\345\237\272\347\241\200\346\246\202\345\277\265/\346\217\222\344\273\266\351\222\261\345\214\205.md" new file mode 100644 index 0000000..2c29e75 --- /dev/null +++ "b/basic/\345\237\272\347\241\200\346\246\202\345\277\265/\346\217\222\344\273\266\351\222\261\345\214\205.md" @@ -0,0 +1,65 @@ +## 插件钱包概述 + +插件钱包(Plugin Wallet)是一种轻量级的数字货币钱包,通常以浏览器扩展的形式存在。它允许用户在访问各种区块链应用(DApp)时,直接在浏览器中管理和使用他们的加密资产。插件钱包的主要优势在于其便捷性和用户友好的界面,使得区块链技术对普通用户更加可及。 + +## 插件钱包的工作原理 + +### 1. 浏览器扩展架构 + +插件钱包通常作为浏览器扩展程序运行,例如在Chrome、Firefox等浏览器中安装。用户在浏览器中安装插件后,钱包会在浏览器的工具栏中显示一个图标,用户可以通过点击该图标打开钱包界面。 + +### 2. 私钥管理 + +插件钱包的核心是私钥的管理。私钥是用户控制其数字资产的唯一凭证。插件钱包通常采用以下机制来管理私钥: + +- **本地存储**:私钥可以加密后存储在用户的设备上,确保只有用户能够访问。这种方式保护了用户的资产,但也增加了设备丢失或损坏的风险。 + +- **助记词**:用户在创建钱包时会生成一组助记词(通常为12-24个单词),这组助记词可以用于恢复钱包。用户需要妥善保管这些助记词。 + +### 3. 与区块链的交互 + +插件钱包通过与区块链进行交互,支持用户发送和接收加密货币。它通常使用以下技术: + +- **JSON-RPC**:插件钱包通过JSON-RPC协议与区块链节点进行通信。这种协议允许钱包发送交易请求、查询余额等操作。 + +- **智能合约调用**:在与去中心化应用(DApp)交互时,插件钱包可以通过调用智能合约执行各种操作,如交换代币、参与治理等。 + +### 4. 用户体验 + +插件钱包的设计通常考虑到用户体验,提供简洁的界面和易于操作的功能。用户可以轻松地查看余额、发送和接收资产、管理代币等。此外,许多插件钱包还支持多种区块链和代币,增强了其灵活性。 + +## 插件钱包的优势与劣势 + +### 优势 + +- **便捷性**:用户可以在浏览器中快速访问钱包,无需下载和安装独立应用程序。 + +- **易用性**:设计友好的界面使得即使是非技术用户也能轻松上手。 + +- **多平台支持**:大多数插件钱包支持多种区块链,用户可以在一个钱包中管理多种资产。 + +### 劣势 + +- **安全性风险**:由于插件钱包是基于浏览器的扩展,可能面临网络钓鱼、恶意软件等安全风险。 + +- **私钥管理**:用户需要自行管理私钥和助记词,若丢失将无法恢复资产。 + +- **依赖浏览器**:插件钱包的功能依赖于浏览器的稳定性和安全性,浏览器崩溃或受到攻击可能导致资产风险。 + +## 相关概念与技术 + +### 1. 移动钱包 + +移动钱包是专为智能手机设计的应用程序,用户可以在移动设备上管理和交易数字资产。与插件钱包相比,移动钱包通常提供更多的功能,如二维码扫描和NFC支付。 + +### 2. 硬件钱包 + +硬件钱包是一种专用设备,用于安全存储私钥。它提供了更高的安全性,适合长期保存资产的用户。与插件钱包相比,硬件钱包在安全性上更具优势,但使用不够便捷。 + +### 3. 桌面钱包 + +桌面钱包是安装在个人电脑上的应用程序,用户可以在本地管理其数字资产。与插件钱包相比,桌面钱包通常提供更强大的功能和更灵活的管理选项,但也面临设备丢失或被攻击的风险。 + +## 总结 + +插件钱包是区块链技术与用户之间的重要桥梁,凭借其便捷性和易用性,正在推动数字资产的普及。然而,用户在使用插件钱包时,仍需关注安全性,妥善管理私钥和助记词,以保护自己的资产安全。 \ No newline at end of file diff --git "a/basic/\345\237\272\347\241\200\346\246\202\345\277\265/\347\241\254\344\273\266\351\222\261\345\214\205.md" "b/basic/\345\237\272\347\241\200\346\246\202\345\277\265/\347\241\254\344\273\266\351\222\261\345\214\205.md" new file mode 100644 index 0000000..d947488 --- /dev/null +++ "b/basic/\345\237\272\347\241\200\346\246\202\345\277\265/\347\241\254\344\273\266\351\222\261\345\214\205.md" @@ -0,0 +1,42 @@ +## 硬件钱包概述 + +硬件钱包是一种物理设备,用于安全存储加密货币私钥和进行交易。与软件钱包相比,硬件钱包提供了更高的安全性,因为它们不直接连接到互联网,从而减少了黑客攻击和恶意软件的风险。硬件钱包的设计旨在保护用户的数字资产,尤其是在长时间持有或进行大额交易时。 + +## 硬件钱包的工作原理 + +### 1. 私钥的生成与存储 + +硬件钱包的核心功能是生成和存储私钥。私钥是用于访问和管理加密货币的唯一凭证。硬件钱包通常使用随机数生成器(RNG)在设备内部生成私钥,这个过程在设备上完成,确保私钥不会暴露给任何外部设备或网络。 + +生成的私钥会被安全地存储在硬件钱包的安全元件(Secure Element)中。这是一种专门设计的微处理器,具备高度的安全性,能够抵御各种物理和网络攻击。 + +### 2. 交易签名 + +在进行交易时,用户需要用私钥对交易进行签名。硬件钱包不会将私钥暴露给任何外部设备,而是通过一种称为“离线签名”的过程来完成交易签名。 + +用户通过连接硬件钱包到电脑或手机,输入交易信息。然后,硬件钱包在内部对交易进行签名,生成一个签名结果。这个签名结果会被发送回用户的设备,用户可以将其附加到交易中并广播到区块链网络。 + +### 3. 防篡改与恢复机制 + +硬件钱包通常配备防篡改设计和恢复机制。许多硬件钱包使用 PIN 码保护用户的私钥,若输入错误次数过多,设备会自动锁定。此外,硬件钱包还提供种子短语(通常是 12、18 或 24 个单词),用于在设备丢失或损坏时恢复钱包。这些种子短语在生成时也在设备内部处理,确保安全性。 + +## 硬件钱包的优势 + +- **安全性**:由于私钥在设备内部生成和存储,黑客无法通过网络攻击获取私钥。 +- **用户控制**:用户对自己的私钥拥有完全控制权,避免了第三方托管的风险。 +- **便携性**:硬件钱包通常设计为小型、便携的设备,方便用户随身携带。 + +## 硬件钱包的局限性 + +- **成本**:相比软件钱包,硬件钱包的初始投资较高。 +- **使用复杂性**:对于新手用户,硬件钱包的设置和使用可能会有一定的学习曲线。 +- **物理损坏风险**:硬件钱包是物理设备,可能会因意外损坏或丢失而导致资产损失。 + +## 相关概念与技术 + +- **软件钱包**:软件钱包是运行在计算机或手机上的应用程序,提供便捷的交易功能,但由于常常连接互联网,安全性相对较低。 +- **纸钱包**:纸钱包是将私钥和公钥打印在纸上的一种存储方式,安全性高,但易受物理损坏和丢失的风险。 +- **冷钱包**:冷钱包是指不连接互联网的存储方式,包括硬件钱包和纸钱包,提供更高的安全性。 +- **热钱包**:热钱包是指在线存储的加密货币钱包,方便使用,但安全性较低,易受网络攻击。 + +硬件钱包在保护加密货币资产方面具有显著优势,适合长期持有和大额交易的用户。理解其工作原理和优势,有助于开发者在设计和实现相关应用时,选择合适的安全方案。 \ No newline at end of file diff --git "a/basic/\345\237\272\347\241\200\346\246\202\345\277\265/\351\242\204\350\250\200\346\234\272.md" "b/basic/\345\237\272\347\241\200\346\246\202\345\277\265/\351\242\204\350\250\200\346\234\272.md" new file mode 100644 index 0000000..a68bbb0 --- /dev/null +++ "b/basic/\345\237\272\347\241\200\346\246\202\345\277\265/\351\242\204\350\250\200\346\234\272.md" @@ -0,0 +1,47 @@ +## 预言机:连接区块链与现实世界 + +在区块链技术中,预言机(Oracle)是一个至关重要的概念。它的主要功能是将外部数据引入区块链智能合约,使得这些合约能够与现实世界进行互动(读取到外部世界的数据)。由于区块链的本身是封闭的系统,无法访问外部数据,预言机在信息传递中扮演着桥梁的角色,它可以从外部世界获取信息并将其传递给区块链。 + +例如,如果智能合约要获取天气预报、金融市场价格、体育比赛结果等数据, 都需要通过预言机来获取源数据然后传递给合约。 + +### 预言机的工作机制 + +1. **数据收集**:预言机从多个数据源收集信息。这些数据源可以是API、数据库或其他信号源。预言机通常会对数据进行验证,以确保其准确性和可靠性。 + +2. **数据验证**:为了避免单点故障和数据操控,许多预言机采用多源数据验证机制。通过从多个来源获取数据,预言机可以计算出一个共识值,确保数据的真实性。 + +3. **数据传输**:经过验证的数据随后被发送到区块链,通常通过调用智能合约的接口。这一过程需要确保数据的完整性和不可篡改性。 + +4. **智能合约执行**:一旦智能合约接收到数据,它可以根据预设的逻辑进行执行。例如,根据实时价格数据自动执行交易。 + +### 预言机的类型 + +预言机可以分为以下几类: + +1. **软件预言机**:从在线数据源(如API)获取数据,适用于公共和可访问的信息。 + +2. **硬件预言机**:通过传感器等设备获取物理世界的数据,如温度、湿度等。 + +3. **去中心化预言机**:通过多个独立节点提供数据,降低单点故障的风险,增强数据的可靠性。例如,Chainlink就是一个著名的去中心化预言机网络。 + +4. **中心化预言机**:由单一实体控制,虽然实现简单,但存在信任问题和潜在的单点故障风险。 + +### 预言机的应用场景 + +预言机的应用场景非常广泛,包括但不限于: + +- **金融领域**:用于获取实时的资产价格,支持去中心化金融([DeFi](https://learnblockchain.cn/tags/DeFi?map=EVM))应用。 +- **保险**:通过天气预报数据自动触发保险索赔。 +- **游戏**:在基于区块链的游戏中获取实时数据,影响游戏结果。 + +### 面临的挑战 + +尽管预言机在区块链生态系统中发挥着重要作用,但它们也面临一些挑战: + +- **信任问题**:中心化预言机容易受到操控,去中心化预言机虽然可靠性更高,但仍需确保数据源的真实性。 +- **延迟问题**:数据的实时性可能受到网络延迟的影响,影响智能合约的执行时效。 +- **安全性**:预言机本身的安全性问题可能导致数据被篡改,从而影响智能合约的执行。 + +### 总结 + +预言机作为区块链技术的关键组成部分,连接了区块链与现实世界,为智能合约的应用提供了可能性和灵活性。 \ No newline at end of file diff --git "a/basic/\350\241\215\347\224\237\345\223\201.md" "b/basic/\350\241\215\347\224\237\345\223\201.md" new file mode 100644 index 0000000..273c884 --- /dev/null +++ "b/basic/\350\241\215\347\224\237\345\223\201.md" @@ -0,0 +1,49 @@ +## 衍生品概述 + +衍生品(Derivatives)是金融工具,其价值基于其他资产的表现。它们通常用于风险管理、投机或提高投资组合的回报。衍生品的主要类型包括期货、期权和兑换(Swap)。在区块链领域,衍生品的出现为传统金融市场带来了新的透明度和效率。 + +## 衍生品的基本类型 + +### 1. 期货合约 + +期货合约是买方和卖方在未来某一特定时间以约定价格买卖某种资产的协议。期货合约在交易所交易,确保了合约的标准化和透明度。 + +### 2. 期权合约 + +期权合约赋予持有者在未来某一时间以特定价格买入或卖出某种资产的权利,但没有义务。期权分为看涨期权和看跌期权,分别对应于买入和卖出。 + +### 3. 兑换合约 + +兑换合约是两个或多个当事方之间交换现金流的协议,通常基于不同的利率或货币。兑换合约在金融机构之间广泛使用,帮助管理利率风险和外汇风险。 + +## 区块链上的衍生品实现机制 + +### 1. 智能合约 + +区块链技术通过智能合约实现衍生品的自动化交易和结算。智能合约是运行在区块链上的自执行代码,能够在满足特定条件时自动执行合约条款。这种机制提高了透明度,减少了信任成本。 + +### 2. 去中心化交易所(DEX) + +去中心化交易所为衍生品交易提供了一个无需中介的平台。用户可以直接在区块链上进行交易,降低了交易成本和时间延迟。DEX利用流动性池和自动做市商(AMM)来提供市场深度。 + +### 3. 预言机 + +预言机用于将外部数据引入区块链,以支持衍生品合约的执行。例如,期货合约可能需要依赖于某种资产的市场价格,预言机可以提供实时的价格数据,确保合约按预期执行。 + +## 区块链衍生品的优势 + +### 1. 透明性 + +区块链技术的透明性使得所有交易记录都可追溯,减少了欺诈和操纵的可能性。 + +### 2. 安全性 + +区块链的去中心化特性降低了单点故障的风险,增强了交易的安全性。 + +### 3. 降低成本 + +通过去中心化交易所和智能合约,交易成本显著降低,用户可以享受更高的收益。 + +## 未来发展趋势 + +区块链衍生品市场仍在快速发展,未来可能会出现更多创新的金融产品和交易机制。随着监管的逐步完善,区块链衍生品的合法性和接受度将进一步提高。 diff --git "a/data/\346\225\260\346\215\256\346\234\215\345\212\241.md" "b/data/\346\225\260\346\215\256\346\234\215\345\212\241.md" new file mode 100644 index 0000000..9103814 --- /dev/null +++ "b/data/\346\225\260\346\215\256\346\234\215\345\212\241.md" @@ -0,0 +1,2 @@ +## 第三方数据服务 + diff --git "a/eth/\345\274\200\345\217\221/\345\220\210\347\272\246\344\272\244\344\272\222\345\272\223.md" "b/eth/\345\274\200\345\217\221/\345\220\210\347\272\246\344\272\244\344\272\222\345\272\223.md" new file mode 100644 index 0000000..1d2fe79 --- /dev/null +++ "b/eth/\345\274\200\345\217\221/\345\220\210\347\272\246\344\272\244\344\272\222\345\272\223.md" @@ -0,0 +1,52 @@ +## 合约交互库 + +合约交互库是区块链开发中一个重要的工具,它为开发者提供了一种方便的方式来与智能合约进行交互。智能合约是运行在区块链上的自执行合约,其代码和状态存储在区块链上。合约交互库的设计目标是简化与这些合约的交互过程,使得开发者能够更高效地构建去中心化应用(DApp)。 + +### 合约交互库的关键功能 + +合约交互库通常通过提供一组 API 来实现与智能合约的交互。这些 API 封装了底层与区块链的交互细节,允许开发者以更高层次的方式进行操作。以下是合约交互库实现的几个关键功能: + +1. **[ABI](https://learnblockchain.cn/tags/ABI?map=EVM)(应用二进制接口)解析** + 合约交互库通常会解析智能合约的 [ABI](https://learnblockchain.cn/tags/ABI?map=EVM) 或 [IDL](https://learnblockchain.cn/tags/IDL?map=Solana) 。ABI 描述了合约的函数、事件及其参数类型,开发者通过它来调用合约的特定功能。合约交互库会将 [ABI](https://learnblockchain.cn/tags/ABI?map=EVM) 转换为可调用的 JavaScript 或其他语言的函数,使得开发者能够直接调用。 + +2. **交易构建** + 合约交互库会帮助开发者构建交易。这包括设置合约地址、选择函数、传递参数以及设置 gas 限制等。库会自动处理这些细节,减少开发者的负担。 + +3. **事件监听** + 合约交互库通常提供事件监听功能,允许开发者订阅合约事件。这使得 DApp 能够实时响应合约状态的变化,例如代币转移或合约状态更新。 + +4. **错误处理** + 合约交互库会处理智能合约调用中的错误,提供易于理解的错误信息。这对开发者调试和优化 DApp 至关重要。 + +### 有哪些库? + +1. **Ethers.js** + Ethers.js 是以太坊交互库,专注于安全性和易用性。它允许开发者以更简洁的方式与智能合约交互,并且内置了对 TypeScript 的支持。 + +2. **Viem**: + Viem 是一个现代化的以太坊交互库,专注于类型安全和性能优化。它提供了比传统库更快的执行速度和更小的包体积。Viem 的特点包括: + - 完整的 TypeScript 支持,提供出色的类型推断和开发体验 + - 模块化设计,允许开发者只引入需要的功能 + - 内置的多链支持和 EIP 标准实现 + - 高性能的 ABI 编码/解码 + - 丰富的工具函数集合,简化常见操作 + - 支持公共和私有 RPC 方法 + - 优秀的测试覆盖率和文档支持 + +3. **Web3.js** + Web3.js 单独出现的时候,通常指的是用于与以太坊区块链进行交互。 目前这个库已经不再维护。 + +4. **Solana/web3.js** + Solana/web3.js 是 Solana 区块链的官方 JavaScript API 库。它提供了与 Solana 网络交互的完整功能集: + - 支持所有 Solana JSON RPC API 方法 + - 提供账户、交易和指令的创建和管理 + - 内置连接池管理和重试机制 + - 支持 WebSocket 订阅以监听链上事件 + - 完整的 TypeScript 类型定义 + - 支持自定义程序(智能合约)交互 + - 提供钱包适配器接口 + - 包含 SPL Token 程序的标准接口 + + + + diff --git "a/eth/\345\274\200\345\217\221/\345\256\211\345\205\250\345\267\245\345\205\267.md" "b/eth/\345\274\200\345\217\221/\345\256\211\345\205\250\345\267\245\345\205\267.md" new file mode 100644 index 0000000..784b52c --- /dev/null +++ "b/eth/\345\274\200\345\217\221/\345\256\211\345\205\250\345\267\245\345\205\267.md" @@ -0,0 +1,43 @@ +## 安全工 + +安全工具的发展历程与区块链技术的演进密切相关。最初,区块链的安全性主要依赖于其去中心化特性和共识机制。但随着智能合约的普及,安全问题逐渐显现,尤其是在代码漏洞和攻击向量方面。 + +开发者开始研发专门的安全工具,以提高智能合约的安全性和区块链网络的防护能力。这些工具的出现不仅提高了代码审计的效率,也推动了安全最佳实践的形成。 + +### 什么是安全工具? + +安全工具是在区块链环境中使用的各种软件和硬件解决方案,旨在检测、预防和响应安全威胁。这些工具可以帮助开发者和用户识别潜在的漏洞、恶意攻击和不当行为,从而保护区块链系统的完整性、可用性和保密性。 + +### 安全工具的分类 + +安全工具可以根据其功能和应用场景进行分类,主要包括以下几类: + +1. **智能合约审计工具** + 这些工具用于分析和审计智能合约的代码,识别潜在的漏洞和逻辑错误。常见的审计工具包括 Mythril、Slither 和 Oyente。 + +2. **区块链监控工具** + 用于实时监控区块链网络的状态,检测异常行为和攻击。这类工具可以帮助团队及时响应安全事件。示例包括 Blocknative 和 Alethio。 + + +### 关键技术 + +安全工具通常使用以下几个关键技术: + +1. **静态分析** + 智能合约审计工具通过静态分析技术对代码进行解析,识别潜在的漏洞和不安全的编程模式。这种方法不需要执行代码,可以在代码部署之前发现问题。 + +2. **动态分析** + 动态分析涉及在运行时监控智能合约的行为,以检测异常活动。通过模拟攻击场景,开发者可以评估合约在不同情况下的表现。 + +3. **多重签名** + 多重签名技术要求多个私钥才能执行特定操作,从而增加了对数字资产的保护层。这种机制有效降低了单点故障的风险。 + + + +### 相关概念 + +- **智能合约**:一种自执行的合约,其条款以代码形式写入区块链。智能合约的安全性直接影响到区块链应用的整体安全。 +- **去中心化身份(DID)**:一种新兴的身份验证技术,允许用户控制自己的身份信息,而不是依赖中心化的身份服务。 +- **公钥基础设施(PKI)**:一个管理公钥和数字证书的框架,用于确保数据传输的安全性。 + +通过以上介绍,希望开发者能够对区块链中的安全工具有更深入的理解,并在实际应用中有效地保障系统的安全性。 \ No newline at end of file diff --git a/excalidraw/EVM.excalidraw b/excalidraw/EVM.excalidraw index 6a0cf3a..be543a8 100644 --- a/excalidraw/EVM.excalidraw +++ b/excalidraw/EVM.excalidraw @@ -10842,8 +10842,8 @@ }, { "type": "text", - "version": 5876, - "versionNonce": 1672252916, + "version": 5877, + "versionNonce": 1069928217, "index": "bBL", "isDeleted": false, "id": "hjSGpKheox8k9N6n6_pwX", @@ -10879,8 +10879,8 @@ "type": "arrow" } ], - "updated": 1720430797379, - "link": null, + "updated": 1737207994972, + "link": "智能合约,,https://github.com/lbc-team/web3map/blob/main/eth/智能合约.md", "locked": false, "fontSize": 15.85042367890509, "fontFamily": 2, @@ -10926,8 +10926,8 @@ }, { "type": "text", - "version": 5957, - "versionNonce": 1705147212, + "version": 5958, + "versionNonce": 1170590873, "index": "bBN", "isDeleted": false, "id": "8jLIgunZEl04dRj1EiTPV", @@ -10950,8 +10950,8 @@ "frameId": null, "roundness": null, "boundElements": [], - "updated": 1720430797379, - "link": null, + "updated": 1737207954565, + "link": "钱包,,https://github.com/lbc-team/web3map/blob/main/basic/基础概念/钱包.md", "locked": false, "fontSize": 15.85042367890509, "fontFamily": 2, @@ -12502,8 +12502,8 @@ }, { "type": "rectangle", - "version": 5639, - "versionNonce": 460993240, + "version": 5672, + "versionNonce": 1956872249, "index": "bC4", "isDeleted": false, "id": "pIrcd-PnZTnb1ZbxqA15G", @@ -12528,14 +12528,14 @@ "type": 3 }, "boundElements": [], - "updated": 1718179602736, + "updated": 1737208353134, "link": null, "locked": false }, { "type": "text", - "version": 6343, - "versionNonce": 74352372, + "version": 6376, + "versionNonce": 964590551, "index": "bC5", "isDeleted": false, "id": "5MpLQa-bPlpfvdn7N0md8", @@ -12558,7 +12558,7 @@ "frameId": null, "roundness": null, "boundElements": [], - "updated": 1720430797379, + "updated": 1737208353134, "link": null, "locked": false, "fontSize": 14.26580851890562, @@ -12715,8 +12715,8 @@ }, { "type": "rectangle", - "version": 394, - "versionNonce": 39596248, + "version": 436, + "versionNonce": 907566809, "index": "bCB", "isDeleted": false, "id": "aNhUWebNLRKGuPbN34cow", @@ -12739,7 +12739,7 @@ "type": 3 }, "boundElements": [], - "updated": 1718179602736, + "updated": 1737208354739, "link": null, "locked": false }, diff --git a/scripts/update_excali_term_url.py b/scripts/update_excali_term_url.py new file mode 100644 index 0000000..055265e --- /dev/null +++ b/scripts/update_excali_term_url.py @@ -0,0 +1,38 @@ +import json + +files = [ + "basic/基础概念/多签钱包.md", + "basic/基础概念/托管钱包.md", + "basic/基础概念/插件钱包.md", + "basic/基础概念/硬件钱包.md", + "basic/基础概念/预言机.md", + "basic/衍生品.md", + "data/数据服务.md", + "eth/开发/合约交互库.md", + "eth/开发/安全工具.md" +] + +# 提取术语(不带.md的文件名) +terms = {} # 使用字典存储术语和对应的文件路径 +for file in files: + term = file.split('/')[-1].replace('.md', '') + terms[term] = file + +# 读取 EVM.excalidraw 文件 +with open('../excalidraw/EVM.excalidraw', 'r', encoding='utf-8') as f: + data = json.load(f) + +# 遍历所有元素 +for element in data.get('elements', []): + # 检查是否包含 originalText 和 link 字段 + if ('originalText' in element and + 'link' in element and + element['link'] is None and + element['originalText'] in terms): + # 找到匹配的术语,更新 link + term = element['originalText'] + element['link'] = f"{term},,https://github.com/lbc-team/web3map/blob/main/{terms[term]}" + +# 写回文件,保持格式 +with open('../excalidraw/EVM.excalidraw', 'w', encoding='utf-8') as f: + json.dump(data, f, ensure_ascii=False, indent=2) \ No newline at end of file