สถานะของการปรับขนาด Ethereum

บล็อก 1NewsDevelopersEnterpriseBlockchain ExplainedEvents and ConferencesPressจดหมายข่าว

สมัครรับจดหมายข่าวของเรา.

ที่อยู่อีเมล

เราเคารพความเป็นส่วนตัวของคุณ

หน้าแรกบล็อก Blockchain อธิบาย

สถานะของการปรับขนาด Ethereum

ภาพรวมโดยสังเขปของความท้าทายและแนวทางแก้ไขในการปรับขนาดเครือข่าย Ethereum โดย ConsenSys เมษายน 24, 2018 โพสต์เมื่อเมษายน 24, 2018

การกำเนิดของ Enterprise Ethereum ในปี 2560

นักพัฒนา Ethereum รู้มานานแล้วว่าการปรับขนาดเครือข่ายเป็นเรื่องที่ควรค่าแก่การอภิปรายและการลงทุน อย่างไรก็ตามเรื่องนี้ไม่ได้แพร่กระจายออกไปจากชุมชนนักพัฒนา แต่จนถึงปลายปี 2560 เมื่อแอปพลิเคชันแบบกระจายอำนาจ (dApp) ชื่อ CryptoKitties ดึงดูดการเข้าชมจำนวนมากมันเริ่มทำให้เครือข่ายช้าลง นอกเหนือจากความหน่วงแฝงของเครือข่ายแล้วราคาของก๊าซซึ่งเป็นค่าธรรมเนียมที่ต้องใช้ในการดำเนินการแต่ละครั้งภายในสัญญาบน Ethereum blockchain – พุ่งสูงขึ้นเนื่องจากผู้ใช้แข่งขันกันเพื่อให้ธุรกรรมของตนได้รับการตรวจสอบ.

แม้ว่าตอนนี้เรื่องราวจะถูกรายงานมากเกินไปและหมดไปแล้ว แต่สถานการณ์ของ CryptoKitties เปิดเผยว่า Ethereum ในสถานะปัจจุบันอาจไม่พร้อมสำหรับปริมาณการรับส่งข้อมูลที่จะมาพร้อมกับการเปิดตัว dApp ที่ประสบความสำเร็จ ความเร็วที่ช้าและต้นทุนการใช้งานที่ผันผวนทำให้ผู้คนออกห่างจากแพลตฟอร์มและแอปพลิเคชัน นักพัฒนา DApp กำลังเรียกเก็บเงินล่วงหน้าเพื่อเปิดตัวแอปพลิเคชั่นแรกที่นำมาใช้อย่างแพร่หลายดังนั้นนักพัฒนา Ethereum จึงต้องดำเนินการต่อเพื่อขยายขนาดบล็อกเชน.

“ Trilemma”

ทฤษฎีหนึ่งของเทคโนโลยีบล็อกเชนคือเครือข่ายสามารถรองรับสองสิ่งต่อไปนี้เท่านั้น: ความปลอดภัยการกระจายอำนาจและความสามารถในการขยายขนาด “ trilemma” ซึ่งเป็นที่ทราบกันดีว่าเป็นความท้าทายของนักพัฒนา Ethereum เนื่องจากพวกเขาพยายามที่จะรักษาหลักการสำคัญของ blockchain (การกระจายอำนาจและความปลอดภัย) ในขณะที่ปรับขนาดเพื่อการยอมรับและการนำไปใช้อย่างแพร่หลาย ตัวอย่างเช่นการแก้ไขความสามารถในการปรับขนาดได้ทันทีบางส่วนส่งผลกระทบอย่างรุนแรงต่อความปลอดภัยหรือการกระจายอำนาจ:

  1. การใช้ altcoins เป็นวิธีแก้ปัญหาทางทฤษฎีอย่างหนึ่งสำหรับข้อกังวลเรื่องความสามารถในการปรับขนาด ตัวเลือกนี้คือการละทิ้งแนวคิดของ blockchain หนึ่งรายการที่ธุรกรรมทั้งหมดเกิดขึ้นและใช้รูปแบบที่มี altcoins หลายตัวอยู่ร่วมกันซึ่งทั้งหมดทำงานบนบล็อคเชนแยกกัน ปริมาณการใช้งานต่อบล็อกเชนที่ลดลงจะช่วยให้กลุ่มบล็อกเชนนี้สามารถขยายขนาดได้ อย่างไรก็ตามเนื่องจากมีโหนดน้อยลงที่ทำหน้าที่ในแต่ละบล็อกเชนแต่ละบล็อกเชนจึงมีความอ่อนไหวต่อการโจมตีและผู้ใช้ที่เป็นอันตรายมากขึ้น ดังนั้นการใช้ altcoins จึงรักษาการกระจายอำนาจและปรับปรุงความสามารถในการปรับขยาย แต่ส่งผลกระทบต่อความปลอดภัยอย่างรุนแรง.
  2. เพิ่มขนาดบล็อก เป็นอีกหนึ่งวิธีแก้ปัญหาทางทฤษฎีสำหรับความกังวลเรื่องความสามารถในการปรับขนาด หากชุมชน Ethereum โหวตให้เพิ่มขนาดของแต่ละบล็อกโหนดทั้งหมดยังคงสามารถดำเนินการได้ทั้งหมด แต่สามารถทำธุรกรรมได้มากขึ้นในเวลาเดียวกันดังนั้นจึงเร่งความเร็วเครือข่าย อย่างไรก็ตามด้วยขนาดบล็อกที่ใหญ่ขึ้นการทำธุรกรรมแต่ละรายการต้องใช้พลังงานมากขึ้นและโหนดน้อยลงก็จะสามารถใช้พลังงานจำนวนนั้นได้ ผลลัพธ์จะเป็นอนาคตที่เครือข่ายจะได้รับการดูแลโดยซูเปอร์คอมพิวเตอร์เพียงไม่กี่คนที่มีพลังการประมวลผลมหาศาลที่จำเป็นในการตรวจสอบแต่ละบล็อก ดังนั้นขนาดบล็อกที่เพิ่มขึ้นจึงรักษาความปลอดภัยและเพิ่มความสามารถในการขยายขนาด แต่จะลดการกระจายอำนาจของเครือข่ายลงอย่างมาก.

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

