คำเตือนความเสี่ยง: ระวังความเสี่ยงจากการระดมทุนที่ผิดกฎหมายในนาม 'สกุลเงินเสมือน' 'บล็อกเชน' — จากห้าหน่วยงานรวมถึงคณะกรรมการกำกับดูแลการธนาคารและการประกันภัย
ข่าวสาร
ค้นพบ
ค้นหา
เข้าสู่ระบบ
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
ดูตลาด
รายงานการเปรียบเทียบการตรวจสอบอย่างเป็นทางการของสองเครื่องมือ (VaaS & Mythril)
成都链安
特邀专栏作者
2019-10-14 07:51
บทความนี้มีประมาณ 7581 คำ การอ่านทั้งหมดใช้เวลาประมาณ 11 นาที
ผู้เขียนมุ่งเน้นไปที่ "การยืนยันอย่างเป็นทางการ" โดยเฉพาะ เลือกเครื่องมือตรวจสอบอย่า

เนื่องจากยุคของบล็อกเชน 2.0 ที่มุ่งเน้นไปที่สัญญาอัจฉริยะ (Smart Contract) และแอปพลิเคชันบล็อกเชน (DApps) ค่อยๆ กลายเป็นกระแสหลัก ความปลอดภัยของสัญญาอัจฉริยะและแอปพลิเคชันบล็อกเชนจึงกลายเป็นจุดสนใจในอุตสาหกรรมมากขึ้น

โดยเฉพาะอย่างยิ่ง หลังจากประสบกับเหตุการณ์ต่างๆ เช่น THE DAO และการขโมย Binance วิธีการตรวจสอบและรับประกันความปลอดภัยของสัญญาอัจฉริยะและแอปพลิเคชันบล็อกเชนได้กลายเป็นปัญหาเร่งด่วนในอุตสาหกรรมบล็อกเชนในปัจจุบัน

ผู้เขียนได้จัดทำสถิติง่ายๆ ขึ้น ตั้งแต่เดือนกันยายน 2017 ถึงกันยายน 2018 ช่องโหว่ที่เกี่ยวข้องของสัญญาอัจฉริยะและแอปพลิเคชันบล็อกเชนแสดงให้เห็นรูปแบบการระบาดบ่อยครั้งและผลที่ตามมานั้นกว้างไกล ไม่เพียงแต่ทำให้สูญเสียเงินจำนวนมากโดยตรงเท่านั้น จากมุมมองของการพัฒนาในระยะยาว มันยังส่งผลต่อการพัฒนาที่ยั่งยืนของเทคโนโลยีเกิดใหม่อย่างบล็อกเชนในอนาคตอีกด้วย

นอกจากนี้ แม้ว่าช่องโหว่ที่อาจเกิดขึ้นของสัญญาอัจฉริยะและแอปพลิเคชันบล็อกเชนในปัจจุบันยังไม่ได้รับการแก้ไขอย่างเหมาะสม แต่สถานะที่เป็นอยู่คือจำนวนของสัญญาอัจฉริยะและแอปพลิเคชันบล็อกเชนยังคงเพิ่มขึ้นอย่างรวดเร็วด้วยอัตราการเติบโตเฉลี่ยหลายหมื่นรายการทุกวัน

ไม่ยากที่จะเห็นว่าอัตราการเติบโตและความปลอดภัยของสัญญาอัจฉริยะและแอปพลิเคชันบล็อกเชนนั้นอยู่ร่วมกันในความสัมพันธ์ที่ไม่แข็งแรง หากเราใช้การเปรียบเทียบอุปสงค์และอุปทาน (อัตราการเติบโตคือ "อุปทาน" ความปลอดภัยคือ "อุปสงค์") สถานะทั่วไปในปัจจุบันของสัญญาอัจฉริยะและแอปพลิเคชันบล็อกเชนคือสถานะ "อุปทานเกินอุปสงค์"

