區塊鏈研究實驗室

區塊鏈研究實驗室

專注區塊鏈技術研發,區塊鏈大學知識培訓,區塊鏈技術研發社區和區塊鏈孵化
82

文章

716061

瀏覽

  • 編寫智能合約時通常應遵循的安全模式-part1

    使用外部調用時需要格外注意調用不受信任的智能合約可能會帶來一些意外的風險或Bug。外部調用可能在該合約或它依賴的任何其他合約中執行惡意代碼。因此,每個外部調用都應視為潛在的安全風險。 如果無法或不希望刪除外部調用,請使用本節教程的建議將危險降至最低。
    2019-10-22 12:43:31 4425
    • 以太坊智能合約安全最佳實踐系列教程

      以太坊和區塊鏈應用程序建設,是具有一定高度實驗性的。因此,隨著新的bug和安全風險的發現以及最新的實踐開發,您應該期待區塊鏈安全環境應有不斷的變化。 因此,遵循本文檔中的安全實踐將會是您作為智能合約開發人員將要做的安全工作的開始。智能合約編程需要的工程思維方式與您慣常的思維方式不同。 失敗的代價可能很高,并且要做出修正非常困難,這使其在某種程度上與Web或移動開發相比,更類似于硬件編程或金融服務編程。因此,已知抵御漏洞還遠遠不夠。相反,你更需要學習一種新的發展哲學:
      2019-10-21 15:23:02 4311
      • 詳解Libra的Move IR編譯器漏洞

        我們在Move IR編譯器中發現了一個漏洞,其內聯注釋可以偽裝成可執行代碼。這是因為move-IR解析器無法識別內聯注釋末尾的一些unicode換行符。特別是代碼在解析公共的\r\n和\r\n時,無法正確解析。另外,其他有效的unicode換行符完全被解析器忽略。
        2019-10-19 17:11:08 7526
        • solidity與library的之間關系與應用

          solidity是在以太坊網絡和任何支持evm(以太坊虛擬機)的區塊鏈上實現智能合約的高級編程語言之一。它的javascript語法和C語言風格的數據類型使它成為生態系統中最受歡迎和支持的語言。由于區塊鏈的不變性,開發沒有漏洞的智能合約非常重要。因此,對于以太坊智能合約的開發,開發人員應該始終嘗試重用和依賴已經被許多開發人員審查、測試和使用過的代碼,例如使用solidity庫。
          2019-10-18 12:59:59 15359
          • 使用java應用程序實現kyberNetwork中Defi代幣交易

            KyberNetwork支持兌換以太坊代幣,類似于傳統的外匯交易,還支持兌換其他法定貨幣。主要的區別在于根本不涉及任何中心交易所!KyberNetwork的基礎代幣是以太坊(ETH),而不是任何法定貨幣。作為“ KyberDAO”社區實驗的一部分,該網絡于6月啟動了其基于DAOstack的DAO(在Aragon平臺上進行了首次實驗之后),并為其提供了約17,000 KNC(約合4500美元)的資金。社區中的任何人都可以提交提案,并提出資金申請,以獲取部分或全部贈款(請參見公告)。
            2019-10-17 11:38:01 7538
            • 以太坊的混合二層擴容協議曙光

              目前的二層擴容的方法--基本是Plasma和狀態通道。正從理論走向實踐,但與此同時,將這些技術視為以太坊成熟的擴容解決方案時所面臨的內在挑戰也顯而易見了。可以說以太坊之所以成功,很大程度上是因為它具有友好的開發體驗:開發者編寫一個程序,發布該程序之后,任何人都可以與它進行交互。另一方面還依賴了狀態通道的設計或Plasma應用程序依賴于許多關于激勵和特定于應用程序的開發。狀態通道在特定的用例中表現得非常好,比如同一個雙方之間的重復付款和兩個玩家之間的游戲(在celer中成功實現)之間的交互,但是要有更廣泛的
              2019-10-16 11:59:15 8358
              • 下一代金融科技:全球“開放金融”基礎設施

                技術破壞金融是一個長期存在的事情。技術人員一直夢想著將金融服務數字化,增加競爭/獲得機會,降低集中風險并改善客戶體驗。 許多銷售渠道都試圖實現這一目標:從FinTechs,TechFins,API/開放銀行到授權區塊鏈。
                2019-10-15 11:32:26 4017
                • 構建主鏈與側鏈之間無信任的雙向橋接網絡

                  我們提出了一種新穎的方法,用于在主鏈和側鏈之間構建無信任的雙向橋梁。 通過永久停止側鏈,即使在樂觀的情況下,我們也不再需要嚴格的同步要求和長時間的退出延遲。而代之的是,只有在側鏈暫停很長一段時間后才允許提款。 一旦停止了側鏈,就可以通過流動性提供者網絡使用原子交換立即提取資金以進行使用。 可以同時啟動新的側鏈,以終止舊的側鏈以接受并開始處理掉期后的資金。
                  2019-10-14 10:48:18 7889
                  • 可延展性攻擊:為何如此重要

                    加密領域的許多人都聽說過“交易延展性”,并且它是“不好的”。但是,什么是“交易延展性”,為什么不好?讓我們快速了解一下。在像比特幣這樣的加密貨幣中,交易是在用戶之間轉移價值的原子操作。用戶創建事務并將其發布到網絡。這些交易傳播網絡并最終被挖掘到區塊鏈中。接收者使用區塊鏈來確定交易是否得到確認。
                    2019-10-12 17:57:23 10494
                    • 以太坊虛擬機(EVM)runtime環境

                      EVM(以太坊虛擬機)在以太坊區塊鏈上提供了操作系統運行時環境。智能合約中的實體代碼必須經歷從高級人類可讀代碼到低級機器可讀代碼的轉換。這需要將文本轉換為十六進制值,從而將代碼轉換為bytecode。bytecode由編譯器生成。然后,字節碼由EVM處理并在網絡上執行。EVM可以構建在FPGA(現場可編程陣列)或基于堆棧的CPU之上。它提供了一個抽象層,允許代碼跨分布式平臺(例如以太坊網絡)進行可移植性。
                      2019-10-11 10:57:29 12010
                      • 形式驗證如何幫助防止Gridlock錯誤

                        最近在Edgeware的Lockdrop智能合約中發現了一個隱藏的DoS錯誤(稱為Gridlock),該合約已鎖定了價值數億美元的以太幣。 由于存在此錯誤,Edgeware必須重新部署合約的穩定版本。因此,當前在主網上并行存在兩個Lockdrop合約(舊版本和新版本)。(這意味著您可以向這兩個合約中的任何一個發送交易以鎖定您的以太幣,直到舊的合約遭到攻擊并無法使用為止。)
                        2019-10-10 11:07:37 10685
                        • 以太坊分片跨鏈間信息系統詳解

                          這篇文章通過提出對塊有效性和分叉選擇規則的更改,概述了協議內跨分片消息傳遞系統。 這是CBC Casper分片提案的一部分,但可以輕松應用于Eth2.0的后續階段。 對此的描述可以在CBC Casper草案第3部分4.6中找到。Eth2.0在協議外支持跨分片消息傳遞,這意味著用戶必須手動執行一些操作才能傳遞跨分片消息。 該協議處理從分片鏈到信標鏈的交易收據的傳遞,并且用戶必須在引用該收據的接收者分片上創建交易。
                          2019-10-01 18:56:32 19535
                          • 區塊鏈、人工智能和物聯網將如何融合在一起

                            我們一直生活在互聯網的數字時代,隨著時代的發展和技術的進步,隨著區塊鏈,人工智能和物聯網的融合,解放了現代互聯網的束縛問題。既然我已經對這些技術進行了太多討論,那么現在是時候讓我轉向這些技術的核心,告訴您這種融合如何為更美好的世界帶來變化嗎?
                            2019-09-27 10:16:03 5160
                            • 新嘗試更改Libra的move交易代碼

                              我讀了很多帖子,它們只是向我們展示了如何啟動本地Libra驗證程序和本地Libra客戶端,但是我找不到如何更改Move代碼的某些交易的任何信息。因此我決定對代碼進行一些更改,以了解它在move中如何處理交易代碼。我們不會做一些非常花哨的事情,只會給move智能合約增加一些驗證。
                              2019-09-26 11:07:27 17978
                              • 減少智能合約代碼復雜性并提高可維護性

                                在本文中,我將分享一些示例,說明消除特殊情況如何減少代碼復雜性并提高可維護性。特殊最大值。常見的特殊情況是使用0表示“無最大值”。這種特殊情況通常很容易消除。Special Expirations
                                2019-09-25 11:03:51 15624
                                • 使用GUI(Remix)和Ganache調試Solidity

                                  調試Solidity非常困難。隨著時間的流逝,諸如Ganache,Remix和solidity-test-helpers之類的工具使它變得更容易,但仍然存在bug。使用ganache進行調試的gui將有助于減輕許多這些痛苦,并允許開發人員可視化地處理和調試合同。現在有一種方法可以做到這一點!本教程使用Ganache(即時事務)和Remix調試本地Solidity項目。
                                  2019-09-24 12:50:04 2861
                                  • 停止使用Solidity的transfer()函數

                                    以太坊看起來EIP 1884正在伊斯坦布爾硬叉前進。這一變化增加了sload操作的gas成本,因此打破了一些現有的智能合約。這些合約將破裂,因為它們的fallback函數過去消耗的gas少于2300,現在它們將消耗更多。為什么2300gas是重要的? 如果通過Solidity的transfer()或send()方法調用合約的fallback函數,則它是合約的fallback函數。
                                    2019-09-19 10:36:46 17023
                                    • 使用工廠模式提高智能合約安全性

                                      智能合約可以部署其他智能合約。這使工廠模式成為可能,在工廠模式中,您可以創建多個智能合同,每個智能合同只跟蹤一件事,而不是一個跟蹤許多事情的智能合同。使用此模式可以簡化代碼并減少某些類型的安全漏洞的影響。在這篇文章中,我將向您介紹一個基于我們在最近的審計中發現的一個關鍵漏洞的示例。如果使用了工廠模式,那么漏洞就就減少了很多。
                                      2019-09-18 11:21:10 16559
                                      • 關于polkadot的substrate與runtime編譯教程-part2

                                        chainspec JSON是一個大的JSON對象,通過substrate build-spec命令生成。此命令通過引用節點的導入runtime模塊并查找需要定義的公開配置來工作。這些將是空值或提供默認值。本質上,runtime模塊可以依賴于“創世配置”,換句話說,我們在區塊鏈首次初始化和構建其狀態時提供的配置。這一狀態是通過創世地塊-第一個生產的區塊鏈啟動的。chainspec json文件的任務是定義這個初始狀態。
                                        2019-09-18 10:16:49 14947
                                        • 關于polkadot的substrate與runtime編譯教程-part1

                                          substrate和并發runtime模塊是用rust開發的,rust是一種靜態類型語言,具有內存安全特性,提供速度和可靠性。這是一個在區塊鏈開發中經常被忽視的主題,但對于采用是至關重要的:如何解決Rust問題。我們不會在這篇文章中分析Rust代碼,但對于對Substrate感興趣的開發人員來說,這將是一個前所未有的關注點。
                                          2019-09-18 10:11:59 14459
掃二維碼

掃一掃,關注微信公眾號

好运彩3单双