【Solana】SOL区块链破解生成代币
1.79K subscribers
202 photos
1 video
2 files
3 links
【Solana】SOL区块链破解生成代币
Download Telegram
Solana优点

DeFi、NFT交易量都仅次于以太坊: Solana能支援DeFi高频应用,因此Solana链上DeFi发展快速,另外受惠于Solana便宜的交易成本,许多人都在Solana链上发行NFT项目。

可扩展性高: Solana透过PoH+PoS及分片技术就可实现高吞吐量,改善以太坊当用户越多,可扩展性就越差的缺点。

快速、便宜的交易费用: Solana透过PoH+PoS核心技术,每秒可处理超过6.5万笔交易,交易费落在0.00064美元,比以太坊快上近仟倍。

完整的Solana生态圈: Solana高速及费用低的优点,让开发业者更容易创建应用程式,形成一个完整的Web3生态圈,包含DeFi、NFT市场、GameFi、消费支付等。
Solana缺点及风险
中心化程度偏高: Solana 因为需要高规格硬体来执行验证,因此仅有少数验证者能进行,且又都集中在云端,都是在增加中心化风险。

安全性疑虑:与以太坊高安全性比较之下,Solana使用PoH带来高效能的同时,容易有应用程式漏洞,所以存在安全风险问题。

SOL币掌握在特定人手中:这一点也是常被币圈人诟病,SOL进行ICO时,只有2-3%流入市场中,其余都是由内部人持有,可能会导致权力集中的问题。

发生多次网络当机:当交易量过高时,就会发生当机。像是在2021年曾发生多次当机,每次当机长达数小时至一天。虽然后来透过QUIC网络升级后已大幅改善,但未来还是要留意。

生态圈发展:
与以太坊相比,Solana开发者社区与工具发展有限,缺乏多样化。

美国SEC的监管风险: SEC可能会把Solana列为证券,影响SOL价格波动与市场应用。
Solana实际应用领域、项目 🌐
以下从Solana官网上,整理出Solana链上目前知名应用,让大家更能理解Solana作为公链的功能。💡

这些应用其实都可以是一家中型企业,有兴趣研究详细资料的人可以去查看Solana官网:🔗

Jupiter:Solana链上第一大的流动性聚合器 🦄

Jupiter DEX 是Solana链上首创的流动性聚合器,也是交易量最大的去中心化交易所,有时还超越全球最大的去中心化交易所Uniswap,最大功能是整合Solana链上多个DEX链上流动性,并提供最新报价,让用户只要输入代币与数量,透过演算法就能自动找到好的交易价格与最低滑点。📉📈


另外也有限价单挂、DCA平均成本定投、使用SOL币买卖迷因币、永续合约交易等功能。🪙🚀
🔥创建代币需要准备什么

1️⃣ 一个钱包

常用:
😍Phantom
😍Solflare


作用:
😍存 SOL
😍签名操作


2️⃣ 一点 SOL

用途:

😍支付手续费
😍创建账户


👉 成本比 ETH 低很多

3️⃣ 一个工具(两种方式)
✔️ 新手推荐(最简单)

👉 网页工具:
Solana Token Creator


✔️ 稍专业
👉 命令行:
😍solana CLI
😍spl-token 工具
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥最简单创建流程(需要写代码破解协议)

方法一:网页一键创建(推荐)

😍 打开 Token Creator 网站
😍 连接 Phantom 钱包
😍 填写信息:

代币名称(Name)
简称(Symbol)
总量(Supply)
小数位(Decimals,常用9)


😍点击创建
😍钱包确认交易

👉这个是常规的操作流程

方法二:命令行(稍进阶)

1️⃣ 安装 Solana CLI
2️⃣ 创建钱包
3️⃣ 创建 Token
spl-token create-token
4️⃣ 创建账户:
spl-token create-account <TOKEN_ADDRESS>
5️⃣ 发行代币:
spl-token mint <TOKEN_ADDRESS> 1000000
Please open Telegram to view this post
VIEW IN TELEGRAM
常见的代币漏洞和潜在风险,包括创新型代币的常见漏洞分析

常见代币漏洞分析
😍 重入攻击(Reentrancy Attack)

背景:
这种漏洞发生在合约调用外部合约时,如果没有合适的防护措施,外部合约可以再次调用当前合约的函数,从而绕过某些安全检查,造成资产的重复转账。