จากสิ่งนี้ วิธีการรับประกันความปลอดภัยของสัญญาอัจฉริยะขนาดใหญ่และแอปพลิเคชันบล็อกเชนได้กลายเป็นประเด็นหลักสำหรับองค์กรที่มองไปข้างหน้าและบุคคลในอุตสาหกรรมบล็อกเชน ในความเป็นจริง ปัจจุบันมีวิธีการพิเศษในอุตสาหกรรมเพื่อเอาชนะจุดบกพร่องนี้ เช่น การจับคู่รหัสคุณลักษณะ การตรวจสอบอัตโนมัติตามการดำเนินการเชิงสัญลักษณ์และนามธรรมเชิงสัญลักษณ์ และการตรวจสอบอัตโนมัติตามการตรวจสอบอย่างเป็นทางการ ในหมู่พวกเขา หลังจากสำรวจและฝึกฝนอย่างกว้างขวางในอุตสาหกรรม "การตรวจสอบอัตโนมัติตามการตรวจสอบอย่างเป็นทางการ" ได้กลายเป็นวิธีการที่ค่อนข้างสมบูรณ์และเป็นที่นิยมในอุตสาหกรรม

ดังนั้น ผู้เขียนจึงเน้นเป็นพิเศษไปที่ "การตรวจสอบอย่างเป็นทางการ" เลือกเครื่องมือตรวจสอบอย่างเป็นทางการที่สำคัญ 2 เครื่องมือ (VaaS & Mythril) ในอุตสาหกรรมปัจจุบัน และทำการเปรียบเทียบการทดสอบอย่างง่าย โดยเฉพาะอย่างยิ่ง เวอร์ชันของเครื่องมือมิธริลที่ใช้สำหรับการทดสอบคือ "0.21.12"

ชื่อเรื่องรอง

ข้อมูลเบื้องต้นเกี่ยวกับเครื่องมือ VaaS และ Mythril

01. รู้เบื้องต้นเกี่ยวกับเครื่องมือ VaaS

เครื่องมือ VaaS เป็นเครื่องมือตรวจสอบอย่างเป็นทางการอัตโนมัติที่พัฒนาโดย Beosin Chengdu Lianan โดยใช้สิทธิ์ในทรัพย์สินทางปัญญาของตนเอง โดยสามารถให้บริการตรวจสอบอย่างเป็นทางการ "ระดับกองทัพ" สำหรับสัญญาอัจฉริยะและแอปพลิเคชันบล็อกเชน และสามารถระบุตำแหน่งรหัสที่มีความเสี่ยงได้อย่างแม่นยำ ตำแหน่งและ มีการชี้ให้เห็นถึงสาเหตุของความเสี่ยง และช่องโหว่ด้านความปลอดภัยทั่วไป คุณลักษณะด้านความปลอดภัย และความถูกต้องในการทำงานของสัญญาอัจฉริยะได้รับการตรวจพบอย่างมีประสิทธิภาพด้วยความแม่นยำมากกว่า 95%

02. รู้เบื้องต้นเกี่ยวกับเครื่องมือ Mythril

ชื่อเรื่องรอง

องค์ประกอบของกรณีทดสอบ

กรณีทดสอบสัญญาประกอบด้วยสัญญาโทเค็น 260 สัญญาและสัญญาธุรกิจ 20 สัญญา

  • สัญญาโทเค็นรวมถึงสัญญาโทเค็น Top200 และสัญญาโทเค็นทั่วไป 60 รายการสำหรับการตรวจสอบ ครอบคลุมการทำงานต่างๆ เช่น ICO การล็อค การขุด และการเบิร์น

  • ชื่อเรื่องรอง

ภาพรวมของผลการทดสอบ

เครื่องมือ VaaS สามารถตรวจจับกรณีการทดสอบสัญญาทั้งหมดของโทเค็นและคลาสธุรกิจได้ อย่างไรก็ตาม เครื่องมือ Mythril สามารถตรวจจับได้เฉพาะสัญญาโทเค็นเท่านั้นแต่ไม่สามารถตรวจจับสัญญาธุรกิจได้ ดังนั้น ควรสังเกตว่าภาพรวมของผลการทดสอบนี้เป็นเพียงการวิเคราะห์เปรียบเทียบรายการสัญญาโทเค็นเท่านั้น

