『壹』 浠ュお鍧婂備綍澶勭悊鏅鸿兘鍚堢害鐨勮嚜鐢卞害闂棰
浠ュお鍧婂備綍澶勭悊鏅鸿兘鍚堢害鐨勮嚜鐢卞害闂棰橈紵
浠ュお鍧婃槸褰撳墠鏈娴佽岀殑鍖哄潡閾句箣涓锛屽叾鏅鸿兘鍚堢害鎶鏈琚骞挎硾搴旂敤浜庡悇绉嶅満鏅銆傜劧鑰岋紝鏅鸿兘鍚堢害鐨勮嚜鐢卞害闂棰樹粛鐒舵槸涓涓鍊煎緱鍏虫敞鐨勮瘽棰樸傚湪浠ュお鍧婄敓鎬佺郴缁熶腑锛屾櫤鑳藉悎绾︾殑鎵ц岀粨鏋滃彈鍒板氭柟闈㈠洜绱犵殑褰卞搷锛屽傚悎绾︿唬鐮佺殑澶嶆潅搴︺佷氦鏄撹垂鐢ㄧ殑璁剧疆銆佸悎绾﹂棿鐨勪氦浜掔瓑绛夈傛湰鏂囧皢鎺㈣ㄤ互澶鍧婂湪澶勭悊鏅鸿兘鍚堢害鑷鐢卞害闂棰樻椂閲囧彇鐨勭瓥鐣ャ
浠ュお鍧婃櫤鑳藉悎绾︾殑鑷鐢卞害涓昏佸寘鎷浠ヤ笅涓ゆ柟闈锛
涓鏄鍚堢害鐨勭紪鍐欒嚜鐢卞害銆備互澶鍧婃敮鎸佸氱嶇紪绋嬭瑷锛屽紑鍙戣呭彲浠ュ湪涓嶅悓鐨勮瑷鍜屾嗘灦閲岃嚜鐢遍夋嫨锛岃繖寰堝ぇ绋嬪害涓婂炲己浜嗗悎绾︾殑鍙鎵╁睍鎬у拰鐏垫椿鎬с傜劧鑰岋紝杩欎篃甯︽潵浜嗗畨鍏ㄦх殑鎸戞垬銆傚洜涓轰笉鍚岀殑璇瑷鍜屾嗘灦鏈韬灏卞瓨鍦ㄦ紡娲烇紝濡傛灉鍚堢害缂栧啓鑰呮病鏈変粩缁嗚冭檻杩欎簺闂棰橈紝灏卞彲鑳藉艰嚧涓ラ噸鐨勫畨鍏ㄩ棶棰樸
浜屾槸鍚堢害鐨勬搷浣滆嚜鐢卞害銆備互澶鍧婁笂鐨勬櫤鑳藉悎绾﹀彲浠ヨ鍏朵粬鍚堢害鎴栬呭栭儴璐︽埛璋冪敤锛岃繖鎰忓懗鐫鍚堢害鐨勬墽琛岀粨鏋滀細鍙楀埌鍏朵粬鍚堢害鎴栬呰处鎴风殑褰卞搷銆傛ゅ栵紝浜ゆ槗璐圭敤銆佺綉缁滄嫢濉炵瓑鍥犵礌涔熶細瀵瑰悎绾︾殑鎵ц岀粨鏋滀骇鐢熷奖鍝嶃傝繖浜涘洜绱犵殑鑷鐢卞害寰堝ぇ绋嬪害涓婂炲姞浜嗗悎绾︾殑澶嶆潅搴︼紝鍚屾椂涔熷炲姞浜嗗悎绾︽墽琛岀殑椋庨櫓銆
涓轰簡搴斿规櫤鑳藉悎绾﹁嚜鐢卞害闂棰橈紝浠ュお鍧婇噰鍙栦簡涓绯诲垪鎺鏂姐傚叾涓鏈閲嶈佺殑涓椤规槸浠ュお鍧婅櫄鎷熸満锛圗VM锛夈侲VM鏄浠ュお鍧婁笂鐨勮櫄鎷熸満锛屾棬鍦ㄥ疄鐜板悎绾︾殑蹇閫熴佸彲闈犮佸畨鍏ㄦ墽琛屻侲VM閫氳繃瀛楄妭鐮佺殑鏂瑰紡鎵ц屾櫤鑳藉悎绾︼紝閬垮厤浜嗚瑷鍜屾嗘灦鐨勯檺鍒躲傚悓鏃讹紝EVM杩樻彁渚涗簡涓瀹氱殑鏈哄埗鏉ラ槻姝㈠悎绾︽墽琛屼腑鐨勫紓甯告儏鍐碉紝姣斿傚唴瀛樻孩鍑恒侀櫎闆剁瓑銆傝繖浜涙満鍒舵湁鍔╀簬鎺у埗鏅鸿兘鍚堢害鐨勮嚜鐢卞害锛屾彁楂樺叾鎵ц岀殑鍙闈犳у拰瀹夊叏鎬с
姝ゅ栵紝浠ュお鍧婅繕鎻愪緵浜嗕竴浜涢珮绾у姛鑳芥潵鎺у埗鏅鸿兘鍚堢害鐨勬墽琛屻傚叾涓鏈甯哥敤鐨勬槸鍚堢害鎵ц岀殑Gas闄愬埗銆傛瘡涓鏅鸿兘鍚堢害鎵ц岀殑鏈闀挎椂闂磋闄愬埗鍦ㄤ竴瀹氭暟閲忕殑Gas鍐咃紝杩欐牱鍙浠ラ伩鍏嶅悎绾︽墽琛岃繃闀挎椂闂磋屽艰嚧鍏朵粬鍚堢害鍜岃处鎴风殑绛夊緟銆傚悓鏃讹紝鍚堢害鎿嶄綔鐨凣as娑堣椾篃琚闄愬埗鍦ㄤ竴瀹氳寖鍥村唴锛岃繖鏈夊姪浜庨槻姝㈡伓鎰忓悎绾﹀崰鐢ㄥお澶氱殑璁$畻璧勬簮銆
鎬讳箣锛屾櫤鑳藉悎绾﹁嚜鐢卞害鏄浠ュお鍧婃櫤鑳藉悎绾﹂潰涓寸殑涓涓鎸戞垬锛屼絾杩欎篃鏄鍖哄潡閾炬妧鏈鍙戝睍鐨勫繀缁忎箣璺銆備互澶鍧婇氳繃EVM鍜孏as闄愬埗绛夋満鍒舵潵鎺у埗鍚堢害鐨勬墽琛岋紝鎻愰珮浜嗗悎绾︾殑鍙闈犳у拰瀹夊叏鎬э紝鍚屾椂涔熶负寮鍙戣呮彁渚涗簡鏇村氱殑鑷鐢卞害鍜岀伒娲绘с傜浉淇¢殢鐫鍖哄潡閾炬妧鏈鐨勪笉鏂鍙戝睍锛屾櫤鑳藉悎绾︾殑鑷鐢卞害闂棰樹篃灏嗗緱鍒版洿濂界殑瑙e喅銆
『贰』 详解 EVM 生态多签钱包 Gnosis Safe 产品特性
Gnosis Safe,一款在以太坊生态上广受欢迎的链上多签钱包解决方案,由Gnosis在2018年推出。凭借其自托管解决方案,Safe已成为当今最受信赖的数字资产管理平台,处理超过60万笔交易,保护价值超过400亿美元的数字资产,包括13%的所有Cryptopunks。自成立以来,Safe为超过90%的Dapp、DAO以及机构提供了服务,2022年承载的资产价值高达760亿美元,超越了同期最大的中心化托管商Coinbase。
Safe的多签管理、Spending limit等功能,不仅提供了基本的安全保障,还通过集成Zerion等应用,提升了用户体验的便捷性和可组合性。通过“Add custom ap”按钮,用户可以扩展使用范围,甚至通过Wallet Connect来访问更多应用。尽管Safe已经在多签钱包领域取得了显著成就,但仍有建议指出,Safe团队应更深入地探索智能合约账户的潜力,将其作为账户的内核,以实现账户的可编程化。
智能合约账户,或称Programmable account,是将账户编程为用户所需的形式或赋予特定特征的系统,本质上是基于以太坊底层账户体系上的智能合约。当前以太坊支持两种类型的账户,而智能合约账户则允许用户实现更多Web2级别的账户体验。由于EOA(以太坊普通账户)在支持用户需求方面存在局限性,智能合约账户成为了解决方案之一。
智能合约账户能够实现的特异功能包括但不限于资金管理、自动化执行、数据存储等。这些功能通过智能合约的灵活性和图灵完备性得以实现,为用户提供更高级别的安全性、透明性和个性化体验。此外,通过Web3 OS的演变,智能合约账户被认为是可能演化出Web3操作系统的路径。
Gnosis Safe在Web3 OS的衍化中已经做了大量准备,包括定义智能合约的核心开发框架,并提供与之配套的指引和扩展形式。作为多签账户应用的Safe,已经开始作为一个中间件对外输出能力,通过生态伙伴的影响力和Safe作为多签账户的资产规模,为Web3操作系统的未来铺路。基于Gnosis Safe开源框架搭建的项目,如金融相关业务和访问管理的创新,为用户提供更多选择和便利。
『叁』 浠ュお鍧婂備綍纭淇濋摼涓婅祫浜х殑瀹夊叏
浠ュお鍧婂備綍纭淇濋摼涓婅祫浜х殑瀹夊叏锛
浠ュお鍧婃槸鍏ㄧ悆鑼冨洿鍐呮渶鐭ュ悕鐨勬櫤鑳藉悎绾﹀钩鍙颁箣涓锛屽畠鍙浠ョ敤浜庡紑鍙戝垎甯冨紡搴旂敤绋嬪簭锛圖Apps锛夊拰鏁板瓧璧勪骇銆備互澶鍧婁笂鐨勬暟瀛楄祫浜э紙浠ュお甯佸拰浠e竵锛変互鍙婃櫤鑳藉悎绾﹀緢瀹规槗琚鏀诲嚮鑰呯獌鍙栵紝鍥犳や繚鎶よ繖浜涙暟瀛楄祫浜ф槸鑷冲叧閲嶈佺殑銆
鍦ㄤ互澶鍧婁腑锛岃祫浜у畨鍏ㄧ殑涓昏佷緷闈犱互涓嬪嚑涓鏂归潰锛
1.鏅鸿兘鍚堢害浠g爜鐨勫畨鍏ㄦ
鏅鸿兘鍚堢害鍖呭惈浜嗘墽琛屾煇浜涙搷浣滅殑浠g爜銆傜敱浜庝唬鐮侀敊璇鎴栬呮伓鎰忔敾鍑伙紝鏅鸿兘鍚堢害鐨勮祫浜у彲鑳戒細鍙楀埌濞佽儊銆傚洜姝わ紝浠ュお鍧婂紑鍙戜汉鍛樺繀椤荤‘淇濆湪閮ㄧ讲鏅鸿兘鍚堢害涔嬪墠杩涜屼弗鏍肩殑瀹夊叏瀹℃煡锛岄氳繃闈欐佷唬鐮佸垎鏋愬伐鍏风瓑鎵嬫垫鏌ュ悎绾︾殑浠g爜鏄鍚﹀瓨鍦ㄦ紡娲炪傛ゅ栵紝鍦ㄩ儴缃叉櫤鑳藉悎绾﹀悗锛岄渶瑕佸畾鏈熺洃鎺у悎绾︾殑浜ゆ槗骞舵鏌ユ槸鍚﹀瓨鍦ㄥ紓甯告儏鍐点
2.鍑忓皯鏅鸿兘鍚堢害鏀诲嚮鐨勯庨櫓
浠ュお鍧婂紑鍙戜汉鍛樺彲浠ラ噰鐢ㄥ悇绉嶆柟娉曞噺灏戞櫤鑳藉悎绾﹁鏀诲嚮鐨勯庨櫓銆備緥濡傦紝浣跨敤澶氶噸绛惧悕鏉ラ檺鍒朵氦鏄撶殑鏁伴噺鍜岄噾棰濓紝浠ラ槻姝㈡敾鍑昏呯洍鍙栬祫浜с傛ゅ栵紝寮鍙戜汉鍛樺彲浠ヤ娇鐢ㄤ互涓嬫帾鏂芥潵纭淇濆悎绾︾殑楂樺彲鐢ㄦэ細
闄愬埗鍚堢害鐨勬搷浣滄潈闄愶紝鍙鍏佽哥壒瀹氱敤鎴疯繘琛屾搷浣滐紱
鍔犲己鍚堢害鐨勮韩浠介獙璇侊紝浠ョ‘淇濅氦鏄撶殑鍚堟硶鎬э紱
閲囩敤寮婧愪唬鐮侊紝榧撳姳鍚堢害鐨勪娇鐢ㄨ呮彁渚涘弽棣堝拰鎶ュ憡娼滃湪鐨勬紡娲炪
3.浠ュお鍧婄綉缁滅殑鍘讳腑蹇冨寲鐗规
浠ュお鍧婁笉鍚屼簬浼犵粺缃戠粶锛屽畠鐨勫幓涓蹇冨寲鐗圭偣鍙浠ラ槻姝㈠崟鐐规晠闅滃拰鏀诲嚮锛岃繖涔熸槸纭淇濋摼涓婃暟瀛楄祫浜у畨鍏ㄧ殑閲嶈侀儴鍒嗐備互澶鍧婄綉缁滀笂鏈夎稿氬尯鍧楅摼鑺傜偣锛屾瘡涓鑺傜偣閮芥嫢鏈夊畬鏁寸殑鍖哄潡閾炬嫹璐濄傝繖鎰忓懗鐫鍗充娇鏌愪釜鑺傜偣鍑虹幇鏁呴殰锛屽叾浠栬妭鐐逛粛鐒跺彲浠ヤ繚鎸佺綉缁滅殑绋冲畾杩愪綔銆傛ゅ栵紝浠ュお鍧婄殑鏅鸿兘鍚堢害鏄鍩轰簬鍖哄潡閾炬妧鏈瀹炵幇鐨勶紝鎵鏈夌殑浜ゆ槗閮介渶瑕佽鎸夐『搴忚板綍鍦ㄥ尯鍧楅摼涓婏紝杩欎篃鏄淇濇姢鏁板瓧璧勪骇瀹夊叏鐨勪竴绉嶄繚闅溿
鎬讳箣锛屼互澶鍧婇噰鍙栦簡澶氱嶆帾鏂芥潵纭淇濋摼涓婅祫浜х殑瀹夊叏銆傚紑鍙戜汉鍛橀渶瑕佷弗鏍兼寜鐓у畨鍏ㄦ爣鍑嗙紪鍐欐櫤鑳藉悎绾︿唬鐮侊紝骞堕伒寰鏈浣崇殑瀹夊叏瀹炶返銆傚悓鏃讹紝浠ュお鍧婄綉缁滅殑鍘讳腑蹇冨寲鐗规т篃涓烘暟瀛楄祫浜х殑瀹夊叏鎻愪緵浜嗗熀鏈淇濋殰銆
『肆』 以太坊的智能合约
智能合约是运行在计算机里面的,用于保证让参与方执行承诺的代码,般情况下,普通合约上记录了甲方与乙方各方面的关系条款,并通常是通过法律强制执行或保护的,而“智能合约”则是用密码或密钥来执行关系。以更加直接的角度来理解的话,即“智能合约”的程序内容将同-开始大家一起设定好的那样百分百执行,并且零差错。
举个例子,以太坊用户可以使用智能合约在特定日期向朋友发送10个以太币。在这种情况下,用户可以操作创建一个合约,然后将程序推人该合约中进行特殊计算,以便它能够执行所需的命令。而以太坊就是专门把精力集中在这件事上的这么一个平台。
比特币是第一个支持“智能契约”的资源币种,因为网络的价值在于把价值或数据从一个点或人转移到另一个点或人身上。节点网络只在满足某些条件时才会进行验证,但是,比特币仅限于货币用例。相反,以大坊取代了比特币那种带有不小限制性的编程语言,取而代之的是一种允许开发人员编写自己程序的语言。以太坊允许开发人员编写他们自己的“智能契约”,即“自主代理”或“自治代理”,正如ETH白皮书所称的那样。该编程语言是“图灵完备”语言,这意味着它支持一组更广泛的计算指令。智能合约能做些什么呢?
1.“多签名”账户功能,只有在一定比例的人同意时才能使用资金。这个功能经常用在与众筹或募捐类似的活动中。
2.管理用户之间所签订的协议。例如,一方从另一方购买保险服务3.为其他合同提供实用程序。
4.存储有关应用程序的信息,如“域注册信息”或“会员信息记录”。概念有时候比较晦涩,我们举一个募捐的智能合约的例子来帮助理解:假设我们想向全网用户发起募捐,那就可以先定义一个智能账户,它有三个状态:当前募捐总量,捐款目标和被捐赠人的地址,然后给它定义两个函数:接收募捐函数和捐款函数。
接收募捐函数每次收到发过来的转账请求,先核对下发送者是否有足够多的钱(EVM会提供发送请求者的地址,程序可以通过地址获取到该人当前的区块链财务状况),然后每次募捐丽数调用时,都会比较下当前募捐总量跟捐款目标的比较,如果超过目标,就把当前收到的捐款全部发送到指定的被捐款人地址,否则的话,就只更新当前募捐总量状态值。
捐款函数将所有捐款发送到保存的被捐赠人地址,并且将当前捐款总量清零。每一个想要募捐的人,用自己的ETH地址向该智能账户发起一笔转账,并且指明了要调用接受其募捐函数。于是我们就有一个募捐智能合约了,人们可以往里面捐款,达到限额后钱会自动发送到指定账户,全世界的矿工都在为这个合约进行计算和担保,不再需要人去盯着看有没有被挪用,这就是智能合约的魅力所在。
『伍』 什么叫以太坊
以太坊是一种区块链技术平台,用于构建去中心化应用。它是全球最知名的智能合约平台之一,支持多种数字资产的交易和去中心化应用的部署。以下是关于以太坊的详细解释:
以太坊是一个开源的区块链平台,提供了一个虚拟环境,用于运行复杂的智能合约,并且能执行分布式应用所需要的交易功能。它提供了一个去中心化的网络,允许开发者在平台上创建自己的去中心化应用。这些应用可以在以太坊网络内部运行,实现价值转移、数字身份验证、数据所有权管理等操作。
通过以太坊的智能合约功能,开发者还可以创建各种自定义规则和逻辑,使应用能够在不同场景下进行灵活的自动化操作。由于其具备安全性和透明度等特性,以太坊在金融交易、供应链管理、物联网等领域得到了广泛应用。此外,以太坊的加密货币以太币作为平台上的主要支付和激励手段,拥有广泛的市场需求和流动性。目前以太坊已成为区块链技术领域的领导者之一,推动着全球去中心化应用的快速发展。随着其生态系统的不断壮大和技术的不断进步,以太坊将继续在未来发挥重要作用。
总的来说,以太坊是一个基于区块链技术的开放平台,它提供了智能合约功能和去中心化应用的运行环境,允许开发者创建各种创新的数字化解决方案。由于其在安全性、透明度和可扩展性方面的优势,以太坊在多个领域得到了广泛应用,并推动了全球区块链技术的发展。
『陆』 回首Delegatecall漏洞下的Parity多重签名合约
回顾2017年7月19日,Parity Multisig钱包合约曝出漏洞,黑客从三个安全级别高的多重签名合约中窃取了15万余以太坊,金额约3000万美元。Parity钱包以其运行速度快、资源占用少、同步效率高、支持定时转账交易等优势备受赞赏,但也存在对代币支持不足的问题。用户可通过导入imToken来弥补这一缺陷。然而,这次事件暴露出一个严重漏洞。
delegatecall函数是关键,它允许合约调用另一个合约的代码,但不使用当前合约的存储、余额等信息。这设计初衷是为了利用其他合约的库代码,但也为黑客提供了一条途径。黑客通过delegatecall调用initWallet函数,使得initMultiowned函数可以被执行,从而将Parity钱包库合约转变为普通多重签名钱包,并控制所有权。黑客利用这一漏洞,可以将钱包变成自己的,然后执行转账操作。
访问控制问题普遍存在,智能合约也不例外。不当的访问控制设置可能导致攻击者直接访问合约的私有价值或逻辑。更复杂的是,访问控制旁路可能发生在合约使用已弃用的tx.origin验证调用者、长时间处理大型授权逻辑后,鲁莽使用delegatecall在代理库或代理合约中。
深入分析发现,initWallet函数能够改变合约的所有权,而代码中使用delegatecall函数,导致所有public函数对所有人可见,且没有设置任何防护措施。攻击者首先获取所有权,将转账指令存入Data,随后执行execute获取所有资金。
针对这一漏洞,建议采取如下防范措施:谨慎使用delegatecall函数,明确函数可见性,避免public类型,可使用external类型限制外部调用;加强权限控制,设置onlyOwner等修饰器保护敏感函数,确保只有合约所有者能执行特定操作。