什么是censorship resistance?
Web3
什么是censorship resistance?
WEB3与WEB 3.0的区别
Web3和Web 3.0有着本质的不同。Web3是基于区块链的,而Web 3.0是语义网,这意味着它是一个通用的框架,允许用户跨不同的企业、应用程序和社区重用和共享数据。
什么是智能合约?
Smart contracts are computer programs that are hosted and executed on a blockchain network (智能合约是运行在区块链网络上的一个计算机程序). Each smart contract consists of code specifying predetermined conditions that, when met, trigger outcomes. By running on a decentralized blockchain instead of a centralized server, smart contracts allow multiple parties to come to a shared result in an accurate, timely, and tamper-proof manner.
Smart contracts are a powerful infrastructure for automation because they are not controlled by a central administrator and are not vulnerable to single points of attack by malicious entities. When applied to multi-party digital agreements, smart contract applications can reduce counterparty risk, increase efficiency, lower costs, and provide new levels of transparency into processes.
Web3中的DAO是什么?
DAO的全名是“decentralized autonomous organization”,中文是“去中心化的自治组织”。DAO的主要目的是超越传统组织形式,以分布式、透明和信任最小化的方式来进行集体决策。简而言之,DAO是一种新型的组织架构。人们可以独立验证组织的运行方式,并基于这样的共识朝着共同的目标努力。
DAO的独特之处在于其利用了区块链智能合约,将部分或全部流程写入合约代码中,以执行决策并分配所有权。智能合约的出现为创新奠定了基础,因为智能合约可以让DAO的治理规则完全透明化,而且无法被任何DAO成员或外部方篡改。这是因为区块链(即智能合约)运行的代码可以被公开审计,并由去中心化的节点网络保障安全。
值得一提的是,虽然DAO的缩写中包含autonomous(自治)一词,但DAO并非完全自治。DAO是由人组成的,因此需要用户手动操作才能运行,比如用户需要进行投票、部署代码并讨论提案。之所以会使用“自治”这个词,是因为DAO的一些具体功能被写在了智能合约代码中,无法被篡改。然而,人们仍需要与智能合约(即:代码)交互(即:提供输入),以执行具体的任务(即:输出结果)。
区块链的四大类型:公链、侧链、联盟链与私有链
在区块链的世界中,根据开放程度和中心化程度,我们可以将其分为四大类型:公链、侧链、联盟链和私有链。每种类型的区块链都有其独特的特点和适用场景,下面我们来一一详解。
公链,也称“公有链”,是全世界任何人都有权限读取、发送且获得有效确认的共识区块链。其无需注册、授权便可匿名访问网络,具有去中心化、中立、开放、不可篡改等特点,适用于虚拟货币、互联网金融等领域。可以说,公有区块链是世界上最早的区块链。目前,大多数区块链项目都以EOS、以太坊和比特币块链作为主要公有链。这些公链通过创建一个对开发者友好的区块链底层平台,支持允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用,允许用户按照自己的意愿创建复杂的操作,为开发dAPP提供底层的模板。保证公链稳定运行的关键在于特定的共识机制,例如比特币块链是由工作量证明机制(PoW)维护,以太坊则是依赖于权益证明机制(PoS),它们是以经济奖励(Token)与加密数字验证相结合的方式而存在的。公链在整个区块链领域的重要性和必要性,发展空间和需求都非常大。
侧链一词在区块链领域指的是与主链(即公链)交互、扩展其功能的附加链条。侧链通过特定的双向锚定机制与主链建立联系,使得代币可以在主链和侧链之间流动。侧链可以解决主链扩容性和功能性的问题,提高区块链的灵活性和可扩展性。通过侧链,可以实现去中心化金融(DeFi)应用、跨链互操作性等复杂功能。侧链的发展仍处于早期阶段,但其潜力巨大,未来有望成为区块链领域的重要发展方向之一。
联盟链是一种介于公有链与私有链之间的系统形态,通常由多个组织一起合作维护一条区块链,该区块链的使用必须是带有权限的限制访问,相关信息会得到保护,如供应链机构或银行联盟。联盟链的本质是分布式托管记账系统,系统由组织指定的多个“权威”节点控制,这些节点之间根据共识机制对整个系统进行管理与操作。联盟链可视为“部分去中心化”,公众可以查看和交易,但验证交易或发布智能合约需获得联盟许可。联盟链适用于对数据隐私要求较高、参与方之间需要共享数据的场景,如供应链管理、贸易金融等。
私有链则是指对单独的个人或实体开放的区块链。与公有链相反,私有链需要授权才能访问网络并进行交易。由于其去中心化和数据不可篡改的特点,适用于企业内部的业务流程优化、审计和监管等场景。通过部署私有链,企业可以在安全可控的环境下实现数据共享、流程优化和降低成本等目标。
总结:
公链、侧链、联盟链和私有链各有其特点和适用场景。公链追求去中心化和开放性,适用于虚拟货币等领域;侧链则以提高主链灵活性和可扩展性为目标;联盟链适用于需要共享数据但要求数据隐私的场景;而私有链则适用于企业内部的业务流程优化等场景。随着技术的不断进步和应用场景的不断拓展,这四大类型的区块链有望在未来的发展中相互融合,共同推动区块链技术的进步和应用市场的繁荣。
主要智能合约语言:Solidity
合约编程语言是智能合约开发者最基本的部分,你至少应该掌握一种才能编写智能合约。合约语言通常不是传统的编程语言(如C/C++,Python等), 为了保证合约代码在任何一个区块链节点上都能够得到一个确定的执行结果, 必须要求合约不能访问外部世界(如进行HTTP连接或操作文件),早期的区块链开发者们设计出了专为编写合约的编程语言,如Solidity、Vyper, 后来又诞生了一些新的合约语言如Move或Rust(但包含一些使用限制)。好消息是这些语言都大量借鉴了传统编程语言的语法,如Solidity借鉴JavaScript、Vyper借鉴Python,这使得成为一名合约开发者的学习曲线平坦了一些。
目前90%的智能合约都是Solidity写的。Solidity算是最早也是最流行的面向对象的高级静态语言,最初2014年是为以太坊EVM量身设计的, 后来又出现了很多兼容以太坊EVM的区块链平台(如Ethereum、Avalanche、Moonbeam、Polygon、BSC),所以现在Solidity也可以运行在其他那些兼容EVM的区块链上。 在目前排名前十的 Defi项目 中,有九个使用Solidity作为他们的主要编程语言。
Solidity发展至今已经快十年,生态内已经有大量优秀的开发工具可供使用,包括第三方库以及IDE等(后面介绍)。另外,在EVM上运行的比Solidity更原生的语言是汇编语言Yul,进阶Solidity时你会了解到Solidity与Yul通过内联交互以提高性能的应用。
需要注意的是,Solidity在语法设计上存在一些缺陷,当然,这些年不断的被改进,在易用性和安全性上已经得到了极大的提升。
对于Solidity的学习,这里强烈推荐本仓库主页中列出的书籍 智能合约技术与开发 ,且在本仓库中也存放有笔者对该书的代码笔记 。