案例:

😍以太坊上的“DAO 攻击”就是通过重入攻击导致的大规模盗窃。

防护措施:

😍使用“Checks-Effects-Interactions”模式,在调用外部合约之前,先修改合约状态。
😍利用Reentrancy Guard(重入保护)来阻止递归调用。



😍 溢出/下溢漏洞(Overflow/Underflow)

背景:
如果合约在进行算数运算时,数值超出了数据类型的范围(例如 uint256 数值超过其最大值),可能会导致预期之外的结果,如负数、错误的余额等。


案例:

😍某些代币合约中,计算用户余额或转账时没有处理溢出,导致代币供应量出现错误

防护措施:

😍在 Solidity 中,使用 SafeMath 库进行所有的数学运算,确保不会出现溢出。
😍Solana 或其他平台类似的合约框架也提供了防溢出功能。
Please open Telegram to view this post
VIEW IN TELEGRAM
😍 授权漏洞(Allowance Vulnerabilities)

背景:
很多代币合约都允许用户通过 approve 和 transferFrom 来进行代币授权操作。如果授权机制没有适当的检查,可能会出现double-spending(双重花费)的问题,即用户可以被允许多次消费相同的代币。


案例:

ERC-20 合约中的 approve 操作可以被恶意利用,如果用户没有及时更新授权额度,攻击者可能会通过一些操作消费用户的代币

防护措施:
😍避免“无限授权”。
😍使用increaseAllowance 和 decreaseAllowance 替代直接的 approve 调用。


😍 不当的权限控制(Improper Access Control)

背景:
如果合约中没有正确设置权限控制,或者权限分配不清晰,攻击者可能会获得过高的权限,进行未授权的代币转账或增发。


案例:

😍如果项目方仍然持有 mint 权限(铸币权),攻击者通过获取该权限,可能会无限增发代币,导致代币贬值

防护措施:

😍权限要正确分配,例如使用 Ownable 设计模式,确保敏感操作只能由特定用户执行。
😍对于铸币权(minting)和冻结权(freeze)等权限,要谨慎设置,特别是应该考虑放弃权限的机制。
Please open Telegram to view this post
VIEW IN TELEGRAM
SPL 代币是什么
SPL 代币是在 Solana 区块链生态系统中运行的数字资产。管理 SPL 代币的代码由 Solana Labs 部署,它是 Solana 程序库的一部分。举个例子,与以太坊形成鲜明对比的是,以太坊上的每个代币都必须有自己的合约,而 Solana 上的代币则重复使用现有的合约。

涉及 SPL 代币的交易费用可以使用该平台的原生代币 SOL 支付。


SPL代币的特点:

SPL代币与其他区块链生态系统中的代币标准不同,例如以太坊的ERC标准、波场(TRON)的TRC-20和币安智能链的BEP-20。 SPL 代币的主要特征包括

😍 NFT 和可替代代币的适用性:SPL 代币涵盖同一标准下的可替代(可互换)和不可替代(唯一)代币。 (而以太坊对每种代币类型都有单独的标准。)

😍 可组合性:代币代码可以重复使用,从而用最小的更改即可创建新的 SPL 代币。这种可组合性意味着开发人员可以通过仅更改某些参数来快速地生成新代币。

😍 效率:SPL 代币直接受益于 Solana 区块链的高性能。该网络的高处理速度提高了 SPL 代币的交易效率,使这些代币比其他区块链上的操作更快、更具成本效益。


Sealevel是Solana的智能合约运行时(runtime),它旨在允许智能合约的并行执行。与其他领先的智能合约网络相比,这使该平台具有显著的性能优势。得益于这一功能,Solana可以在不影响网络性能的情况下同时处理数千个智能合约。
SOL区块链破解生成代币 破解合约绕过区块链制定新的规则合约代币 #区块链破解 #代币生成 需要做的人可以来联系:@Perlah544
双向联系:@TYSBJiqiRenbot
编写Solana智能合约代码

开发原生程序

😍 用cargo创建一个crate:原生程序只是一些crate,因此首先使用 cargo init<crate_name>--lib 创建一个新crate 。

😍 将 solana-program 添加到依赖项:在crate的根目录中,运行 cargo add solana-program 。这将把链上程序SDK添加为依赖项。

😍 设置所需的Cargo选项:打开 Cargo.toml ,把 crate-type = ["cdylib", "lib"] 添加到lib部分。

