ทบทวนความรู้เรื่อง Blockchain

Tanya Sattaya-aphitan
2 min readAug 27, 2018

--

Blockchain คือการ “เก็บข้อมูล” แบบหนึ่ง แต่สิ่งที่ทำให้ Blockchain แตกต่างจากการเก็บข้อมูลแบบอื่นๆ คือ

  • Distributed — อยู่ยงคงกระพัน ฆ่าไม่ตาย เนื่องจาก data เก็บหลาย copy แบบกระจาย ซึ่งเป็นไปได้ยากที่ data ทั้งหมดจะล่มพร้อมกัน
  • Timestamped Records — เก็บข้อมูลเวลาไว้ใน block (time series) ทำให้ทราบลำดับเวลาของการทำธุรกรรมตั้งแต่อดีต จนปัจจุบัน
  • Immutable — สิ่งที่เก็บไว้แล้วจะแก้ไขไม่ได้ ยกเว้นสามารถโน้มน้าวให้คนส่วนใหญ่เห็นด้วย

เนื่องจากการเก็บข้อมูลเป็นแบบกระจาย (Distributed) คือหลายๆ คนจะช่วยกันเก็บข้อมูล ดังนั้นต้องมีองประกอบเพื่อให้เกิดความเชื่อใจ (Trust) ดังนี้

  • Integrity — ข้อมูลเป็นหนึ่งเดียว มาจากคุณสมบัติของ immutable ใช้ซ้ำไม่ได้
  • Confidentially — ทุก transaction สามารถตรวจสอบได้ และแก้ไขไม่ได้
  • Availability — มาจากคุณสมบัติชอง distributed คือระบบใช้ได้ตลอดเวลา ไม่มีวันล่ม

Why does it work?

สิ่งที่ส่งผลให้ Blockchain มันสามารถได้จริง ก็เนื่องจากคุณสมบัติเหล่า

  • Transparency by design : ตรวจสอบได้
  • Security by design: โอกาสโดน hack ยากมาก
  • Trust by design : เชื่อมั่นในระบบได้ .. therefore thrustworthly by design
  • ใครก็ run ได้ ใครก็ verify ได้

องค์ประกอบของ Blockchain

Blockchain เป็น technology ที่เกี่ยวกับความเชื่อใจ (Trust) ในการทำธุรกรรมที่มีมูลค่า (Value) โดย มีองค์ประกอบ 4 ข้อ ดังนี้

1. Block

เป็นการเก็บ Data Transaction/Fact โดยบรรจุในกล่อง(Block) และเมื่อปิดกล่องแล้ว ข้อมูลภายในกล่องห้ามเปลี่ยนแปลง โดยจะมี Hash ปะหน้ากล่อง (Hash function คือการนำ input ขนาดยาวเท่าไหร่ก็ได้มาแปลงเป็นค่าขนาดคงที่ ซึ่ง input จะให้ค่า output เดิมเสมอ) โดยสรุปคือ .. เป็น Block ที่ใช้เก็บ data ที่ไม่สามารถเปลี่ยนแปลงได้

2. Chain

การเอา header (hash) ของ block มาเรียงต่อกันเป็น chain

  • มีแค่ header (hash) ล่าสุดสามารถตรวจสอบได้ตลอดทั้ง chain ว่าไม่ถูกเปลี่ยนแปลง
  • การทำธุรกรรมก็แค่เอา hash ล่าสุด 2 คนมาเทียบกัน ถ้าตรงกันคือเชื่อถือได้ ทำธุรกรรมได้
  • เราสามารถเก็บแค่ hash ล่าสุดไว้ก็ได้ ไม่ต้องเก็บทั้ง blockchain ในการทำธุรกรรม
  • ข้อมูลกล่องปัจจุบันจะเก็บ hash ของกล่องก่อนหน้า ทำให้เปลี่ยน data transaction ที่เกิดขึ้นมาแล้วไม่ได้ เนื่องจากมี Hash กำกับไว้ที่กล่องและถ้าจะแก้ข้อมูลบางกล่อง ต้องตามแก้ทั้ง chain ทุก block
  • โดยสรุป Chain คือเอา Block มาต่อกันโดยเก็บค่า Hash ไว้ในกล่องถัดไป

3. Consensus

วิธีการตกลงกันว่า block ถัดไปจะเก็บอย่างไร สามารถทำได้หลายวิธีเช่น

  • วิธีใดก็ได้ที่ตกลงกันแล้วทุกคนยอมรับ”ธุรกรรม” ที่เกิดขึ้น เช่น เป่ายิงชุบ / แบบประชาธิปไตย/ หัวหน้าฟันธง etc. แต่วิธีการที่ใช้อยู่ในปัจจุบันเช่น
  • Prove of Work : คือให้คนที่โชคดีและขยันที่สุดชนะ ซึ่งยิ่งจำนวน peer มาก ความน่าเชื่อถือยิ่งเยอะและยิ่งปลอดภัยจากการถูกทำลายระบบ
  • Prove of Stake : ให้สิทธิ์กับคนที่ถือมูล (value) ที่มีค่าสูงสุด ในการตัดสิน แต่วิธีนี้อาจจะใส่กฎอื่นเพิ่มเช่น อาจจะใช้ได้แล้วต้องหยุดสักพัก ให้สิทธิ์คนอื่นบ้าง ไม่งั้นคนอื่นอาจจะไม่ใช้ระบบเพราะไม่มีสิทธิ์มีเสียง

เพิ่มเติม : Forking = การแตกออกจาก chain หลัก ซึ่ง chain ที่แตกออกไปจะคุยกับคนอื่นไม่รู้เรื่องและจะเป็นโมฆะในที่สุดปรกติมีประมาณ 4–5 Block

4. Validation

การตรวจสอบธุรกรรม ใช้ digital signature (private key) เพื่อประกันว่าธุรกรรมเกิดจากเจ้าของเงินจริงๆ
- Bitcoin มีมา 9 ปี ยังไม่มีใครโดน Hack ระบบ
แต่ที่โดน hack คือ web ที่เก็บ wallet (private key) คือใครถือ private key คนนั้นมีสิทธิ์ทำธุรกรรมได้เปรียบเสมือนเจ้าของ

5. Wallet (optional)

กระเป๋าเงินที่ทำให้เราทราบมูลค่าของเงินที่เรามีอยู่

Framework ในการพัฒนา

Framework ในการพัฒนา Blockchain ที่นิยมเช่น

  • Etherium — ใช้ Solidity /web3
  • Hyperledger — ใช้ภาษา GO
  • Stellar — เน้นไปที่ระบบ Payment

ตัวอย่าง Applications

-Bitcoin
-Smart contract
-Digital management of copyright/IP Asset
- Energy Trade
- Real Estate
- Insurance
- Health record Management
- Accounting
- Digital Society (e-Estonia)
- พินัยกรรม
- etc.,

ที่มา

หัวข้อ “เทคโนโลยี Blockchain เพื่อการรักษาความมั่นคงปลอดภัยทาง Cyber”

Topic: “Blockchain: An Innovation to Improve Cybersecurity” by Dr. Bhume Bhumiratana & BakerMckenzie & Faculty of Law CU

วันที่ : January 27, 2017

Distributed System

--

--