เครื่องมือ VaaS มีการตรวจสอบช่องโหว่ทั้งหมด 28 รายการ แต่เครื่องมือ Mythril มีการตรวจสอบช่องโหว่เพียง 9 รายการเมื่อเทียบกับเครื่องมือ VaaS ดังนั้น รายการตรวจจับของเครื่องมือ VaaS จึงมากกว่าของเครื่องมือ Mythril รายการตรวจจับเฉพาะจะถูกเปรียบเทียบดังนี้:

การเปรียบเทียบรายการตรวจจับ VaaS และ Mythril

01. ผลการทดสอบสำหรับรายการทดสอบเดียวกัน

สำหรับกรณีทดสอบโทเค็น 260 รายการที่เลือก เครื่องมือ Mythril สามารถเรียกใช้ผลลัพธ์ของสัญญาได้ 184 รายการภายใน 15 นาที และ 76 รายการไม่มีผลการตรวจพบ ในขณะที่เครื่องมือ VaaS สามารถรันผลลัพธ์ทั้งหมดได้ นำผลลัพธ์ 184 รายการที่ทั้งเครื่องมือ Mythril และเครื่องมือ VaaS สามารถเรียกใช้เพื่อเปรียบเทียบ และผลลัพธ์มีดังนี้

  • อัตราการเข้าชมและอัตราการบวกเท็จ

จากการเปรียบเทียบผลการตรวจจับ เปรียบเทียบกับรายการตรวจจับเดียวกัน ความสามารถในการตรวจจับของเครื่องมือ VaaS นั้นสูงกว่าของเครื่องมือ Mythril มาก จากการคำนวณ ความแม่นยำในการตรวจจับของเครื่องมือ VaaS คือ 96.9% ความแม่นยำในการตรวจจับของเครื่องมือ Mythril คือ 36.6% อัตราการตรวจพบที่ผิดพลาดของเครื่องมือ VaaS คือ 15.3% อัตราการตรวจพบที่ผิดพลาดของเครื่องมือ Mythril คือ 48.5% ดูภาพด้านล่างสำหรับรายละเอียด

ควรสังเกตว่าสูตรการคำนวณของอัตราการเข้าชมและอัตราการเตือนที่ผิดพลาดคือ:

  • อัตราการเข้าชม = จำนวนครั้งที่เข้าชม/จำนวนคำถามทั้งหมด

  • อัตราผลบวกปลอม = จำนวนผลบวกปลอม/(จำนวนผลบวกปลอม + จำนวนครั้ง)

ตามสถิติของผู้เขียน รายการตรวจจับที่ดำเนินการโดยทั้งเครื่องมือ VaaS และเครื่องมือ Mythril มีคำถามทั้งหมด 655 คำถาม:

  • เครื่องมือ VaaS ตรวจพบปัญหาทั้งหมด 635 รายการ โดยมีอัตราการพบปัญหา 96.9% ตรวจพบข้อผิดพลาดทั้งหมด 115 รายการ โดยมีอัตราการตรวจพบเท็จ 15.3%

  • เครื่องมือ Mythril ตรวจพบปัญหาทั้งหมด 240 รายการ โดยมีอัตราการพบปัญหา 36.6% พบผลบวกปลอมทั้งหมด 226 รายการ โดยมีอัตราผลบวกลวง 48.5% ในหมู่พวกเขา การโจมตีกลับเข้าระบบของเครื่องมือ Mythril และการปฏิเสธบริการ อัตราการเตือนที่ผิดพลาดนั้นค่อนข้างสูง คิดเป็น 93.3% ของทั้งหมด

มูลค่ารวมของการตรวจจับถูกเปรียบเทียบในตารางต่อไปนี้:

  • จำกัด เวลาทดสอบ

เวลาทดสอบเฉลี่ยของเครื่องมือ Mythril คือ 226.2 วินาที ในขณะที่เวลาทดสอบเฉลี่ยของเครื่องมือ VaaS คือ 164.4 วินาที แสดงให้เห็นว่าประสิทธิภาพการทำงานของเครื่องมือ VaaS ดีกว่าเครื่องมือ Mythril

