分享百科

Solana

区块链生态全景介绍 - 以太坊、Layer2 扩容 、Solana、SUI 、跨链桥 主要内容: 1. **比特币的回顾与局限:** - 比特币被定义为去中心化的数字货币,采用PoW共识机制,约10分钟出一个块,被誉为“数字黄金”。 - 其不足之处在于无法支持除转账以外的复杂程序运行,仅能进行简单的交易。虽然有改进方案,但尚未成熟。 - PoW机制消耗大量能源,且交易处理速度较慢(TPS低),不适合日常支付。 2. **以太坊的创新与发展:** - 以太坊是一个去中心化的应用平台,目标是成为“世界计算机”,允许在网络上运行各种程序。 - 由Vitalik Buterin在2013年提出,并于2015年上线,结合 比特币 + 智能合约的概念。 - Hashkey是早期投资以太坊的团队。 - 以太坊的主要改进包括: - 共识机制从PoW切换到PoS(2022年),大幅降低能源消耗,出块速度更快(约12秒)。 - 内置以太坊虚拟机(EVM),可以执行各种程序,可以理解为去中心化的操作系统或数据库+操作系统。 3. **以太坊面临的挑战与解决方案:** - **PoS机制的运行原理:** 通过质押ETH来保护网络安全,验证者需要质押32个ETH才能参与出块,并随机选出出块者,其他验证者进行验证签名。 - **程序执行与Gas机制:** 以太坊通过Gas来衡量和限制程序的工作量,用户在发起交易时需要设置Gas Limit和Gas Price,矿工根据Gas Price排序交易并收取费用。 - **程序无限循环的风险:** Gas机制可以防止无限循环的程序阻塞网络。 - **程序收费的公平性:** Gas的消耗与程序的计算复杂度相关。 - **程序执行的验证:** POS机制下,验证者会验证出块者的交易和区块。 4. **以太坊的扩容方案:** - **原地扩容:** 包括提高Gas Limit(目前约3500万)、引入临时存储空间(Blob)给Layer 2使用,以及早期提出的分片方案(目前已转向Layer 2)。 - 二层扩容(Layer 2): 将部分交易放到链下执行,减轻主网压力,提高TPS。Rollup是主要的Layer 2方案。 - **乐观Rollup:** 将压缩的交易数据和结果提交到Layer 1,乐观假设交易正确执行,通过事后挑战来验证。代表项目有Hashkey Chain、Base、Optimism。 - **ZK Rollup:** 除了交易数据和结果,还提交交易执行的零知识证明(ZK Proof),在数学上证明交易的正确性。代表项目有zkSync、StarkWare、Linea。 - Layer 2的优势在于更高的TPS和更快的确认时间,但安全性验证机制有所不同。 5. **其他Layer 1区块链平台:** - **EVM兼容链:** 借鉴EVM但使用不同的共识机制,如BNB Chain(BSC,PoSA共识,约3秒出块,41个验证节点)、Polygon、Avalanche等。交易所如币安、火币、OKX早期都曾发布自己的EVM兼容链。 - **非EVM兼容链:** 有自己的虚拟机和编程模型,如Solana(PoH+PoS共识,约0.4秒出块,理论TPS高,节点要求高,程序和数据分离,交易并行处理,Meme币文化繁荣)、Sui(面向对象模型,Token为一等公民,编程语言层面保证Token安全,可并行处理,TPS高)。 6. **跨链技术:** - 由于不同的区块链之间是相互隔离的,需要跨链桥来实现资产和数据的互操作。 - 跨链桥的基本原理是在一条链上锁定资产,然后在另一条链上发行或解锁等量的资产。 - 存在多种跨链桥服务和协议,包括Layer 2官方桥、交易所集成的跨链服务以及第三方跨链协议(如LayerZero、Wormhole、Circle CCTP、Chainlink)。 7. **去中心化存储:** - 区块链不适合存储大量多媒体文件。 - 去中心化存储协议(如IPFS、Arweave)可以用于存储应用的前端代码和其他数据,实现应用的完全去中心化,并保证数据不被篡改。
546
0
0
5天前
本视频是关于Solana程序(智能合约)安全性的课程,主要内容包括最佳安全实践、常见攻击向量以及安全测试方法。以下是视频的核心内容和关键论据总结: 1. **核心内容概括**: - 本周课程专注于Solana程序的安全性,强调开发者在编写智能合约时应遵循的最佳安全实践。 - 课程内容包括代码质量、测试、模糊测试(fuzzing)和审计等安全支柱,旨在帮助开发者提高智能合约的安全性。 2. **关键论据和信息**: - **代码质量**:开发者需了解常见的安全漏洞(如OWASP 10),并在设计阶段就考虑安全性,采用多层防御策略。 - **测试的重要性**:不仅要测试程序的正确性,还要模拟攻击者的思维,进行全面的安全测试,包括集成测试和模糊测试。 - **模糊测试**:通过输入大量随机数据来发现潜在漏洞,强调其在发现安全问题中的有效性。 - **审计**:建议在完成代码质量和测试后进行审计,以获得独立的安全评估,审计过程应包括对系统整体架构的理解和外部依赖的检查。 - **安全意识**:开发者和团队成员需保持安全意识,定期学习和更新安全知识,以应对不断变化的安全威胁。 总之,视频强调了在Solana智能合约开发中,安全性是一个多层次的过程,开发者需要从代码质量、测试到审计等各个方面进行全面考虑,以确保程序的安全性。
50
0
0
2025-04-14 15:45
在本次Solana审计员训练营的第六课中,讲师Andrej讨论了在Solana区块链上使用Anchor框架时常见的安全漏洞和攻击向量。课程的主要目标是创建一个公共数据库,记录这些攻击向量的示例,以帮助开发者识别和避免潜在的安全问题。 ### 核心内容 1. **常见攻击向量**:课程首先介绍了几种常见的攻击向量,包括签名授权、任意跨程序调用(CPI)、重复可变账户、所有权检查、程序派生地址(PDA)权限等。 2. **高级攻击向量**:随后,讲师提到了一些更复杂的攻击向量,如钓鱼攻击、私钥泄露、三明治攻击、抢跑攻击、闪电贷攻击等。 ### 关键论据和信息 - **签名授权**:确保签名者被授权调用指令,初学者常常忽视这一点,可能导致未授权访问。 - **任意CPI**:在进行跨程序调用时,必须验证目标程序的ID,以防止黑客利用恶意程序。 - **重复可变账户**:确保输入的两个账户地址不同,以避免意外行为。 - **所有权检查**:确保账户的所有者是预期的程序,以防止恶意账户的利用。 - **PDA权限**:确保PDA的权限不被滥用,特别是在涉及资金转移的情况下。 - **钓鱼攻击**:用户应警惕假冒网站和信息,以保护自己的资产。 - **私钥泄露**:开发者需注意在公共代码库中不泄露私钥。 - **三明治攻击和抢跑攻击**:这些攻击利用交易的顺序,可能导致资产损失。 - **整数溢出和精度损失**:开发者需谨慎处理整数运算,以避免潜在的安全漏洞。 课程强调了开发者在编写智能合约时应采取的安全措施,并鼓励参与者贡献新的攻击向量和示例,以丰富公共数据库的内容。
55
0
0
2025-04-14 10:07
在本视频的第五课中,讲师Andrej探讨了在编写Solana智能合约和Web3应用程序时的安全最佳实践,强调了几个关键的安全支柱。 ### 核心内容概括 视频主要介绍了智能合约开发中的安全原则,包括代码质量、测试、先进的测试方法(如模糊测试)以及审计的重要性。讲师强调,安全性不仅依赖于代码的正确性,还需要开发者具备安全意识,主动预防潜在的安全问题。 ### 关键论据和信息 1. **代码质量**:开发者应了解常见的安全漏洞(如OWASP 10),并在设计阶段就考虑安全性,采用多层防御策略,确保代码结构清晰,便于审计和维护。 2. **测试的重要性**:测试不仅是为了验证功能的正确性,还应模拟攻击者的思维,寻找潜在的漏洞。模糊测试被认为比集成测试更有效,因为它可以覆盖更广泛的输入空间。 3. **审计的必要性**:即使开发者自信于自己的代码,审计仍然是必要的,因为外部审计人员可以提供不同的视角,发现开发者可能忽视的安全问题。 4. **安全透明性**:鼓励开放审计、代码审查和漏洞奖励计划,以提高整体安全性。 5. **社会工程学测试**:教育团队成员识别和防范社会工程攻击,确保人力资源也是安全链中的一部分。 6. **持续学习**:开发者和审计人员都应不断学习最新的安全问题和攻击向量,以保持对安全威胁的敏感性。 总之,视频强调了安全性是一个系统性的问题,涉及代码、测试、审计和团队的整体安全意识。开发者应主动学习和实施最佳实践,以确保智能合约的安全性。
61
0
0
2025-04-14 10:06
在本次Solana审计员训练营的第四课中,讲师Andrej深入探讨了Trident工具的模糊测试(fuzzing)功能,特别是其附加特性。以下是本课的核心内容和关键论据总结: 1. **核心内容概括**: 本课主要介绍了Trident在模糊测试中的一些高级功能,包括不变性检查(invariant checks)、指令序列(instruction sequences)、自定义错误处理(custom error handler)、结构化数据(well-structured data)、客户端方法(client methods)以及Trident清单(trident manifest)。这些功能旨在提升模糊测试的效率和准确性。 2. **关键论据和信息**: - **不变性检查**:允许开发者在指令调用前后比较账户状态,以确保程序行为符合预期,特别是在代币转账等操作中。 - **指令序列**:开发者可以定义指令的执行顺序,确保初始化等必要步骤在其他指令之前执行,从而避免随机顺序带来的问题。 - **自定义错误处理**:可以为每个指令指定错误处理逻辑,以便在指令返回错误时进行特定的检查和处理。 - **结构化数据**:允许开发者为指令输入数据设定规则,确保生成的数据符合特定条件,例如时间戳的顺序。 - **客户端方法**:提供了一些方法来定制模糊测试环境,例如在测试开始前添加自定义账户。 - **Trident清单**:通过trident.toml文件,开发者可以配置模糊测试的参数,如迭代次数、运行时间和统计信息等。 此外,Andrej还提到了一些正在开发的新功能,包括轻客户端(light client)以提高模糊测试性能、减少手动工作、增加统计信息等。这些功能的实现将进一步增强Trident的用户体验和测试能力。 最后,讲师通过代码示例展示了如何在实际项目中应用这些功能,强调了模糊测试在发现程序错误和提升代码安全性方面的重要性。
101
0
0
2025-04-14 10:05
本视频是Solana审计员训练营的第三课,主要介绍了模糊测试(fuzzing)及其工具Trident。以下是视频的总结: 1. **核心内容概括**: 视频首先解释了模糊测试的概念及其重要性,接着介绍了Trident的功能和架构,最后通过实际示例演示了如何使用Trident进行模糊测试。 2. **关键论据和信息**: - **模糊测试的定义**:模糊测试是一种自动化技术,通过生成随机的有效、无效或意外输入数据来测试程序,以发现潜在的未知漏洞和错误。 - **模糊测试的重要性**: - 提高测试和安全性的信心。 - 覆盖意外的边界情况和错误。 - 低维护成本,一旦设置好可以长时间运行。 - 易于扩展,添加新指令时只需调整输入。 - **Trident的特点**: - 作为引导模糊测试工具,支持自定义生成的数据。 - 能够处理每秒数十到数百条指令,未来目标是提高到数千条。 - 支持跨程序调用(CPI),可以与主网程序进行模糊测试。 - **实际示例**:视频中展示了如何初始化Trident,编写模糊测试,运行测试并分析输出,最终发现了一个由于输入超出范围而导致的程序崩溃。 通过本课,观众能够理解模糊测试的基本原理及其在提高Solana程序安全性方面的应用,同时掌握使用Trident进行模糊测试的基本流程。
48
0
0
2025-04-14 10:03
在本次Solano审计员训练营的第二课中,主要讨论了单元测试和集成测试的重要性及其在Solano程序中的应用。以下是视频的核心内容和关键论据总结: 1. **核心内容概括**: - 本课重点介绍了单元测试和集成测试的定义、区别及其在Solano程序中的应用。讲解了如何使用Rust和TypeScript进行测试,并探讨了Anchor清单的使用、时间前移的测试方法以及最佳测试实践。 2. **关键论据和信息**: - **单元测试与集成测试的区别**: - 单元测试旨在验证单个函数或小组件的正确性,而集成测试则测试多个组件之间的交互。 - 单元测试的执行时间较短,因为只需测试部分指令,而集成测试需要启动Solano环境,执行时间较长。 - **Rust和TypeScript的测试方法**: - Rust测试使用Solana程序测试库,允许开发者手动设置账户和系统变量,提供更高的控制力。 - TypeScript测试通常与Anchor框架结合使用,自动启动Solano测试验证器,但控制力相对较低。 - **Anchor清单的使用**: - Anchor清单(anchor.toml)允许开发者指定要克隆的程序和账户,从而在测试中重用它们。 - **时间前移的测试方法**: - Rust中可以使用`warpToSlot`和`setSysVar`等函数来前移时间,而TypeScript中可以通过减少截止时间或使用Bank Run框架来实现。 - **最佳测试实践**: - 建议开发者编写易于理解的测试结构,测试不幸路径(即无效输入),进行广泛的测试,使用断言检查状态变化,并在测试中添加注释以提高可读性。 通过本次课程,参与者可以更好地理解如何在Solano程序中有效地进行测试,提升程序的安全性和可靠性。
61
0
0
2025-04-14 10:01
本视频是Solana审计员训练营的第一讲,由Ackee团队的成员Aki和Andrej主讲,介绍了课程内容和高级Anchor框架的相关知识。 ### 核心内容概括 视频主要介绍了Solana审计员训练营的课程结构、目标以及Anchor框架的基本概念。课程旨在提升参与者对Solana区块链安全性的理解,特别是Anchor框架的使用,帮助他们掌握智能合约审计的技能。 ### 关键论据和信息 1. **课程结构**: - 课程将涵盖高级Anchor内容、集成测试和单元测试、模糊测试(fuzzing)、安全最佳实践、常见漏洞向量以及“夺旗赛”(Capture the Flag)活动。 - 课程不包括Rust语言、Solana或区块链的基础知识,参与者需具备一定的相关经验。 2. **Anchor框架的优势**: - Anchor框架通过简化Solana程序的开发过程,提高了安全性,减少了开发者在编写代码时可能遗漏的检查。 - 介绍了Anchor中的几个重要宏(如程序宏、账户宏),这些宏可以自动生成代码,处理账户的序列化和反序列化,确保账户的正确性和安全性。 3. **安全性和工具的重视**: - Aki团队强调了安全审计的重要性,并提到他们正在开发开源工具(如Trident模糊测试器)来支持这一领域。 - 课程还将讨论安全最佳实践和常见的安全漏洞,以帮助参与者在实际工作中应用所学知识。 4. **IDL(接口定义语言)**: - IDL是用于定义与Solana程序交互的标准化JSON架构,能够帮助前端应用程序与智能合约进行有效沟通。 5. **课程目标**: - 通过本课程,参与者将获得对Solana区块链及其安全性的深入理解,掌握使用Anchor框架进行智能合约开发和审计的技能。 总之,本视频为Solana审计员训练营奠定了基础,强调了安全性、工具开发和实用技能的重要性,为参与者提供了清晰的学习路径。
555
0
0
2025-04-14 10:00
在本期视频中,主持人讨论了如何通过对交易机器人的分析来提升数据分析的效果。核心内容包括对Solana平台上交易机器人的识别和分析方法。 主要观点: 1. 交易机器人在某些启动平台上的交易量占比显著,例如在PumpFun平台上,约33%的交易量来自机器人。 2. 主持人强调了建立简单有效的分析方法的重要性,建议在没有深入了解特定区块链的情况下,保持分析的简洁性。 关键论据和信息: - 主持人采用了一种基于交易失败率和交易频率的简单方法来识别机器人:如果用户的交易失败率超过25%且交易次数超过15,000次,则可能是机器人。 - 这些数据的来源包括Helios公司的研究,认为约8%的失败交易是由真实用户发起的,因此将阈值设置为25%是合理的。 - 最终,主持人通过构建一个表格来标记交易者是机器人还是人类,得出了约1300万次交易是由机器人完成的结论。 视频最后,主持人预告了下一期将讨论数据可视化和仪表板结构的重要性,以帮助数据分析师更好地展示和评估数据。
77
0
0
2025-04-09 19:18
在本视频的第四集中,主持人讨论了如何分析和计算Solana协议的交易量。视频的核心内容包括两种情况:理想情况下,协议已经在数据表中提供了交易量数据;而在复杂情况下,主持人分享了如何通过解析交易日志来获取交易量。 关键论据和信息如下: 1. **理想情况**:如果协议的数据已经在“DEX交易表”中可用,可以直接通过汇总每周的交易金额来计算总交易量。 2. **复杂情况**:对于Moonshot的交易量计算,主持人尝试了多种方法,最终通过解析交易日志中的转账信息来提取每笔交易的SOL值,并将其转换为美元价值。 3. **数据处理**:使用正则表达式提取特定文本中的数字,并将多个交易记录展开为单独的行,以便于汇总和计算。 4. **后续内容**:视频最后提到,下一集将讨论交易机器人,并计划介绍数据可视化和仪表板创建的内容。 总的来说,视频强调了在数据分析中灵活应对不同情况的重要性,并提供了具体的技术细节和方法。
83
0
0
2025-04-09 18:56
在本视频的第三集中,主持人介绍了如何计算交易平台上的总交易者数量。视频的核心内容包括三种不同的方法来获取这一数据:使用经过整理的Solana Trades表、使用解码后的表以及在没有IDL的情况下使用原始指令数据。 关键论据和信息如下: 1. **使用Solana Trades表**:如果交易平台的数据已在此表中解码,可以通过筛选项目(如PumpFun)并按周分组,统计独立交易者和交易ID的数量,从而得出总交易者数量。 2. **使用解码后的表**:对于没有在整理数据中列出的协议(如Moonshot),可以通过解码其指令数据,提取买入和卖出交易的信息,创建自己的表格,并同样按周分组统计交易者和交易数量。 3. **使用原始指令数据**:在没有IDL的情况下,可以通过分析Solana的指令调用,提取买入和卖出的指令数据,使用字节数组子串来识别指令的类型,最终同样按周统计交易者和交易数量。 视频最后提到,下一集将讨论交易量的计算,涉及美元价值和总交易量的聚合。
63
0
0
2025-04-09 18:56
在本视频的第二集中,主持人继续探讨Solana平台的数据分析,重点介绍如何计算通过启动平台(launchpad)创建或铸造的代币总数。视频的核心内容包括以下几个方面: 1. **代币铸造的计算方法**:主持人使用了Solana的`tokens_solana.transfers`表,该表提供了关于代币转账的详细数据,特别是铸造(mint)操作。通过过滤铸造操作,用户可以获取特定启动平台(如pumpfun)上创建的代币信息。 2. **数据过滤与分析**:为了专注于pumpfun平台的代币,主持人介绍了如何找到外部执行账户(outer executing account),并通过区块浏览器查看相关交易,以确定代币铸造的具体程序和地址。 3. **数据展示与解读**:视频中展示了如何提取和分析数据,包括按周统计代币铸造的数量、唯一交易签名者的数量等。主持人强调了理解这些数据表的重要性,并指出在2025年初代币创建活动显著增加。 4. **未来内容预告**:主持人提到接下来的几集将会深入探讨更复杂的数据分析,包括总交易者数量的计算,使用DEX交易表和原始数据进行分析等。 总的来说,本集视频为观众提供了关于Solana平台代币铸造的实用分析方法,并为后续更复杂的内容奠定了基础。
88
0
0
2025-04-09 18:55
这段视频是一个系列的第一集,内容主要围绕如何从头到尾构建一个Solana仪表板,具体聚焦于Solana Launchpad市场概览。视频的核心观点是分析Solana上所有代币启动平台的各项指标,包括收入、交易者数量和创建的代币等。 在视频中,作者首先介绍了如何计算Pump.Fund的收入。他使用了Solana账户活动表来追踪成功的交易,并过滤出仅有资产流入的情况。作者强调了获取Pump.Fund费用地址的重要性,并指出该平台通过多种方式获得收入,包括铸币、每次交换和流动池迁移等。通过对数据的逐周汇总,作者展示了Pump.Fund的收入趋势。 接下来,作者提到在后续的集数中将继续探讨其他关键指标,如交易者数量、创建的代币、市场份额以及如何识别交易中的机器人等。这一系列内容将为观众提供深入的市场分析和数据解读。
682
0
0
2025-04-09 18:55
实现一个 Swap_2, 配套代码: https://github.com/deanmlittle/solar-developers-open-course-amm
73
0
0
2025-04-04 14:16
实现一个 Swap_1, 配套代码: https://github.com/deanmlittle/solar-developers-open-course-amm
93
0
0
2025-04-03 10:22
登链社区