เป็นที่ทราบกันดีอยู่แล้วว่าสัญญาอัจฉริยะอาจเป็นเรื่องยุ่งยาก ผู้ที่ไม่ได้ใช้เทคนิคมักถูกล่อลวงให้ซื้อโทเค็น ERC20 ตามระดับโฆษณาโดยไม่มีความรู้มาก่อนเกี่ยวกับคุณภาพของโทเค็นและความปลอดภัยของโทเค็นที่พวกเขากำลังซื้อ.
Bitfinex ซึ่งเป็นหนึ่งในการแลกเปลี่ยน crypto ที่ใหญ่ที่สุดในอุตสาหกรรมได้ออกโทเค็นที่เรียกว่า LEO โทเค็นนี้ช่วยให้เอนทิตีที่ควบคุมมันพิมพ์หรือสร้างโทเค็นใหม่ได้ไม่ จำกัด และยังช่วยให้พวกเขาสามารถลบเหรียญของใครก็ได้รวมถึง แต่ไม่ จำกัด เฉพาะเหรียญในการแลกเปลี่ยนแบบรวมศูนย์หรือแบบกระจายอำนาจห้องเก็บความร้อนหรือห้องเย็นกระเป๋าเงินฮาร์ดแวร์หรือซอฟต์แวร์และ / หรือ กระดาษหรือกระเป๋าเงินสมอง.
อย่าหลงเชื่อการซื้อ ERC20 ไม่ได้หมายความว่าทรัพย์สินของคุณเป็นของคุณจริงๆ! นี่ไม่ใช่ครั้งแรกที่ฉันได้เปิดเผยสัญญาอัจฉริยะแบบนี้ เมื่อสัปดาห์ที่แล้วเราได้เผยแพร่ใน Cointelligence รายงานเกี่ยวกับสัญญาอัจฉริยะที่คล้ายกันซึ่งอนุญาตให้ใช้งานได้เหมือนกันโปรดดูบทวิจารณ์ของเราเกี่ยวกับเมื่อ Smart Contract.
สัญญา LEO ERC20 เปิดใช้งานการหลอกลวงและ / หรือการฉ้อโกงมูลค่าหลายพันล้านดอลลาร์หรือไม่?
เราปล่อยให้คุณเป็นคนตัดสินใจตอนนี้เรามาเจาะลึกถึง LEO Token.
บทนำ
LEO เป็นโทเค็น ERC20 ที่เปิดตัวเมื่อวันที่ 10 พฤษภาคม 2019 โดย iFinex Inc. ใน ประกาศของพวกเขา. คุณสามารถค้นหาไฟล์ เอกสารไวท์เปเปอร์ LEO ที่นี่. แม้ว่าเราจะไม่พบที่เก็บ GitHub แต่รหัสสัญญาโทเค็นของพวกเขาได้รับการยืนยันบน Etherscan เราใช้รหัส Etherscan ที่ตรวจสอบแล้วสำหรับ LEO, LeoController และ TokenFactory เพื่อทดสอบและปรับใช้สำเนาของโทเค็นนี้ใน Ropsten testnet.
LEO โทเค็น – โทเค็น ERC20 ที่ออกโดย Unus Sed Leo Limited ซึ่งเป็น บริษัท ย่อยของ iFinex Inc..
คอนโทรลเลอร์ – สัญญาควบคุมช่วยให้เจ้าของสามารถโอนอนุมัติออกเขียนและเปลี่ยนตัวควบคุมได้เอง โปรดทราบว่าแม้ว่าเจ้าของ“ 0xf17ebb3a24dc6d6b56d38adf0df499c1cd9e5672” จะ“ ควบคุม” สัญญา LEO ERC20 แต่“ คอนโทรลเลอร์” สามารถอัปเกรดหรือเปลี่ยนเป็นที่อยู่ใด ๆ ได้ตลอดเวลาโดยเจ้าของจึงทำให้พวกเขาทำอะไรกับโทเค็น LEO ได้อย่างง่ายดาย.
LEOController สัญญา: เจ้าของสามารถเปลี่ยน“ Controller” ของสัญญา LEO ERC20 ได้
LEOController เจ้าของสัญญาสามารถเปลี่ยน“ ผู้ควบคุม” ได้ตลอดเวลาและตั้งค่านี้เป็นที่อยู่กระเป๋าเงินใด ๆ ที่พวกเขาควบคุม.
- โดยเรียกใช้ฟังก์ชัน“ upgradeController” ในบรรทัด 698 และป้อนที่อยู่กระเป๋าเงินที่ต้องการ.
- เมื่อธุรกรรมข้างต้นได้รับการยืนยันที่อยู่ที่ป้อนจะกลายเป็น “ผู้ควบคุม” ใหม่ของสัญญา LEO ERC20.
สัญญา LEO: เจ้าของสามารถเผาโทเค็นของคุณและสร้างโทเค็นใหม่ได้ไม่ จำกัด
เจ้าของ LEO จะทำเหรียญกษาปณ์ตลอดไปได้อย่างไร?
ดังที่ได้อธิบายไว้ก่อนหน้านี้เมื่อที่อยู่คอนโทรลเลอร์เปลี่ยนเป็นที่อยู่กระเป๋าเงิน (หรือแม้แต่สัญญาอัจฉริยะใหม่) พวกเขาสามารถเรียกใช้ฟังก์ชัน “createTokens” ในบรรทัด 460.
พารามิเตอร์
- _owner →กระเป๋าเงินที่จะได้รับโทเค็น LEO ที่สร้างใหม่.
- _amount →จำนวนโทเค็นที่จะ “พิมพ์” ซึ่งจะไปยังที่อยู่ด้านบน.
บันทึก – เอกสารไวท์เปเปอร์ LEO ไม่ได้กล่าวถึงปริมาณโทเค็นสูงสุดและสัญญานี้ช่วยให้พวกเขาสามารถสร้างโทเค็น LEO ต่อไปได้เนื่องจากเราสามารถ “พิมพ์” โทเค็น LEO จำนวนสี่ล้านล้านรายการบนเครือข่ายทดสอบโดยใช้รหัสของพวกเขาได้.
เจ้าของ LEO จะลบโทเค็นของคนอื่นได้อย่างไร?
ฟังก์ชัน“ destroyTokens” บน 477 ช่วยให้กระเป๋าเงินคอนโทรลเลอร์ LEO สามารถเบิร์นโทเค็น LEO ของใครก็ได้รวมถึง แต่ไม่ จำกัด เฉพาะที่มีอยู่ในการแลกเปลี่ยนแบบรวมศูนย์หรือแบบกระจายอำนาจกระเป๋าเงินฮาร์ดแวร์หรือซอฟต์แวร์ห้องเก็บของร้อนหรือเย็นและ / หรือกระดาษหรือสมอง กระเป๋าสตางค์. ไม่ว่าเหรียญของคุณจะอยู่ที่ไหนพวกเขาสามารถลบเหรียญของคุณได้หากต้องการ ง่ายๆแค่นั้นเอง.
พารามิเตอร์
- _owner →กระเป๋าเงินที่โทเค็น LEO ที่มีอยู่จะถูกเผา.
- _amount →จำนวนโทเค็นที่จะ “ลบ” จากที่อยู่กระเป๋าเงินดังกล่าวข้างต้น.
หลักฐานเพิ่มเติม
เราคัดลอกรหัสเดียวกันสำหรับโทเค็น LEO ERC20 คอนโทรลเลอร์และโรงงานเพื่อปรับใช้สัญญาต่อไปนี้ใน Ropsten testnet.
กระเป๋าสตางค์ / ที่อยู่
- ที่อยู่ผู้ส่ง: 0x58FA58089956c5cba21d9f61434B1902F8121b32
- ที่อยู่ที่สร้างแบบสุ่ม: 0xada183F6Ff6E7805EE5bDA701d40958858FeE548
อันดับแรกเราเปลี่ยนคอนโทรลเลอร์จากที่อยู่ผู้ส่งเป็นสำเนาของ“ LEOController” เพื่อดูว่าเราสามารถเปลี่ยนคอนโทรลเลอร์กลับไปเป็นที่อยู่ผู้ส่งได้อีกครั้งหรือไม่โดยใช้ฟังก์ชัน“ upgradeController”.
ขั้นตอน
- โรงงานโทเค็น ทำให้ใช้งานได้
- โทเค็น LEO ทำให้ใช้งานได้
- LEOController ทำให้ใช้งานได้
- ตรวจสอบว่าใครเป็น“ ผู้ควบคุม” ในสัญญาโทเค็น LEO: 0x58FA58089956c5cba21d9f61434B1902F8121b32.
- เปลี่ยนคอนโทรลเลอร์โดยใช้ฟังก์ชัน“ changeController” ในสัญญา LEO เป็นการนำไปใช้ก่อนหน้านี้ สัญญา“ LEOController”
- ได้รับการยืนยันว่าตัวควบคุมถูกเปลี่ยนเป็นที่อยู่สัญญาอัจฉริยะจริง.
ณ จุดนี้สัญญา LEO testnet ของเราคล้ายกับสัญญา LEO ERC20 ทุกประการด้วยวิธีต่อไปนี้
- ผู้ควบคุมสัญญา LEO คือสัญญาอัจฉริยะ.
- รหัสคอนโทรลเลอร์ ใน testnet ตรงกับข้อใดข้อหนึ่ง ใน mainnet.
ตอนนี้เรากำลังพยายามพิจารณา:
- หากเราสามารถเผาหรือทำลายโทเค็น LEO ของผู้อื่นได้โดยการเปลี่ยนตัวควบคุมก่อน.
- หากเราสามารถออกโทเค็น LEO จำนวนมากอย่างบ้าคลั่งเพื่อดูว่ามีขีด จำกัด หรือไม่.
ขั้นตอน
- แม้ว่า ณ จุดนี้เราทราบดีว่าเป็นไปไม่ได้ที่เจ้าของจะเปลี่ยนตัวควบคุมในสัญญา“ LEO” โดยใช้ฟังก์ชัน“ changeController” แต่เราก็ยังคงส่งธุรกรรมนั้นโดยเจตนาเพื่อให้มันเปลี่ยนกลับหรือล้มเหลว. ล้มเหลว
- เราไปที่สัญญา“ LEOController” และใช้ฟังก์ชัน“ upgradeController” เพื่อเปลี่ยนตัวควบคุมของสัญญาอัจฉริยะที่ควบคุมเช่น LEO ไปยังที่อยู่ผู้ส่งอีกครั้ง. ที่ประสบความสำเร็จ
บันทึก – ที่เราเปลี่ยนคอนโทรลเลอร์จาก Sender เป็น smart contract แล้วกลับไปที่ Sender อีกครั้งเพราะเราต้องการแสดงให้คุณเห็นว่ามันค่อนข้างง่ายสำหรับเราที่จะเปลี่ยนคอนโทรลเลอร์ใน testnet (และสำหรับพวกมันใน mainnet).
การออกโทเค็น
เนื่องจากตอนนี้ผู้ส่งเป็นผู้ควบคุมสัญญา LEO อีกครั้งจึงสามารถเข้าถึงฟังก์ชันสัญญา LEO“ createTokens” และ“ destroyTokens” ได้ เราได้สร้างที่อยู่กระเป๋าเงินแบบสุ่ม“ 0xada183F6Ff6E7805EE5bDA701d40958858FeE548” เพื่อส่งบางส่วนอย่างเมามัน โทเค็น LEO จำนวนมาก 1,000,000,000,000,000,000,000,000,000,000,000,000 (หนึ่งพันล้าน) LEO โอน.
การเผาไหม้โทเค็น
เราต้องการตรวจสอบว่าเรา (ผู้ส่ง) สามารถลบหรือทำลายโทเค็นจากที่อยู่แบบสุ่มได้หรือไม่ 0xada183F6Ff6E7805EE5bDA701d40958858FeE548 ที่เราสร้างไว้ก่อนหน้านี้.
ในธุรกรรมข้างต้นเราได้เบิร์น / ลบ / ทำลายโทเค็น 10,000,000,000 (หมื่นล้าน) สำเร็จจากกระเป๋าเงินของคนอื่นหรือที่อยู่ที่เราไม่ได้เป็นเจ้าของ.
คุณจะเห็นได้ว่าที่อยู่“ 0xada183F6Ff6E7805EE5bDA701d40958858FeE548” มียอดคงเหลือ 999,999,999,999,999,999,999,999,990,000,000,000 เก้าร้อยเก้าสิบเก้าสิบเก้าพันล้านเก้าร้อยเก้าสิบเก้าสิบเก้าสิบเก้าสิบเก้าพันล้านเก้าร้อยเก้าสิบเก้าสิบล้าน , เก้าร้อยเก้าสิบเก้า quintillion, เก้าร้อยเก้าสิบเก้า quadrillion, เก้าร้อยเก้าสิบเก้าล้านล้าน, เก้าแสนเก้าหมื่นล้าน) โทเค็น LEO ของ testnet เท่านั้น.
การเปรียบเทียบสัญญา | |||
สิงห์ | ต้นฉบับ | เทสเน็ต | ความแตกต่าง |
MiniMeTokenFactory | ต้นฉบับ | เทสเน็ต | ความแตกต่าง |
LEOController | ต้นฉบับ | เทสเน็ต | ความแตกต่าง |
TLDR: สิ่งนี้ส่งผลต่อฉันอย่างไร?
Paolo Ardoino, CTO ของ Bitfinex, ตอบกลับทวีตของเรา ซึ่งสรุปปัญหานี้โดยระบุว่า:
“ เพื่อความปลอดภัยและเหตุผลในการพิสูจน์ในอนาคตเราจึงปล่อยให้ความสามารถในการอัปเกรดสัญญาโทเค็น นั่นเป็นคุณลักษณะสำคัญสำหรับสัญญาที่อาจมีชีวิตอยู่ได้นานหลายปี การทำเหรียญกษาปณ์เพิ่มเติมจะไม่สมเหตุสมผลสำหรับ Finex … เช่นเดียวกับการยิงเท้าของเรา “
เราไม่เพียง แต่รักทวีตของเขาเท่านั้น แต่ยังอยากจะขอบคุณต่อสาธารณะสำหรับการตอบกลับของเขาเพราะเราเชื่อว่านี่คือวิธีที่เราสามารถรับผิดชอบตัวเองและช่วยชี้นำอุตสาหกรรมนี้ไปสู่อนาคตที่ดีกว่า.
ตอนนี้กลับมาทำธุรกิจกัน! โปรดทราบว่าสัญญาอัจฉริยะได้รับการออกแบบมาให้เชื่อถือได้ Bitfinex ทำลายความไว้วางใจที่นี่ด้วยการวางแบ็คดอร์ไว้ที่นี่ซึ่งทำให้พวกเขามีตั๋วโกงได้ทุกเมื่อที่ต้องการพร้อมข้อได้เปรียบที่ไม่เป็นธรรมเหนือคนอย่างคุณและฉัน ซ้ำแล้วซ้ำอีกตลอดบทความนี้ความจริงเพียงอย่างเดียวที่เราได้ชี้ให้เห็นคือความสามารถในการสร้างเหรียญ LEO จำนวนเท่าใดก็ได้ (หรือไม่ จำกัด ) ตามดุลยพินิจของพวกเขาและลบเหรียญของกระเป๋าเงินใด ๆ ในตอนนี้หรือในอนาคต.
เพื่อสรุปและทำให้ทุกอย่างง่ายขึ้นสำหรับผู้อ่านที่ไม่เกี่ยวกับเทคนิคเราไม่ปฏิเสธหรือตั้งคำถามถึงความสามารถในการอัปเกรดของ Smart Contract ปัญหาที่นี่ไม่ใช่ทางเทคนิค แต่เป็นเชิงปรัชญา หากคุณเห็นด้วยกับการที่ Bitfinex สามารถทำสิ่งที่พวกเขาทำได้กับ LEO เราก็เข้าใจเช่นกันและเคารพในมุมมองของคุณ แต่สำหรับเรา LEO ไม่ได้เล่นกับจิตวิญญาณและปรัชญาของบล็อกเชนได้ดีเพราะสามารถกำหนดเงื่อนไขได้ นอกจากนี้จากความเข้าใจที่บกพร่องและถ่อมตัวของเราสกุลเงินดิจิทัล:
- ควรเปิดให้ทุกคน. เชิญมาเที่ยวได้ตามอัธยาศัย ✓
- ควรเป็นธรรม. ไม่ควรมีใครได้เปรียบอย่างไม่เป็นธรรมเหนือใคร ✘
- ควรจะรวม ไม่ควร จำกัด เฉพาะใครก็ตามไม่ว่าจะพูดหรือทำอะไรหรือมาจากไหนแทนที่จะเฉยเมยกับ "Who" พวกเขาเป็นหรือ "อะไร" พวกเขาอาจจะกลายเป็น ✘
- ควรทนต่อการเซ็นเซอร์หากไม่มีการเซ็นเซอร์ ไม่ควรมีใครหยุดใช้หรือเข้าถึงคุณลักษณะใด ๆ ในช่วงเวลาใดเวลาหนึ่ง เมื่อพูดถึงเครือข่าย blockchain (สัญญาอัจฉริยะในกรณีนี้) แม้แต่นักแสดงที่ไม่ดีเช่นนักต้มตุ๋นแฮ็กเกอร์และนักต้มตุ๋นก็ควรได้รับการปฏิบัติอย่างไม่มีการเซ็นเซอร์ – โดยรวมอย่างเท่าเทียมเปิดเผยและเป็นธรรม หากคุณไม่สามารถเซ็นเซอร์ตัวแสดงที่ไม่ดีใน Bitcoin ได้ทำไมคุณถึงทำได้ใน LEO? “ ความสามารถในการอัพเกรด” ไม่ได้แสดงถึง“ ความสามารถ” ในการกำหนดเงื่อนไข ✘
- ควรไม่เปลี่ยนรูป สิ่งที่เกิดขึ้นควรอยู่ที่นั่นตลอดไปเพื่อให้ทุกคนตรวจสอบเห็นด้วยหรือไม่เห็นด้วย ✓
- เครือข่ายควรกระจายอำนาจ ไม่ควรมีหน่วยงานกลางใด ๆ ที่สามารถกำหนดเงื่อนไขเกี่ยวกับสิ่งที่จะเกิดขึ้นได้ แม้ว่าเครือข่าย Ethereum จะกระจายอำนาจ แต่สัญญาโทเค็น LEO ไม่ใช่เพราะพวกเขาสามารถกำหนดเงื่อนไขได้ ✘
- ควรกระจาย. ทุกคนควรสามารถรับประวัติของเครือข่ายและตรวจสอบความถูกต้องของข้อมูลได้ ✓
ผู้คนเชื่อถือ blockchain เพราะมันไม่น่าเชื่อถือ ลักษณะที่เชื่อถือได้ของ blockchain ทำให้ผู้คนเช่นคุณและฉันสนใจในเทคโนโลยีที่น่าทึ่งนี้.
เราไม่รู้สึกเสียใจใด ๆ ต่อ Bitfinex ในระดับส่วนตัว แต่อย่ากลัวที่จะชี้นิ้วไปที่พวกเขาเมื่อเรารู้สึกว่าพวกเขาทำผิดและพวกเขาจำเป็นต้องทำในสิ่งที่ถูกต้อง เรานำเสนอวิธีแก้ปัญหาให้กับ Bitfinex เพื่อสร้างโทเค็นใหม่โดยไม่มีคุณสมบัติดังกล่าวและแลกเปลี่ยนกับนักลงทุน การดำเนินการนี้เพียงอย่างเดียวอาจช่วยเพิ่มความเชื่อมั่นของนักลงทุนในโทเค็น LEO.
ในที่สุดการถกเถียงนี้อาจเกิดขึ้นในแวดวงได้เนื่องจาก Bitfinex จะโต้แย้งว่าพวกเขาต้องการ“ ความสามารถในการอัพเกรด” (จริงหรือ?) และเราจะไม่ยอมรับความจริงที่ว่าเหรียญของผู้อื่นสามารถลบได้แม้ว่าเหรียญเหล่านั้นจะไม่ใช่ของเรา เราขอฝากกรณีของเราไว้กับคุณผู้อ่านที่น่าทึ่งของเราเพื่อตัดสินใจของคุณเองและดูว่าคุณต้องการเชื่อถือสัญญา LEO ERC20 หรือไม่.