# blockchain-learning **Repository Path**: xuzimian/blockchain-learning ## Basic Information - **Project Name**: blockchain-learning - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-20 - **Last Updated**: 2025-06-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Introduce Blockchain learning,Mainly web3 related. ## Bitcoin 比特币使用区块链技术实现了数字货币的可信支付。 电子货币本质上仍然是法币,它仍然是由央行发行,只是以计算机技术把货币以实体纸币形式的流通变成了银行计算机系统的存款。和纸币相比,电子货币具有更高的流动性。我们每天使用的网上银行、支付宝、微信支付等,都是这种方式。 而比特币作为一种数字货币,它和电子货币不同的是,比特币不需要一个类似银行的中央信任机构,就可以通过全球P2P网络进行发行和流通,这一点听上去有点不可思议,但比特币正是一种通过密码学理论建立的不可伪造的货币系统。 [More Detail](./Bitcoin/README.md) > **电子现金是银行来记账,去中心化电子记账系统是参与者共同记账:** > 假设现有4个人分别称之为ABCD,他们之间发起了3个交易,A转给B10个比特币,B转给C5个比特币,C转给D2个比特币。如果是传统的记账方式, > 这些交易会记录在银行的系统中,这些信息由银行来记录,我们相信银行不会随意添加、删除或修改一条交易记录,我们也不会关注到底有哪些交易, > 我们只关注自己的账户余额。而比特币的记账方式为ABCD每个人保存了这样一份账本,账本上记录了上述交易内容,如果每个人账本实时的一致,ABCD就不再需要银行。 > > 比特币是这样做的,每当有人发起一笔交易,他就要将一笔交易广播至全网,由全网中的某一个人,把一段时间内的交易打包好记录到一个区块上, > 再按照顺序把这些区块,一个一个的链接在一起,进而形成了一个链条,这就是所谓的区块链。 > **带来的问题如下:** > 1. 我凭什么要参与这个系统,我为什么要动用自己的计算机资源来存储这些信息呢? > 2. 以谁的记录为准呢?比如上面的账单顺序,A用户可能是这个顺序,但是B可能顺序不一样,甚至可能B根本就没有接收到C给D转账的这个消息。 > 3. 比特币如何做到支付功能,保证该是谁的钱就是谁的钱,而且只有其所有者才能花。 > 4. 如何防伪、防篡改以及双重支付,防伪是验证每条交易的真的是某人发出的,比如B可能杜撰一条消息,说某某给我转了一笔钱,这就是一个假消息, 或者B说我给某人转了多少钱,但是实际上他并没有这么多钱,又怎么办。防篡改指的是B可能想从区块链上把自己曾经转给某人钱的记录删掉, 这样他的余额就会增加。双重支付是指,B只有10比特币,他同时向C和D转10个比特币,造成双重花费。 ### 1. 为什么要记账? 因为记账有奖励,记账有手续费的收益,而且打包区块的人有系统奖励,奖励方案是,每十分钟生成一个区块,每生成一个区块会奖励一定数量的比特币, 最开始是50个BTC,过4年会奖励25个BTC,再过4年再减少一半,以此类推。这样比特币的产生会越来越少,越来越趋近于一个最大值, 计算公式是:50×6×24×365×4×(1+1/2+1/4+1/8+…)≈2100万,其中最初奖励50个比特币,每小时有6个区块,每天24小时,每年365天,前四年是如此,之后每四年减半。 > 此外,记账奖励还有每笔交易的小额手续费,每个交易发起都会附带一定的手续费,这些手续费是给记账的矿工的。 ### 2. 以谁为准? 各个节点通过工作量证明机制来争夺记账权,他们计算一个很复杂的数学题,第一个计算出来的节点就是下一个区块的产生者。 这个数学题很难,难到没有一个人能通过脑子算出来,它是基于概率的方法,矿工必须通过遍历、猜测和尝试的办法才能解开这个未知数。 这个数学难题到底是什么呢? #### 2.1 哈希函数 哈希函数又称为数字摘要或散列函数,它的特点是输入一个字符串,可以生成另外一个字符串,但是如果输入不同,输出的字符串就一定不同, 而且通过输出的字符串,不能反推出输入。举个简单的例子,对1-100内的数模10,可以认为是一种哈希方法,比如98%10=8,66%10=6,98和66是输入, 模10是哈希函数,8和6是输出,在这个模型中,通过6和8无法推断输入是66和98,因为还可能是56和88等,当然因为这个例子比较简单,所以会出现哈希碰撞, 即66和56的结果都是6,输出的结果相同。一个优秀的哈希函数,可以做到输出一定不同,哈希碰撞的概率几乎为0。常见的哈希函数有很多, 比如MD系列和SHA系列等,比特币采用的SHA256算法,即输入一个字符串,输出一个256位的二进制数。 #### 2.2 挖矿原理 比特币每个区块的数据结构,每个区块由区块头和区块体两部分组成。 > 区块体中包含了矿工搜集的若干交易信息,图中假设有8个交易被收录在区块中,所有的交易生成一颗默克尔树,默克尔树是一种数据结构, > 它将叶子节点两两哈希,生成上一层节点,上层节点再哈希,生成上一层,直到最后生成一个树根,称之为默克尔树根,只有树根保留在区块头中, > 这样可以节省区块头的空间,也便于交易的验证。 > 区块头中包含父区块的哈希,版本号,当前时间戳,难度值,随机数和上面提到的默克尔树根。 ![Block Chain Data Struct](/Images/BlockChainDataStruct.jpg "Block Chain Data Struct") 假设区块链已经链接到了某个块,有ABCD四个节点已经搜集了前十分钟内全网中的一些交易信息,他们选出其中约4k条交易,打包好,生成默克尔树根, 将区块头中的信息,即发区块哈希+版本号+时间戳+难度值+随机数+默克尔树根组成一个字符串str,通过两次哈希函数得出一个256的二进制数, 即SHA256(SHA256(str)) = 10010011……共256位,**比特币要求,生成的结果,前n位必须是0,n就是难度值,如果现在生成的二进制数不符合要求, 就必须改变随机数的值,重新计算,只到算出满足条件的结果为止.** 假设现在n是5,则生成的二进制数必须是00000……(共256位). 一旦挖矿成功,矿工就可以广播这个消息到全网,其他的矿工就会基于该区块继续挖矿。下一个区块头中的父区块哈希值就是上一个区块生成的00000……这个数。 解决这个数学难题要靠运气,理论上,运气最好的矿工可能1次哈希就能算出结果,运气差的可能永远都算不出来。但是总体来看,如果一个矿工的算力越大,单位时间内进行的哈希次数就越多,就越可能在短时间内挖矿成功。 > **那么n是如何确定的呢?** > 比特币设计者希望,总体上平均每十分钟产生一个区块,总体上来看,挖矿成功的概率为1/2^n。现假设世界上有1W台矿机, > 每台矿机的算力是14T次/s = 1.4×10^13次/s,单位次/s称之为哈希率,10分钟是600s,所以10分钟可以做8×10^19次哈希运算, > 从概率角度看,想要挖矿成功需要做2^n次运算,可以列出等式2^n = 8×10^19,可以解出n约为66。 > 所以对于这种方法,我们没有办法使得自己的运气变的更好,只能提高自己的算力,尽快的算出结果。 ### 如何防伪、防篡改、防双重支付等问题 身份认证技术在生活中很常见,可以是人脸识别、签字、指纹等,但是这些方法在数字货币领域并不安全,因为它们一旦数字化,都可以通过复制的方法伪造。所以比特币采用了电子签名的方法。 #### 电子签名技术 注册成为比特币用户时,系统会根据随机数生成一个私钥,私钥会生成一个公钥,公钥又会生成一个地址,其中私钥必须保密,可以保存到硬盘里或者记到脑子里, 因为这个私钥是使用相应地址上的比特币的唯一标识,一旦丢失,所有的比特币将无法使用。 > 具体的转换过程,只要知道随机数->私钥->公钥->钱包地址这个过程 > 其中私钥可以对一串字符进行加密,而公钥可以对其进行解密,这就是非对称加密,这类算法总体上的功能都是一样的,只是具体算法有区别, > 由于这些算法比较复杂,与SHA265算法一样不多做介绍,感兴趣可以深入了解具体算法,但是对于比特币系统,只要了解其功能即可。 > 典型的算法是RSA,比特币采用椭圆曲线加密算法。 **转换过程:** 1. 首先使用随机数发生器生成一个私钥,它是一个256位的二进制数。私钥是不能公开的,相当于银行卡的密码。 2. 私钥经过SECP256K1算法生成公钥,SECP256K1是一种椭圆曲线加密算法,功能和RSA算法类似,通过一个已知的私钥,生成一个公钥,但是通过公钥不能反推出私钥。 3. 同SHA256算法一样,RIPEMD160也是一种HASH算法,由公钥可以得到公钥的哈希值,而通过哈希值无法推出公钥。 4. 将一个字节的版本号连接到公钥哈希头部,然后对其进行两次SHA256运算,将结果的前4字节作为公钥哈希的校验值,连接在其尾部。 5. 将上一步的结果使用BASE58进行编码,就得到了钱包地址(相当于银行账户)。比如A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa ![How To Generate Wallet Address](/Images/HowToGenerateWalletAddress.jpg "How To Generate Wallet Address") 通过以上的过程我们可以总结出私钥、公钥、钱包之间的关系如下图。可以看到通过私钥可以推出所有的值,公钥哈希和钱包地址之间可以通过BASE58和BASE58解码算法相互转化。 ![Relationship Key And Wallet](/Images/RelationshipKeyAndWallet.jpg "Relationship Key And Wallet") 了解了公钥、私钥、地址的概念后,防伪验证的过程就很容易理解,当A发起一笔交易后,对消息进行哈希,生成数字摘要,对数字摘要,通过私钥加密, 生成一个密码。之后A会广播这个条交易消息、公钥以及密码。收到消息的人首先对交易信息进行哈希生成摘要1,再通过公钥对密码进行解密,生成摘要2, 这样,如果两个摘要相同,说明这个消息确实是A发出的。所谓的签名,就是密文。 ![Transaction Validation](/Images/TransactionValidation.jpg "Transaction Validation") #### 余额检查 余额的概念应该说根深蒂固,余额是伴随着称之为借贷记账法而产生的,也是目前银行普遍采用的方法,将一个人的交易记录统计好后算出一个余额, 但是在比特币中没有余额这个概念,因为其采用的是UXTO模型的记账方法。比如A->B10个比特币,B->C5个比特币,对于第二笔交易来说, B在发起这笔交易时要注明第一笔交易的信息,这样就可以知道B曾经从A那里收到过10个比特币,说明满足第二笔交易发起的条件。 **所以比特币中余额的检查是通过追溯的方法。** ![Transaction Tracing](/Images/TransactionTracing.jpg "Transaction Tracing") 上图描述了两笔交易,交易10001中,B向C转了10个比特币,验证这笔交易的过程是:首先将B的签名通过B的公钥解密,然后再和交易的具体内容 (B签名左侧)对比,如果相同,说明消息是B发出的,然后再检查10000这个交易是否真的存在以及它的内容的真实性。 这两点都满足了,就说明交易10001是可以被接受的,否则拒绝接受。 实际上,真实的交易比这个复杂的多,因为有可能是多笔交易构成了输入,比如B->C20个比特币,是由多笔交易A->B10,D->B10构成的, 则前一笔交易ID就是两个ID,甚至可能更多。这里为了简单描述,只列举一笔交易。 #### 双重支付 A同时发了两条消息,同时给B和C转了10个比特币,实际上他只有10个会怎么样?假设D节点先收到了转给B10个BTC,然后收到了转给C10个比特币, 通过上面的验证方法,自然会拒绝后面的一个,与此同时,E节点可能先收到了转给C10个BTC,然后收到了转给B10个比特币,他自然会拒绝后者。 至于哪一笔交易最终会上链,就要看D和E哪个先解决难题,成功挖矿。 #### 防止篡改 假设A转给B10个比特币,但是他想把这个信息从区块链上删除,这样大家就都不知道这个事情存在,就可以赖账。 首先说一下最长链原则,假设某一个区块后面有两个矿工同时挖到了矿,或者由于网络延迟等原因产生了分歧,这时,各个节点先随意根据自己认为对的区块挖矿, 只到下一个区块产生,这时会有两条链,但是有一条是长的,比特币规定,以最长的链为准。如果某个节点仍然的固执的以较短的链为准,他就是在和大多数算力作对, 这样做的结果是,他挖的块不被大家认可,会浪费时间和算力。 ![The principle of longest link](/Images/PrincipleLongestlink.jpg "The principle of longest link") 回到上面的场景,A想赖账,就只能从记录了A-> B10个比特币这个消息的区块的前一个区块开始重新挖矿,造出一个支链来,但是实际上的区块已经前进了很多,他只能不停的追赶,而且在追赶的同时, 主链也在前进,他必须以比主链快的速度前进,如果他的算力足够大,理论上通过较长的时间确实可以追赶成功,就实现了对交易信息的篡改。 然而其实这几乎是不可能的,因为就算算力再大,平均出块速度也是10分钟,从非技术的角度讲,一个人如果掌握了全网一半以上的算力, 他为什么不在主链上继续挖矿呢?一个富可敌国的人应该不会甘愿去做一个小偷吧。 ### 比特币的交易流程 区块链是比特币的底层技术,其核心特点是去中心化和不可篡改。每个区块包含交易数据、时间戳和前一个区块的哈希值,确保数据的完整性和透明性。 **钱包与地址:** 比特币钱包并不存储比特币,而是存储用户的公钥和私钥。钱包地址是由公钥生成的哈希值,用于接收比特币。每个地址都是唯一的,且与用户的身份信息无关,这保证了交易的匿名性。 **交易验证与确认:** 比特币交易包括输入(资金来源)和输出(资金去向)。每笔交易需要提供上一笔交易的哈希值、支付方的公钥和私钥生成的数字签名。矿工通过验证这些信息,确保交易的真实性。 **交易手续费:** 为了激励矿工优先处理自己的交易,用户需要支付一定的手续费。手续费的高低直接影响交易的确认速度。随着比特币网络的拥堵,手续费已成为矿工收入的重要组成部分。 **扩展性问题:** 比特币网络的交易处理能力有限,每秒只能处理3-5笔交易。这导致网络拥堵和手续费上涨,成为制约比特币发展的瓶颈。 **闪电网络等解决方案:** 为了提高交易效率,比特币社区提出了闪电网络等第二层解决方案。闪电网络通过建立支付通道,将大量小额交易转移到链外处理,显著提升了交易速度并降低了手续费。 ## Specialized vocabulary 1. **AI Meme:** 是将 AI、区块链技术与 Meme 文化相结合的新兴领域。它通过利用 AI 生成独特的 Meme 内容吸引用户,同时借助加密货币的透明性和社区运营模式,迅速扩展市场影响力. 2. **DeSci:** 全称Decentralized Science(去中心化科学),是一项旨在利用区块链技术改造科学研究领域的运动。根据以太坊基金会的描述: DeSci 是通过 Web3 技术构建科学研究领域的公平公共基础设施,用于资助、创建、审查、确认、存储和传播科学知识。 3. **DeFi:** 是去中心化金融(Decentralized Finance)的简称,也被称为 “开放式金融”,是以比特币和以太币为代表的加密货币、区块链和智能合约结合的产物. - 去中心化:DeFi 通过区块链技术,去除了传统金融中的中介机构,如银行、证券交易所等,实现了金融交易的去中心化。用户可以直接与其他用户进行交易,无需依赖中心化机构的信任和监管。 - 透明性:所有的交易和合约都记录在公开的区块链上,任何人都可以查看和验证。这种透明性增加了信任,减少了信息不对称。 - 开放性:DeFi 平台是开放的,任何人只要有互联网连接,都可以参与其中,不受地域、身份等限制,具有较高的金融包容性。 4. **DEX:** 去中心化交易所,如 Uniswap、SushiSwap 等,用户可直接进行加密货币交易,无需中介,且能保留对自己资产的完全控制权,还可通过提供流动性赚取交易费用。 5. **NFT:** 是 非同质化代币(Non-Fungible Token) 的缩写,是区块链技术的重要应用之一。与比特币等同质化代币(可互换、分割)不同,NFT 具有唯一标识性、不可分割性和不可替代性,常用于证明数字或实物资产的所有权和稀缺性。基于区块链(如以太坊、Solana 等)的智能合约,每个 NFT 包含唯一的元数据(如图像、视频、音频、文本等)和所有权信息,存储于区块链上,不可篡改。 - 唯一性:每个 NFT 独一无二,如同数字世界的 “指纹”(例如,同一幅画作的不同 NFT 版本可代表不同权益)。 - 不可分割性:无法像比特币一样拆分为更小单位(如 1 个 NFT 只能整体交易)。 - 可编程性:可通过智能合约设定规则,例如自动分配版税(创作者在后续交易中自动获得分成)。 6. **GameFi:** Game(游戏)+ DeFi(去中心化金融),通过区块链技术将游戏内资产(如道具、角色)代币化,实现边玩边赚(Play-to-Earn)经济模型。 - 资产所有权:游戏内物品以 NFT 形式存在,玩家真正拥有并可自由交易。 - 经济激励:通过完成任务、战斗、治理等行为获取加密代币(如 Axie Infinity 的 SLP 代币)。 - 去中心化治理:玩家通过持有治理代币(如 AXS)参与游戏规则投票。 7. **SocialFi:** Social(社交)+ DeFi(去中心化金融),通过代币化激励重构社交网络,用户因内容创作、互动、传播获得经济回报。 - 创作者经济:内容价值直接分配给创作者(如通过 NFT 销售、打赏代币)。 - 社区治理:用户通过代币投票决定平台规则,如内容审核机制。 - 数据所有权:用户控制个人数据,可选择商业化(如出售浏览历史)。 8. **DAO:** 去中心化自治组织(Decentralized Autonomous Organization),通过智能合约实现规则自动化、决策民主化的组织形式,成员通过代币投票决定事务。 - 无中心化领导:决策由代币持有者集体投票产生,代码即法律。 - 透明性:所有交易和提案记录在区块链上,不可篡改。 - 资金管理:财库由智能合约控制,需投票批准才能动用资金。 9. **Public Blockchain:** 公链是区块链技术中最基础、最具代表性的类型,起源于中本聪2008年提出的比特币白皮书。 其设计初衷是通过去中心化的分布式账本技术,解决传统金融体系中的信任问题,实现无需第三方中介的价值传输。公链的出现标志着区块链从理论走向实践,奠定了加密货币、DeFi(去中心化金融)、NFT(非同质化代币)等应用的底层技术基础。典型案例: 比特币(Bitcoin, BTC),以太坊(Ethereum, ETH),Solana、Avalanche:高性能公链. 10. **Web3 钱包:** 进入 Web3 的第一步,就是拥有一个属于你自己的钱包。Web3 钱包,其实就是你在区块链上的 “账户”,它可以用来接收和发送数字资产(比如 ETH、NFT),也可以登录各种去中心化应用(DApp)。和我们平时登录淘宝、微信那种 “中心化账户” 不同,Web3 钱包里的资产完全由你自己掌管,没有任何公司或平台能替你保管或冻结,用户需自行承担私钥泄露或丢失的风险。 11. **UTXO:** 比特币中的“状态”,是指所有已铸造但尚未使用的货币(技术上称为“未使用的交易输出”或 UTXO)的集合,每个 UTXO 都有面额和所有者(由一个 20 字节的地址定义,本质上是一个加密公钥 [fn1](注释编号))。 一个交易包括一个或多个输入以及一个或多个输出,每个输入都包含对现有 UTXO 的引用以及所有者地址相关的私钥创建的加密签名;每个输出都包含一个要添加到状态中的新 UTXO。 ### Important concepts #### Web3 钱包 ##### Web3 钱包的类型 **按存储方式分类:** 从私钥的存储方式来看,Web3 钱包主要分为热钱包和冷钱包 > - 热钱包(Hot Wallet):始终连接互联网,使用起来非常方便,适合日常频繁交易,比如连接 DeFi、Mint NFT 等常见操作。MetaMask、Trust Wallet 等就是典型的热钱包。然而,热钱包也因此更容易成为黑客攻击的目标,不适合长期保存大量资产。 > - 冷钱包(Cold Wallet):完全离线保存私钥,比如硬件钱包 Ledger 或 Trezor。即便电脑被黑,资产也不会轻易被盗,非常适合长期持有的用户。虽然操作稍显麻烦,但安全性极高,是大额资产的首选。 **按设备类型分类:** 常见的 Web3 钱包形式包括浏览器插件、移动端 App、硬件设备以及网页端钱包。 > - 浏览器插件钱包:这类钱包以 Chrome、Firefox 等浏览器插件的形式存在,比如最常用的 MetaMask、Rabby 等。它们可以无缝连接 DApp,使用方便,是 PC 用户的主力选择。但也要注意防范钓鱼网站或恶意插件带来的风险。 > - 移动端钱包:运行在手机 App 上的钱包如 imToken、TokenPocket、Trust Wallet 等,具备良好的移动端体验,扫码支付、日常交易都很方便。不过手机一旦丢失、越狱或中病毒,资产安全也可能受到威胁,建议搭配密码、指纹等多重保护措施使用。 > - 硬件钱包:硬件钱包是一种专门用于存储私钥的实体设备,比如 Ledger 和 Trezor。它们在签名时才与设备连接,其余时间完全离线,极大地提升了资产安全性。对于资产较多的用户而言,是最值得的选择。 > - Web 钱包:Web 钱包是指通过浏览器访问的钱包界面,无需安装插件或 App。虽然看似方便,但这类钱包往往依赖中心化后端,安全性无法保障,极易遭遇钓鱼或服务器劫持,不建议长期使用,更不适合存放重要资产。 ##### 常用 Web3 钱包推荐 **MetaMask(小狐狸):** > MetaMask 是目前最受欢迎的 Web3 钱包之一,提供浏览器插件和移动 App 两种形式,支持以太坊及大多数兼容 EVM 的链(如 > Polygon、BSC、Arbitrum 等)。界面直观、功能成熟,几乎所有主流 DApp 都支持连接,是许多用户进入 Web3 世界的第一站。 **Trust Wallet:** > 由币安投资的 Trust Wallet 以多链支持(70+ 公链)和移动端友好性著称,集成一键质押、法币入金(信用卡购币)和 NFT 管理功能。作为 > Binance 生态入口,它与交易所无缝衔接,适合需要频繁交易和参与 BSC 生态的用户。 **Coinbase Wallet:** > Coinbase Wallet 是由全球领先的加密交易平台 Coinbase 推出的钱包,支持以太坊、EVM 链以及 NFT 资产。它和 Coinbase > 交易所账户分离,用户拥有私钥控制权。支持手机号登录、自动备份等功能。 **OKX Wallet:** > OKX Wallet 是 OKX 交易所推出的 Web3 钱包,支持 EVM、比特币、Solana、Aptos、Sui 等多个生态,几乎可以一站式管理所有主流链资产。提供浏览器插件、移动 > App 和网页版三种形式,中文界面友好且优化了 Gas 兑换服务,适合多链资产管理和进阶用户。 **imToken:** > 一款深受中文用户喜爱的移动端钱包,安全性强、界面简洁,其本地化服务(中文教程、社区支持)突出。内置 DApp 浏览器和代币兑换功能,集成 > DeFi 协议和 NFT 市场,适合新手入门。 ## Important Concepts ### Smart Contracts:智能合约 智能合约只是一个运行在以太坊链上的一个程序。 它是位于以太坊区块链上一个特定地址的一系列代码(函数)和数据(状态)。 智能合约也是一个以太坊帐户,我们称之为合约帐户。 这意味着它们有余额,可以成为交易的对象。 但是,他们无法被人操控,他们是被部署在网络上作为程序运行着。 个人用户可以通过提交交易执行智能合约的某一个函数来与智能合约进行交互。 智能合约能像常规合约一样定义规则,并通过代码自动强制执行。 默认情况下,你无法删除智能合约,与它们的交互是不可逆的。 **以太坊是智能合约的重要运行平台:** 以太坊是一个用于运行去中心化应用程序(dApps)的平台,它通过使用区块链存储可编程的智能合约和交易,为智能合约提供了可执行的可信生产环境。 以太坊智能合约是指部署在以太坊上的智能合约,是一段运行在以太坊虚拟机(EVM)中的程序,可以按照事先约定的某种规则自动执行操作,执行合约的条款。 **智能合约是以太坊的核心组成部分:** 智能合约在以太坊中扮演着关键角色,是以太坊实现各种功能和应用的重要手段。它允许在没有第三方的情况下进行可信交易, 这些交易可追踪且不可逆转,能够自动处理协议的履行、管理以及支付等,实现了价值的自动化交换和管理,支持了复杂的去中心化应用(dApps)开发,推动了整个以太坊区块链生态系统的发展。 **智能合约并不只能运行在以太坊链上,还有很多其他支持智能合约运行的平台:** 1. **比特币:** 虽然比特币主要功能是 “分布式账本”,其支持的语法仅与交易有关,能做的事情比较有限,但也可以编写一些简单的智能合约。 2. **以太坊(Ethereum)** - 核心优势:智能合约生态最成熟,支持ERC-20、ERC-721等标准,全球DeFi和NFT基础设施。 - 性能:TPS约15笔/秒(主网),Layer 2扩容后可达数千笔/秒13。 - 应用:占据DeFi总锁仓量(TVL)49.16%,主导去中心化金融和链游生态1。 3. **Solana(SOL)** - 核心优势:高性能低费用,TPS达65,000笔/秒,适合高频交易应用19。 - 增长:2024年市值涨幅超12,337%(同期以太坊为914%)1。 - 生态:DeFi锁仓量142.2亿美元,仅次于以太坊和币安智能链1。 4. Avalanche(AVAX) - 核心优势:子网架构支持定制化区块链,兼容EVM。 - 性能:TPS约4,500笔/秒,24小时交易量超6.25亿美元1。 - 采用:摩根大通、德勤等机构用于跨境结算试点9。 5. Polygon(MATIC) - 定位:以太坊扩容解决方案,提供侧链和ZK-Rollup技术。 - 生态:全年增长10,859%,托管Uniswap、Aave等头部DApp13。 6. BNB Chain(原币安智能链) - 优势:低Gas费与币安交易所深度集成,DeFi锁仓量排名全球第三15。 - 创新:2025年新增智能合约审计功能,强化安全性5。 > 中国本土联盟链平台排名: 1. 长安链(ChainMaker) - 市场地位:连续3年国内占有率第一(2022-2024),国产区块链产品市占率达93%268。 - 技术亮点: - 全场景平台"ChainBridge"支持跨链互通。 - 专用硬件架构"BUDA"提升数据流通效率48。 - 应用场景: - 政务:全国不动产登记链、社保数据可信共享(跨部门效率提升70%)68。 - 贸易:支撑RCEP区域跨境贸易合规单证流转10。 2. 蚂蚁链(AntChain) - 应用聚焦:跨境贸易(服务超2000家外贸企业)、供应链金融10。 - 合规性:通过国家级密评认证,符合《区块链社会治理应用安全标准》10。 3. 腾讯云区块链TBaaS - 特色:深度整合企业微信生态,提供SaaS化政务解决方案。 - 案例:深圳政务数据上链率超90%,"一网通办"协同效率提升10。 > 关键数据对比表: | 平台 | 主要应用领域 | 技术特点 | 性能/规模 | 市场占有率 | |--------|--------------|----------------------|-------------|-------------------| | 以太坊 | DeFi、NFT、DAO | EVM兼容、Solidity语言 | TPS 15(主网) | 全球DeFi TVL 49.16% | | Solana | 高频交易、Web3 | PoH共识、低延迟 | TPS 65,000 | 全球第三大DeFi链 | | 长安链 | 政务、不动产、跨境贸易 | ChainBridge跨链、BUDA架构 | 300万行开源代码 | 中国连续3年第一 | | 蚂蚁链 | 跨境贸易、供应链金融 | 高合规性、企业级SaaS | 服务2000+外贸企业 | 中国政务链前 | > DeepSeek 结论: **全球公链:** 以太坊仍为生态最丰富的基础层,Solana、Avalanche因高性能成为新兴DApp首选。 **中国联盟链:** 政策驱动下,长安链在政务和实体经济场景占据绝对主导,其跨链与硬件优化技术代表国产区块链最高水平 **More Detail: ** 1. [SamrtContracts文档](./SamrtContracts/README.md) ### Ethereum:以太坊 **什么是区块链?** 对区块链最好的描述是将其描述为一个公共数据库,它由网络中的许多计算机更新和共享。 "区块"指的是数据和状态是按顺序批量或"区块"存储的。 如果你向别人发送 ETH,需要将交易数据添加到一个区块中才算成功。 "链"指的是每个区块加密引用其父块。 换句话说,区块被链接在一起。 在不改变所有后续区块的情况下,区块内数据是无法改变,但改变后续区块需要整个网络的共识。 网络中的每台计算机都必须就每个新区块和链达成一致。 这些计算机被称为“节点”。 节点保证所有与区块链交互的人都有相同的数据。 要完成此分布式协议,区块链需要一个共识机制。 以太坊采用权益证明共识机制。 任何想在链上添加新区块的人都必须质押以太币(以太坊原生货币)做为抵押品并运行验证者软件。 接着,可以随机选择这些“验证者”来提出区块,再由其他验证者检查并添加到区块链中。 存在一种奖励和惩罚体系,有力地激励参与者尽可能地诚实和保持在线。 **以太坊** 以太坊是一条区块链,其中嵌入了计算机。 它是以去中心化、无需许可、抗审查的方式构建应用程序和组织的基础。 在以太坊宇宙中,有一台规范化计算机(称为以太坊虚拟机,或 EVM),其状态得到以太坊网络中所有人的一致同意。 每个参与以太坊网络的人(每个以太坊节点)都会保存一份该计算机的状态。 此外,任何参与者都可以广播请求这台计算机进行任意计算。 每当广播这样的请求时,网络上的其他参与者就会检查、验证并进行(“执行”)该计算。 该执行会导致以太坊虚拟机的状态变化,并且在整个网络中传播。 计算请求被称为交易请求;所有交易的记录以及以太坊虚拟机的当前状态存储在区块链中,而区块链又由所有节点存储并达成一致。 加密机制确保一旦交易被验证为有效并添加到区块链中后,之后就无法被篡改。 同样的机制还确保所有交易都以适当的“权限”签名和执行(除了 Alice 本人,任何人都不能从 Alice 的帐户发送数字资产)。 **认识以太坊的加密货币 — 以太币** 以太坊网络上的许多操作都需要在以太坊的嵌入式计算机(称为以太坊虚拟机)上做一些计算工作。这种计算不是免费的;它用以太坊的原生加密货币以太币 ( ETH) 来支付。这意味着你至少需要少量以太币才能使用网络。 以太币是一种纯数字货币,你可以立即将它发送给世界上任何角落的任何人。以太币 (ETH) 的供应不受任何政府或公司控制 — 它是去中心化且完全透明的。按照协议,通过一种精确的方式将以太币仅发放给确保网络安全的质押人。 **以太坊与比特币有什么不同?** - 以太坊立足比特币创新之上,于 2015 年启动,两者之间有一些显著不同。 - 两者都允许你使用数字货币,而无需支付服务提供商或银行。但是以太坊是可编程的,所以你还可以在以太坊网络上构建和部署去中心化应用程序。 比特币使我们能够互通基本信息,了解我们认为有价值的东西。在没有权威的情况,确定价值就已经很强大了。以太坊则更进一步,不仅可以互通信息,用户还能编写任何常规程序或合约。可以创建和达成共识的合约种类没有限制,因此以太坊网络上时常出现重大创新。 - 比特币只是一个支付网络,而以太坊更像是一个金融服务、游戏、社交网络和其他应用程序的市场。 > **任何人都可以编写智能合约并将其部署到区块链网络上。 你只需要学习如何用智能合约语言编码,并有足够的以太币来部署你的合约。 部署智能合约在技术上是一笔交易,因此就像你需要为简单的以太币转账支付燃料费一样,你也需要为部署智能合约支付燃料费。 但是,合约部署的燃料成本要高得多。** > > 以太坊允许开发者创建 去中心化应用程序 (dapp),它们共享算力池。 这个共享池是有限的,因此以太坊需要一种机制来确定谁可以使用它。 > 否则,某个 dapp 可能会意外或恶意地消耗所有网络资源,从而导致其他应用程序无法访问算力池。 > ETH 加密货币支持以太坊算力的定价机制。 当用户想要完成一笔交易时,他们必须支付以太币,使他们的交易被区块链识别。 这些使用成本被称为 > gas 费用,gas 费用的多少取决于执行交易所需的算力和全网当时的算力需求。 > 因此,即使某恶意 dapp 无限循环提交,交易最终也会耗尽 ETH 并终止,从而使网络恢复正常。 以太坊提供了对开发者友好的智能合约编程语言: - Solidity - Vyper #### Ethereum:以太币 (ETH) 以太币 (ETH) 是以太坊上的原生加密货币。 以太币的目的是允许计算市场化。 这种市场为参与者提供了一种经济激励,以验证并执行交易请求,为网络提供计算资源。 任何广播交易请求的参与者还必须向网络提供一定数量的以太币作为奖金。 网络将燃烧部分奖金,并将剩余部分奖励给最终验证、执行交易,将其提交到区块链并广播到网络的任何人。 支付的以太币数量对应于进行计算所需的资源。 这类奖励也可以阻止恶意参与者通过请求执行无穷计算或其他资源密集型脚本来故意堵塞网络,因为这些参与者必须为计算资源付费。 以太币还用于通过以下三种主要方式为网络提供加密经济安全性: 1. 作为一种奖励方式,奖励提议区块或指出其他验证者不诚实行为的验证者; 2. 由验证者抵押,作为遏制不诚实行为的抵押品 — 如果验证者试图行为不端,它们的以太币可能会被销毁; 3. 用于对新提议的区块的“投票”进行加权,并影响共识机制的分叉选择部分。 #### EVM 以太坊虚拟机 以太坊虚拟机是一个全局虚拟计算机,以太坊网络中的每个参与者都会存储并一致同意其状态。 任何参与者都可以请求在以太坊虚拟机上执行任意代码;代码执行会改变以太坊虚拟机的状态。 **Nodes 节点:** 存储以太坊虚拟机状态的实体计算机。 节点间相互通信,传播关于以太坊状态的信息及其新的状态变化。 任何用户还可以通过广播来自节点的代码执行请求来请求代码执行。 以太坊网络本身就是所有以太坊节点及其通信的集合。 **帐户:** 帐户是存储以太币之处。 用户可以初始化帐户,将以太币存入帐户,并将自己帐户中的以太币转账给其他用户。 帐户和帐户余额存储在以太坊虚拟机中的一个大表格中,是以太坊虚拟机总体状态的一部分。 **交易:** “交易请求”是表示以太坊虚拟机上的代码执行请求的正式术语。“交易”是指已完成的交易请求和相关的以太坊虚拟机状态变化。 任何用户都可以从节点向网络广播交易请求。 为了使交易请求影响一致同意的以太坊虚拟机状态,就必须由其他节点对其进行验证、执行并“提交到网络”。 执行任何代码都会导致以太坊虚拟机状态变化;一旦提交后,该状态变化将广播到网络中的所有节点。 以下为一些交易示例: - 从我的帐户发送 X 个以太币到 Alice 的帐户。 - 将一些智能合约代码发布到以太坊虚拟机状态中。 - 使用 Y 参数执行 EVM 中 X 地址的智能合约代码。 ## Experience and Solutions 在 Web3 前端开发中,连接钱包、调用合约是最常见的操作。而选择合适的工具库尤为重要。Web3.js 和 Ethers.js 是目前最常见的两种方案。 不适用于 WalletConnect、Coinbase Wallet、Solana 等非注入型钱包。 Ethers.js 正逐步取代 Web3.js 成为以太坊前端开发的主流选择,特别适合现代 React + TypeScript 项目。如果你正在构建自己的 DApp,建议从 Ethers.js 起步,配合 wagmi 等库提升开发效率。 - **Web3.js:** 以太坊官方最早期提供的 JavaScript 库,使用广泛,社区庞大。 - **Ethers.js:** 后起之秀,架构现代、体积小巧,已成为众多前端开发者的首选。 ## History and Evolution ### Web3 钱包的演变 作为用户进行链上交互的入口,Web3 钱包自诞生以来经历了几个明显的发展阶段: 比特币时代的 “收付款账户”(2009-2015): > 在比特币刚诞生的那几年,Web3 钱包还只是一个非常原始的工具,主要用于接收和发送比特币。像 Bitcoin Core、Electrum > 这样的钱包,对普通人来说使用门槛很高。用户不仅要手动保存钱包文件,还需要自己管理复杂的私钥。那时候的钱包,更像是一个加密版的“银行账户”,只有具备一定技术背景的人,才能比较安全地使用它们。 智能合约革命时期(2016-2020): > 随着以太坊和智能合约的出现,区块链世界不再只是 “收付款”,还可以参与各种去中心化应用,比如借贷、交易、游戏、NFT 等。MetaMask 于 > 2016 年推出,彻底改变了游戏规则。作为一个浏览器插件钱包,MetaMask 操作更便捷,用户可以直接在网页中连接钱包、进行链上交互。这个时期的钱包开始转变为 > Web3 世界的 "通行证" 和 "身份验证器",显著降低了普通用户探索区块链世界的门槛。 多链生态集成时代(2020-2022): > 到了 2020 年之后,Web3 的世界开始变得更加多元,用户不再只关注以太坊,也会用到 BNB > Chain、Polygon、Arbitrum、Solana等不同的区块链。这时,像 Trust Wallet、TokenPocket > 等多链钱包逐渐流行起来。它们不仅支持多种资产类型,还集成了行情查看、DeFi投资、NFT 收藏等功能,真正做到了 > “一站式资产管理”。同时,钱包的用户体验也在不断提升,从界面设计到交互方式,都更加适合普通用户使用,降低了加密世界的入门门槛。 智能钱包时代(2023 年至今): > 近两年,Web3 钱包又迎来了新一轮的技术变革,重点体现在用户体验和安全性的提升上。比如 “账户抽象” > 技术,让钱包不再局限于传统的地址机制,用户可以通过批量操作、自动支付 gas 费、设置权限等方式,像使用普通 App > 一样顺滑地操作链上事务。此外,“社交恢复” 也正在成为新钱包的标配,它允许用户通过好友、邮箱、手机等多种方式找回钱包,避免因忘记助记词而资产丢失。还有一些钱包正在构建自己的插件系统和 > DApp 商店,试图把钱包打造成一个链上的“应用平台”。部分钱包还尝试引入 AI 风控系统,自动识别钓鱼网站或恶意合约,让用户的资产更加安全。 ## my questions ### 比特币的原理? ## Ref Links - [浙江大学区块链协会入门Roadmap](https://zjubca.github.io/roadmap/) - [以太坊官方文档](https://ethereum.org/zh/learn/) - [Solidity 中文文档](https://learnblockchain.cn/docs/solidity/) - [Vitalik 博客](https://vitalik.eth.limo/) - [web3Caff 资讯](https://web3caff.com/) - [比特币生态资源导航](https://btcnav.org/) - [登链社区](https://learnblockchain.cn/) - [通过编码来学习智能合约](https://ethereum.org/zh/developers/learning-tools/) - [去中心化应用](https://ethereum.org/zh/dapps/?category=gaming#what-are-dapps) - [以太坊白皮书](https://ethereum.org/zh/whitepaper/)