มีสี่โปรโตคอลหลักในการพัฒนาที่จะแก้ไขปัญหาเรื่องความสามารถในการปรับขนาดได้ Sharding, Plasma และ Raiden ได้รับการเสนอโดยเฉพาะเพื่อช่วยในการปรับขนาด Ethereum โปรโตคอลที่สี่ Casper มีขอบเขตที่กว้างกว่ามาก แต่จะมีผลกระทบต่อความสามารถในการปรับขนาดได้เหนือกว่าคนอื่น ๆ อีกมากมาย.

Sharding

Sharding เป็นวิธีการหนึ่งในการปรับขนาดที่รักษาการทำธุรกรรมทั้งหมดบนบล็อกเชนดั้งเดิมจึงเรียกว่าโซลูชัน “on-chain” Sharding แก้ไขปัญหาที่ธุรกรรมทั้งหมดบน Ethereum เป็นลำดับเนื่องจากทุกโหนดต้องประมวลผลทุกธุรกรรม Sharding ช่วยให้การดำเนินการทำงานไปพร้อม ๆ กันดังนั้นจึงเพิ่มจำนวนธุรกรรมต่อวินาทีที่ blockchain โดยรวมสามารถดำเนินการได้ ด้วยการชาร์ดเครือข่าย Ethereum จะแบ่งออกเป็นหลายกลุ่มของโหนด แต่ละกลุ่มเหล่านี้เป็นชาร์ดและแต่ละชาร์ดจะประมวลผลธุรกรรมทั้งหมดที่เกิดขึ้นภายในกลุ่มนั้น สิ่งนี้ช่วยให้เศษทั้งหมดในการประมวลผลธุรกรรมที่แตกต่างกันไปพร้อม ๆ กัน

ภายในแต่ละชาร์ดโหนดบางโหนดที่เรียกว่า “collators” จะสร้าง “collation” หรือชุดข้อมูลเกี่ยวกับชาร์ดนั้นเป็นประจำ การจัดเรียงแต่ละรายการมีข้อมูลต่อไปนี้:


  1. ข้อมูลเกี่ยวกับว่าส่วนใดของการจัดเรียงมาจาก.
  2. ข้อมูลเกี่ยวกับสถานะของชาร์ดก่อนที่ธุรกรรมจะถูกนำไปใช้.
  3. ข้อมูลเกี่ยวกับสถานะของชาร์ดหลังจากธุรกรรมจะถูกนำไปใช้.
  4. ลายเซ็นดิจิทัลจาก⅔ของ collators ที่ตรวจสอบความถูกต้องของข้อมูลในการเปรียบเทียบ

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

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

พลาสม่า

