Blockchain-Base

基本简述

官方简介:https://www.ibm.com/think/topics/blockchain

官方定义

区块链官方解释:

Blockchain is a shared, immutable digital ledger, enabling the recording of transactions and the tracking of assets within a business network and providing a single source of truth.

Blockchain operates as a decentralized distributed database, with data stored across multiple computers, making it resistant to tampering. Transactions are validated through a consensus mechanism, ensuring agreement across the network.

In blockchain technology, each transaction is grouped into blocks, which are then linked together, forming a secure and transparent chain. This structure guarantees data integrity and provides a tamper-proof record, making blockchain ideal for applications like cryptocurrencies and supply chain management.

The key benefit of blockchain lies in its ability to provide security, transparency and trust without relying on traditional intermediaries, such as banks or other third parties. Its design reduces the risk of fraud and errors, making it especially valuable in industries where secure transactions are critical, including finance and healthcare. Additionally, blockchain helps businesses improve efficiency and reduce costs by streamlining processes and enhancing accountability.

3D design of balls rolling on a track

翻译:

区块链是一种共享的、不可更改的数字分类账,能够在商业网络中记录交易和追踪资产,并提供单一的真相来源。

区块链作为一个分散的分布式数据库运行,数据存储在多台计算机上,因此不易被篡改。交易通过共识机制进行验证,确保整个网络达成一致。

在区块链技术中,每笔交易都被归类为区块,然后将它们链接在一起,形成一条安全透明的链。这种结构可保证数据的完整性,并提供防篡改记录,使区块链成为加密货币和供应链管理等应用的理想选择。

区块链的主要优势在于它能够提供安全性、透明度和信任,而无需依赖银行或其他第三方等传统中介。区块链的设计降低了欺诈和错误的风险,因此在金融和医疗保健等对安全交易至关重要的行业尤为重要。此外,区块链还能通过简化流程和加强问责制,帮助企业提高效率和降低成本。

区块链类型

  • 公共区块链(Public Blockchain)

完全去中心化,交易透明,无法篡改(比特币,以太坊)

  • 私有区块链(Private Blockchain)

组织控制,仅限授权用户访问操作,不对外公开数据(企业内部账本系统)

  • 联盟区块链(Consortium Blockchain)

多组织联合管理,共同维护(银行间清算系统,供应链协作商)

  • 许可区块链(Permissioned Blockchain)

需许可参与区块链(私有/联盟),严格权限控制管理场景:read write verification(验证)

智能合约

智能合约是存储在区块链上的自动执行协议,其条款以代码形式编写,并在满足预定义条件时自动执行。它们可用于各种用途,例如转让公司债券或触发旅行保险赔付。通过自动化这些流程,智能合约可以加快交易速度,减少对中介机构的需求,并确保透明度和安全性。

不可变记录

交易记录在共享账本后,任何参与者都无法更改或篡改。如果交易记录出现错误,则必须添加新的交易来撤销错误,这样两笔交易才能同时可见。

工作原理

分布式账本技术➡️去中心化,透明,防篡改记录数据(四个步骤实现)

交易区块记录

将交易打包为一个区块(交易参与者+交易内容+交易金额+交易时间戳+其他数据)

区块数据分发在整个网络的多个节点

加密哈希连接区块

通过加密算法生成该区块的哈希值(“指纹”),同时包括上一个区块的哈希值➡️生成链式结构

防止区块内容的篡改(链式结构的连续性导致篡改需要改变所有节点中所有交易的副本)

构建不可逆区块链

区块只能添加无法修改,形成后属于不可逆状态

通过共识机制验证新区块(防止恶意伪造)

  • PoW(工作量证明)➡️安全且高能耗

大量计算竞争(挖矿),优先解题目标允许添加新区块

  • PoS(权益证明)➡️高速且低能耗

根据持币的数量和时间选择验证对象

信任确保和不变性

多节点同步数据,每一个节点账本完整且相同➡️单个节点数据异常,其他节点不认同,保护数据的完整以及正确性

协议和平台

区块链协议只定义一套用于数据记录,共享,保护规则(也就是基本运行的base)因此开发者需要一个平台提供构建部署去中心化的交互环境和工具

以太坊

以太坊是一个去中心化的开源区块链平台,允许开发者构建和部署智能合约和去中心化应用程序

Corda

Corda 是一个专为企业设计的分布式账本平台,可在许可网络上实现安全私密的交易。它允许组织仅与相关方共享数据并执行协议

Quorum

基于以太坊的开源,许可型区块链平台,专为企业级应用而设计

Cyber attack

研究方向为基于solana的智能合约

Reentrancy Attack(重入攻击)

合约在向另一个合约转账时,先转账再更新自己状态(通过回调函数反复转账)

function withdraw() public {
   require(balances[msg.sender] > 0);
   payable(msg.sender).call{value: balances[msg.sender]}(); // 转账
   balances[msg.sender] = 0; // 更新状态(太晚)
}

attack

在 call 被触发时,调用 withdraw() 再次转账

solana无需嵌套调用(类似以太坊)避免重入攻击

protect

  • 先更新状态,再调用外部合约
  • 添加reentrancy guard 锁
  • 调用transfer/send限制 gas

Front-running(抢先攻击)

通过监听公开的交易池,抢先提交更高的gas费抢占高利润交易

attack

DEX(去中心化交易所)被抢先买入

protect

  • commit-reveal模式➡️先提交hash,再公开交易
  • 限制调用函数的对象(交易白名单)

Integer Overflow/Underflow(整数溢出/下溢)

Solidity中整数溢出不会诱发报错而是turn round

uint8 x = 255; x += 1; // x 变成 0
uint8 x = 0; x -= 1; // x 变成 255

attack

构造特殊数字绕过验证以及盗币

protect

更新版本Solidity >= 0.8 自动检查溢出

Dos➡️Denial of Service(拒绝服务)

利用合约漏洞,导致合约卡住资源无法调用

attack

无限数组地址添加➡️gas数据超量/调用外部合约异常/······

protect

避免外部地址调用/数据结构size限制/timeout或者erro跳过

Access Control(访问控制漏洞)

合约关键函数(资产转移,合约销毁)未能正确限制调用者

function destroy() public {
   selfdestruct(payable(msg.sender));
}//任何人都可以调用

onlyOwner修饰器限制敏感操作;msg/.sender 进行严格身份验证;开源权限控制库(OpenZeppelin,Ownable)

Timestamp Dependency(时间戳依赖)

通过控制时间影响关键函数逻辑依赖时间戳(block.timestamp)的函数

attack

游戏合约:时间➡️胜负

随机数依赖block.timestamp+block.difficulty(易被挖矿控制)

protect

避免调用时间戳相关的依赖/使用专业链上随机数(Chainlink VRF)

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