😍 定义入口函数:Solana需要知道该从哪里开始执行程序,从这里开始的函数称为入口(entrypoint)。

😍 导出入口函数:使用solana_program::entrypoint宏指令来告诉运行时入口函数是哪个,例如:solana_program::entrypoint!(entrypoint)

😍 编写业务逻辑:原始指令数据将会传递到入口。然后,开发人员需要做的是解码这些数据并采取适当的行为。编码格式不是由网络指定的,所以它是任意的。但是,建议使用Borsh序列化/反序列化程序,可以从solana_program::borsh*模块导出实用程序来使用它。

😍 编写和运行测试:定义常规的Rust单元测试,和/或使用solana-program-test进行集成测试。

😍 构建程序:前面提到的CLI工具套件附带了cargo-build-bpf,它可以构建适合部署的二进制工作文件。直接运行它或调用cargo build-bpf通过Cargo运行它。如果需要的话它将自动下载工具链,并构建二进制工作文件,将其放入target/deploy/目录。

编写测试:Anchor 使用 TypeScript 通过 Solana TypeScript SDK 定义集成测试。

构建程序:使用anchor build。

运行测试:使用anchor test。

SOL区块链破解生成代币 破解合约绕过区块链制定新的规则合约代币 #区块链破解 #代币生成 需要做的人可以来联系:@Perlah544
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
测试Solana智能合约

测试智能合约的功能和效率是 Solana 开发的关键。 Solana 提供了一系列测试工具和环境,旨在确保您的代码正常工作并集成到 Solana 生态系统中。


单元测试:Rust 中集成的单元测试框架是第一道防线,它允许您单独检查各个代码段,并在开发机器上进行本地测试。使用 Anchor 时,编写单元测试明显更具挑战性,因为框架本身仅使用 Solana TypeScript 客户端 SDK 提供的“外部”集成测试。

集成测试:集成测试可以评估您的智能合约与其他 Solana 网络组件的交互。集成测试有两种主要方法:solana-program-test,它是一个 Rust 的crate,为集成测试提供模拟的 Solana 网络环境;solana-test-validator,它运行本地 Solana 节点,用于在本地节点测试智能合约。后者明显慢得多,使用起来也更麻烦,但它的行为几乎就像一个真实的网络。 Anchor 使用后者来运行测试,但使用 Bankrun 测试框架可能是测试 Anchor 程序的另一个可行选择。


SOL区块链破解生成代币 破解合约绕过区块链制定新的规则合约代币 #区块链破解 #代币生成 需要做的人可以来联系:@Perlah544
部署Solana智能合约

测试 Solana 智能合约代码后,下一步是部署到 Solana 网络。操作方法如下:

😍 部署程序:您的智能合约在网络上的唯一标识符是程序 ID。要创建程序 ID,请通过在终端中执行以下命令来使用 Solana 命令行界面 (CLI):solana program deploy &lt;path_to_your_compiled_program>。此操作会编译您的智能合约并将其上传到网络,为其分配一个程序 ID 以供引用和交互。如果您想要程序的虚地址(vanity address),您可以提前生成它(例如使用 solana-keygen)并用 --keypair 参数将其提供给 solana program deploy。默认情况下,您将获得一个随机地址。使用Anchor时,可以使用anchor deploy。您可以通过将其密钥放入 ./target/deploy/&lt;program_name>-keypair.json 来提供虚地址。


😍 验证部署:通过检查网络上的程序 ID 来确认您的智能合约已正确部署。您可以使用 Solana Explorer、Solscan.io、另一个公共索引器或 Solana CLI 命令 solana program show &lt;program_id> 检索有关合约的详细信息,包括其大小和 SOL 余额。此步骤可确保您的智能合约已激活并准备好在网络上使用。


如果您在开发过程中遇到困难,或者需要对 Solana 智能合约进行第三方审核,我们可以随时为您提供帮助。
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Solana智能合约具体实现

😍 创建合约时创建权限表:在executive执行创建时,额外创建权限表即可。

😍 提供权限表的读写操作接口:提供/sys/contractAuth系统合约,专门作为访问权限表的系统合约。solidity使用0x1005地址。

😍 系统合约ContractAuth接口

function getAdmin(address contractAddr) public view returns (address) {}

function resetAdmin(address contractAddr, address admin)
public returns (int256);