Plasma เป็นอีกวิธีหนึ่งในการปรับขนาดที่ประมวลผลธุรกรรมแบบ“ off-chain” นั่นคือไม่ได้อยู่ใน Ethereum blockchain หลัก พลาสม่าช่วยให้บล็อกเชนจำนวนมาก (เรียกว่า “โซ่ลูก”) เกิดจากบล็อกเชนดั้งเดิม (เรียกว่า “รูทเชน”) ดังนั้นห่วงโซ่ลูกแต่ละตัวสามารถประมวลผลและรักษาบันทึกการทำธุรกรรมของตัวเองได้ในขณะที่อาศัยการรักษาความปลอดภัยพื้นฐานของห่วงโซ่ราก ด้วย Plasma ห่วงโซ่รากเป็นผู้บังคับใช้ทั่วโลกของการคำนวณที่เกิดขึ้นกับห่วงโซ่ลูกทั้งหมด อย่างไรก็ตามห่วงโซ่รากจะต้องได้รับการคำนวณก็ต่อเมื่อมีข้อพิพาทเกิดขึ้นภายในห่วงโซ่ลูกหนึ่ง วิธีนี้ช่วยให้เครือข่ายลูกโซ่ทั้งหมดสามารถแบ่งธุรกรรมทั้งหมดบนบล็อกเชนเพื่อเพิ่มความเร็วและประสิทธิภาพได้ดีที่สุด หากโหนดบนห่วงโซ่ลูกต้องการพวกเขาสามารถส่งธุรกรรมการออกและส่งออกบันทึกธุรกรรมของพวกเขาไปยังห่วงโซ่ราก.

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

ไรเดน

Raiden เป็นอีกหนึ่งโซลูชันการปรับขนาดแบบ off-chain ที่ช่วยให้โหนดสามารถรักษาบันทึกระหว่างกันได้โดยไม่ต้องให้ root chain ตรวจสอบทุกธุรกรรม สองโหนดสามารถเปิด “ช่องสถานะ” ระหว่างพวกเขาซึ่งเป็นช่องทางสองทางระหว่างผู้ใช้ “ ข้อความ” – ในรูปแบบของธุรกรรม – เกิดขึ้นระหว่างสองโหนดและมีการลงนามโดยแต่ละฝ่ายเพื่อให้แน่ใจว่าไม่เปลี่ยนรูป Raiden มีประโยชน์อย่างยิ่งสำหรับการชำระเงินที่เกิดขึ้นบ่อยครั้งและคาดหวังนั่นคือผู้ใช้ที่รู้ว่าพวกเขาจะจ่ายเงินให้ บริษัท $ 10 ต่อสัปดาห์สำหรับบริการหรือผู้ใช้ที่รู้ว่าพวกเขาจะใช้จ่ายเงินที่ร้านขายของชำในพื้นที่เป็นประจำ ด้วยธุรกรรมที่บันทึกและตรวจสอบระหว่างโหนดทั้งสองนี้แทนที่จะเป็นในแต่ละบล็อกเชนรูทจะปลดปล่อยทราฟฟิกจำนวนมหาศาล ผู้เข้าร่วมในช่องรัฐสามารถเลือกปิดธุรกรรมได้ตลอดเวลาและผลลัพธ์สุทธิของธุรกรรมทั้งหมดจะถูกส่งออกไปยัง root blockchain และรวมไว้ในบล็อกถัดไป นั่นหมายความว่าหลังจากสมัครใช้บริการ $ 10 / สัปดาห์หนึ่งปีผู้ใช้อาจมีการบล็อกยืนยันธุรกรรม $ 520 หนึ่งรายการแทนที่จะเป็น 52 ธุรกรรมแยกต่างหาก $ 10.

โซลูชัน Raiden มาพร้อมกับข้อแม้หลักประการหนึ่งและประโยชน์หลักอย่างหนึ่ง ข้อแม้คือโหนดสามารถสื่อสารกับ“ เพื่อนบ้าน” เท่านั้นซึ่งหมายความว่าหากโหนด A และโหนด B มีช่องสถานะเปิดอยู่และโหนด B และโหนด C มีช่องคำสั่งเปิดอยู่โหนด A จะไม่สามารถส่งเงินไปยังโหนด C ได้โดยตรง อย่างไรก็ตามธุรกรรมสามารถส่งต่อผ่านช่องทางในลักษณะที่ไม่สามารถถูกขโมยหรือถูกล็อกระหว่างทางได้ โหนด A สามารถส่งธุรกรรมไปยังโหนด C โดยใช้โหนด B เป็นตัวกลางในลักษณะที่โหนด B ไม่สามารถขโมยเงินได้ เพื่อประโยชน์หลัก Raiden จึงลดราคาก๊าซในแต่ละธุรกรรมลงอย่างมาก ธุรกรรมที่เกิดขึ้นนอกเครือข่ายระหว่างโหนดต้องการก๊าซในการประมวลผลน้อยกว่าธุรกรรมที่เกิดขึ้นบนห่วงโซ่ราก.

แคสเปอร์