02. ผลการตรวจจับของรายการตรวจจับเฉพาะสำหรับเครื่องมือ VaaS

ดูตารางด้านล่างสำหรับรายละเอียด:

ชื่อเรื่องรอง

การนำเสนอกรณี

01. กรณีของรายการตรวจจับเดียวกัน

  • รีเอนทรานซ์

กรณี:

interface TEST {

    function test123() external view returns (uint256);

    function getBlocknumber() external view returns (uint256);

}

 

contract test2 {

 

    function testCalling(address _testAdddress) public {

        TEST t = TEST(_testAdddress);

t.test123();//mythril ผลบวกลวง

 

    }

 

    function testFormal(address _testAdddress) public view returns(uint256 time){

        TEST t = TEST(_testAdddress);

t.getBlocknumber();//mythril บวกเท็จ

        return time;

    }

}

contract Reentrancy {

    mapping(address => uint256) public balances;

 

    event WithdrawFunds(address _to,uint256 _value);

 

    function depositFunds() public payable {

        balances[msg.sender] += msg.value;

    }

 

    function showbalance() public view returns (uint256 ){

        return address(this).balance;

    }

 

    function withdrawFunds (uint256 _weiToWithdraw) public {

        require(balances[msg.sender] >= _weiToWithdraw);

        require(msg.sender.call.value(_weiToWithdraw)());

ยอดคงเหลือ[msg.sender] -= _weiToWithdraw;//mythril ผลบวกลวงที่เห็นได้ชัด

        emit WithdrawFunds(msg.sender,_weiToWithdraw);

    }

}



  • ผลการทดสอบเครื่องมือ VaaS:


  • ผลการทดสอบเครื่องมือ Mythril:


▷ จากการวิเคราะห์ของผู้เขียน เครื่องมือ VaaS รายงานตำแหน่งของการโจมตีการกลับเข้ามาใหม่ ในขณะที่เครื่องมือ Mythril ส่งสัญญาณแจ้งเตือนสำหรับการโทรจากภายนอก มีการเตือนทั้งหมด 4 รายการ โดย 2 รายการเป็นการโทรจากภายนอกปกติ และอีกรายการคือ การแจ้งเตือนที่ผิดพลาดที่เห็นได้ชัด โดยมีอัตราการตรวจพบที่ผิดพลาดสูง

  • TXOriginAuthentication (ข้อผิดพลาดในการใช้งาน tx.origin)

กรณี:

contract TxUserWallet {

    address owner;

 

    constructor() public {

        owner = msg.sender;

    }

 

    function transferTo(address  dest, uint amount) public {

        require(tx.origin == owner);

        dest.transfer(amount);

    }

}



  • ผลการทดสอบเครื่องมือ VaaS:


  • ผลการทดสอบเครื่องมือ Mythril:


▷ จากการวิเคราะห์ของผู้เขียน ทั้งเครื่องมือ VaaS และเครื่องมือ Mythril สามารถตรวจจับและแจ้งเตือนคีย์เวิร์ด tx.origin ได้


  • เรียกใช้การโทรระดับต่ำ (การโทร, การโทรจากผู้รับมอบสิทธิ์, การโทรฟังก์ชันฆ่าตัวตาย)

กรณี:

contract Delegatecall{

    uint public q;

    bool public b;

    address addr = 0xde6a66562c299052b1cfd24abc1dc639d429e1d6;

    function Delegatecall() public payable {

 

    }

 

    function call1() public returns(bool) {

b = addr.delegatecall

(bytes4(keccak256("fun(uint256,uint256)")),2,3);

        return b;

    }

 

    function call2(address add) public returns(bool){

b=add.delegatecall

(bytes4(keccak256("fun(uint256,uint256)")),2,3);

        return b;

    }

}



  • ผลการทดสอบเครื่องมือ VaaS:


  • ผลการทดสอบเครื่องมือ Mythril:


▷ จากการวิเคราะห์ของผู้เขียน มีการเรียก delegetacall สองครั้งในกรณีนี้ ในขณะที่เครื่องมือ Mythril รายงานเพียงครั้งเดียว ดังนั้นจึงมีความเสี่ยงที่จะรายงานน้อยเกินไป


  • การจัดการ BlockMembers (การพึ่งพาพารามิเตอร์บล็อก)

  • กรณี:

function createTokens() payable external {

      if (isFinalized) throw;

if (block.number < fundingStartBlock) throw;

if (block.number > fundingEndBlock) throw;

      if (msg.value == 0) throw;

 

      uint256 tokens = safeMult(msg.value, tokenExchangeRate);  

      uint256 checkedSupply = safeAdd(totalSupply, tokens);

 

      if (tokenCreationCap < checkedSupply) throw;  

 

      totalSupply = checkedSupply;

      balances[msg.sender] += tokens;  

      CreateBAT(msg.sender, tokens);  

    }

 

function finalize() external {

      if (isFinalized) throw;

      if (msg.sender != ethFundDeposit) throw;

      if(totalSupply < tokenCreationMin) throw;      

      if(block.number <= fundingEndBlock && totalSupply != tokenCreationCap) throw;

      // move to operational

      isFinalized = true;

      if(!ethFundDeposit.send(this.balance)) throw;  

    }

 

 

function refund() external {

      if(isFinalized) throw;                       

if (block.number <= fundingEndBlock) throw;

      if(totalSupply >= tokenCreationMin) throw;  

      if(msg.sender == batFundDeposit) throw;    

      uint256 batVal = balances[msg.sender];

      if (batVal == 0) throw;

      balances[msg.sender] = 0;

      totalSupply = safeSubtract(totalSupply, batVal);

      uint256 ethVal = batVal / tokenExchangeRate;     

      LogRefund(msg.sender, ethVal);               

      if (!msg.sender.send(ethVal)) throw;       

    }

}



  • ผลการทดสอบเครื่องมือ VaaS:


  • ผลการทดสอบเครื่องมือ Mythril:


▷ จากการวิเคราะห์ของผู้เขียน ทั้งเครื่องมือ VaaS และเครื่องมือ Mythril สามารถตรวจจับการพึ่งพาพารามิเตอร์ของบล็อกได้ อย่างไรก็ตาม เครื่องมือ Mythril มีความเสี่ยงที่จะเกิดผลบวกลวง


  • การปฏิเสธการให้บริการ

  • กรณี:

contract Auction {

    address public highestBidder = 0x0;

    uint256 public highestBid;

    function Auction(uint256 _highestBid) {

        require(_highestBid > 0);

        highestBid = _highestBid;

        highestBidder = msg.sender;

    }


    function bid() payable {

        require(msg.value > highestBid);

        highestBidder.transfer(highestBid);

highestBidder = msg.sender;

highestBid = msg.value;

    }


    function auction_end() {

    }

}



  • ผลการทดสอบเครื่องมือ VaaS:


  • ผลการทดสอบเครื่องมือ Mythril:


▷ จากการวิเคราะห์ของผู้เขียน ทั้งเครื่องมือ VaaS และเครื่องมือ Mythril สามารถดำเนินการตรวจจับความเสี่ยงสำหรับการปฏิเสธบริการ อย่างไรก็ตาม ในกรณีนี้ ผู้เสนอราคาสูงสุดอาจโจมตีสัญญาอย่างมุ่งร้ายส่งผลให้การถ่ายโอนล้มเหลวอย่างต่อเนื่องส่งผลให้สัญญาปฏิเสธที่จะรับบริการ ในกรณีนี้ เครื่องมือ VaaS สามารถตรวจจับความเสี่ยงของการปฏิเสธบริการ แต่เครื่องมือมิธริลตรวจไม่พบ


  • ยกเลิกการเลือกการโทรหรือส่งค่าส่งคืน (การโทรและส่งการตรวจจับค่าส่งคืน)

  • กรณี:

if (lastTimeOfNewCredit + TWELVE_HOURS < block.timestamp) {

msg.sender.send(amount);

    creditorAddresses[creditorAddresses.length - 1].send(profitFromCrash);

    corruptElite.send(this.balance);


    ...


    return true;

}