function setMethodAuthType(
address contractAddr, bytes4 func, uint8 authType)
public returns (int256);

function openMethodAuth(
address contractAddr, bytes4 func, address account)
public returns (int256);

function closeMethodAuth(
address contractAddr, bytes4 func, address account)
public returns (int256);

function checkMethodAuth(
address contractAddr, bytes4 func, address account)
public view returns (bool);

function deployType() public view returns (uint256);

function setDeployAuthType(uint8 _type) public returns (int256);

function openDeployAuth(address account) public returns (int256);

function closeDeployAuth(address account) public returns (int256);

function hasDeployAuth(address account) public view returns (bool);


SOL区块链破解生成代币 破解合约绕过区块链制定新的规则合约代币 #区块链破解 #代币生成 需要做的人可以来联系:@Perlah544
Please open Telegram to view this post
VIEW IN TELEGRAM
👀 合约软链接资源生命周期

😍 用户可以通过 link 接口创建合约软链接资源,将会在/apps 目录下创建对应的资源,例如:调用link时参数为 Hello v1 0x123456,合约名为Hello,v1为版本号,0x123456为真实合约地址,将会创建 /apps/Hello/v1 合约软链接资源。

😍 同样的,用户可以通过 link 接口覆盖写入合约软链接资源,例如:再次调用link时参数为 Hello v1 0x666888,将会覆盖写入/apps/Hello/v1 合约软链接资源。

😍 用户可以通过控制台的 call 命令直接调用合约软链接,实现对真实合约的调用。

😍 用户可以通过调用 readlink 接口获取合约软链接的真实合约地址,在调用合约时也可以读取合约地址和ABI进一步调用。
Please open Telegram to view this post
VIEW IN TELEGRAM
BFS主要接口实现

部署合约


在部署合约时,将会预先确定该级目录父目录均已经存在且可以写入信息,然后启动虚拟机执行部署创建合约操作;虚拟机执行成功后, 创建合约的表,并将虚拟机执行后的合约代码段、ABI、状态数据等写入合约表,最后在父目录的数据表中记录新部署的合约的元信息。整体流程如下图所示,流程图以创建“/apps/Hello/World”为例。


SOL区块链破解生成代币 破解合约绕过区块链制定新的规则合约代币 #区块链破解 #代币生成 需要做的人可以来联系:@Perlah544
智能合约漏洞分析

本章把以太坊智能合约漏洞发生的原因分为是哪个层面:Solidity层面、EVM层面和区块链层面。如下表所示,所列出的漏洞都有对应真实案例,这些漏洞造成了巨额的资金损失。


SOL区块链破解生成代币 破解合约绕过区块链制定新的规则合约代币 #区块链破解 #代币生成 需要做的人可以来联系:@Perlah544
【一、Solidity层面】

这一层发生的漏洞主要是因为代码编写的逻辑问题或是使用了不当的Solidity内置方法,简而言之,它们基本都和Solidity的语言特性有关。例如

😍 重入攻击:是由于外部函数对合约的send()或者call.value()方法进行了递归调用造成的漏洞,解决办法是改为使用transfer(),该方法只能被调用一次。需要注意的是合约中应避免使用send()或者call.value()方法,以免受到重入攻击;

😍 访问控制攻击:是由于合约未设置函数的访问权限而造成的漏洞,解决办法是为函数加一个onlyOwner修饰符,限制函数访问;

😍 整数溢出:是由于在这个语言中,要计算的数如果超过了EVM能处理的数字范围(0~2256-1)就会重新从0或2256-1开始计数,解决办法是智能合约中只要是数学计算都使用safe-Math库;

😍 未检查返回值:是由于合约使用了send()或call.value()函数,却没有检查函数是否执行成功就进行下一步操作导致的漏洞,解决办法是校验成功后再下一步;

😍 拒绝服务:是由于攻击者恶意回退函数执行失败,使得原合约无法进行下一步操作而造成的漏洞,解决办法是把主动退款改为让用户申请退款,这样一个用户退款失败不影响合约继续执行。 这里需注意的是智能合约中能写成pull形式(用户主动发起调用)的代码不要写成push形式(合约主动执行操作)的代码;


SOL区块链破解生成代币 破解合约绕过区块链制定新的规则合约代币 #区块链破解 #代币生成 需要做的人可以来联系:@Perlah544
Please open Telegram to view this post
VIEW IN TELEGRAM