Casper เป็นโปรโตคอลที่โมเดล Proof of Work (PoW) ปัจจุบันของ Ethereum จะเปลี่ยนเป็น Proof of Stake (PoS) ด้วย PoW ปัจจุบันนักขุดต้องใช้พลังงานเพื่อแก้สมการการเข้ารหัสและขุดบล็อก พวกเขาจะได้รับรางวัลถ้าพวกเขาแก้สมการ แต่กระบวนการนี้ต้องใช้พลังงานมหาศาล (และจะต้องใช้มากขึ้นเรื่อย ๆ ) สิ่งนี้มีค่าใช้จ่ายสูงและไม่มีประสิทธิภาพในการใช้พลังงานปัจจุบันมีค่าใช้จ่าย 1.2 พันล้านเหรียญสหรัฐ / ปีเพื่อรักษาแบบจำลอง PoW.

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

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

การเปิดตัวครั้งสุดท้ายของ Casper จะนำหน้าด้วยการทำซ้ำสองโปรโตคอล: Casper FFG และ Casper CBC การทำซ้ำเหล่านี้จะถูกปรับใช้บน Ethereum เพื่อทดสอบ PoS บนเครือข่ายและระบุปัญหาที่อาจเกิดขึ้นก่อนที่จะเปลี่ยนไปอย่างสมบูรณ์.

แคสเปอร์ FFG

Casper FFG (Friendly Finality Gadget) จะเป็นการทำซ้ำครั้งแรกของ Casper ซึ่งมีแนวโน้มว่าจะเปิดตัวในช่วง Hard Fork ถัดไปของ Ethereum ที่ Constantinople ใน Casper FFG บล็อกยังคงถูกขุดด้วย PoW อย่างไรก็ตามทุกๆห้าสิบบล็อกผู้ตรวจสอบความถูกต้องจะเข้ามาทดสอบกลไก PoS “จุดตรวจ” นี้ใช้โปรโตคอล PoS ในการประเมินและยืนยันการสิ้นสุด Finality หมายความว่าการดำเนินการเสร็จสมบูรณ์และไม่เปลี่ยนรูปโดยสิ้นเชิง ใน FFG ผู้ตรวจสอบความถูกต้องจะทุ่มทุนเพื่อสรุปห้าสิบบล็อกก่อนหน้านี้ในห่วงโซ่.

แคสเปอร์ CBC

Casper CBC (Correct-by-Construction) จะเป็นการทำซ้ำครั้งที่สองของ Casper โดยปกติโปรโตคอลจะถูกระบุอย่างเป็นทางการและพิสูจน์แล้วว่าเป็นไปตามคุณสมบัติที่กำหนดทั้งหมด ด้วย CBC โปรโตคอล PoS จะถูกระบุเพียงบางส่วนจากนั้นปรับแต่งเพิ่มเติมเพื่อให้เป็นไปตามคุณสมบัติตามที่ตั้งใจไว้ โดยพื้นฐานแล้วแทนที่จะกำหนดไว้อย่างสมบูรณ์ตั้งแต่ต้นโปรโตคอลจะได้รับมาอย่างต่อเนื่องและต่อเนื่อง สิ่งนี้ทำได้โดยการใช้การพิสูจน์ที่เรียกว่า “ปฏิปักษ์ในอุดมคติ” ซึ่งสามารถยกข้อยกเว้นข้อบกพร่องและความล้มเหลวในอนาคตของโปรโตคอล.

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

มองไปตามถนน

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

จดหมายข่าวสมัครรับจดหมายข่าวของเราเพื่อรับข่าวสารล่าสุดของ Ethereum โซลูชันระดับองค์กรทรัพยากรสำหรับนักพัฒนาและอื่น ๆ ที่อยู่อีเมลเนื้อหาพิเศษรายงาน DeFi ประจำไตรมาสที่ 3 ปี 2020 ของ Ethereumรายงาน

รายงาน DeFi ประจำไตรมาสที่ 3 ปี 2020 ของ Ethereum

รายงาน DeFi ประจำไตรมาส 2 ปี 2020 ของ Ethereumรายงาน

รายงาน DeFi ประจำไตรมาส 2 ปี 2020 ของ Ethereum

คู่มือฉบับสมบูรณ์สำหรับเครือข่ายธุรกิจ Blockchainคู่มือ

คู่มือฉบับสมบูรณ์สำหรับเครือข่ายธุรกิจ Blockchain

วิธีสร้างผลิตภัณฑ์ Blockchain ที่ประสบความสำเร็จการสัมมนาผ่านเว็บ

วิธีสร้างผลิตภัณฑ์ Blockchain ที่ประสบความสำเร็จ

รู้เบื้องต้นเกี่ยวกับ Tokenizationการสัมมนาผ่านเว็บ

รู้เบื้องต้นเกี่ยวกับ Tokenization

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map