else {

msg.sender.send(amount);

return false;

}



  • ผลการทดสอบเครื่องมือ VaaS:


  • ผลการทดสอบเครื่องมือ Mythril:


▷ จากการวิเคราะห์ของผู้เขียน ทั้งเครื่องมือ VaaS และเครื่องมือ Mythril สามารถตรวจจับค่าที่ส่งคืนของการโทรที่ไม่ได้ตรวจสอบได้ อย่างไรก็ตาม เครื่องมือ Mythril มีความเสี่ยงที่จะเกิดผลบวกลวง


  • จำนวนเต็มล้น

  • กรณีที่ 1:

function distributeBTR(address[] addresses) onlyOwner {

    for (uint i = 0; i < addresses.length; i++) {

        balances[owner] -= 2000 * 10**8;

        alances[addresses[i]] += 2000 * 10**8;

        Transfer(owner, addresses[i], 2000 * 10**8);

}

    }



▷ จากการวิเคราะห์ของผู้เขียน ค่าของยอดคงเหลือ [เจ้าของ] ไม่ได้รับการตรวจสอบในกรณีข้างต้น ซึ่งอาจทำให้เกิดการโอเวอร์โฟลว์ แต่เครื่องมือ Mythrill จะไม่รายงานข้อผิดพลาด ซึ่งหมายความว่าเครื่องมือ Mythrill จะไม่ตรวจสอบการทำงานอย่างต่อเนื่อง


กรณีที่ 2:

contract A {

    uint c;

    function add(uint8 a,uint8 b){

uint8 sum = a+b;

        c=sum;

    }

}



  • ผลการทดสอบเครื่องมือ VaaS:


  • ผลการทดสอบเครื่องมือ Mythril:


▷ จากการวิเคราะห์ของผู้เขียน การตรวจจับการล้นของเครื่องมือ Mythrill สำหรับประเภทข้อมูลที่ไม่ใช่ uint256 นั้นไม่ถูกต้อง


กรณีที่ 3:


  • ผลการตรวจจับบางอย่างของเครื่องมือมิธริล:


▷ จากการวิเคราะห์ของผู้เขียน เครื่องมือ Mythrill ไม่ได้ประมวลผลตัวแปรเฉพาะบางตัว ส่งผลให้เกิดผลบวกปลอม เช่น อาร์เรย์ msg.value เดี๋ยวนี้ เป็นต้น



02. กรณีของรายการตรวจจับเฉพาะสำหรับเครื่องมือ VaaS


กรณีที่ 1:

...

contract ERC20 is ERC20Basic {

  function allowance(address owner, address spender) constant returns (uint);

function transferFrom(address from, address to, uint value);

  function approve(address spender, uint value);

  event Approval(address indexed owner, address indexed spender, uint value);

}

...

 function transfer(address _to, uint _value) onlyPayloadSize(2 * 32) {

    balances[msg.sender] = balances[msg.sender].sub(_value);

    balances[_to] = balances[_to].add(_value);

    Transfer(msg.sender, _to, _value);

  }



  • ผลการทดสอบ:


กรณีที่ 2:

contract A {

    B b;

    uint c;

    function test(uint a){

        b = new B(a);

        c = b.get(200);

    }

}


contract B {

    uint b;

    function B(uint e){

        b=100;

    }

    function get(uint a)returns(uint){

        require(a<100);

        return a;

  }

}



  • ผลการทดสอบ:


▷ จากการวิเคราะห์ของผู้เขียน ในกรณีที่ 2 เกี่ยวกับการเรียกระหว่างสัญญา หากมีซอร์สโค้ด เครื่องมือ VaaS สามารถเรียกและทดสอบได้สำเร็จ แต่เครื่องมือ Mythril ไม่สามารถทำได้ นี่เป็นหนึ่งในสาเหตุที่เครื่องมือ Mythril ไม่สามารถทำการตรวจสอบสัญญาทางธุรกิจได้

จากการวิเคราะห์เปรียบเทียบง่ายๆ ข้างต้นของตรรกะ มิติข้อมูล และข้อมูลของเครื่องมือ VaaS และเครื่องมือ Mythril ผู้เขียนเชื่อว่าผู้อ่านจะสามารถทำการตัดสินใจและการประเมินที่สอดคล้องกันตามทิศทางธุรกิจและจุดสนใจหลังจากอ่าน

โดยไม่คำนึงถึงสัญญาอัจฉริยะและแอปพลิเคชันบล็อกเชน หรือแม้แต่ความปลอดภัยของอุตสาหกรรมบล็อกเชนทั้งหมด ในอนาคต เราจะต้องพัฒนาในรูปแบบที่สร้างความสมดุลระหว่างความสัมพันธ์ระหว่างอุปทาน (อัตราการเติบโต) และอุปสงค์ (ความปลอดภัย) และเราต้องการมากกว่านี้ ทราบอย่างชัดเจนว่าจุดบกพร่องของสถานะที่เป็นอยู่ในปัจจุบันอยู่ที่ไหน และจะปรับปรุงและสร้างสรรค์สิ่งใหม่ๆ เพื่อตอบสนองต่อจุดบกพร่องได้อย่างไร

ไม่ว่าจะเป็นผู้สนับสนุนเทคโนโลยีล้ำสมัยหรือผู้คลั่งไคล้เทคโนโลยีบล็อกเชน ใครก็ตามที่มีข้อมูลเชิงลึกที่มีความคิดแบบกระจายอำนาจและตระหนักว่าสัญญาอัจฉริยะและแอปพลิเคชันบล็อกเชนจะมีอิทธิพลกว้างไกลในอนาคตสามารถเข้าใจจุดมุ่งหมายของผู้เขียนที่ "รูปแบบ" เคมี การตรวจสอบ" คือจุดประสงค์ของรายงานการทดสอบนี้

เป็นความจริงที่แม้ว่าปัจจุบันจะมีการให้ความสนใจมากขึ้นเกี่ยวกับวิธีส่งเสริมการนำสัญญาอัจฉริยะและแอปพลิเคชันบล็อกเชนไปใช้ และการสร้างโดยรวมของระบบนิเวศบล็อกเชน หากยังมีช่องโหว่และความเสี่ยงต่างๆ ในสถาปัตยกรรมทางเทคนิคพื้นฐานที่ยังไม่ได้รับการแก้ไข มันจะทะเยอทะยานเกินไป

ดังนั้น ผู้เขียนจึงแนะนำว่าเพื่อให้มั่นใจในความปลอดภัยของสัญญาอัจฉริยะขนาดใหญ่และแอปพลิเคชันบล็อกเชน ตลอดจนคงไว้ซึ่งการทำงานที่ดีและการบำรุงรักษาระบบนิเวศบล็อกเชน "การตรวจสอบอย่างเป็นทางการ" จึงกลายเป็นวิธีการตรวจสอบอัตโนมัติที่สำคัญ

เป็นขั้นตอนที่จำเป็นสำหรับการพัฒนาสัญญาอัจฉริยะในปัจจุบันและแอปพลิเคชันบล็อกเชนเพื่อตัดสินความเป็นไปได้ของเครื่องมือตรวจสอบและตรวจสอบบางอย่างผ่านมิติการประเมิน เช่น อัตราการติดลบเท็จ อัตราการบวกเท็จ อัตราการเข้าชม และการจำกัดเวลาทดสอบ ผู้ปฏิบัติงานด้านเชนจำเป็นต้องมี เพื่อปฏิบัติภารกิจอย่างจริงจัง

智能合约
ยินดีต้อนรับเข้าร่วมชุมชนทางการของ Odaily
กลุ่มสมาชิก
https://t.me/Odaily_News
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
บัญชีทางการ
https://twitter.com/OdailyChina
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
สรุปโดย AI
กลับไปด้านบน
ผู้เขียนมุ่งเน้นไปที่ "การยืนยันอย่างเป็นทางการ" โดยเฉพาะ เลือกเครื่องมือตรวจสอบอย่า
คลังบทความของผู้เขียน
成都链安
ดาวน์โหลดแอพ Odaily พลาเน็ตเดลี่
ให้คนบางกลุ่มเข้าใจ Web3.0 ก่อน
IOS
Android