<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2024-07-24T15:20:55Z</updated>
  <generator>https://nostr.ae</generator>

  <title>Nostr notes by LearnBN</title>
  <author>
    <name>LearnBN</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://nostr.ae/npub10yqgu7q6mmrk0nywywd4x0kukx029cnqly5p4yf9ay6zthavjw2syrhcl3.rss" />
  <link href="https://nostr.ae/npub10yqgu7q6mmrk0nywywd4x0kukx029cnqly5p4yf9ay6zthavjw2syrhcl3" />
  <id>https://nostr.ae/npub10yqgu7q6mmrk0nywywd4x0kukx029cnqly5p4yf9ay6zthavjw2syrhcl3</id>
  <icon>https://i.imgur.com/e6cvtcn.png</icon>
  <logo>https://i.imgur.com/e6cvtcn.png</logo>




  <entry>
    <id>https://nostr.ae/nevent1qqs0cm828v7ck7htv42yq7nwf06s8duhvmmgk2308s4dhfmsql3qxcgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2xve4uh</id>
    
      <title>Nostr event nevent1qqs0cm828v7ck7htv42yq7nwf06s8duhvmmgk2308s4dhfmsql3qxcgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2xve4uh</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs0cm828v7ck7htv42yq7nwf06s8duhvmmgk2308s4dhfmsql3qxcgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2xve4uh" />
    <content type="html">
      เสริมเติมแต่ง เนื้่อหาจาก RightTech ep.4: เรื่อง Bitcoin wallet&lt;br/&gt;&lt;br/&gt;เนื่องจากพี่อาร์มแนะนำพวกเรื่องของการเลือกแบบตาม platform หรือ OS ไปแล้ว วันนี้ผมมาเติมให้ในส่วนของการเลือกตามวิธีการเก็บ key ครับผม&lt;br/&gt;&lt;br/&gt;1. กระเป๋าประเภทสร้างคู่กุญแจแบบอิสระ&lt;br/&gt;ก่อนอื่นเรามาทำความเข้าใจกันก่อนดีกว่าว่า bitcoin wallet หรือ กระเป๋าเก็บบิตคอยน์นั้นคืออะไร โดยสิ่งที่คนทั่ว ๆ ไป เรียกว่ากระเป๋าเก็บบิตคอยน์นั้น จริง ๆ แล้วที่เก็บอยู่ภายในนั้นมีเพียงแค่กุญแจเท่านั้น โดยกุญแจเหล่านี้เชื่อมโยงกับบิตคอยน์ที่บันทึกไว้ในบล็อกเชน โดยการพิสูจน์ต่อโหนดบิตคอยน์ว่าคุณควบคุมคีย์ คุณสามารถใช้จ่ายบิตคอยน์ที่เชื่อมโยงได้ ซึ่งแตกต่างกับกระเป๋าเงินที่เราเข้าใจโดยทั่วไปว่าสามารถเก็บเงินสดลงไปในนั้นได้&lt;br/&gt;&lt;br/&gt;กระเป๋าเก็บบิตคอยน์โดยทั่วไปนั้นจะมีทั้ง public key เพื่อใช้ในการสร้าง address และ private key สำหรับสร้างลายเซ็นเพื่ออนุมัติการจ่ายบิตคอยน์ หรืออีกประเภทหนึ่งคือประเภทที่มีเฉพาะ public key ในแอพกระเป๋าเก็บบิตคอยน์ โดยเมื่อต้องการใช้บิตคอยน์จะทำงานคู่กับอุปกรณ์ภายนอก เช่น อุปกรณ์ลงลายมือชื่อฮาร์ดแวร์หรือกระเป๋าเงินอื่นในแผนการลงลายมือชื่อหลายรายการ (hardware wallet หรือพวก multisig)&lt;br/&gt;&lt;br/&gt;เป็นไปได้ที่แอปพลิเคชันกระเป๋าเงินจะสร้างคู่กุญแจของกระเป๋าเงินแต่ละคู่กุญแจอย่างอิสระก่อนที่จะใช้ในภายหลัง ดังที่แสดงในรูปภาพด้านล่างนี้ แอปพลิเคชันกระเป๋าเงินบิตคอยน์ทั้งหมดในยุคแรกทำเช่นนี้ แต่ต้องให้ผู้ใช้สำรองฐานข้อมูลกระเป๋าเงินทุกครั้งที่พวกเขาสร้างและกระจายคู่กุญแจใหม่ ซึ่งอาจเกิดขึ้นบ่อยเท่ากับทุกครั้งที่สร้าง address ใหม่เพื่อรับการชำระเงินใหม่ การล้มเหลวในการสำรองฐานข้อมูลกระเป๋าเงินในเวลาที่เหมาะสมจะทำให้ผู้ใช้สูญเสียการเข้าถึงเงินทุนที่ได้รับจากกุญแจที่ยังไม่ได้สำรอง&lt;br/&gt;&lt;br/&gt;สำหรับกุญแจที่สร้างอย่างอิสระแต่ละกุญแจ ผู้ใช้จะต้องสำรองประมาณ 32 ไบต์ บวกค่าใช้จ่ายทั่วไป ผู้ใช้และแอปพลิเคชันกระเป๋าเงินบางรายพยายามลดปริมาณข้อมูลที่ต้องสำรองโดยใช้เพียงกุญแจเดียว แม้ว่าจะสามารถทำได้อย่างปลอดภัย แต่ก็ลดความเป็นส่วนตัวของผู้ใช้และบุคคลที่พวกเขาทำธุรกรรมด้วยอย่างมาก บุคคลที่ให้คุณค่ากับความเป็นส่วนตัวของตนเองและเพื่อนร่วมธุรกรรมสร้างคู่กุญแจใหม่สำหรับแต่ละธุรกรรม ซึ่งทำให้เกิดฐานข้อมูลกระเป๋าเงินที่สามารถสำรองได้อย่างสมเหตุสมผลเฉพาะโดยใช้สื่อดิจิทัลเท่านั้น&lt;br/&gt;&lt;br/&gt;  &lt;img src=&#34;https://image.nostr.build/4d8d21c243d0edda22ead06a721461d9b89a7e64d1ca92a87132f1a4d96fe0d4.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt;2. กระเป๋าเก็บบิตคอยน์ประเภทสร้างกุญแจแบบกำหนดได้ (Deterministic Key)&lt;br/&gt;&lt;br/&gt;ฟังก์ชันแฮชจะสร้างเอาต์พุตเดิมเสมอเมื่อรับอินพุตเดิม แต่ถ้าอินพุตเปลี่ยนแปลงเพียงเล็กน้อย เอาต์พุตจะแตกต่างกัน หากฟังก์ชันมีความปลอดภัยทางการเข้ารหัส จะไม่มีใครสามารถคาดเดาเอาต์พุตใหม่ได้ เว้นเสียแต่ว่าพวกเขารู้อินพุตใหม่&lt;br/&gt;&lt;br/&gt;สิ่งนี้สามารถช่วยให้เราสามารถนำค่าหนึ่งค่าแปลงไปเป็นอีกค่า ยิ่งไปกว่านั้น การใช้ฟังก์ชันแฮชเดิมกับอินพุตเดิม (seed) จะสร้างค่าใหม่ได้:&lt;br/&gt;```&lt;br/&gt;# Collect some entropy (randomness)&lt;br/&gt;$ dd if=/dev/random count=1 status=none | sha256sum&lt;br/&gt;f1cc3bc03ef51cb43ee7844460fa5049e779e7425a6349c8e89dfbb0fd97bb73  -&lt;br/&gt;# Set our seed to the random value&lt;br/&gt;$ seed=f1cc3bc03ef51cb43ee7844460fa5049e779e7425a6349c8e89dfbb0fd97bb73&lt;br/&gt;# Deterministically generate derived values&lt;br/&gt;$ for i in {0..2} ; do echo &amp;#34;$seed &#43; $i&amp;#34; | sha256sum ; done&lt;br/&gt;50b18e0bd9508310b8f699bad425efdf67d668cb2462b909fdb6b9bd2437beb3  -&lt;br/&gt;a965dbcd901a9e3d66af11759e64a58d0ed5c6863e901dfda43adcd5f8c744f3  -&lt;br/&gt;19580c97eb9048599f069472744e51ab2213f687d4720b0efc5bb344d624c3aa  -&lt;br/&gt;```&lt;br/&gt;หากใช้ค่าอนุพันธ์เป็น private key ของเรา เราสามารถสร้างคีย์ส่วนตัวเหล่านั้นได้อย่างแน่นอนโดยใช้ seed กับอัลกอริทึมที่เราใช้ก่อนหน้า ผู้ใช้การสร้างกุญแจแบบกำหนดได้สามารถสำรองกุญแจทุกดอกในกระเป๋าเงินของตนโดยเพียงบันทึก seed และการอ้างอิงถึงอัลกอริทึมแบบกำหนดได้ที่พวกเขาใช้ ตัวอย่างเช่น แม้ว่าอลิซมีบิตคอยน์ 1 ล้านที่ได้รับจาก 1 ล้าน address ที่แตกต่างกัน สิ่งที่เธอต้องสำรองเพื่อกู้คืนการเข้าถึงบิตคอยน์เหล่านั้นในภายหลังคือ:&lt;br/&gt;```&lt;br/&gt;f1cc 3bc0 3ef5 1cb4 3ee7 8444 60fa 5049&lt;br/&gt;e779 e742 5a63 49c8 e89d fbb0 fd97 bb73&lt;br/&gt;```&lt;br/&gt;แผนภาพตรรกะของการสร้างกุญแจแบบกำหนดได้แบบเรียงลำดับขั้นพื้นฐานแสดงในรูปภาพด้านล่างนี้ อย่างไรก็ตาม แอปพลิเคชันกระเป๋าเงินสมัยใหม่มีวิธีที่ชาญฉลาดมากขึ้นในการทำสิ่งนี้ ซึ่งช่วยให้ public key สามารถสร้างแยกจาก private key ที่เกี่ยวข้อง ทำให้เป็นไปได้ที่จะเก็บ private key อย่างปลอดภัยมากกว่า public key&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://github.com/bitcoinbook/bitcoinbook/raw/develop/images/mbc3_0502.png&#34;&gt; &lt;br/&gt;&lt;br/&gt;3. การสร้างกุญแจแบบลำดับชั้นและกำหนดค่าได้ (HD Key Generation - BIP32)&lt;br/&gt;&lt;br/&gt;วอลเล็ตบิตคอยน์สมัยใหม่ทั้งหมดที่เรารู้จักใช้การสร้างกุญแจแบบลำดับชั้นและกำหนดค่าได้ (HD) เป็นค่าเริ่มต้น มาตรฐานนี้ ซึ่งกำหนดไว้ใน BIP32 ใช้การสร้างกุญแจแบบกำหนดค่าได้และการดึง public child key แบบเลือกได้ ด้วยอัลกอริทึมที่สร้าง tree ของกุญแจ ใน tree นี้ กุญแจใด ๆ สามารถเป็นพ่อแม่ของชุด child key และ child key ใด ๆ ก็สามารถเป็นพ่อแม่ของชุด child key อื่น ไม่มีขีดจำกัดตายตัวในความลึกของ tree โครงสร้าง tree นี้แสดงให้เห็นในวอลเล็ต HD: tree ของกุญแจที่สร้างมาจาก seed เดียว&lt;br/&gt;  &lt;img src=&#34;https://image.nostr.build/0243bc612b0fee9b10158e05ec0101af8f4245ec454c9b13da5b41aed139277c.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt;โครงสร้างแบบ tree สามารถใช้แสดงความหมายทางการจัดการเพิ่มเติม เช่น เมื่อกิ่งย่อยของกุญแจเฉพาะใช้สำหรับรับการชำระเงินขาเข้า และอีกกิ่งหนึ่งใช้สำหรับรับเงินทอนจากการชำระเงินขาออก กิ่งของกุญแจยังสามารถใช้ในบริบทองค์กร โดยจัดสรรกิ่งที่แตกต่างกันให้กับแผนก บริษัทในเครือ หน้าที่เฉพาะ หรือหมวดหมู่การบัญชี เป็นต้น&lt;br/&gt;&lt;br/&gt;#siamstr #righttech
    </content>
    <updated>2025-03-27T05:12:23Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2cx83k6u9mh6396c0nhv3l62n9vchqetaxgkkuufjd0gkaka2zcczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2ffafnx</id>
    
      <title type="html">Compressed Public Keys ในยุคแรก ๆ ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2cx83k6u9mh6396c0nhv3l62n9vchqetaxgkkuufjd0gkaka2zcczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2ffafnx" />
    <content type="html">
      Compressed Public Keys&lt;br/&gt;&lt;br/&gt;ในยุคแรก ๆ ของบิตคอยน์นั้น มีเพียงการสร้าง public key แบบ 65 Bytes เท่านั้น แต่ในเวลาต่อมา เหล่านักพัฒนาในยุคหลังได้พบวิธีการสร้าง public key แบบใหม่ที่มีเพียง 33 Bytes และสามารถทำงานร่วมกันกับโหนดทั้งหมดในขณะนั้นได้ จีงไม่จะเป็นต้องเปลี่ยนแปลงกฎหรือโครงสร้างภายในโปรโตคอลของบิตคอยน์ โดย poublic key แบบใหม่ที่มีขนาด 33 Bytes นี้เรียกว่า compressed public key (public key ที่ถูกบีบอัด) และมีการเรียก public key ที่มีขนาด 65 Bytes ว่า uncompressed public key (public key ที่ไม่ถูกบีบอัด) ซึ่งประโยชน์ของ public key ที่เล็กลงนั้น นอกจากจะช่วยให้การส่ง public key ให้ผู้อื่นทำได้ง่ายขึ้นแล้ว ยังช่วยให้ธุรกรรมมีขนาดเล็กลง และช่วยให้สามารถทำการชำระเงินได้มากขึ้นในบล็อกเดียวกัน&lt;br/&gt;&lt;br/&gt;อย่างที่เราได้เรียนรู้จากเนื้อหาในส่วนของ public key เราได้ทราบว่า public key คือจุด (x, y) บนเส้นโค้งวงรี เนื่องจากเส้นโค้งแสดงฟังก์ชันทางคณิตศาสตร์ จุดบนเส้นโค้งจึงเป็นคำตอบของสมการ ดังนั้นหากเรารู้พิกัด x เราก็สามารถคำนวณพิกัด y ได้โดยแก้สมการ y² mod p = (x³ &#43; 7) mod p นั่นหมายความว่าเราสามารถเก็บเพียงพิกัด x ของ public key โดยละพิกัด y ไว้ ซึ่งช่วยลดขนาดของกุญแจและพื้นที่ที่ต้องใช้เก็บข้อมูลลง 256 บิต การลดขนาดลงเกือบ 50% ในทุกธุรกรรมรวมกันแล้วช่วยประหยัดข้อมูลได้มากมายในระยะยาว!&lt;br/&gt;&lt;br/&gt;นี่คือ public key ที่ได้ยกเป็นตัวอย่างไว้ก่อนหน้า&lt;br/&gt;```&lt;br/&gt;x = F028892BAD7ED57D2FB57BF33081D5CFCF6F9ED3D3D7F159C2E2FFF579DC341A&lt;br/&gt;y = 07CF33DA18BD734C600B96A72BBC4749D5141C90EC8AC328AE52DDFE2E505BDB&lt;br/&gt;```&lt;br/&gt;และนี่คือ public key ที่มีตัวนำหน้า 04 ตามด้วยพิกัด x และ y ในรูปแบบ 04 x y:&lt;br/&gt;```&lt;br/&gt;K = 04F028892BAD7ED57D2FB57BF33081D5CFCF6F9ED3D3D7F159C2E2FFF579DC341A07CF33DA18BD734C600B96A72BBC4749D5141C90EC8AC328AE52DDFE2E505BDB&lt;br/&gt;```&lt;br/&gt;uncompressed public key นั้นจะมีตัวนำหน้าเป็น 04 แต่ compressed public key จะมีตัวนำหน้าเป็น 02 หรือ 03 โดยเหตุผลนั้นมาจากสมการ y² mod p = (x³ &#43; 7) mod p เนื่องจากด้านซ้ายของสมการคือ y² คำตอบสำหรับ y จึงเป็นรากที่สอง ซึ่งอาจมีค่าเป็นบวกหรือลบก็ได้ หากมองเชิงภาพ นี่หมายความว่าพิกัด y ที่ได้อาจอยู่เหนือหรือใต้แกน x เราต้องไม่ลืมว่าเส้นโค้งมีความสมมาตร ซึ่งหมายความว่ามันจะสะท้อนเหมือนกระจกโดยแกน x ดังนั้น แม้เราจะละพิกัด y ได้ แต่เราต้องเก็บ เครื่องหมาย ของ y (บวกหรือลบ) หรืออีกนัยหนึ่งคือเราต้องจำว่ามันอยู่เหนือหรือใต้แกน x เพราะแต่ละตำแหน่งแทนจุดที่แตกต่างกันและเป็น public key ที่แตกต่างกัน&lt;br/&gt;&lt;br/&gt;เมื่อคำนวณเส้นโค้งวงรีในระบบเลขฐานสองบนสนามจำกัดของเลขจำนวนเฉพาะ p พิกัด y จะเป็นเลขคู่หรือเลขคี่ ซึ่งสอดคล้องกับเครื่องหมายบวก/ลบตามที่อธิบายก่อนหน้านี้ ดังนั้น เพื่อแยกความแตกต่างระหว่างค่าที่เป็นไปได้สองค่าของ y เราจึงเก็บ compressed public key ด้วยตัวนำหน้า 02 ถ้า y เป็นเลขคู่ และ 03 ถ้า y เป็นเลขคี่ ซึ่งช่วยให้ซอฟต์แวร์สามารถอนุมานพิกัด y จากพิกัด x และคลายการบีบอัดของ public key ไปยังพิกัดเต็มของจุดได้อย่างถูกต้อง ดังภาพประกอบต่อไปนี้&lt;br/&gt;&lt;br/&gt;  &lt;img src=&#34;https://image.nostr.build/17e2b76fbdfd7bf5b6e39f86fc59511bd835b4af94c724df419ae8f1f78a902e.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt;นี่คือ public key เดียวกันกับที่ยกตัวอย่างไว้ข้างต้นซึ่งแสดงให้เห็นในรูป compressed public key ที่เก็บใน 264 บิต (66 ตัวอักษรเลขฐานสิบหก) โดยมีตัวนำหน้า 03 ซึ่งบ่งชี้ว่าพิกัด y เป็นเลขคี่:&lt;br/&gt;```&lt;br/&gt;K = 03F028892BAD7ED57D2FB57BF33081D5CFCF6F9ED3D3D7F159C2E2FFF579DC341A&lt;br/&gt;```&lt;br/&gt;compressed public key สอดคล้องกับ private key เดียวกันกับ uncompressed public key หมายความว่ามันถูกสร้างจาก private key เดียวกัน แต่อย่างไรก็ตาม มันก็มีส่วนที่แตกต่างจาก uncompressed public key นั้นคือ หากเราแปลง compressed public key เป็น commitment โดยใช้ฟังก์ชัน HASH160 (RIPEMD160(SHA256(K))) มันจะสร้าง commitment ที่แตกต่างจาก uncompressed public key และจะนำไปสู่ bitcoin address ที่แตกต่างกันในที่สุด สิ่งนี้อาจทำให้สับสนเพราะหมายความว่า private key เดียวสามารถสร้าง public key ในสองรูปแบบที่แตกต่างกัน (แบบบีบอัดและแบบไม่บีบอัด) ซึ่งสร้าง bitcoin address ที่แตกต่างกัน&lt;br/&gt;&lt;br/&gt;compressed public key เป็นค่าเริ่มต้นในซอฟต์แวร์บิตคอยน์เกือบทั้งหมดในปัจจุบัน และถูกกำหนดให้ใช้กับคุณสมบัติใหม่บางอย่างที่เพิ่มในการอัปเกรดโปรโตคอลในภายหลัง&lt;br/&gt;&lt;br/&gt;อย่างไรก็ตาม ซอฟต์แวร์บางตัวยังคงต้องรองรับ uncompressed public key เช่น แอปพลิเคชันกระเป๋าเงินที่นำเข้า private key จากกระเป๋าเงินเก่า เมื่อกระเป๋าเงินใหม่สแกนบล็อกเชนสำหรับผลลัพธ์และอินพุต P2PKH เก่า มันจำเป็นต้องรู้ว่าควรสแกนกุญแจขนาด 65 ไบต์ (และ commitment ของกุญแจเหล่านั้น) หรือกุญแจขนาด 33 ไบต์ (และ commitment ของกุญแจเหล่านั้น) หากไม่สแกนหาประเภทที่ถูกต้อง อาจทำให้ผู้ใช้ไม่สามารถใช้ยอดคงเหลือทั้งหมดได้ เพื่อแก้ไขปัญหานี้ เมื่อส่งออก private key จากกระเป๋าเงิน WIF ที่ใช้แสดง private key ในกระเป๋าเงินบิตคอยน์รุ่นใหม่จะถูกนำไปใช้แตกต่างกันเล็กน้อยเพื่อบ่งชี้ว่า private key เหล่านี้ถูกใช้ในการสร้าง compressed public key&lt;br/&gt;&lt;br/&gt;#siamstr #righttech&lt;br/&gt;&lt;br/&gt;อยากแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro/&#34;&gt;https://learnbn.npub.pro/&lt;/a&gt;&lt;br/&gt;
    </content>
    <updated>2025-03-18T04:37:31Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2mkd9hlk5xa8tphzhmaxnzd78td5j88euxk80c80hk5k6auhqedczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2rnhm6t</id>
    
      <title type="html">สรุป เสริม เติมแต่ง ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2mkd9hlk5xa8tphzhmaxnzd78td5j88euxk80c80hk5k6auhqedczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2rnhm6t" />
    <content type="html">
      สรุป เสริม เติมแต่ง เนื้อหาของ RightTech ep.2 และ 3 ตรงที่เกี่ยวการแปลง public key เป็น address&lt;br/&gt;&lt;br/&gt;Base58check Encoding&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;ระบบคอมพิวเตอร์มีวิธีเขียนตัวเลขยาวๆ ให้สั้นลงโดยใช้ทั้งตัวเลขและตัวอักษรผสมกัน เพื่อใช้พื้นที่น้อยลงอย่างเช่น ระบบเลขฐานสิบ (ปกติที่เราใช้) - ใช้เลข 0-9 เท่านั้น, ระบบเลขฐานสิบหก - ใช้เลข 0-9 และตัวอักษร A-F ตัวอย่าง: เลข 255 ในระบบปกติ เขียนเป็น FF ในระบบเลขฐานสิบหก (สั้นกว่า) หรืออย่างระบบเลขฐานหกสิบสี่ (Base64) - ใช้สัญลักษณ์ถึง 64 ตัว: ตัวอักษรเล็ก (a-z) 26 ตัว, ตัวอักษรใหญ่ (A-Z) 26 ตัว, ตัวเลข (0-9) 10 ตัว, สัญลักษณ์พิเศษอีก 2 ตัว (&amp;#34;&#43;&amp;#34; และ &amp;#34;/&amp;#34;) โดยระบบ Base64 นี้ช่วยให้เราส่งไฟล์คอมพิวเตอร์ผ่านข้อความธรรมดาได้ เช่น การส่งรูปภาพผ่านอีเมล โดยใช้พื้นที่น้อยกว่าการเขียนเป็นเลขฐานสิบแบบปกติมาก &lt;br/&gt;&lt;br/&gt;การเข้ารหัสแบบ Base58 คล้ายกับ Base64 โดยใช้ตัวอักษรพิมพ์ใหญ่ พิมพ์เล็ก และตัวเลข แต่ได้ตัดตัวอักษรบางตัวที่มักถูกเข้าใจผิดว่าเป็นตัวอื่นและอาจดูเหมือนกันเมื่อแสดงในฟอนต์บางประเภทออกไปนั่นคือ เลข 0 (ศูนย์), ตัวอักษร O (ตัว O พิมพ์ใหญ่), ตัวอักษร l (ตัว L พิมพ์เล็ก), ตัวอักษร I (ตัว I พิมพ์ใหญ่), และสัญลักษณ์ &amp;#34;&#43;&amp;#34; และ &amp;#34;/&amp;#34;&lt;br/&gt;&lt;br/&gt;หรือพูดให้ง่ายขึ้น Base58 คือกลุ่มตัวอักษรพิมพ์เล็ก พิมพ์ใหญ่ และตัวเลข แต่ไม่มีตัวอักษรทั้งสี่ตัว (0, O, l, I) ที่กล่าวถึงข้างต้น ตัวอักษรทั้งหมดที่ใช้ใน Base58 จะแสดงให้เห็นในตัวอักษร Base58 ของบิทคอยน์&lt;br/&gt;&lt;br/&gt; Bitcoin’s base58 alphabet&lt;br/&gt;&lt;br/&gt;```&lt;br/&gt;123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz&lt;br/&gt;```&lt;br/&gt;การเพิ่มความปลอดภัยพิเศษเพื่อป้องกันการพิมพ์ผิดหรือข้อผิดพลาดในการคัดลอก base58check ได้รวม รหัสตรวจสอบ (checksum) ที่เข้ารหัสในตัวอักษร base58 เข้าไปด้วย รหัสตรวจสอบนี้คือข้อมูลเพิ่มเติมอีก 4 ไบต์ที่เพิ่มเข้าไปที่ท้ายของข้อมูลที่กำลังถูกเข้ารหัส&lt;br/&gt;&lt;br/&gt;รหัสตรวจสอบนี้ได้มาจากการแฮชข้อมูลที่ถูกเข้ารหัส และจึงสามารถใช้เพื่อตรวจจับข้อผิดพลาดจากการคัดลอกและการพิมพ์ได้ เมื่อโปรแกรมได้รับรหัส base58check ซอฟต์แวร์ถอดรหัสจะคำนวณรหัสตรวจสอบของข้อมูลและเปรียบเทียบกับรหัสตรวจสอบที่รวมอยู่ในรหัสนั้น&lt;br/&gt;&lt;br/&gt;การแปลงข้อมูล (ตัวเลข) เป็นรูปแบบ base58check มีขั้นตอนดังนี้:&lt;br/&gt;&lt;br/&gt;1. เราเริ่มโดยการเพิ่ม prefix เข้าไปในข้อมูล เรียกว่า &amp;#34;version byte&amp;#34; ซึ่งช่วยให้ระบุประเภทของข้อมูลที่ถูกเข้ารหัสได้ง่าย ตัวอย่างเช่น: prefix ศูนย์ (0x00 ในระบบเลขฐานสิบหก) แสดงว่าข้อมูลควรถูกใช้เป็นการยืนยัน (hash) ในสคริปต์เอาต์พุต legacy P2PKH&lt;br/&gt;&lt;br/&gt;2. จากนั้น เราคำนวณ &amp;#34;double-SHA&amp;#34; checksum ซึ่งหมายถึงการใช้อัลกอริทึมแฮช SHA256 สองครั้งกับผลลัพธ์ก่อนหน้า (prefix ต่อกับข้อมูล):&lt;br/&gt;&lt;br/&gt;```&lt;br/&gt;checksum = SHA256(SHA256(prefix||data))&lt;br/&gt;```&lt;br/&gt;&lt;br/&gt;3. จากแฮช 32 ไบต์ที่ได้ (การแฮชซ้อนแฮช) เราเลือกเฉพาะ 4 ไบต์แรก ไบต์ทั้งสี่นี้ทำหน้าที่เป็นรหัสตรวจสอบข้อผิดพลาดหรือ checksum&lt;br/&gt;&lt;br/&gt;4. นำ checksum นี้ไปต่อที่ท้ายข้อมูล&lt;br/&gt;&lt;br/&gt;การเข้ารหัสแบบ base58check คือรูปแบบการเข้ารหัสที่ใช้ base58 พร้อมกับการระบุเวอร์ชันและการตรวจสอบความถูกต้อง เพื่อการเข้ารหัสข้อมูลบิทคอยน์ โดยคุณสามารถดูภาพประกอบด้านล่างเพื่อความเข้าใจเพิ่มเติม&lt;br/&gt;  &lt;img src=&#34;https://image.nostr.build/ce810625e3b3b3bd7fce984b03ccdfd82bd15dd353456c2d17af0dc76424cce9.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt;ในบิตคอยน์นั้น นอกจากจะใช้ base58check ในการยืนยัน public key แล้ว ก็ยังมีการใช้ในข้อมูลอื่น ๆ ด้วย เพื่อทำให้ข้อมูลนั้นกะทัดรัด อ่านง่าย และตรวจจับข้อผิดพลาดได้ง่ายด้วยรหัสนำหน้า (version prefix) ในการเข้ารหัสแบบ base58check ถูกใช้เพื่อสร้างรูปแบบที่แยกแยะได้ง่าย ซึ่งเมื่อเข้ารหัสด้วย base58 โดยจะมีตัวอักษรเฉพาะที่จุดเริ่มต้นของข้อมูลที่เข้ารหัส base58check ตัวอักษรเหล่านี้ช่วยให้เราระบุประเภทของข้อมูลที่ถูกเข้ารหัสและวิธีการใช้งานได้ง่าย นี่คือสิ่งที่แยกความแตกต่าง ตัวอย่างเช่น ระหว่าง address บิทคอยน์ที่เข้ารหัส base58check ซึ่งขึ้นต้นด้วยเลข 1 กับรูปแบบการนำเข้า private key  (WIF - Wallet Import Format) ที่เข้ารหัส base58check ซึ่งขึ้นต้นด้วยเลข 5 ตัวอย่างของ version prefix สามารถดูได้ตามตารางด้านล่างนี้&lt;br/&gt;  &lt;img src=&#34;https://image.nostr.build/50d46660f7e5ae270bbf3ab2cee1c754c1e8ed1e3b09bd682e9d0c6238803855.png&#34;&gt; &lt;br/&gt;&lt;br/&gt;ภาพต่อไปนี้จะทำให้คุณเห็นภาพของกระบวนการแปลง public key ให้เป็น bitcoin address&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/28e7119ec2810c95b466b17c22831d63d5bad9e1e3c980897a30ac5ea479c153.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt;#siamstr #righttech&lt;br/&gt;&lt;br/&gt;อยากแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro/&#34;&gt;https://learnbn.npub.pro/&lt;/a&gt;&lt;br/&gt;
    </content>
    <updated>2025-03-17T03:03:42Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs22wqpjaxv6hk0d3lnyjcyqzgggrgvxfttwj3p7x6kzeg6hm4ppzgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe26rvwha</id>
    
      <title type="html">สรุป เสริม เติมแต่ง ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs22wqpjaxv6hk0d3lnyjcyqzgggrgvxfttwj3p7x6kzeg6hm4ppzgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe26rvwha" />
    <content type="html">
      สรุป เสริม เติมแต่ง เนื้อหาของ RightTech ep.2 อีกเรื่องนึง &lt;br/&gt;&lt;br/&gt;# Legacy addresses for P2PKH&lt;br/&gt;&lt;br/&gt;อย่างที่รู้ ๆ กันว่าในสมัยก่อนการส่งบิตคอยน์ทำได้ด้วยการขอ IP ของปลายทางที่เราต้องการส่ง เพื่อให้โหนดของเราทำการเชื่อมต่อกับโหนดของคนรับเพื่อของ public key &lt;br/&gt;&lt;br/&gt;แน่นอนว่าการป้อนที่อยู่ IP ของคนที่คุณต้องการจ่ายเงินให้นั้นมีข้อดีหลายประการ แต่ก็มีข้อเสียหลายประการเช่นกัน หนึ่งในข้อเสียที่สำคัญคือผู้รับจำเป็นต้องให้กระเป๋าสตางค์ของพวกเขาออนไลน์ที่ที่อยู่ IP ของพวกเขา และต้องสามารถเข้าถึงได้จากโลกภายนอก &lt;br/&gt;ซึ่งสำหรับคนจำนวนมากนั่นไม่ใช่ตัวเลือกที่เป็นไปได้เพราะหากพวกเขา:&lt;br/&gt;- ปิดคอมพิวเตอร์ในเวลากลางคืน&lt;br/&gt;- แล็ปท็อปของพวกเขาเข้าสู่โหมดสลีป&lt;br/&gt;- อยู่หลังไฟร์วอลล์&lt;br/&gt;- หรือกำลังใช้การแปลงที่อยู่เครือข่าย (NAT)&lt;br/&gt;&lt;br/&gt;โดยบิตคอยน์แก้ปัญหานี้ด้วย ฟังก์ชันแฮช (hash function) ซึ่งเป็นฟังก์ชันที่รับข้อมูลที่อาจมีขนาดใหญ่ นำมาแฮช และให้ผลลัพธ์เป็นข้อมูลขนาดคงที่ ฟังก์ชันแฮชจะผลิตผลลัพธ์เดียวกันเสมอเมื่อได้รับข้อมูลนำเข้าแบบเดียวกัน และฟังก์ชันที่ปลอดภัยจะทำให้เป็นไปไม่ได้ในทางปฏิบัติสำหรับผู้ที่ต้องการเลือกข้อมูลนำเข้าอื่นที่ให้ผลลัพธ์เหมือนกันได้ นั่นทำให้ผลลัพธ์เป็น คำมั่นสัญญา (commitment) ต่อข้อมูลนำเข้า เป็นสัญญาว่าในทางปฏิบัติ มีเพียงข้อมูลนำเข้า x เท่านั้นที่จะให้ผลลัพธ์ X&lt;br/&gt;&lt;br/&gt;สมมติว่าผมต้องการถามคำถามคุณและให้คำตอบของผมในรูปแบบที่คุณไม่สามารถอ่านได้ทันที สมมติว่าคำถามคือ &amp;#34;ในปีไหนที่ซาโตชิ นาคาโมโตะเริ่มทำงานบนบิทคอยน์?&amp;#34; ผมจะให้การยืนยันคำตอบของผมในรูปแบบของ&lt;br/&gt;&lt;br/&gt;ผลลัพธ์จากฟังก์ชันแฮช SHA256 ซึ่งเป็นฟังก์ชันที่ใช้บ่อยที่สุดในบิทคอยน์:&lt;br/&gt;&lt;br/&gt;```&lt;br/&gt;94d7a772612c8f2f2ec609d41f5bd3d04a5aa1dfe3582f04af517d396a302e4e&lt;br/&gt;```&lt;br/&gt;&lt;br/&gt;ต่อมา หลังจากคุณบอกคำตอบที่คุณเดาสำหรับคำถามนั้น ผมสามารถเปิดเผยคำตอบของผมและพิสูจน์ให้คุณเห็นว่าคำตอบของผม เมื่อใช้เป็นข้อมูลสำหรับฟังก์ชันแฮช จะให้ผลลัพธ์เดียวกันกับที่ผมให้คุณก่อนหน้านี้&lt;br/&gt;&lt;br/&gt;```&lt;br/&gt;$ echo &amp;#34;2007.  He said about a year and a half before Oct 2008&amp;#34; | sha256sum&lt;br/&gt;94d7a772612c8f2f2ec609d41f5bd3d04a5aa1dfe3582f04af517d396a302e4e&lt;br/&gt;```&lt;br/&gt;&lt;br/&gt;ทีนี้ให้สมมติว่าเราถามบ็อบว่า &amp;#34; public key ของคุณคืออะไร?&amp;#34; บ็อบสามารถใช้ฟังก์ชันแฮชเพื่อให้การยืนยันที่ปลอดภัยทางการเข้ารหัสต่อ public key ของเขา หากเขาเปิดเผยกุญแจในภายหลัง และเราตรวจสอบว่ามันให้ผลการยืนยันเดียวกันกับที่เขาให้เราก่อนหน้านี้ เราสามารถมั่นใจได้ว่ามันเป็นกุญแจเดียวกันที่ใช้สร้างการยืนยันก่อนหน้านี้&lt;br/&gt;&lt;br/&gt;ฟังก์ชันแฮช SHA256 ถือว่าปลอดภัยมากและให้ผลลัพธ์ 256 บิต (32 ไบต์) น้อยกว่าครึ่งหนึ่งของขนาด public key ของบิทคอยน์ดั้งเดิม แต่อย่างไรก็ตาม มีฟังก์ชันแฮชอื่นๆ ที่ปลอดภัยน้อยกว่าเล็กน้อยที่ให้ผลลัพธ์ขนาดเล็กกว่า เช่น ฟังก์ชันแฮช RIPEMD-160 ซึ่งให้ผลลัพธ์ 160 บิต (20 ไบต์) ด้วยเหตุผลที่ซาโตชิ นาคาโมโตะไม่เคยระบุ เวอร์ชันดั้งเดิมของบิทคอยน์สร้างการยืนยันต่อ public key โดยการแฮชกุญแจด้วย SHA256 ก่อน แล้วแฮชผลลัพธ์นั้นด้วย RIPEMD-160 ซึ่งให้การยืนยันขนาด 20 ไบต์ต่อ public key&lt;br/&gt;&lt;br/&gt;เราสามารถดูสิ่งนี้ตามอัลกอริทึม เริ่มจากกุญแจสาธารณะ K เราคำนวณแฮช SHA256 และคำนวณแฮช RIPEMD-160 ของผลลัพธ์ ซึ่งให้ตัวเลข 160 บิต (20 ไบต์):&lt;br/&gt;&lt;br/&gt;A = RIPEMD160(SHA256(K))&lt;br/&gt;&lt;br/&gt;โดย K คือ public key และ A คือผลลัพธ์&lt;br/&gt;ทีนี้เราคงเข้าใจวิธีสร้างการยืนยันต่อ public key แล้ว ต่อไปเราจะมาดูวิธีการ&lt;br/&gt;ใช้งานโดยพิจารณาสคริปต์เอาต์พุตต่อไปนี้:&lt;br/&gt;```&lt;br/&gt;OP_DUP OP_HASH160 &amp;lt;Bob&amp;#39;s commitment&amp;gt; OP_EQUAL OP_CHECKSIG&lt;br/&gt;```&lt;br/&gt;&lt;br/&gt;และสคริปต์อินพุตต่อไปนี้:&lt;br/&gt;&lt;br/&gt;```&lt;br/&gt;&amp;lt;Bob&amp;#39;s signature&amp;gt; &amp;lt;Bob&amp;#39;s public key&amp;gt;&lt;br/&gt;```&lt;br/&gt;&lt;br/&gt;และเมื่อเรารวมมันเข้าด้วยกันเราจะได้ผลลัพธ์ดังนี้:&lt;br/&gt;&lt;br/&gt;```&lt;br/&gt;&amp;lt;Bob&amp;#39;s signature&amp;gt; &amp;lt;Bob&amp;#39;s public key&amp;gt; OP_DUP OP_HASH160 &amp;lt;Bob&amp;#39;s commitment&amp;gt; OP_EQUAL OP_CHECKSIG&lt;br/&gt;```&lt;br/&gt;&lt;br/&gt;จากนั้น  เราเริ่มวางรายการลงในสแต็ก ลายเซ็นของบ็อบถูกวางก่อน จากนั้น public key ของเขาถูกวางไว้ด้านบน จากนั้นดำเนินการ OP_DUP เพื่อทำสำเนารายการบนสุด ดังนั้นรายการบนสุดและรายการที่สองจากบนในสแต็กตอนนี้เป็น public key ของบ็อบทั้งคู่ การดำเนินการ OP_HASH160 ใช้ (ลบ) public key บนสุดและแทนที่ด้วยผลลัพธ์ของการแฮชด้วย RIPEMD160(SHA256(K)) ดังนั้นตอนนี้บนสุดของสแต็กคือแฮชของ public key ของบ็อบ ต่อไป  commitment ถูกเพิ่มไว้บนสุดของสแต็ก การดำเนินการ OP_EQUALVERIFY ใช้รายการสองรายการบนสุดและตรวจสอบว่าพวกมันเท่ากัน ซึ่งควรเป็นเช่นนั้นหาก public key ที่บ็อบให้ในสคริปต์อินพุตเป็น public key เดียวกันกับที่ใช้สร้างการยืนยันในสคริปต์เอาต์พุตที่อลิซจ่าย หาก OP_EQUALVERIFY ล้มเหลว ทั้งสคริปต์จะล้มเหลว สุดท้าย เราเหลือสแต็กที่มีเพียงลายเซ็นของบ็อบและ public key ของเขา รหัสปฏิบัติการ OP_CHECKSIG ตรวจสอบว่าพวกมันสอดคล้องกัน ดังรูปที่แสดงด้านล่าง&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/3ea1036b7de3d83b960d1ed862e738120159e4f173d55a4dfdaddc75c3b25166.png&#34;&gt; &lt;br/&gt;&lt;br/&gt;แม้กระบวนการของการ pay-to-publickey-hash(P2PKH) อาจดูซับซ้อน แต่มันทำให้การที่อลิซจ่ายเงินให้บ็อบมีเพียงการยืนยันเพียง 20 ไบต์ต่อ public key ของเขาแทนที่จะเป็นตัวกุญแจเอง ซึ่งจะมีขนาด 65 ไบต์ในเวอร์ชันดั้งเดิมของบิทคอยน์ นั่นเป็นข้อมูลที่น้อยกว่ามากที่บ็อบต้องสื่อสารกับอลิซ&lt;br/&gt;&lt;br/&gt;แต่อย่างไรก็ตาม เรายังไม่ได้พูดถึงวิธีที่บ็อบรับ 20 ไบต์เหล่านั้นจากกระเป๋าเงินบิทคอยน์ของเขาไปยังกระเป๋าเงินของอลิซ มีการเข้ารหัสค่าไบต์ที่ใช้กันอย่างแพร่หลาย เช่น เลขฐานสิบหก แต่ข้อผิดพลาดใด ๆ ในการคัดลอกการยืนยันจะทำให้บิทคอยน์ถูกส่งไปยังเอาต์พุตที่ไม่สามารถใช้จ่ายได้ ทำให้พวกมันสูญหายไปตลอดกาล โดยในส่วนถัดไป เราจะดูที่การเข้ารหัสแบบกะทัดรัดและการตรวจสอบความถูกต้อง&lt;br/&gt;&lt;br/&gt;#siamstr #righttech&lt;br/&gt;&lt;br/&gt;อยากแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro/&#34;&gt;https://learnbn.npub.pro/&lt;/a&gt;
    </content>
    <updated>2025-03-15T06:43:55Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsv0zyx2mm9e932v7ndkpmagxxcaqkthnqke4w2ykmlg2k6ckvjewszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2zmk7au</id>
    
      <title type="html">สรุป เสริม เติมแต่ง ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsv0zyx2mm9e932v7ndkpmagxxcaqkthnqke4w2ykmlg2k6ckvjewszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2zmk7au" />
    <content type="html">
      สรุป เสริม เติมแต่ง เนื้อหาของ RightTech ep.2&lt;br/&gt;&lt;br/&gt;Public Key Cryptography (การเข้ารหัสของ public key)&lt;br/&gt;ระบบเข้ารหัสของ public key ถูกคิดค้นขึ้นในทศวรรษ 1970 มาจากรากฐานทางคณิตศาสตร์สำหรับความปลอดภัยของคอมพิวเตอร์และข้อมูลสมัยใหม่&lt;br/&gt;&lt;br/&gt;นับตั้งแต่การคิดค้นระบบเข้ารหัส public key ได้มีการค้นพบฟังก์ชันทางคณิตศาสตร์ที่เหมาะสมหลายอย่าง เช่น การยกกำลังของจำนวนเฉพาะและการคูณของเส้นโค้งวงรี โดยฟังก์ชันทางคณิตศาสตร์เหล่านี้สามารถคำนวณได้ง่ายในทิศทางหนึ่ง แต่เป็นไปไม่ได้ที่จะคำนวณในทิศทางตรงกันข้ามโดยใช้คอมพิวเตอร์และอัลกอริทึมที่มีอยู่ในปัจจุบัน จากฟังก์ชันทางคณิตศาสตร์เหล่านี้ การเข้ารหัสลับช่วยให้สามารถสร้างลายเซ็นดิจิทัลที่ไม่สามารถปลอมแปลงได้และบิตคอยน์ได้ใช้การบวกและการคูณของเส้นโค้งวงรีเป็นพื้นฐานสำหรับการเข้ารหัสลับของมัน&lt;br/&gt;&lt;br/&gt;ในบิตคอยน์ เราสามารถใช้ระบบเข้ารหัส public key เพื่อสร้างคู่กุญแจที่ควบคุมการเข้าถึงบิตคอยน์ คู่กุญแจประกอบด้วย private key และ public key ที่ได้มาจาก private key public keyใช้สำหรับรับเงิน และ private key ใช้สำหรับลงนามในธุรกรรมเพื่อใช้จ่ายเงิน&lt;br/&gt;&lt;br/&gt;ความสัมพันธ์ทางคณิตศาสตร์ระหว่าง public key และ private key ที่ช่วยให้ private key สามารถใช้สร้างลายเซ็นบนข้อความได้ ลายเซ็นเหล่านี้สามารถตรวจสอบความถูกต้องกับ public key ได้โดยไม่เปิดเผย private key&lt;br/&gt;&lt;br/&gt;TIP: ในการใช้งานซอฟแวร์กระเป๋าเงินบิตคอยน์บสงอัน จะทำการเก็บ private key และ public key ถูกเก็บไว้ด้วยกันในรูปแบบคู่กุญแจเพื่อความสะดวก แต่อย่างไรก็ตาม public key สามารถคำนวณได้จาก private key ดังนั้นการเก็บเพียง private key เท่านั้นก็เป็นไปได้เช่นกัน&lt;br/&gt;&lt;br/&gt;bitcoin wallet มักจะทำการรวบรวมคู่กุญแต่ละคู่ ซึ่งจะประกอบไปด้วย private key และ public key โดย private key จะเป็นตัวเลขที่ถูกสุ่มเลือกขึ้นมา และเราขะใช้เส้นโค้งวงรี ซึ่งเป็นฟังก์ชันการเข้ารหัสทางเดียว เพื่อสร้าง public key ขึ้นมา&lt;br/&gt;&lt;br/&gt;ทำไมจึงใช้การเข้ารหัสแบบอสมมาตร&lt;br/&gt;&lt;br/&gt;ทำไมการเข้ารหัสแบบอสมมาตรจึงถูกใช้บิตคอยน์? มันไม่ได้ถูกใช้เพื่อ &amp;#34;เข้ารหัส&amp;#34; (ทำให้เป็นความลับ) ธุรกรรม แต่คุณสมบัติที่มีประโยชน์ของการเข้ารหัสแบบอสมมาตรคือความสามารถในการสร้าง ลายเซ็นดิจิทัล private key สามารถนำไปใช้กับธุรกรรมเพื่อสร้างลายเซ็นเชิงตัวเลข ลายเซ็นนี้สามารถสร้างได้เฉพาะโดยผู้ที่มีความเกี่ยวข้องกับ private key เท่านั้น แต่อย่างไรก็ตาม ทุกคนที่สามารถเข้าถึง public key และธุรกรรมสามารถใช้สิ่งเหล่านี้เพื่อ ตรวจสอบ ลายเซ็นได้ คุณสมบัติที่มีประโยชน์นี้ของการเข้ารหัสแบบอสมมาตรทำให้ทุกคนสามารถตรวจสอบลายเซ็นทุกรายการในทุกธุรกรรมได้ ในขณะที่มั่นใจว่าเฉพาะเจ้าของ private key เท่านั้นที่สามารถสร้างลายเซ็นที่ถูกต้องได้&lt;br/&gt;&lt;br/&gt;Private Keys&lt;br/&gt;&lt;br/&gt;private key เป็นเพียงตัวเลขที่ถูกสุ่มขึ้น และการควบคุม private key ก็เป็นรากฐานสำคัญที่ทำให้เจ้าชองกุญแจดอกนี้สามารถควบคุมบิตคอยน์ทั้งหมดที่มีความเกี่ยวข้องกับ public key ที่คู่กัน private key นั้นใช้ในการสร้างลายเซ็นดิจิทัลที่ใช้ในการเคลื่อนย้ายบิตคอยน์ เราจำเป็นต้องเก็บ private key ให้เป็นความลับตลอดเวลา เพราะการเปิดเผยมันให้กับบุคคลอื่นนั้นก็เปรียบเสมือนกับการนำอำนาจในการควบคุมบิตคอยน์ไปให้แก่เขา นอกจากนี้ private key ยังจำเป็นต้องได้รับการสำรองข้อมูลและป้องกันจากการสูญหายโดยไม่ตั้งใจ เพราะหากเราได้ทำมันสูญหายไป จะไม่สามารถกู้คืนได้ และบิตคอยน์เหล่านั้นจะถูกปกป้องโดยกุญแจที่หายไปนั้นตลอดกาลเช่นกัน&lt;br/&gt;&lt;br/&gt;TIP: private key ของบิตคอยน์นั้นเป็นเพียงแค่ตัวเลข คุณสามารถสร้างมันได้โดยใช้เพียงเหรียญ ดินสอ และกระดาษ โดยการโยนเหรียญเพียง 256 ครั้งจะทำให้คุณได้เลขฐานสองที่สามารถใช้เป็น private key ของบิตคอยน์ จากนั้นคุณสามารถใช้มันในการคำนวณหา public key แต่อย่างไรก็ตาม โปรดระมัดระวังเกี่ยวกับการเลือใช้วิธีการสุ่มที่ไม่สมบูรณ์ เพราะนั่นอาจลดความปลอดภัยของ private key และบิตคอยน์ที่มัมปกป้องอยู่อย่างมีนัยสำคัญ&lt;br/&gt;&lt;br/&gt;ขั้นตอนแรกและสำคัญที่สุดในการสร้างกุญแจคือการหาแหล่งที่มาของความสุ่มที่ปลอดภัย (ซึ่งเรียกว่า เอนโทรปี) การสร้างกุญแจของบิตคอยน์นั้นเกือบเหมือนกับ &amp;#34;เลือกตัวเลขระหว่าง 1 และ 2^256&amp;#34; ซึ่งวิธีที่แน่นอนที่คุณใช้ในการเลือกตัวเลขนั้นไม่สำคัญตราบใดที่มันไม่สามารถคาดเดาหรือทำซ้ำได้ โดยปกติแล้วซอฟต์แวร์ของบิตคอยน์มักจะใช้ตัวสร้างตัวเลขสุ่มที่มีความปลอดภัยทางการเข้ารหัสเพื่อสร้างเอนโทรปี 256 บิต&lt;br/&gt;&lt;br/&gt;สิ่งที่สำคัญในเรื่องนี้คือ private key สามารถเป็นตัวเลขใดๆ ระหว่าง 0 และ n - 1 (รวมทั้งสองค่า) โดยที่ n เป็นค่าคงที่ (n = 1.1578 × 10^77 ซึ่งน้อยกว่า 2^256 เล็กน้อย) ซึ่งกำหนดอยู่ใน elliptic curve ที่ใช้ใน Bitcoin ในการสร้างกุญแจดังกล่าว เราสุ่มเลือกเลขขนาด 256 บิตและตรวจสอบว่ามันน้อยกว่า n ในแง่ของการเขียนโปรแกรม โดยปกติแล้วสิ่งนี้ทำได้โดยการป้อนสตริงของบิตสุ่มที่ใหญ่กว่า ซึ่งรวบรวมจากแหล่งที่มาของความสุ่มที่มีความปลอดภัยทางการเข้ารหัส เข้าไปในอัลกอริทึมแฮช SHA256 ซึ่งจะสร้างค่าขนาด 256 บิตที่สามารถตีความเป็นตัวเลขได้อย่างสะดวก หากผลลัพธ์น้อยกว่า n เราจะได้กุญแจส่วนตัวที่เหมาะสม มิฉะนั้น เราก็เพียงแค่ลองอีกครั้งด้วยตัวเลขสุ่มอื่น&lt;br/&gt;&lt;br/&gt;คำเตือน: อย่าเขียนโค้ดของคุณเองเพื่อสร้างตัวเลขสุ่ม หรือใช้ตัวสร้างตัวเลขสุ่ม &amp;#34;แบบง่าย&amp;#34; ที่มีให้ในภาษาโปรแกรมของคุณ ใช้ตัวสร้างตัวเลขสุ่มเทียมที่มีความปลอดภัยทางการเข้ารหัส (CSPRNG) จากแหล่งที่มีเอนโทรปีเพียงพอ ศึกษาเอกสารของไลบรารีตัวสร้างตัวเลขสุ่มที่คุณเลือกเพื่อให้มั่นใจว่ามีความปลอดภัยทางการเข้ารหัส การใช้งาน CSPRNG ที่ถูกต้องมีความสำคัญอย่างยิ่งต่อความปลอดภัยของกุญแจ&lt;br/&gt;ต่อไปนี้คือกุญแจส่วนตัว (k) ที่สร้างขึ้นแบบสุ่มซึ่งแสดงในรูปแบบเลขฐานสิบหก (256 บิตแสดงเป็น 64 หลักเลขฐานสิบหก โดยแต่ละหลักคือ 4 บิต):&lt;br/&gt;&lt;br/&gt;```&lt;br/&gt;1E99423A4ED27608A15A2616A2B0E9E52CED330AC530EDCC32C8FFC6A526AEDD&lt;br/&gt;```&lt;br/&gt;&lt;br/&gt;TIP: จำนวนที่เป็นไปได้ของ private key ทั้งหมดนั้นมีอยู่ 2^256 เป็นตัวเลขที่ใหญ่มากจนยากจะจินตนาการได้ มันมีค่าประมาณ 10^77 (เลข 1 ตามด้วยเลข 0 อีก 77 ตัว) ในระบบเลขฐานสิบ เพื่อให้เข้าใจง่ายขึ้น ลองเปรียบเทียบกับจักรวาลที่เรามองเห็นได้ซึ่งนักวิทยาศาสตร์ประมาณการว่ามีอะตอมทั้งหมดประมาณ 10^80 อะตอม นั่นหมายความว่าช่วงค่าของกุญแจส่วนตัว Bitcoin มีขนาดใกล้เคียงกับจำนวนอะตอมทั้งหมดในจักรวาลที่เรามองเห็นได้&lt;br/&gt;&lt;br/&gt;การอธิบายเกี่ยวกับวิทยาการเข้ารหัสแบบเส้นโค้งวงรี (Elliptic Curve Cryptography)&lt;br/&gt;&lt;br/&gt;วิทยาการเข้ารหัสแบบเส้นโค้งวงรี (ECC) เป็นประเภทหนึ่งของการเข้ารหัสแบบอสมมาตรหรือ public key ซึ่งอาศัยหลักการของปัญหาลอการิทึมแบบไม่ต่อเนื่อง โดยแสดงออกผ่านการบวกและการคูณบนจุดต่างๆ ของเส้นโค้งวงรี&lt;br/&gt;&lt;br/&gt;  &lt;img src=&#34;https://image.nostr.build/9f5c4eb7f7ad30851197614547fa9a6c7bed25c0f53dbc128401e008fcba913b.png&#34;&gt; &lt;br/&gt;&lt;br/&gt;บิตคอยน์ใช้เส้นโค้งวงรีเฉพาะและชุดค่าคงที่ทางคณิตศาสตร์ ตามที่กำหนดไว้ในมาตรฐานที่เรียกว่า secp256k1 ซึ่งกำหนดโดยสถาบันมาตรฐานและเทคโนโลยีแห่งชาติ (NIST) เส้นโค้ง secp256k1 ถูกกำหนดโดยฟังก์ชันต่อไปนี้ ซึ่งสร้างเส้นโค้งวงรี: y² = (x³ &#43; 7) บนฟิลด์จำกัด (F_p) หรือ y² mod p = (x³ &#43; 7) mod p&lt;br/&gt;&lt;br/&gt;โดยที่ mod p (มอดูโลจำนวนเฉพาะ p) แสดงว่าเส้นโค้งนี้อยู่บนฟิลด์จำกัดของอันดับจำนวนเฉพาะ p ซึ่งเขียนได้เป็น F_p โดย p = 2^256 – 2^32 – 2^9 – 2^8 – 2^7 – 2^6 – 2^4 – 1 ซึ่งเป็นจำนวนเฉพาะที่มีค่ามหาศาล&lt;br/&gt;&lt;br/&gt;บิตคอยน์ใช้เส้นโค้งวงรีที่ถูกนิยามบนฟิลด์จำกัดของอันดับจำนวนเฉพาะแทนที่จะอยู่บนจำนวนจริง ทำให้มันมีลักษณะเหมือนรูปแบบของจุดที่กระจัดกระจายในสองมิติ ซึ่งทำให้ยากต่อการจินตนาการภาพ อย่างไรก็ตาม คณิตศาสตร์ที่ใช้นั้นเหมือนกับเส้นโค้งวงรีบนจำนวนจริง&lt;br/&gt;&lt;br/&gt;ตัวอย่างเช่น การเข้ารหัสลับด้วยเส้นโค้งวงรี: การแสดงภาพเส้นโค้งวงรีบน F(p) โดยที่ p=17 แสดงเส้นโค้งวงรีเดียวกันบนฟิลด์จำกัดของอันดับจำนวนเฉพาะ 17 ที่มีขนาดเล็กกว่ามาก ซึ่งแสดงรูปแบบของจุดบนตาราง&lt;br/&gt;&lt;br/&gt;เส้นโค้งวงรี secp256k1 ที่ใช้ในบิตคอยน์สามารถนึกถึงได้ว่าเป็นรูปแบบของจุดที่ซับซ้อนมากกว่าบนตารางที่มีขนาดใหญ่มหาศาลจนยากจะเข้าใจได้&lt;br/&gt;&lt;br/&gt;  &lt;img src=&#34;https://image.nostr.build/673b431ba42208c102ccce7866a064fdb685769a69be8736769f9882de404794.png&#34;&gt; &lt;br/&gt;&lt;br/&gt;ตัวอย่างเช่น จุด P ที่มีพิกัด (x, y) ต่อไปนี้เป็นจุดที่อยู่บนเส้นโค้ง secp256k1:&lt;br/&gt;&lt;br/&gt;```&lt;br/&gt;P =&lt;br/&gt;(55066263022277343669578718895168534326250603453777594175500187360389116729240,&lt;br/&gt;32670510020758816978083085130507043184471273380659243275938904335757337482424)&lt;br/&gt;```&lt;br/&gt;&lt;br/&gt;เราสามารถใช้ Python เพื่อยืนยันว่าจุดนี้อยู่บนเส้นโค้งวงรีได้ตามตัวอย่างนี้:&lt;br/&gt;&lt;br/&gt;ตัวอย่างที่ 1: การใช้ Python เพื่อยืนยันว่าจุดนี้อยู่บนเส้นโค้งวงรี&lt;br/&gt;&lt;br/&gt;```&lt;br/&gt;Python 3.10.6 (main, Nov 14 2022, 16:10:14) [GCC 11.3.0] on linux&lt;br/&gt;Type &amp;#34;help&amp;#34;, &amp;#34;copyright&amp;#34;, &amp;#34;credits&amp;#34; or &amp;#34;license&amp;#34; for more information.&lt;br/&gt;&amp;gt; p = 115792089237316195423570985008687907853269984665640564039457584007908834671663&lt;br/&gt;&amp;gt; x = 55066263022277343669578718895168534326250603453777594175500187360389116729240&lt;br/&gt;&amp;gt; y = 32670510020758816978083085130507043184471273380659243275938904335757337482424&lt;br/&gt;&amp;gt; (x ** 3 &#43; 7 - y**2) % p&lt;br/&gt;0&lt;br/&gt;```&lt;br/&gt;&lt;br/&gt;ผลลัพธ์เป็น 0 ซึ่งแสดงว่าจุดนี้อยู่บนเส้นโค้งวงรีจริง เพราะเมื่อแทนค่า x และ y ลงในสมการ y² = (x³ &#43; 7) mod p แล้ว ทั้งสองด้านของสมการมีค่าเท่ากัน&lt;br/&gt;&lt;br/&gt;ในคณิตศาสตร์ของเส้นโค้งวงรี มีจุดที่เรียกว่า &amp;#34;จุดที่อนันต์&amp;#34; (point at infinity) ซึ่งมีบทบาทคล้ายกับศูนย์ในการบวก บนคอมพิวเตอร์ บางครั้งจุดนี้แทนด้วย x = y = 0 (ซึ่งไม่เป็นไปตามสมการเส้นโค้งวงรี แต่เป็นกรณีพิเศษที่สามารถตรวจสอบได้ง่าย)&lt;br/&gt;&lt;br/&gt;มีตัวดำเนินการ &#43; ที่เรียกว่า &amp;#34;การบวก&amp;#34; ซึ่งมีคุณสมบัติคล้ายกับการบวกแบบดั้งเดิมของจำนวนจริงที่เด็กๆ เรียนในโรงเรียน เมื่อมีจุดสองจุด P1 และ P2 บนเส้นโค้งวงรี จะมีจุดที่สาม P3 = P1 &#43; P2 ซึ่งอยู่บนเส้นโค้งวงรีเช่นกัน&lt;br/&gt;&lt;br/&gt;ในเชิงเรขาคณิต จุดที่สาม P3 นี้คำนวณได้โดยการลากเส้นระหว่าง P1 และ P2 เส้นนี้จะตัดกับเส้นโค้งวงรีที่จุดเพิ่มเติมอีกหนึ่งจุดพอดี เรียกจุดนี้ว่า P3&amp;#39; = (x, y) จากนั้นให้สะท้อนกับแกน x เพื่อได้ P3 = (x, -y)&lt;br/&gt;&lt;br/&gt;มีกรณีพิเศษบางกรณีที่อธิบายความจำเป็นของ &amp;#34;จุดที่อนันต์&amp;#34;:&lt;br/&gt;&lt;br/&gt;1. ถ้า P1 และ P2 เป็นจุดเดียวกัน เส้น &amp;#34;ระหว่าง&amp;#34; P1 และ P2 ควรขยายเป็นเส้นสัมผัสกับเส้นโค้ง ณ จุด P1 นี้ เส้นสัมผัสนี้จะตัดกับเส้นโค้งที่จุดใหม่อีกหนึ่งจุดพอดี คุณสามารถใช้เทคนิคจากแคลคูลัสเพื่อหาความชันของเส้นสัมผัส เทคนิคเหล่านี้ใช้ได้อย่างน่าแปลกใจ แม้ว่าเราจะจำกัดความสนใจไว้ที่จุดบนเส้นโค้งที่มีพิกัดเป็นจำนวนเต็มเท่านั้น!&lt;br/&gt;&lt;br/&gt;2. ในบางกรณี (เช่น ถ้า P1 และ P2 มีค่า x เดียวกันแต่ค่า y ต่างกัน) เส้นสัมผัสจะตั้งฉากพอดี ซึ่งในกรณีนี้ P3 = &amp;#34;จุดที่อนันต์&amp;#34;&lt;br/&gt;&lt;br/&gt;3. ถ้า P1 เป็น &amp;#34;จุดที่อนันต์&amp;#34; แล้ว P1 &#43; P2 = P2 ในทำนองเดียวกัน ถ้า P2 เป็นจุดที่อนันต์ แล้ว P1 &#43; P2 = P1 นี่แสดงให้เห็นว่าจุดที่อนันต์มีบทบาทเป็นศูนย์&lt;br/&gt;&lt;br/&gt;การบวกนี้มีคุณสมบัติเชิงสมาคม (associative) ซึ่งหมายความว่า (A &#43; B) &#43; C = A &#43; (B &#43; C) นั่นหมายความว่าเราสามารถเขียน A &#43; B &#43; C โดยไม่ต้องมีวงเล็บและไม่มีความกำกวม&lt;br/&gt;&lt;br/&gt;เมื่อเรานิยามการบวกแล้ว เราสามารถนิยามการคูณในแบบมาตรฐานที่ต่อยอดจากการบวก สำหรับจุด P บนเส้นโค้งวงรี ถ้า k เป็นจำนวนเต็มบวก แล้ว kP = P &#43; P &#43; P &#43; … &#43; P (k ครั้ง) โปรดทราบว่า k บางครั้งถูกเรียกว่า &amp;#34;เลขชี้กำลัง&amp;#34;&lt;br/&gt;&lt;br/&gt;Public Keys&lt;br/&gt;&lt;br/&gt;ในระบบคริปโตกราฟีแบบเส้นโค้งวงรี (Elliptic Curve Cryptography)  public key ถูกคำนวณจาก private key โดยใช้การคูณเส้นโค้งวงรี ซึ่งเป็นกระบวนการที่ไม่สามารถย้อนกลับได้:&lt;br/&gt;&lt;br/&gt;K = k × G&lt;br/&gt;&lt;br/&gt;โดยที่:&lt;br/&gt;- k คือ private key&lt;br/&gt;- G คือจุดคงที่ที่เรียกว่า จุดกำเนิด (generator point)&lt;br/&gt;- K คือ public key&lt;br/&gt;&lt;br/&gt;การดำเนินการย้อนกลับ ที่เรียกว่า &amp;#34;การหาลอการิทึมแบบไม่ต่อเนื่อง&amp;#34; (finding the discrete logarithm) - คือการคำนวณหา k เมื่อรู้ค่า K - เป็นสิ่งที่ยากมากเทียบเท่ากับการลองค่า k ทุกค่าที่เป็นไปได้ (วิธีการแบบ brute-force)&lt;br/&gt;&lt;br/&gt;ความยากของการย้อนกลับนี้คือหลักการความปลอดภัยหลักของระบบ ECC ที่ใช้ในบิตคอยน์ ซึ่งทำให้สามารถเผยแพร่ public key ได้อย่างปลอดภัย โดยที่ไม่ต้องกังวลว่าจะมีใครสามารถคำนวณย้อนกลับเพื่อหา private key ได้&lt;br/&gt;&lt;br/&gt;TIP:การคูณเส้นโค้งวงรีเป็นฟังก์ชันประเภทที่นักเข้ารหัสลับเรียกว่า “ trap door function ”:&lt;br/&gt; - เป็นสิ่งที่ทำได้ง่ายในทิศทางหนึ่ง&lt;br/&gt; - แต่เป็นไปไม่ได้ที่จะทำในทิศทางตรงกันข้าม&lt;br/&gt;&lt;br/&gt;คนที่มี private key สามารถสร้าง public key ได้อย่างง่ายดาย และสามารถแบ่งปันกับโลกได้โดยรู้ว่าไม่มีใครสามารถย้อนกลับฟังก์ชันและคำนวณ private key จาก public key ได้ กลวิธีทางคณิตศาสตร์นี้กลายเป็นพื้นฐานสำหรับลายเซ็นดิจิทัลที่ปลอมแปลงไม่ได้และมีความปลอดภัย ซึ่งใช้พิสูจน์การควบคุมเงินบิตคอยน์&lt;br/&gt;&lt;br/&gt;เริ่มต้นด้วยการใช้ private key ในรูปแบบของตัวเลขสุ่ม เราคูณมันด้วยจุดที่กำหนดไว้ล่วงหน้าบนเส้นโค้งที่เรียกว่า จุดกำเนิด (generator point)  เพื่อสร้างจุดอื่นที่อยู่บนเส้นโค้งเดียวกัน ซึ่งคำตอบจะเป็น public key ที่สอดคล้องกัน จุดกำเนิดถูกกำหนดไว้เป็นส่วนหนึ่งของมาตรฐาน secp256k1 และเป็นค่าเดียวกันสำหรับกุญแจทั้งหมดในระบบบิตคอยน์&lt;br/&gt;&lt;br/&gt;เนื่องจากจุดกำเนิด G เป็นค่าเดียวกันสำหรับผู้ใช้บิตคอยน์ทุกคน private key (k) ที่คูณกับ G จะได้ public key (K) เดียวกันเสมอ ความสัมพันธ์ระหว่าง k และ K เป็นแบบตายตัวแต่สามารถคำนวณได้ในทิศทางเดียวเท่านั้น คือจาก k ไปยัง K นี่คือเหตุผลที่ public key ของบิตคอยน์ (K) สามารถแบ่งปันกับทุกคนได้โดยไม่เปิดเผย private key (k) ของผู้ใช้&lt;br/&gt;&lt;br/&gt;TIP: private key สามารถแปลงเป็น public key ได้ แต่ public key ไม่สามารถแปลงกลับเป็น private key ได้ เพราะคณิตศาสตร์ที่ใช้ทำงานได้เพียงทิศทางเดียวเท่านั้น&lt;br/&gt;เมื่อนำการคูณเส้นโค้งวงรีมาใช้งาน เราจะนำ private key (k) ที่สร้างขึ้นก่อนหน้านี้มาคูณกับจุดกำเนิด G เพื่อหา public key (K):&lt;br/&gt;&lt;br/&gt;```&lt;br/&gt;K = 1E99423A4ED27608A15A2616A2B0E9E52CED330AC530EDCC32C8FFC6A526AEDD × G&lt;br/&gt;```&lt;br/&gt;&lt;br/&gt;public key (K) จะถูกกำหนดเป็นจุด K = (x, y) โดยที่:&lt;br/&gt;&lt;br/&gt;```&lt;br/&gt;x = F028892BAD7ED57D2FB57BF33081D5CFCF6F9ED3D3D7F159C2E2FFF579DC341A&lt;br/&gt;y = 07CF33DA18BD734C600B96A72BBC4749D5141C90EC8AC328AE52DDFE2E505BDB&lt;br/&gt;```&lt;br/&gt;&lt;br/&gt;เพื่อจะให้เห็นภาพของการคูณจุดด้วยจำนวนเต็มมากขึ้น เราจะใช้เส้นโค้งวงรีที่ง่ายกว่าบนจำนวนจริง (โดยหลักการทางคณิตศาสตร์ยังคงเหมือนกัน) เป้าหมายของเราคือการหาผลคูณ kG ของจุดกำเนิด G ซึ่งเทียบเท่ากับการบวก G เข้ากับตัวเอง k ครั้งติดต่อกัน&lt;br/&gt;&lt;br/&gt;ในเส้นโค้งวงรี การบวกจุดเข้ากับตัวเองเทียบเท่ากับการลากเส้นสัมผัสที่จุดนั้นและหาว่าเส้นนั้นตัดกับเส้นโค้งอีกครั้งที่จุดใด จากนั้นจึงสะท้อนจุดนั้นบนแกน x&lt;br/&gt;&lt;br/&gt;การเข้ารหัสลับด้วยเส้นโค้งวงรี: การแสดงภาพการคูณจุด G ด้วยจำนวนเต็ม k บนเส้นโค้งวงรี แสดงกระบวนการในการหา G, 2G, 4G เป็นการดำเนินการทางเรขาคณิตบนเส้นโค้งได้ดังนี้&lt;br/&gt;&lt;br/&gt;TIP: ในซอฟแวร์ของบิตคอยน์ส่วนใหญ่ใช้ไลบรารีเข้ารหัสลับ libsecp256k1 เพื่อทำการคำนวณทางคณิตศาสตร์เส้นโค้งวงรี&lt;br/&gt;&lt;br/&gt;  &lt;img src=&#34;https://image.nostr.build/0781bbac3b999bad7390aa4b93c9582b96c580454d51abe1db3739fc966950da.png&#34;&gt; &lt;br/&gt;&lt;br/&gt;#siamstr #righttech&lt;br/&gt;&lt;br/&gt;อยากแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro/&#34;&gt;https://learnbn.npub.pro/&lt;/a&gt;
    </content>
    <updated>2025-03-13T14:22:44Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsfjy6dr0dm2kg3nschjpp8z2gtcn26ente44mzldh2n4hn5v96daszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2eh5rsl</id>
    
      <title type="html">Bitcoin Core API Bitcoin Core ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsfjy6dr0dm2kg3nschjpp8z2gtcn26ente44mzldh2n4hn5v96daszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2eh5rsl" />
    <content type="html">
      Bitcoin Core API&lt;br/&gt;Bitcoin Core ใช้อินเทอร์เฟซ JSON-RPC ซึ่งสามารถเข้าถึงได้โดยใช้เครื่องมืออย่าง bitcoin-cli ซึ่งช่วยให้เราสามารถทดลองใช้งานความสามารถต่างๆ แบบโต้ตอบได้ ซึ่งความสามารถเหล่านี้ยังสามารถใช้งานได้ผ่านทาง API ในรูปแบบโปรแกรม เพื่อเริ่มต้น ให้เรียกใช้คำสั่ง help เพื่อดูรายการคำสั่ง Bitcoin Core RPC ที่มีอยู่:&lt;br/&gt;&lt;br/&gt;```&lt;br/&gt;$ bitcoin-cli help&lt;br/&gt;&#43;== Blockchain ==&lt;br/&gt;getbestblockhash&lt;br/&gt;getblock &amp;#34;blockhash&amp;#34; ( verbosity )&lt;br/&gt;getblockchaininfo&lt;br/&gt;...&lt;br/&gt;walletpassphrase &amp;#34;passphrase&amp;#34; timeout&lt;br/&gt;walletpassphrasechange &amp;#34;oldpassphrase&amp;#34; &amp;#34;newpassphrase&amp;#34;&lt;br/&gt;walletprocesspsbt &amp;#34;psbt&amp;#34; ( sign &amp;#34;sighashtype&amp;#34; bip32derivs finalize )&lt;br/&gt;```&lt;br/&gt;คำสั่งแต่ละรายการอาจต้องการพารามิเตอร์หลายตัว เพื่อรับความช่วยเหลือเพิ่มเติม คำอธิบายโดยละเอียด และข้อมูลเกี่ยวกับพารามิเตอร์ต่างๆ ให้เพิ่มชื่อคำสั่งหลังคำว่า help ตัวอย่างเช่น เพื่อดูความช่วยเหลือเกี่ยวกับคำสั่ง RPC getblockhash:&lt;br/&gt;```&lt;br/&gt;$ bitcoin-cli help getblockhash&lt;br/&gt;getblockhash height&lt;br/&gt;Returns hash of block in best-block-chain at height provided.&lt;br/&gt;Arguments:&lt;br/&gt;1. height    (numeric, required) The height index&lt;br/&gt;Result:&lt;br/&gt;&amp;#34;hex&amp;#34;    (string) The block hash&lt;br/&gt;Examples:&lt;br/&gt;&amp;gt; bitcoin-cli getblockhash 1000&lt;br/&gt;&amp;gt; curl --user myusername --data-binary &amp;#39;{&amp;#34;jsonrpc&amp;#34;: &amp;#34;1.0&amp;#34;, &amp;#34;id&amp;#34;: &amp;#34;curltest&amp;#34;,&lt;br/&gt;  &amp;#34;method&amp;#34;: &amp;#34;getblockhash&amp;#34;,&lt;br/&gt;  &amp;#34;params&amp;#34;: [1000]}&amp;#39; -H &amp;#39;content-type: text/plain;&amp;#39; &lt;a href=&#34;http://127.0.0.1:8332/&#34;&gt;http://127.0.0.1:8332/&lt;/a&gt;&lt;br/&gt;```&lt;br/&gt;&lt;br/&gt;ในส่วนท้ายของข้อมูลคำสั่ง help คุณจะเห็นตัวอย่างสองตัวอย่างของคำสั่ง RPC ซึ่งใช้ตัวช่วย bitcoin-cli หรือ HTTP client curl ตัวอย่างเหล่านี้แสดงให้เห็นว่าคุณอาจเรียกใช้คำสั่งได้อย่างไร ลองคัดลอกตัวอย่างแรกและดูผลลัพธ์:&lt;br/&gt;&lt;br/&gt;```&lt;br/&gt;$ bitcoin-cli getblockhash 1000&lt;br/&gt;00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09&lt;br/&gt;```&lt;br/&gt;ผลลัพธ์คือแฮชของบล็อก ซึ่งจะอธิบายในรายละเอียดเพิ่มเติมในบทต่อไป แต่ในตอนนี้ คำสั่งนี้ควรให้ผลลัพธ์เหมือนกันบนระบบของคุณ ซึ่งแสดงให้เห็นว่าโหนด Bitcoin Core ของคุณกำลังทำงาน กำลังรับคำสั่ง และมี&lt;br/&gt;ข้อมูลเกี่ยวกับบล็อก 1,000 ที่จะส่งกลับมาให้คุณ&lt;br/&gt;&lt;br/&gt;การรับข้อมูลสถานะของ Bitcoin Core&lt;br/&gt;Bitcoin Core ให้รายงานสถานะเกี่ยวกับโมดูลต่างๆ ผ่านอินเตอร์เฟส JSON-RPC คำสั่งที่สำคัญที่สุดรวมถึง getblockchaininfo, getmempoolinfo, getnetworkinfo และ getwalletinfo&lt;br/&gt;คำสั่ง RPC getblockchaininfo ของ Bitcoin ได้ถูกแนะนำไปก่อนหน้านี้แล้ว คำสั่ง getnetworkinfo แสดงข้อมูลพื้นฐานเกี่ยวกับสถานะของโหนดเครือข่าย Bitcoin ใช้ bitcoin-cli เพื่อรันคำสั่งนี้:&lt;br/&gt;&lt;br/&gt;```&lt;br/&gt;$ bitcoin-cli getnetworkinfo&lt;br/&gt;{&lt;br/&gt;  &amp;#34;version&amp;#34;: 240001,&lt;br/&gt;  &amp;#34;subversion&amp;#34;: &amp;#34;/Satoshi:24.0.1/&amp;#34;,&lt;br/&gt;  &amp;#34;protocolversion&amp;#34;: 70016,&lt;br/&gt;  &amp;#34;localservices&amp;#34;: &amp;#34;0000000000000409&amp;#34;,&lt;br/&gt;  &amp;#34;localservicesnames&amp;#34;: [&lt;br/&gt;    &amp;#34;NETWORK&amp;#34;,&lt;br/&gt;    &amp;#34;WITNESS&amp;#34;,&lt;br/&gt;    &amp;#34;NETWORK_LIMITED&amp;#34;&lt;br/&gt;  ],&lt;br/&gt;  &amp;#34;localrelay&amp;#34;: true,&lt;br/&gt;  &amp;#34;timeoffset&amp;#34;: -1,&lt;br/&gt;  &amp;#34;networkactive&amp;#34;: true,&lt;br/&gt;  &amp;#34;connections&amp;#34;: 10,&lt;br/&gt;  &amp;#34;connections_in&amp;#34;: 0,&lt;br/&gt;  &amp;#34;connections_out&amp;#34;: 10,&lt;br/&gt;  &amp;#34;networks&amp;#34;: [&lt;br/&gt;    &amp;#34;...detailed information about all networks...&amp;#34;&lt;br/&gt;  ],&lt;br/&gt;  &amp;#34;relayfee&amp;#34;: 0.00001000,&lt;br/&gt;  &amp;#34;incrementalfee&amp;#34;: 0.00001000,&lt;br/&gt;  &amp;#34;localaddresses&amp;#34;: [&lt;br/&gt;  ],&lt;br/&gt;  &amp;#34;warnings&amp;#34;: &amp;#34;&amp;#34;&lt;br/&gt;}&lt;br/&gt;```&lt;br/&gt;&lt;br/&gt;ซึ่งข้อมูลต่าง ๆ จะถูกส่งคืนในรูปแบบ JavaScript Object Notation (JSON) ซึ่งเป็นรูปแบบที่สามารถ &amp;#34;อ่าน&amp;#34; ได้อย่างง่ายดายโดยทุกภาษาโปรแกรมมิ่ง และยังเป็นรูปแบบที่มนุษย์อ่านได้ง่ายอีกด้วย ในข้อมูลนี้เราเห็นหมายเลขเวอร์ชันสำหรับซอฟต์แวร์ Bitcoin Core และโปรโตคอลบิตคอยน์เราเห็นจำนวนการเชื่อมต่อในปัจจุบันและข้อมูลต่างๆ เกี่ยวกับเครือข่ายบิตคอยน์และการตั้งค่าที่เกี่ยวข้องกับโหนดนี้&lt;br/&gt;&lt;br/&gt;TIP: จะใช้เวลาสักระยะ อาจมากกว่าหนึ่งวัน สำหรับ bitcoind ในการอัพเดทให้ทันกับบล็อกล่าสุดของบล็อกเชนปัจจุบัน ในขณะที่มันดาวน์โหลดบล็อกจากโหนดอื่นๆ และตรวจสอบความถูกต้องของทุกธุรกรรมในบล็อกเหล่านั้น—ซึ่งมีเกือบหนึ่งพันล้านธุรกรรม ณ เวลาที่เขียนนี้ คุณสามารถตรวจสอบความคืบหน้าโดยใช้ getblockchaininfo เพื่อดูจำนวนบล็อกที่ทราบ ตัวอย่างในส่วนที่เหลือของบทนี้สมมติว่าคุณอยู่อย่างน้อยที่บล็อก 775,072 เนื่องจากความปลอดภัยของธุรกรรมขึ้นอยู่กับจำนวนบล็อก และข้อมูลบางส่วนในตัวอย่างต่อไปนี้อาจเปลี่ยนแปลงเล็กน้อยขึ้นอยู่กับจำนวนบล็อกที่โหนดของคุณมี&lt;br/&gt;&lt;br/&gt;อยากแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro&#34;&gt;https://learnbn.npub.pro&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#siamstr
    </content>
    <updated>2025-03-06T14:58:59Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs0l5tzd4yu0wfcc674h6tnm8sqne2fzp09yh04haadxqpfprp83tqzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2522awy</id>
    
      <title type="html">มาลองรัน Bitcoin node กันเถอะ ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs0l5tzd4yu0wfcc674h6tnm8sqne2fzp09yh04haadxqpfprp83tqzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2522awy" />
    <content type="html">
      มาลองรัน Bitcoin node กันเถอะ&lt;br/&gt;&lt;br/&gt;อย่างที่ได้กล่าวในบทก่อนหน้า เครือข่ายแบบเพียร์ทูเพียร์ของบิตคอยน์ประกอบด้วยเครือข่าย &amp;#34;โหนด&amp;#34; ซึ่งส่วนใหญ่รันโดยบุคคลและธุรกิจบางแห่งที่ให้บริการ ผู้ที่รันโหนดบิตคอยน์จะมีมุมมองที่ตรงและน่าเชื่อถือเกี่ยวกับบล๊อกเชนของบิตคอยน์พร้อมสำเนาข้อมูลบิตคอยน์ที่ใช้จ่ายได้ทั้งหมดซึ่งได้รับการตรวจสอบอย่างอิสระโดยระบบของตนเอง การรันโหนดทำให้คุณไม่ต้องพึ่งบุคคลที่สามในการตรวจสอบธุรกรรม นอกจากนี้การใช้โหนดบิตคอยน์เพื่อตรวจสอบธุรกรรมที่ได้รับในกระเป๋าเงินของคุณ ยังช่วยให้คุณมีส่วนร่วมในเครือข่ายบิตคอยน์และช่วยทำให้เครือข่ายมีความแข็งแกร่งมากขึ้นอีกด้วย&lt;br/&gt;&lt;br/&gt;การรันโหนดต้องดาวน์โหลดและประมวลผลข้อมูลมากกว่า 500 GB ในช่วงเริ่มแรก และประมาณ 400 MB ของธุรกรรม Bitcoin ต่อวัน ตัวเลขเหล่านี้เป็นของปี 2023 และอาจเพิ่มขึ้นในอนาคต หากคุณปิดโหนดหรือหลุดจากอินเทอร์เน็ตเป็นเวลาหลายวัน โหนดของคุณจะต้องดาวน์โหลดข้อมูลที่พลาดไป ตัวอย่างเช่น หากคุณปิด Bitcoin Core เป็นเวลา 10 วัน คุณจะต้องดาวน์โหลดประมาณ 4 GB ในครั้งถัดไปที่คุณเริ่มใช้งาน&lt;br/&gt;&lt;br/&gt;ขึ้นอยู่กับการเลือกของคุณว่าจะทำดัชนีธุรกรรมทั้งหมดและเก็บสำเนาบล๊อกเชนแบบเต็ม คุณอาจต้องใช้พื้นที่ดิสก์มาก - อย่างน้อย 1 TB หากคุณวางแผนจะรัน Bitcoin Core เป็นเวลาหลายปี โดยค่าเริ่มต้นโหนดบิตคอยน์ยังส่งธุรกรรมและบล็อกไปยังโหนดอื่น ๆ (เรียกว่า &amp;#34;เพียร์&amp;#34;) ซึ่งจะใช้แบนด์วิดท์อัปโหลดอินเทอร์เน็ต หากการเชื่อมต่ออินเทอร์เน็ตของคุณมีขีดจำกัด มีขีดจำกัดการใช้ข้อมูลต่ำ หรือคิดค่าบริการตามข้อมูล (เมตเตอร์) คุณไม่ควรรันโหนดบิตคอยน์บนระบบนั้น หรือรันโดยจำกัดแบนด์วิดท์ (ดู การกำหนดค่าโหนด Bitcoin Core) คุณอาจเชื่อมต่อโหนดของคุณแทนไปยังเครือข่ายทางเลือก เช่น ผู้ให้บริการข้อมูลดาวเทียมฟรีอย่าง Blockstream Satellite&lt;br/&gt;&lt;br/&gt;Tip: Bitcoin Core เก็บสำเนาบล๊อกเชนแบบเต็ม (ตามค่าเริ่มต้น ) พร้อมธุรกรรมเกือบทั้งหมดที่เคยได้รับการยืนยันบนเครือข่าย Bitcoin ตั้งแต่เริ่มต้นในปี 2009 ชุดข้อมูลนี้มีขนาดหลายร้อย GB และจะถูกดาวน์โหลดเพิ่มขึ้นทีละน้อยในช่วงหลายชั่วโมงหรือหลายวัน ขึ้นอยู่กับความเร็ว CPU และการเชื่อมต่ออินเทอร์เน็ตของคุณ Bitcoin Core จะไม่สามารถประมวลผลธุรกรรมหรืออัปเดตยอดคงเหลือของบัญชีจนกว่าชุดข้อมูล blockchain จะดาวน์โหลดเสร็จสมบูรณ์ ตรวจสอบให้แน่ใจว่าคุณมีพื้นที่ดิสก์ แบนด์วิดท์ และเวลาเพียงพอในการซิงโครไนซ์เริ่มแรก คุณสามารถกำหนดค่า Bitcoin Core เพื่อลดขนาด blockchain โดยการทิ้งบล็อกเก่า แต่โปรแกรมยังคงดาวน์โหลดชุดข้อมูลทั้งหมด&lt;br/&gt;&lt;br/&gt;TIPจากหลาม agian: ซื้อ NVMe SSD 2TB เป็นอย่างต่ำซ่ะ m.2 ได้ยิ่งดีเลยจ้า &lt;br/&gt;&lt;br/&gt;แม้ว่าจะมีข้อกำหนดด้านทรัพยากรเหล่านี้ แต่มีผู้คนหลายพันรายที่รันโหนด Bitcoin บางคนรันบนระบบง่าย ๆ อย่าง Raspberry Pi (คอมพิวเตอร์ราคา 35 เหรียญสหรัฐที่มีขนาดเท่ากับกล่องบุหรี่)&lt;br/&gt;&lt;br/&gt;ทำไมคุณถึงอยากรันโหนด? นี่คือเหตุผลที่พบบ่อยที่สุด:&lt;br/&gt;- คุณไม่ต้องการพึ่งบุคคลที่สามในการตรวจสอบธุรกรรมที่คุณได้รับ&lt;br/&gt;คุณไม่ต้องการเปิดเผยให้บุคคลที่สามรู้ว่าธุรกรรมใดเป็นของกระเป๋าเงินคุณ&lt;br/&gt;- คุณกำลังพัฒนาซอฟต์แวร์ Bitcoin และต้องการพึ่งโหนด Bitcoin เพื่อเข้าถึงเครือข่ายและ blockchain ผ่าน API&lt;br/&gt;- คุณกำลังสร้างแอปพลิเคชันที่ต้องตรวจสอบธุรกรรมตามกฎฉันทามติของ Bitcoin โดยทั่วไป บริษัทซอฟต์แวร์ Bitcoin มักจะรันโหนดหลายโหนด&lt;br/&gt;- คุณต้องการสนับสนุน Bitcoin การรันโหนดที่คุณใช้ตรวจสอบธุรกรรมที่ได้รับในกระเป๋าเงินจะช่วยทำให้เครือข่ายมีความแข็งแกร่งมากขึ้น&lt;br/&gt;&lt;br/&gt;หากคุณกำลังอ่านหนังสือเล่มนี้และสนใจความปลอดภัยที่เข้มงวด ความเป็นส่วนตัวที่เหนือกว่า หรือการพัฒนาซอฟต์แวร์ Bitcoin คุณควรรันโหนดของตัวเอง&lt;br/&gt;&lt;br/&gt;การกำหนดค่าโหนด Bitcoin Core&lt;br/&gt;&lt;br/&gt;Bitcoin Core จะค้นหาไฟล์การกำหนดค่าในไดเรกทอรีข้อมูลทุกครั้งที่เริ่มทำงาน ในส่วนนี้เราจะตรวจสอบตัวเลือกการกำหนดค่าต่าง ๆ และตั้งค่าไฟล์การกำหนดค่า&lt;br/&gt;&lt;br/&gt;เพื่อค้นหาไฟล์การกำหนดค่า ให้รัน bitcoind -printtoconsole ในเทอร์มินัลของคุณ และดูบรรทัดแรก ๆ:&lt;br/&gt;```&lt;br/&gt;$ bitcoind -printtoconsole&lt;br/&gt;2023-01-28T03:21:42Z Bitcoin Core version v24.0.1&lt;br/&gt;2023-01-28T03:21:42Z Using the &amp;#39;x86_shani(1way,2way)&amp;#39; SHA256 implementation&lt;br/&gt;2023-01-28T03:21:42Z Using RdSeed as an additional entropy source&lt;br/&gt;2023-01-28T03:21:42Z Using RdRand as an additional entropy source&lt;br/&gt;2023-01-28T03:21:42Z Default data directory /home/harding/.bitcoin&lt;br/&gt;2023-01-28T03:21:42Z Using data directory /home/harding/.bitcoin&lt;br/&gt;2023-01-28T03:21:42Z Config file: /home/harding/.bitcoin/bitcoin.conf&lt;br/&gt;...&lt;br/&gt;[a lot more debug output]&lt;br/&gt;...&lt;br/&gt;```&lt;br/&gt;&lt;br/&gt;tatatipจากหลามอีกครั้ง: สังเกตเห็นหรือไม่ว่าในตัวอย่างนี้ Bitcoin Core กำลังชี้ไปที่ไฟล์การกำหนดค่าที่ไดเรกทอรี /home/harding/.bitcoin/bitcoin.conf ซึ่งจะแตกต่างกันไปขึ้นอยู่กับผู้ใช้และระบบปฏิบัติการ&lt;br/&gt;&lt;br/&gt;คุณสามารถกด Ctrl-C เพื่อปิดโหนดหลังจากที่ระบุตำแหน่งไฟล์การกำหนดค่า โดยปกติไฟล์การกำหนดค่าจะอยู่ในไดเรกทอรี .bitcoin ภายใต้โฮมไดเรกทอรีของผู้ใช้ เปิดไฟล์ configuration ด้วยโปรแกรมแก้ไขได้ตามที่คุณชอบ&lt;br/&gt;&lt;br/&gt;Bitcoin Core มีตัวเลือกการกำหนดค่ามากกว่า 100 ตัวเลือกที่สามารถปรับเปลี่ยนพฤติกรรมของโหนดเครือข่าย การจัดเก็บบล๊อกเชน และแง่มุมอื่น ๆ ของการทำงาน เพื่อดูรายการตัวเลือก ให้รัน bitcoind --help:&lt;br/&gt;```&lt;br/&gt;$ bitcoind --help&lt;br/&gt;Bitcoin Core version v24.0.1&lt;br/&gt;Usage:  bitcoind [options]                     Start Bitcoin Core&lt;br/&gt;Options:&lt;br/&gt;  -?&lt;br/&gt;       Print this help message and exit&lt;br/&gt;  -alertnotify=&amp;lt;cmd&amp;gt;&lt;br/&gt;       Execute command when an alert is raised (%s in cmd is replaced by&lt;br/&gt;       message)&lt;br/&gt;...&lt;br/&gt;[many more options]&lt;br/&gt;```&lt;br/&gt;&lt;br/&gt;นี่คือตัวเลือกที่บางประการที่คุณสามารถตั้งในไฟล์ configuration หรือเป็นพารามิเตอร์บรรทัดคำสั่งสำหรับ bitcoind:&lt;br/&gt;- alertnotify: เรียกใช้คำสั่งหรือสคริปต์เพื่อส่งการแจ้งเตือนฉุกเฉินไปยังเจ้าของโหนดนี้&lt;br/&gt;- conf: ตำแหน่งทางเลือกสำหรับไฟล์ configuration เมื่อใช้เป็นพารามิเตอร์ cli สำหรับ bitcoind เท่านั้น เนื่องจากไม่สามารถอยู่ในไฟล์ configuration ที่มันอ้างถึงได้&lt;br/&gt;- datadir: เลือกไดเรกทอรีและระบบไฟล์สำหรับจัดเก็บข้อมูลบล๊อกเชนตามค่าเริ่มต้นนี้คือไดเรกทอรีย่อย .bitcoin ในไดเรกทอรีโฮมของคุณ ขึ้นอยู่กับการกำหนดค่า สามารถใช้พื้นที่ตั้งแต่ประมาณ 10 GB ถึงเกือบ 1 TB ณ ขณะนี้ คาดว่าขนาดสูงสุดจะเพิ่มขึ้นหลายร้อย GB ต่อปี&lt;br/&gt;- prune: ลดความต้องการพื้นที่ดิสก์บล๊อกเชนลงเหลือกี่เมกะไบต์โดยการลบบล็อกเก่า ใช้สำหรับโหนดที่มีทรัพยากรจำกัดซึ่งไม่สามารถบรรจุบล๊อกเชนแบบเต็มได้ ส่วนอื่น ๆ ของระบบจะใช้พื้นที่ดิสก์อื่นที่ไม่สามารถตัดทอนได้ ดังนั้นคุณยังคงต้องมีพื้นที่อย่างน้อยตามที่ระบุในตัวเลือก datadir&lt;br/&gt;- txindex: รักษาดัชนีของธุรกรรมทั้งหมด ช่วยให้คุณสามารถดึงธุรกรรมใด ๆ โดยใช้ ID ของมันได้โดยโปรแกรม โดยที่บล็อกที่มีธุรกรรมนั้นยังไม่ถูกตัดทอน&lt;br/&gt;- dbcache: ขนาดของแคช UTXO ค่าเริ่มต้นคือ 450 เมบิไบต์ (MiB) เพิ่มขนาดนี้บนฮาร์ดแวร์ระดับสูงเพื่ออ่านและเขียนจากดิสก์น้อยลง หรือลดขนาดลงบนฮาร์ดแวร์ระดับต่ำเพื่อประหยัดหน่วยความจำโดยยอมให้ใช้ดิสก์บ่อยขึ้น&lt;br/&gt;- blocksonly: ลดการใช้แบนด์วิดท์โดยการรับเฉพาะบล็อกของธุรกรรมที่ได้รับการยืนยันจากเพียร์ แทนที่จะส่งต่อธุรกรรมที่ยังไม่ได้รับการยืนยัน&lt;br/&gt;- maxmempool: จำกัดพูลหน่วยความจำของธุรกรรมเป็นกี่เมกะไบต์ ใช้เพื่อลดการใช้หน่วยความจำบนโหนดที่มีหน่วยความจำจำกัด&lt;br/&gt;&lt;br/&gt;เย่ ทีนี้เราก็มีโหนดแล้ววววว -- ไม่อะยังไม่เริ่มเลย 555555&lt;br/&gt;&lt;br/&gt;ข้อความจากหลาม agian: คือถึงผมจะสนับสนุนให้คนรันโหนดก็เถอะ แต่ถ้าจะรันโดยไม่รู้อะไรเลยก็ไม่รันซ่ะอาจจะดีกว่า&lt;br/&gt;&lt;br/&gt;อยากแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro/&#34;&gt;https://learnbn.npub.pro/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#siamstr
    </content>
    <updated>2025-03-05T10:51:43Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsrrw0a0g0h6dfkf69jxpu53ler5kdj5axvsr8xxkyfvdfxa87h2eczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2g7lgc3</id>
    
      <title type="html">ฮี่ ๆๆ ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsrrw0a0g0h6dfkf69jxpu53ler5kdj5axvsr8xxkyfvdfxa87h2eczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2g7lgc3" />
    <content type="html">
      ฮี่ ๆๆ ห่างหายไปนานเพราะต้องป้ำกับ Broken Money ช่วงนี้เห็นคนแนะนำเรื่องโหนดกันเยอะ เลยจะมาชวนดูกันว่าก่อนที่เราจะรันบิตคอยน์โหนดได้เนี่ย เราต้องเตรียมยังไงบ้าง (linux) &lt;br/&gt;&lt;br/&gt;มาคอมไพล์ Bitcoin core จากซอร์สโค้ดกันเถอะ !!&lt;br/&gt;ซอร์สโค้ดทั้งหมดของ BItcoin Core นั้นสามารถดาวน์โหลดได้ในรูปแบบไฟล์อาร์ไคฟ์หรือโดยการโคลนที่เก็บซอร์สโค้ดจาก GitHub โดยตรง บนหน้าดาวน์โหลดของ Bitcoin Core ให้เลือกเวอร์ชันล่าสุดและดาวน์โหลดไฟล์อัดบีบของซอร์สโค้ด หรือใช้คำสั่ง Git เพื่อสร้างสำเนาซอร์สโค้ดบนเครื่องของคุณจากหน้า GitHub ของ Bitcoin&lt;br/&gt;&lt;br/&gt;TIP: ในตัวอย่างหลาย ๆ ส่วนของบทนี้ เราจะใช้ อินเทอร์เฟซบรรทัดคำสั่ง (Command-Line Interface - CLI) ของระบบปฏิบัติการ หรือที่เรียกว่า &amp;#34;shell&amp;#34; ซึ่งสามารถเข้าถึงได้ผ่านแอปพลิเคชัน terminal โดย shell จะแสดง พรอมต์ (prompt) เพื่อรอรับคำสั่งที่คุณพิมพ์ จากนั้นจะแสดงผลลัพธ์ออกมาแล้วรอรับคำสั่งถัดไป&lt;br/&gt;&lt;br/&gt;TIP จากหลาม: แบบง่าย ๆ ก็คือไม่ต้องพิมพ์ $ และถ้าพิมพ์จบหนึ่งคำสั่งก็กด enter ซ่ะด้วย&lt;br/&gt;&lt;br/&gt;ขั้นตอนในการลง bitcoin core มีดังนี้:&lt;br/&gt;1. สั่ง git clone เพื่อทำการสร้างสำเนาของซอร์สโค้ดลงในเครื่องของเรา&lt;br/&gt;```&lt;br/&gt;$ git clone h ttps://github.com/bitcoin/bitcoin.git&lt;br/&gt;&lt;br/&gt;หลังสั่งบนจอจะขึ้นประมาณนี้&lt;br/&gt;Cloning into &amp;#39;bitcoin&amp;#39;...&lt;br/&gt;remote: Enumerating objects: 245912, done.&lt;br/&gt;remote: Counting objects: 100% (3/3), done.&lt;br/&gt;remote: Compressing objects: 100% (2/2), done.&lt;br/&gt;remote: Total 245912 (delta 1), reused 2 (delta 1), pack-reused 245909&lt;br/&gt;Receiving objects: 100% (245912/245912), 217.74 MiB | 13.05 MiB/s, done.&lt;br/&gt;Resolving deltas: 100% (175649/175649), done.&lt;br/&gt;```&lt;br/&gt;TIP: Git เป็นระบบควบคุมเวอร์ชันแบบกระจายที่ใช้กันอย่างแพร่หลายและเป็นส่วนสำคัญในเครื่องมือของนักพัฒนาซอฟต์แวร์ คุณอาจจำเป็นต้องติดตั้งคำสั่ง git หรือส่วนต่อประสานกราฟิก (GUI) สำหรับ Git บนระบบปฏิบัติการของคุณ หากยังไม่มี&lt;br/&gt;&lt;br/&gt;TIP จากหลาม: ผมตั้งใจแยก h ออกมาเพราะยากิฮองมันมองเป็น link ถ้า copy ไปก็ทำให้มันติดกันด้วยนะ&lt;br/&gt;&lt;br/&gt;2. เมื่อการโคลน Git เสร็จสมบูรณ์แล้ว คุณจะมีสำเนาท้องถิ่นครบถ้วนของที่เก็บซอร์สโค้ดในไดเรกทอรี bitcoin ให้เปลี่ยนไปยังไดเรกทอรีนี้โดยใช้คำสั่ง cd:&lt;br/&gt;```&lt;br/&gt;$ cd bitcoin&lt;br/&gt;```&lt;br/&gt;3. เลือก version ของ bitcoin core: โดยค่าเริ่มต้น สำเนาจองเราจะซิงโครไนซ์กับโค้ดล่าสุด ซึ่งอาจเป็นเวอร์ชันที่ไม่เสถียรหรือเบต้าของ Bitcoin ก่อนที่จะคอมไพล์โค้ด ให้เลือกเวอร์ชันเฉพาะโดยการตรวจสอบ (checkout) แท็กของการปล่อย (release tag) ซึ่งจะซิงโครไนซ์สำเนาท้องถิ่นกับสแนปช็อตของที่เก็บซอร์สโค้ดที่ระบุด้วยแท็ก แท็กเหล่านี้ถูกใช้งานโดยนักพัฒนาเพื่อระบุเวอร์ชันของโค้ดตามหมายเลขเวอร์ชัน ซึ่งทำได้โดยใช้คำสั่ง git tag:&lt;br/&gt;```&lt;br/&gt;$ git tag&lt;br/&gt;v0.1.5&lt;br/&gt;v0.1.6test1&lt;br/&gt;v0.10.0&lt;br/&gt;...&lt;br/&gt;v0.11.2&lt;br/&gt;v0.11.2rc1&lt;br/&gt;v0.12.0rc1&lt;br/&gt;v0.12.0rc2&lt;br/&gt;...&lt;br/&gt;```&lt;br/&gt;รายการแท็กจะแสดงทุกเวอร์ชันที่ปล่อยออกมา โดยทั่วไป release candidates (เวอร์ชันทดสอบ) จะมีต่อท้ายว่า &amp;#34;rc&amp;#34; ส่วนเวอร์ชันเสถียรที่ใช้งานในระบบ production จะไม่มีต่อท้ายอะไรเลย จากรายการด้านบน ให้เลือกเวอร์ชันที่สูงสุด ซึ่งในขณะที่เขียนบทความนี้คือ v24.0.1 เพื่อซิงโครไนซ์โค้ดท้องถิ่นกับเวอร์ชันนี้ ให้ใช้คำสั่ง:&lt;br/&gt;&lt;br/&gt;```&lt;br/&gt;$ git checkout v24.0.1&lt;br/&gt;Note: switching to &amp;#39;v24.0.1&amp;#39;.&lt;br/&gt;```&lt;br/&gt;จากนั้นสั่ง git status เพื่อเช็คเวอร์ขั่น&lt;br/&gt;&lt;br/&gt;เพียงแค่นี้เราก็ได้ซอร์สโค้ดของบิตคอยน์คอร์มาแล้วววว แปลว่าเรามีโหนดบิตคอยน์แล้วสินะ -- ก็ต้องบอกว่ายังจ้าาา อย่ารีบ ๆ &lt;br/&gt;&lt;br/&gt;หลังจากที่เราได้ซอร์สโค้ดของบิตคอยน์คอร์มาแล้วต่อมาเราต้องมาตั้งค่าต่ออีกนิดหน่อยเพื่อให้ติดตั้งโหนดได้สำเร็จ&lt;br/&gt;&lt;br/&gt;ในโค้ดของบิตคอยน์ที่เราได้ดาวน์โหลดมาในหัวข้อก่อนหน้านั้น มีเอกสารประกอบอยู่หลายไฟล์ โดยคุณสามารถดูเอกสารหลักได้จากไฟล์ README.md ในไดเรกทอรี bitcoin ในบทนี้ เราจะสร้าง daemon (เซิร์ฟเวอร์) ของ Bitcoin Core ซึ่งรู้จักกันในชื่อ bitcoind บน Linux (หรือระบบที่คล้ายกับ Unix) โดยให้ตรวจสอบคำแนะนำสำหรับการคอมไพล์ bitcoind แบบบรรทัดคำสั่งบนแพลตฟอร์มของคุณโดยอ่านไฟล์ doc/build-unix.md นอกจากนี้ ยังมีคำแนะนำสำหรับระบบอื่น ๆ ในไดเรกทอรี doc เช่น build-windows.md สำหรับ Windows จนถึงขณะนี้ คำแนะนำมีให้สำหรับ Android, FreeBSD, NetBSD, OpenBSD, macOS (OSX), Unix&lt;br/&gt;&lt;br/&gt;หลังจากนั้นคุณควรตรวจสอบความต้องการเบื้องต้นในการสร้าง (build pre-requisites) ซึ่งระบุไว้ในส่วนแรกของเอกสารการสร้าง สิ่งเหล่านี้คือไลบรารีที่ต้องมีอยู่ในระบบของคุณก่อนที่คุณจะเริ่มคอมไพล์ Bitcoin หากมีไลบรารีที่จำเป็นหายไป กระบวนการสร้างจะล้มเหลวและแสดงข้อผิดพลาด หากเกิดปัญหานี้เพราะคุณพลาด pre-requisite คุณสามารถติดตั้งไลบรารีที่ขาดหายไปแล้วดำเนินการสร้างต่อจากจุดที่ค้างไว้&lt;br/&gt;&lt;br/&gt;สมมุติว่า pre-requisite ถูกติดตั้งแล้ว ให้เริ่มกระบวนการสร้างโดยการสร้างชุดสคริปต์สำหรับการสร้างด้วยการรันสคริปต์ autogen.sh:&lt;br/&gt;```&lt;br/&gt;$ ./autogen.sh&lt;br/&gt;libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, &amp;#39;build-aux&amp;#39;.&lt;br/&gt;libtoolize: copying file &amp;#39;build-aux/ltmain.sh&amp;#39;&lt;br/&gt;libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, &amp;#39;build-aux/m4&amp;#39;.&lt;br/&gt; ...&lt;br/&gt;configure.ac:58: installing &amp;#39;build-aux/missing&amp;#39;&lt;br/&gt;src/Makefile.am: installing &amp;#39;build-aux/depcomp&amp;#39;&lt;br/&gt;parallel-tests: installing &amp;#39;build-aux/test-driver&amp;#39;&lt;br/&gt;```&lt;br/&gt;สคริปต์ autogen.sh นี้จะสร้างชุดสคริปต์ที่กำหนดค่าอัตโนมัติที่จะตรวจสอบระบบของคุณเพื่อค้นหาการตั้งค่าที่ถูกต้องและตรวจสอบให้แน่ใจว่ามีไลบรารีที่จำเป็นสำหรับการคอมไพล์โค้ด โดยสคริปต์ที่สำคัญที่สุดในสคริปต์เหล่านี้คือสคริปต์ configure ซึ่งมีตัวเลือกต่าง ๆ สำหรับการปรับแต่งกระบวนการสร้าง&lt;br/&gt;&lt;br/&gt;ใช้ flag --help เพื่อดูตัวเลือกทั้งหมด:&lt;br/&gt;```&lt;br/&gt;$ ./configure --help&lt;br/&gt;`configure&amp;#39; configures Bitcoin Core 24.0.1 to adapt to many kinds of systems.&lt;br/&gt;Usage: ./configure [OPTION]... [VAR=VALUE]...&lt;br/&gt;...&lt;br/&gt;Optional Features:&lt;br/&gt;  --disable-option-checking  ignore unrecognized --enable/--with options&lt;br/&gt;  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)&lt;br/&gt;  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]&lt;br/&gt;  --enable-silent-rules   less verbose build output (undo: &amp;#34;make V=1&amp;#34;)&lt;br/&gt;  --disable-silent-rules  verbose build output (undo: &amp;#34;make V=0&amp;#34;)&lt;br/&gt;...&lt;br/&gt;```&lt;br/&gt;สคริปต์ configure ช่วยให้คุณสามารถเปิดหรือปิดคุณสมบัติบางอย่างของ bitcoind ผ่านการใช้ flag --enable-FEATURE และ --disable-FEATURE โดยที่ FEATURE แทนชื่อคุณสมบัติที่ระบุในข้อความช่วยเหลือ ในบทนี้ เราจะสร้าง bitcoind ด้วยคุณสมบัติตั้งต้นทั้งหมด โดยไม่ใช้ flag การกำหนดค่าเพิ่มเติม แต่คุณควรตรวจสอบตัวเลือกเหล่านี้เพื่อเข้าใจว่ามีคุณสมบัติเพิ่มเติมอะไรบ้าง หากคุณอยู่ในสภาพแวดล้อมทางการศึกษา ห้องปฏิบัติการคอมพิวเตอร์ หรือมีข้อจำกัดในการติดตั้งโปรแกรม คุณอาจต้องติดตั้งแอปพลิเคชันไว้ในไดเรกทอรี home (เช่นโดยใช้ flag --prefix=$HOME)&lt;br/&gt;ตัวเลือกที่มีประโยชน์สำหรับการกำหนดค่า&lt;br/&gt;--prefix=$HOME: เปลี่ยนตำแหน่งการติดตั้งเริ่มต้น (ซึ่งโดยปกติคือ /usr/local/) ให้เป็นไดเรกทอรี home ของคุณ หรือเส้นทางที่คุณต้องการ&lt;br/&gt; - --disable-wallet: ใช้เพื่อปิดการใช้งานฟังก์ชัน wallet แบบอ้างอิง&lt;br/&gt; - --with-incompatible-bdb: หากคุณกำลังสร้าง wallet ให้ยอมรับการใช้ไลบรารี Berkeley DB เวอร์ชันที่ไม่เข้ากันได้&lt;br/&gt; - --with-gui=no: ไม่สร้างส่วนติดต่อผู้ใช้แบบกราฟิก (GUI) ซึ่งต้องใช้ไลบรารี Qt โดยตัวเลือกนี้จะสร้างเฉพาะเซิร์ฟเวอร์และ Bitcoin Core แบบ commandline เท่านั้น&lt;br/&gt;&lt;br/&gt;ต่อไป ให้รันสคริปต์ configure เพื่อให้ระบบตรวจสอบไลบรารีที่จำเป็นทั้งหมดและสร้างสคริปต์สำหรับการสร้างที่ปรับแต่งให้ตรงกับระบบของคุณ:&lt;br/&gt;```&lt;br/&gt;$ ./configure&lt;br/&gt;checking for pkg-config... /usr/bin/pkg-config&lt;br/&gt;checking pkg-config is at least version 0.9.0... yes&lt;br/&gt;checking build system type... x86_64-pc-linux-gnu&lt;br/&gt;checking host system type... x86_64-pc-linux-gnu&lt;br/&gt;checking for a BSD-compatible install... /usr/bin/install -c&lt;br/&gt;...&lt;br/&gt;[many pages of configuration tests follow]&lt;br/&gt;...&lt;br/&gt;```&lt;br/&gt;หากทุกอย่างดำเนินไปด้วยดี คำสั่ง configure จะสิ้นสุดด้วยการสร้างสคริปต์การสร้างที่ปรับแต่งให้กับระบบของคุณ แต่หากมีไลบรารีที่หายไปหรือเกิดข้อผิดพลาด คำสั่ง configure จะหยุดและแสดงข้อผิดพลาดแทนที่จะสร้างสคริปต์ในกรณีที่เกิดข้อผิดพลาดขึ้น สาเหตุที่พบบ่อยคือการขาดหายหรือความไม่เข้ากันของไลบรารี ให้ตรวจสอบเอกสารการสร้างอีกครั้งและติดตั้ง pre-requisite ที่ขาดไป จากนั้นรัน configure อีกครั้งเพื่อดูว่าปัญหานั้นได้รับการแก้ไขแล้วหรือไม่&lt;br/&gt;&lt;br/&gt;ตั้งค่าเสร็จแล้วได้โหนดแล้วยัง -- ยัง !!!&lt;br/&gt;&lt;br/&gt;จากนี้เราต้องทำให้ file มัน Executable ได้ก่อน เพราะการจะคอมไพล์ซอร์สโค้ด กระบวนการนี้อาจใช้เวลาถึงหนึ่งชั่วโมง ขึ้นอยู่กับความเร็วของ CPU และหน่วยความจำที่มีอยู่ หากเกิดข้อผิดพลาด หรือการคอมไพล์ถูกขัดจังหวะ คุณสามารถดำเนินการต่อได้โดยการพิมพ์คำสั่ง make อีกครั้ง&lt;br/&gt;พิมพ์ make เพื่อเริ่มคอมไพล์แอปพลิเคชันที่สามารถรันได้:&lt;br/&gt;```&lt;br/&gt;$ make&lt;br/&gt;Making all in src&lt;br/&gt;  CXX      bitcoind-bitcoind.o&lt;br/&gt;  CXX      libbitcoin_node_a-addrdb.o&lt;br/&gt;  CXX      libbitcoin_node_a-addrman.o&lt;br/&gt;  CXX      libbitcoin_node_a-banman.o&lt;br/&gt;  CXX      libbitcoin_node_a-blockencodings.o&lt;br/&gt;  CXX      libbitcoin_node_a-blockfilter.o&lt;br/&gt;[... many more compilation messages follow ...]&lt;br/&gt;```&lt;br/&gt;บนระบบที่มีความเร็วและมี CPU หลายคอร์ คุณอาจต้องการตั้งค่าจำนวนงานคอมไพล์แบบขนาน (parallel compile jobs) เช่น การใช้คำสั่ง make -j 2 จะใช้สองคอร์หากมีอยู่ หากทุกอย่างดำเนินไปด้วยดี Bitcoin Core จะถูกคอมไพล์เรียบร้อยแล้ว คุณควรรันชุดการทดสอบหน่วย (unit test suite) ด้วยคำสั่ง make check เพื่อให้แน่ใจว่าไลบรารีที่ลิงค์เข้าด้วยกันไม่มีข้อผิดพลาดอย่าง ขั้นตอนสุดท้ายคือการติดตั้ง executable ต่าง ๆ ลงในระบบของคุณโดยใช้คำสั่ง make install ซึ่งอาจมีการร้องขอรหัสผ่านของผู้ใช้เนื่องจากขั้นตอนนี้ต้องการสิทธิ์ผู้ดูแลระบบ:&lt;br/&gt;```&lt;br/&gt;$ make check &amp;amp;&amp;amp; sudo make install&lt;br/&gt;Password:&lt;br/&gt;Making install in src&lt;br/&gt; ../build-aux/install-sh -c -d &amp;#39;/usr/local/lib&amp;#39;&lt;br/&gt;libtool: install: /usr/bin/install -c bitcoind /usr/local/bin/bitcoind&lt;br/&gt;libtool: install: /usr/bin/install -c bitcoin-cli /usr/local/bin/bitcoin-cli&lt;br/&gt;libtool: install: /usr/bin/install -c bitcoin-tx /usr/local/bin/bitcoin-tx&lt;br/&gt;...&lt;br/&gt;```&lt;br/&gt;การติดตั้งเริ่มต้นของ bitcoind จะอยู่ในไดเรกทอรี /usr/local/bin โดยคุณสามารถตรวจสอบว่า Bitcoin Core ถูกติดตั้งเรียบร้อยแล้วโดยใช้คำสั่งเพื่อตรวจสอบตำแหน่งของ executable ดังนี้:&lt;br/&gt;```&lt;br/&gt;$ which bitcoind&lt;br/&gt;/usr/local/bin/bitcoind&lt;br/&gt;$ which bitcoin-cli&lt;br/&gt;/usr/local/bin/bitcoin-cli&lt;br/&gt;```&lt;br/&gt;เย่ ทีนี้เราก็มีโหนดแล้วใช่มั้ยยย ก็ต้องตอบว่า ยังงง!!!!! &lt;br/&gt;หลังทำตามนี้ทั้งหมดเราจะได้อุปกรณ์ทั้งหมดที่พร้อมในการติดตั้งโหนดแล้ว ในโพสต์ต่อไป เดี๋ยวจะเป็นการรันโหนดจริง ๆ แล้วครับ&lt;br/&gt;&lt;br/&gt;อยากแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro&#34;&gt;https://learnbn.npub.pro&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#siamstr
    </content>
    <updated>2025-03-04T12:11:35Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8evwvyl2u34um7lcuynvakpd6z5ktk4d2nsy3xkz98zktk0c939qzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe20kv56v</id>
    
      <title type="html">Bitcoin Core: The Reference Implementation ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8evwvyl2u34um7lcuynvakpd6z5ktk4d2nsy3xkz98zktk0c939qzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe20kv56v" />
    <content type="html">
      Bitcoin Core: The Reference Implementation&lt;br/&gt;&lt;br/&gt;ผู้คนจะยอมรับเงินใด ๆ เพื่อแลกเปลี่ยนกับสินค้าและบริการก็ต่อเมื่อคนนั้น ๆ เชื่อว่าเงินนี้จะมีมูลค่าในอนาคต เงินปลอมหรือเงินที่เสื่อมค่าโดยไม่คาดคิดนั้นอาจไม่สามารถใช้ได้ในอนาคต ดังนั้นทุกคนที่รับบิตคอยน์จึงมีแรงจูงใจที่แข็งแกร่งในการตรวจสอบความถูกต้องของบิตคอยน์ที่พวกเขาได้รับ ระบบของบิตคอยน์นั้นถูกออกแบบมาให้เข้าถึง, ป้องกันการปลอมแปลง, การเสื่อมค่า และปัญหาสำคัญอื่น ๆ ได้อย่างสมบูรณ์ได้ด้วยคอมพิวเตอร์ทั่วไป โดยซอฟต์แวร์ที่ให้ฟังก์ชันนี้เรียกว่า Full node ซึ่งทำหน้าที่ตรวจสอบธุรกรรมบิตคอยน์ทุกครั้งที่ได้รับการยืนยันตามกฎของระบบ นอกจากนี้ Full node ยังสามารถให้เครื่องมือและข้อมูลเพื่อทำความเข้าใจการทำงานของบิตคอยน์และสภาพปัจจุบันของเครือข่าย&lt;br/&gt;&lt;br/&gt;ในบทนี้เอง เราจะทำการติดตั้ง Bitcoin Core ซึ่งเป็นซอฟต์แวร์ที่ผู้ใช้งาน Full node ส่วนใหญ่เลือกใช้เพื่อเป็นประตูบานแรกในการเข้าถึงระบบนิเวศของบิตคอยน์ เราจะตรวจสอบบล็อก ธุรกรรม และข้อมูลอื่น ๆ จากโหนดของคุณ ซึ่งเป็นข้อมูลที่เชื่อถือได้ (ไม่ใช่เพราะหน่วยงานทรงอำนาจกำหนดให้เป็นเช่นนั้น) แต่เป็นเพราะโหนดของคุณได้ตรวจสอบข้อมูลนั้นอย่างอิสระ ตลอดเนื้อหาที่เหลือในหนังสือเล่มนี้ เราจะใช้ Bitcoin Core เพื่อสร้างและตรวจสอบข้อมูลที่เกี่ยวข้องกับบล็อกเชนและเครือข่าย&lt;br/&gt;จาก Bitcoin สู่ Bitcoin Core&lt;br/&gt;&lt;br/&gt;บิตคอยน์เป็นโครงการโอเพ่นซอร์ส โดยซอร์สโค้ดทั้งหมดก็สามารถดาวน์โหลดและใช้งานได้ฟรีภายใต้ใบอณุญาตแบบเปิด (MIT License) นอกจากจะเป็นโอเพ่นซอร์สแล้วบิตคอยน์ยังได้รับการพัฒนาโดยชุมชนอาสาสมัครแบบเปิดกว้าง แน่นอนว่าในช่วงแรกนั้นชุมชนนี้ประกอบด้วย Satoshi Nakamoto เพียงคนเดียว แต่ภายในปี 2023 ซอร์สโค้ดของบิตคอยน์มีผู้ร่วมพัฒนามากกว่า 1,000 คน&lt;br/&gt;&lt;br/&gt;เมื่อ Satoshi Nakamoto ได้สร้างซอฟแวร์บิตคอยน์ตัวนี้และพัฒนามันจนเกือบสมบูรณ์ก่อนแล้วจึงเผยแพร่เอกสารไวท์เปเปอร์ เขาน่าจะต้องการให้มั่นใจว่าการใช้งานจริงสามารถทำงานได้ก่อนเผยแพร่เอกสาร โดยซอฟต์แวร์เวอร์ชันแรกที่รู้จักในชื่อ &amp;#34;Bitcoin&amp;#34; นั้นได้รับการปรับปรุงและพัฒนามาอย่างมาก จนได้กลายเป็นสิ่งที่เรารู้จักกันในชื่อ Bitcoin Core และเพื่อแยกความแตกต่างจากการใช้งานอื่น ๆ Bitcoin Core เป็นซอฟต์แวร์ต้นแบบอ้างอิง (reference implementation) ของระบบบิตคอยน์ซึ่งแสดงวิธีการทำงานของแต่ละส่วนในเชิงเทคโนโลยี นอกจากนี้ Bitcoin Core รวมถึงการใช้งานฟังก์ชันทั้งหมดของบิตคอยน์ เช่น กระเป๋าเงิน เครื่องมือตรวจสอบธุรกรรมและบล็อก เครื่องมือสำหรับการสร้างบล็อก และส่วนต่าง ๆ ของการสื่อสารแบบ peer-to-peer ของบิตคอยน์&lt;br/&gt;  &lt;img src=&#34;https://image.nostr.build/86f152aa9629d4403e3e330fd98fbeb9b3d2c9decda69a900007132feaa768e7.png&#34;&gt; &lt;br/&gt;&lt;br/&gt;#siamstr&lt;br/&gt;=-=-=-=-=-=-=-=-=-=-=&lt;br/&gt;อยากแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro/&#34;&gt;https://learnbn.npub.pro/&lt;/a&gt;&lt;br/&gt;Parsed content
    </content>
    <updated>2025-01-01T04:17:12Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqqq9h49pznpnc6xvqthdudpl6x3k6a56njvta70dq3mg2lmjxufszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2fchwcp</id>
    
      <title>Nostr event nevent1qqsqqq9h49pznpnc6xvqthdudpl6x3k6a56njvta70dq3mg2lmjxufszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2fchwcp</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqqq9h49pznpnc6xvqthdudpl6x3k6a56njvta70dq3mg2lmjxufszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2fchwcp" />
    <content type="html">
      การขุดบิตคอยน์&lt;br/&gt;ตอนนี้ธุรกรรมของอลิซได้เข้าไปสู่ในเครือข่ายของบิตคอยน์แล้ว แต่มันยังไม่ได้ถูกบรรจุลงในบล๊อกเชนเนื่องจากจะต้องรอให้นักขุดทำการนำธุรกรรมนั้น ๆ เข้าไปในบล๊อกและบล๊อกนั้นจำเป็นต้องผ่านการตรวจสอบโดยโหนดในเครือข่ายของบิตคอยน์เสียก่อน จึงจะถูกบันทึกลงในบล๊อกเชน&lt;br/&gt;&lt;br/&gt;ในระบบของบิตคอยน์นั้น มีการป้องกันการปลอมแปลงด้วยการคำนวณทางคณิตศาสตร์ ซึ่งเป็นการคำนวณที่จำเป็นต้องใช้พลังงานมหาศาลในการคำนวณ แต่ใช้พลังงานเพียงเล็กน้อยในการตรวจสอบ โดยธุรกรรมทั้งหมดจะถูกจัดเรียงเป็นบล๊อกและแต่ละบล๊อกจะมีบล๊อกเฮดเดอร์ที่จำเป็นต้องสร้างตามเงื่อนไขเฉพาะ โดยกระบวนการขุดบิตคอยน์นั้นมีวัตถุประสงค์อยู่สองอย่าง ดังนี้:&lt;br/&gt;&lt;br/&gt; - สร้างแรงจูงใจให้ขุดเฉพาะธุรกรรมที่ถูกต้องตามกฎ: เนื่องจากวิธีที่เหล่านักขุดจะได้รับผลกำไรที่สูงที่สุดจากการสร้างบล๊อกที่ตรงกับฉันทมติของระบบเท่านั้น (หากไม่ทำตามบล๊อกจะไม่ถูกยอมรับโดยโหนด และนั่นจะเป็นการสิ้นเปลืองพลังงานที่ได้คำนวณมาโดยเปล่าประโยชน์) นั้นจึงเป็นแรงจูงใจหลัก ๆ ให้เหล่านักขุดทำการใส่ธุรกรรมที่ถูกต้องตามกฏเท่านั้นลงในบล๊อกที่ตนสร้าง และสิ่งนี้เองก็ทำให้ผู้ใช้สามารถเลือกที่จะสันนิษฐานโดยอิงตามความไว้วางใจว่าธุรกรรมใด ๆ ในบล็อกนั้น ๆ เป็นธุรกรรมที่ถูกต้อง &lt;br/&gt;&lt;br/&gt; - สร้างเหรียญใหม่ตามตารางการออกเหรียญที่กำหนดไว้ล่วงหน้า: ในปัจจุบันนั้นจะมีการสร้างบิตคอยน์ใหม่ในแต่ละบล็อก คล้ายคลึงกับธนาคารกลางที่พิมพ์เงินใหม่ โดยจำนวนบิตคอยน์ในแต่ละบล๊อกที่จะถูกผลิตขึ้นมาใหม่นั้นถูกกำหนดมาตั้งแต่วันที่ระบบของบิตคอยน์ได้เริ่มขึ้นและไม่สามารถเปลี่ยนแปลงได้&lt;br/&gt;&lt;br/&gt; การขุดได้ช่วยให้เกิดความสมดุลระหว่างต้นทุนและผลตอบแทน เนื่องจากการขุดมีการใช้ไฟฟ้าเพื่อแก้ปัญหาการคำนวณ และนักขุดที่ประสบความสำเร็จจะได้รับรางวัลในรูปแบบของบิตคอยน์ใหม่และค่าธรรมเนียมจากการทำธุรกรรม แต่อย่างไรก็ตาม รางวัลจะถูกเก็บรวบรวมก็ต่อเมื่อนักขุดรวมเฉพาะธุรกรรมที่ถูกต้องเท่านั้น โดยกฎของโปรโตคอลบิตคอยน์สำหรับการสร้างฉันทามติ จะกำหนดว่าอะไรถูกต้อง โดยความสมดุลที่ละเอียดอ่อนนี้เองที่คอยสร้างให้ความปลอดภัยแก่บิตคอยน์โดยไม่ต้องมีหน่วยงานกลางมาคอยดูแล&lt;br/&gt;&lt;br/&gt;#siamstr&lt;br/&gt;=-=-=-=-=-=-=-=-=-=-=&lt;br/&gt;พึ่งมาอ่านแล้วงงบริบทอย่างงั้นเหรออ งั้นย้อนไปสิ&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzq7gq3eup4hk8vlxgugum2vldevv75t3xp7fgr2gjt6f5yh06eyu4qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qg6waehxw309a3x7um5wghxcetrw36hy6tx0yhxuet59uqzqvavpw4pc3m69nquuc77c3wdcf7mag0xf2fwpsp3qm54jhvf5scc9runfa&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…unfa&lt;/a&gt;&lt;/span&gt;&lt;br/&gt; &lt;/div&gt; การใส่ธุรกรรมลงในบล๊อกเชน&lt;br/&gt;ธุรกรรมที่สร้างขึ้นโดย Bitcoin wallet ของอลิซมีข้อมูลทั้งหมดที่จำเป็นสำหรับการสร้างธุรกรรม (การยืนยันว่าอลิซเป็นเจ้าของเงิน และ Bitcoin address ปลายทาง) จากนั้นธุรกรรมนี้จะต้องถูกส่งไปยังเครือข่ายของบิตคอยน์ เพื่อที่จะให้ธุรกรรมนั้นเป็นส่วนนึงในเครือข่ายของบิตคอยน์ และในส่วนถัดไปของหนังสือเล่มนี้ เราจะอธิบายถึงว่าธุรกรรมกลายเป็นส่วนหนึ่งของบล็อกใหม่อย่างไร และกระบวนการขุดบล็อกเป็นอย่างไร รวมถึงการที่บล็อกใหม่ได้รับความไว้วางใจมากขึ้นเมื่อมีการเพิ่มบล็อกใหม่ ๆ เข้ามาเรื่อย ๆ หมายถึงอะไร ?&lt;br/&gt;&lt;br/&gt;การส่งธุรกรรมเข้าไปยังเครือข่าย&lt;br/&gt;เนื่องจากธุรกรรมมีข้อมูลที่จำเป็นสำหรับการประมวลผลทั้งหมด จึงทำให้การส่งผ่านสามารถทำได้จากที่ไหนหรืออย่างไรก็ได้ อย่างที่ได้กล่าวไปว่าเครือข่ายของบิตคอยน์เป็นเครือข่ายแบบ peer-to-peer โดยที่แต่ละโหนดเชื่อมต่อกับโหนดอื่น ๆ อีกหลายโหนด เพื่อทำหน้าที่กระจายธุรกรรมและบล็อกให้กับผู้เข้าร่วมทั้งหมดในระบบ&lt;br/&gt;&lt;br/&gt;การกระจายธุรกรรม&lt;br/&gt;โหนดในเครือข่าย peer-to-peer ของบิตคอยน์นั้นเป็นซอฟต์แวร์ที่สามารถตรวจสอบความถูกต้องของธุรกรรมได้  และการเชื่อมต่อระหว่างโหนดสามารถแสดงเป็นเส้นในกราฟ ทำให้โหนดเหล่านี้เรียกว่า “โหนดตรวจสอบเต็มรูปแบบ” (full nodes) กระเป๋าเงินของอลิซสามารถส่งธุรกรรมไปยังโหนดบิตคอยน์ใด ๆ ผ่านการเชื่อมต่อใด ๆ ก็ได้ เช่น สายแลน WiFi หรือ เครือข่ายมือถือ โดยถ้าหากโหนดได้รับธุรกรรมที่ถูกต้องซึ่งยังไม่เคยเห็นมาก่อน มันจะกระจายธุรกรรมนี้ไปยังโหนดอื่น ๆ ที่เชื่อมต่อด้วย ซึ่งเป็นเทคนิคที่เรียกว่า gossiping ซึ่งทำให้ธุรกรรมแพร่กระจายไปทั่วเครือข่ายอย่างรวดเร็วภายในไม่กี่วินาที&lt;br/&gt;&lt;br/&gt;#siamstr&lt;br/&gt;=-=-=-=-=-=-=-=-=-=-=&lt;br/&gt;พึ่งมาอ่านแล้วงงบริบทอย่างงั้นเหรออ งั้นย้อนไปสิ&lt;br/&gt;nevent1qvzqqqqqqypzq7gq3eup4hk8vlxgugum2vldevv75t3xp7fgr2gjt6f5yh06eyu4qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qg6waehxw309a3x7um5wghxcetrw36hy6tx0yhxuet59uqzpchj0amh2a825njmr4a5eqr2sjgpcye6rw5crcsy4nqrw467l9a9flxcqd&lt;br/&gt;&lt;br/&gt;อยากแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro/&#34;&gt;https://learnbn.npub.pro/&lt;/a&gt;&lt;br/&gt; &lt;/blockquote&gt;&lt;br/&gt;อยากแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro/&#34;&gt;https://learnbn.npub.pro/&lt;/a&gt;
    </content>
    <updated>2024-12-19T03:20:09Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsr8tqt4gwyw73vc88x8hkytnwz0kl2rej2jtsvqvgxa9v4mzdyxxqzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2wur8pn</id>
    
      <title>Nostr event nevent1qqsr8tqt4gwyw73vc88x8hkytnwz0kl2rej2jtsvqvgxa9v4mzdyxxqzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2wur8pn</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsr8tqt4gwyw73vc88x8hkytnwz0kl2rej2jtsvqvgxa9v4mzdyxxqzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2wur8pn" />
    <content type="html">
      การใส่ธุรกรรมลงในบล๊อกเชน&lt;br/&gt;ธุรกรรมที่สร้างขึ้นโดย Bitcoin wallet ของอลิซมีข้อมูลทั้งหมดที่จำเป็นสำหรับการสร้างธุรกรรม (การยืนยันว่าอลิซเป็นเจ้าของเงิน และ Bitcoin address ปลายทาง) จากนั้นธุรกรรมนี้จะต้องถูกส่งไปยังเครือข่ายของบิตคอยน์ เพื่อที่จะให้ธุรกรรมนั้นเป็นส่วนนึงในเครือข่ายของบิตคอยน์ และในส่วนถัดไปของหนังสือเล่มนี้ เราจะอธิบายถึงว่าธุรกรรมกลายเป็นส่วนหนึ่งของบล็อกใหม่อย่างไร และกระบวนการขุดบล็อกเป็นอย่างไร รวมถึงการที่บล็อกใหม่ได้รับความไว้วางใจมากขึ้นเมื่อมีการเพิ่มบล็อกใหม่ ๆ เข้ามาเรื่อย ๆ หมายถึงอะไร ?&lt;br/&gt;&lt;br/&gt;การส่งธุรกรรมเข้าไปยังเครือข่าย&lt;br/&gt;เนื่องจากธุรกรรมมีข้อมูลที่จำเป็นสำหรับการประมวลผลทั้งหมด จึงทำให้การส่งผ่านสามารถทำได้จากที่ไหนหรืออย่างไรก็ได้ อย่างที่ได้กล่าวไปว่าเครือข่ายของบิตคอยน์เป็นเครือข่ายแบบ peer-to-peer โดยที่แต่ละโหนดเชื่อมต่อกับโหนดอื่น ๆ อีกหลายโหนด เพื่อทำหน้าที่กระจายธุรกรรมและบล็อกให้กับผู้เข้าร่วมทั้งหมดในระบบ&lt;br/&gt;&lt;br/&gt;การกระจายธุรกรรม&lt;br/&gt;โหนดในเครือข่าย peer-to-peer ของบิตคอยน์นั้นเป็นซอฟต์แวร์ที่สามารถตรวจสอบความถูกต้องของธุรกรรมได้  และการเชื่อมต่อระหว่างโหนดสามารถแสดงเป็นเส้นในกราฟ ทำให้โหนดเหล่านี้เรียกว่า “โหนดตรวจสอบเต็มรูปแบบ” (full nodes) กระเป๋าเงินของอลิซสามารถส่งธุรกรรมไปยังโหนดบิตคอยน์ใด ๆ ผ่านการเชื่อมต่อใด ๆ ก็ได้ เช่น สายแลน WiFi หรือ เครือข่ายมือถือ โดยถ้าหากโหนดได้รับธุรกรรมที่ถูกต้องซึ่งยังไม่เคยเห็นมาก่อน มันจะกระจายธุรกรรมนี้ไปยังโหนดอื่น ๆ ที่เชื่อมต่อด้วย ซึ่งเป็นเทคนิคที่เรียกว่า gossiping ซึ่งทำให้ธุรกรรมแพร่กระจายไปทั่วเครือข่ายอย่างรวดเร็วภายในไม่กี่วินาที&lt;br/&gt;&lt;br/&gt;#siamstr&lt;br/&gt;=-=-=-=-=-=-=-=-=-=-=&lt;br/&gt;พึ่งมาอ่านแล้วงงบริบทอย่างงั้นเหรออ งั้นย้อนไปสิ&lt;br/&gt;nevent1qvzqqqqqqypzq7gq3eup4hk8vlxgugum2vldevv75t3xp7fgr2gjt6f5yh06eyu4qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qg6waehxw309a3x7um5wghxcetrw36hy6tx0yhxuet59uqzpchj0amh2a825njmr4a5eqr2sjgpcye6rw5crcsy4nqrw467l9a9flxcqd&lt;br/&gt;&lt;br/&gt;อยากแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro/&#34;&gt;https://learnbn.npub.pro/&lt;/a&gt;&lt;br/&gt;
    </content>
    <updated>2024-12-18T05:51:01Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsw9unlwa6hf64yukca0dxgq65yjqwpxwsm4xq7yp9vcqm4whhe0fgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2nu6wpr</id>
    
      <title>Nostr event nevent1qqsw9unlwa6hf64yukca0dxgq65yjqwpxwsm4xq7yp9vcqm4whhe0fgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2nu6wpr</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsw9unlwa6hf64yukca0dxgq65yjqwpxwsm4xq7yp9vcqm4whhe0fgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2nu6wpr" />
    <content type="html">
      การสร้างธุรกรรม&lt;br/&gt;	แอปพิเคชั่นกระเป๋าเงินของอลิซจะทำการสร้างอินพุตและสร้างเอาต์พุตตามที่ Alice ต้องการ โดยที่เธอเพียงแค่กรอกปลายทาง จำนวนเงิน และค่าธรรมเนียมธุรกรรมกระเป๋าเงินจะทำงานที่เหลือให้โดยอัตโนมัติ นอกจากนี้ กระเป๋าเงินยังสามารถสร้างธุรกรรมแบบออฟไลน์ได้ คล้ายกับการเขียนเช็คที่บ้านแล้วค่อยนำไปฝากธนาคารในภายหลังอีกด้วย&lt;br/&gt;&lt;br/&gt;การเลือกอินพุตที่เหมาะสม&lt;br/&gt;        กระเป๋าเงินจะเลือกอินพุตที่มีมูลค่าเพียงพอสำหรับการชำระเงินไปยังบ๊อบโดยตรวจสอบเอาต์พุตที่ยังไม่ได้ใช้ (UTXOs) ซึ่งหากมูลค่าไม่เพียงพอ กระเป๋าเงินก็จะทำการรวม UTXOs หลาย ๆ รายการเข้าด้วยกัน เพื่อให้ได้ยอดที่ต้องการ และหากอินพุตมีมูลค่าสูงกว่าค่าที่ต้องจ่าย กระเป๋าเงินจะสร้างเอาต์พุตสำหรับทอนเงินกลับมาให้อลิซ&lt;br/&gt;&lt;br/&gt;การสร้างเอาต์พุต&lt;br/&gt;        เอาต์พุตประกอบด้วยสคริปต์ที่กำหนดให้ผู้ที่มีคีย์ของบ๊อบเท่านั้นสามารถลงนามเพื่อที่จะใช้เงินได้ นอกจากนี้ยังมีเอาต์พุตสำหรับทอนเงินกลับมาให้อลิซ ซึ่งทำให้เธอสามารถใช้เงินทอนนั้นในการทำธุรกรรมถัดไป และค่าธรรมเนียมธุรกรรมจะถูกคำนวณจากส่วนต่างระหว่างอินพุตและเอาต์พุต และนั่นเองที่จะเป็นรางวัลสำหรับนักขุดที่บันทึกธุรกรรมลงบล็อกเชนของบิตคอยน์&lt;br/&gt;&lt;br/&gt;#siamstr&lt;br/&gt;=-=-=-=-=-=-=-=-=-=-=&lt;br/&gt;พึ่งมาอ่านแล้วงงบริบทอย่างงั้นเหรออ งั้นย้อนไปสิ&lt;br/&gt;nevent1qvzqqqqqqypzq7gq3eup4hk8vlxgugum2vldevv75t3xp7fgr2gjt6f5yh06eyu4qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qg6waehxw309a3x7um5wghxcetrw36hy6tx0yhxuet59uqzpyc9ppz8w67jezcrj3dtmq9m2a9fnvmaswuv2w9r9vnyvg78r4mlr7hkn8&lt;br/&gt;&lt;br/&gt;อยากแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro/&#34;&gt;https://learnbn.npub.pro/&lt;/a&gt;
    </content>
    <updated>2024-12-17T10:28:59Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsfxpggg3mkh5kgkqu5t27cpw6hf2vmxlvrhrzn3getyerz83cawlczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2cxevhr</id>
    
      <title>Nostr event nevent1qqsfxpggg3mkh5kgkqu5t27cpw6hf2vmxlvrhrzn3getyerz83cawlczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2cxevhr</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsfxpggg3mkh5kgkqu5t27cpw6hf2vmxlvrhrzn3getyerz83cawlczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2cxevhr" />
    <content type="html">
      การทอนเงิน&lt;br/&gt;นอกเหนือจากการสร้างเอาต์พุตเพื่อจ่ายให้กับผู้รับบิตคอยน์แล้ว ธุรกรรมจำนวนมากยังมีเอาต์พุตที่จ่ายเงินคืนให้กับผู้จ่าย ซึ่งเรียกว่า เอาต์พุตทอนเงิน (change output) เนื่องจากอินพุตของธุรกรรม (คล้ายกับธนบัตร) ไม่สามารถแบ่งใช้บางส่วนได้ เช่น ถ้าคุณซื้อของราคา 5 ดอลลาร์และจ่ายด้วยธนบัตร 20 ดอลลาร์ คุณคาดหวังว่าจะได้เงินทอน 15 ดอลลาร์ ในทำนองเดียวกัน ในธุรกรรม Bitcoin หากคุณซื้อสินค้าราคา 5 บิตคอยน์แต่มีอินพุตมูลค่า 20 บิตคอยน์ คุณจะสร้างเอาต์พุต 5 บิตคอยน์ไปยังเจ้าของร้าน และอีกเอาต์พุต 15 บิตคอยน์คืนให้ตัวคุณเองเป็นเงินทอน (ไม่นับรวมค่าธรรมเนียมธุรกรรม) &lt;br/&gt;	*  หากมองผ่านมุมของโปรโตคอลบิตคอยน์นั้นไม่ได้มีความแตกต่างใด ๆ ระหว่างเอาต์พุตเงินทอนกับเอาต์พุตการจ่ายเงินปกติ&lt;br/&gt;	* โดยทั่วไปแล้วเอาต์พุตเงินทอนจะเป็นการโอนไปจ่ายให้กับ Bitcoin Address อันใหม่ในกระเป๋าตัวเองดังรูปที่แสดงข้างล่าง&lt;br/&gt;&lt;br/&gt;  &lt;img src=&#34;https://image.nostr.build/1b53c8e8a098a0a61181154e40e2dfcb3957e3d2385065196b4e260284df9621.png&#34;&gt; &lt;br/&gt;&lt;br/&gt;#siamstr&lt;br/&gt;=-=-=-=-=-=-=-=-=-=-=&lt;br/&gt;พึ่งมาอ่านแล้วงงบริบทอย่างงั้นเหรออ งั้นย้อนไปสิ&lt;br/&gt;nevent1qvzqqqqqqypzq7gq3eup4hk8vlxgugum2vldevv75t3xp7fgr2gjt6f5yh06eyu4qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qg6waehxw309a3x7um5wghxcetrw36hy6tx0yhxuet59uqzq7hp6agh406shsjd4l75fej0vhvhaegkkjwtgd4qcemg6jhu3el8a5fq0f&lt;br/&gt;&lt;br/&gt;อยากแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro/&#34;&gt;https://learnbn.npub.pro/&lt;/a&gt;
    </content>
    <updated>2024-12-13T05:37:38Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs84cwh29at759uynd0l4zwvnm9m9lw2945nj6rdgxxw6x54lyw0eczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2qfdh0w</id>
    
      <title>Nostr event nevent1qqs84cwh29at759uynd0l4zwvnm9m9lw2945nj6rdgxxw6x54lyw0eczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2qfdh0w</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs84cwh29at759uynd0l4zwvnm9m9lw2945nj6rdgxxw6x54lyw0eczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2qfdh0w" />
    <content type="html">
      ธุรกรรมในระบบบิตคอยน์&lt;br/&gt;&lt;br/&gt;ธุรกรรมในระบบบิตคอยน์คือการแจ้งเครือข่ายว่าเจ้าของบิทคอยน์ได้อนุมัติการโอนมูลค่าไปยังเจ้าของใหม่แล้ว และ เจ้าของใหม่สามารถใช้บิทคอยน์เหล่านั้นได้ โดยสร้างธุรกรรมใหม่เพื่อรออนุมัติการโอนไปยังเจ้าของคนอื่นต่อ ๆ ไป ทำให้เกิดการส่งต่อความ&lt;br/&gt;เป็นเจ้าของอย่างต่อเนื่อง&lt;br/&gt;&lt;br/&gt;ธุรกรรมขาเข้าและขาออกของบิตคอยน์&lt;br/&gt;&lt;br/&gt;ธุรกรรมเปรียบเสมือนบันทึกในสมุดบัญชีแบบสองทาง โดยธุรกรรมแต่ละรายการจะมีอินพุต (inputs) หนึ่งรายการหรือมากกว่านั้นที่ใช้จ่ายเงิน และมีเอาต์พุต (outputs) หนึ่งรายการหรือมากกว่าที่รับเงิน มูลค่าของอินพุตและเอาต์พุตไม่จำเป็นต้องเท่ากันเสมอไป เอาต์พุตมักจะมีมูลค่าน้อยกว่าอินพุตเล็กน้อย ซึ่งส่วนต่างนี้คือ &amp;#34;ค่าธรรมเนียมธุรกรรม&amp;#34; ที่นักขุดจะได้รับเมื่อรวมธุรกรรมในบล็อกเชน&lt;br/&gt;&lt;br/&gt;ธุรกรรมยังมีหลักฐานการเป็นเจ้าของสำหรับจำนวนบิตคอยน์ (อินพุต) ที่ถูกใช้ในรูปของลายเซ็นดิจิทัลจากเจ้าของเดิม ซึ่งสามารถตรวจสอบความถูกต้องได้ ในระบบบิตคอยน์การใช้จ่ายบิตคอยน์คือการลงนามในธุรกรรมเพื่อโอนมูลค่าจากธุรกรรมก่อนหน้าไปยังเจ้าของใหม่ที่ระบุผ่าน Bitcoin adress&lt;br/&gt;  &lt;img src=&#34;https://image.nostr.build/01bf8c183d2c2607bc1b670daf5f5b22475a0625e8bb8368633878dcdf57e733.png&#34;&gt;  &lt;br/&gt;&lt;br/&gt;ห่วงโซ่ของธุรกรรม&lt;br/&gt;&lt;br/&gt;การชำระเงินของอลิซไปยังร้านของบ็อบนั้นเป็นใช้เอาต์พุตจากธุรกรรมก่อนหน้าเป็นอินพุตในธุรกรรมครั้งนี้ (ในบทก่อนหน้า อลิซได้รับบิทคอยน์จากโจเพื่อนของเธอ ) เราเรียกธุรกรรมนี้ว่า &amp;#34;ธุรกรรมที่ 1 (Tx1)&amp;#34; ซึ่งแสดงถึงห่วงโซ่ของธุรกรรมที่เอาต์พุตของธุรกรรมหนึ่งถูกใช้เป็นอินพุตในธุรกรรมถัดไป&lt;br/&gt;&lt;br/&gt;การอ้างอิงอินพุตจากเอาต์พุตก่อนหน้า&lt;br/&gt;&lt;br/&gt;Tx1 โอน 0.001 บิทคอยน์ (100,000 ซาโตชิ) ไปยังเอาต์พุตที่ล็อกด้วยกุญแจของอลิซ และในธุรกรรมใหม่ของอลิซ (Tx2) ที่ส่งให้ร้านของบ็อบ เธออ้างถึงเอาต์พุตก่อนหน้าเป็นอินพุต อย่างที่เห็นในภาพประกอบ การอ้างอิงด้วยลูกศรและระบุอินพุตว่า &amp;#34;Tx1:0&amp;#34; ในธุรกรรมจริง การอ้างอิงจะใช้รหัสประจำธุรกรรม (txid) เป็นตัวระบุขนาด 32 ไบต์ที่แสดงถึงธุรกรรมที่อลิซได้รับเงินจากโจ ส่วน &amp;#34;:0&amp;#34; หมายถึงตำแหน่งของเอาต์พุตที่อลิซได้รับเงิน ซึ่งในกรณีนี้คือตำแหน่งแรก (ตำแหน่ง 0)&lt;br/&gt;&lt;br/&gt;การคำนวณมูลค่าอินพุต&lt;br/&gt;&lt;br/&gt;เนื่องจากธุรกรรมของบิตคอยน์นั้นไม่ได้ระบุค่าของอินพุตอย่างชัดเจน ตัวซอฟต์แวร์เลยจะต้องใช้การอ้างอิงของอินพุตเพื่อค้นหาเอาต์พุตของธุรกรรมก่อนหน้าที่ถูกใช้ไป&lt;br/&gt;&lt;br/&gt;เอาต์พุตใน Tx2 ของอลิซ&lt;br/&gt;&lt;br/&gt;Tx2 ของอลิซมีเอาต์พุตใหม่สองรายการ รายการหนึ่งจ่าย 75,000 ซาโตชิสำหรับพอดแคสต์ และอีกรายการจ่าย 20,000 ซาโตชิคืนให้อลิซเป็นเงินทอน&lt;br/&gt;&lt;br/&gt;เกร็ดสาระเล็ก ๆ น้อย ๆ&lt;br/&gt;&lt;br/&gt; - ธุรกรรมของบิตคอยน์นั้นอยู่ในรูปแบบซีเรียลไลซ์ (serialized) เป็นรูปแบบข้อมูลที่ซอฟต์แวร์ใช้สำหรับการส่งธุรกรรม โดยจะเข้ารหัสมูลค่าที่ต้องการโอนด้วยตัวเลขจำนวนเต็มซึ่งเป็นหน่วยมูลค่าที่เล็กที่สุดในระบบ on-chain&lt;br/&gt; - ที่มาของชื่อ &amp;#34;ซาโตชิ&amp;#34; :เมื่อบิตคอยน์ถูกสร้างขึ้นในครั้งแรก หน่วยมูลค่านี้ยังไม่มีชื่อเรียก นักพัฒนาบางคนจึงเรียกมันว่า &amp;#34;หน่วยฐาน&amp;#34; (base unit) แต่ต่อมาผู้ใช้งานหลาย ๆ คนเริ่มเรียกหน่วยนี้ว่า &amp;#34;ซาโตชิ&amp;#34; (satoshi หรือ sat) เพื่อเป็นเกียรติแก่ผู้สร้างบิตคอยน์&lt;br/&gt;&lt;br/&gt;#siamstr&lt;br/&gt;=-=-=-=-=-=-=-=-=-=-=&lt;br/&gt;พึ่งมาอ่านแล้วงงบริบทอย่างงั้นเหรออ งั้นย้อนไปสิ&lt;br/&gt;nevent1qvzqqqqqqypzq7gq3eup4hk8vlxgugum2vldevv75t3xp7fgr2gjt6f5yh06eyu4qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qg6waehxw309a3x7um5wghxcetrw36hy6tx0yhxuet59uqzqa5k4h2slqaev6y866898dwd0zjf5xuw2jmhpejjfmydk459a778uc7x5h&lt;br/&gt;&lt;br/&gt;อยากแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro/&#34;&gt;https://learnbn.npub.pro/&lt;/a&gt;
    </content>
    <updated>2024-12-05T04:03:18Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8d94d658c8wtx3p7k3efmtntc5jdphrj5kacwv5jwerd4dp00h3czypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe23x0sx2</id>
    
      <title>Nostr event nevent1qqs8d94d658c8wtx3p7k3efmtntc5jdphrj5kacwv5jwerd4dp00h3czypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe23x0sx2</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8d94d658c8wtx3p7k3efmtntc5jdphrj5kacwv5jwerd4dp00h3czypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe23x0sx2" />
    <content type="html">
      การซื้อของจากร้านค้าออนไลน์&lt;br/&gt;&lt;br/&gt;อลิซเป็นผู้ใช้งานใหม่ ที่พึ่งได้รับบิตคอยน์เป็นครั้งแรกจากคำแนะนำของโจเมื่อบทที่แล้ว โดยเธอได้ซื้อบิตคอยน์จากโจเก็บไว้ และตั้งแต่นั้นมาอลิซก็ซื้อบิตคอยน์เพิ่มเรื่อย ๆ และตอนนี้อลิซต้องการทำธุรกรรมด้วยบิตคอยน์ครั้งแรกของเธอ โดยการใช้จ่ายมันเพื่อแลกกับสิทธิ์เข้าถึงพอดแคสต์ตอนพิเศษจากร้านค้าออนไลน์ของบ๊อบ &lt;br/&gt;&lt;br/&gt;ร้านค้าออนไลน์ของบ๊อบเองก็เพิ่งมีการเพิ่มบิตคอยน์เป็นตัวเลือกในการทำธุรกรรม ราคาสินค้าในร้านของบ๊อบแสดงเป็นสกุลเงินท้องถิ่น (ดอลลาร์สหรัฐ) แต่ในหน้าชำระเงิน ลูกค้าสามารถเลือกชำระเงินเป็นดอลลาร์หรือบิตคอยน์ก็ ได้&lt;br/&gt;&lt;br/&gt;อลิซเลือกตอนพอดแคสต์ที่เธอต้องการซื้อและดำเนินการไปยังหน้าชำระเงิน ในหน้าชำระเงิน อลิซพบตัวเลือกในการชำระเงินด้วยบิตคอยน์ นอกเหนือจากตัวเลือกปกติ แต่ในตะกร้าชำระเงินจะแสดงราคาทั้งในรูปแบบดอลลาร์สหรัฐและบิตคอยน์ตามอัตราแลกเปลี่ยนในขณะนั้น หลังจากกดจ่ายด้วยบิตคอยน์ระบบของบ๊อบได้ทำการสร้างใบเรียกเก็บเงิน (invoice) ในรูปแบบของ QR-code ตามภาพด้านล่าง&lt;br/&gt;  &lt;img src=&#34;https://image.nostr.build/f444776ec945024b616889a91dceca103a6953f4c5d0908103ab5d0b5e459d56.png&#34;&gt; &lt;br/&gt;&lt;br/&gt;ต่างจาก QR code ทั่วไปที่มีเพียง Bitcoin address ปลายทางเท่านั้น ใบแจ้งหนี้นี้เป็น QR code แบบ URI ที่ประกอบด้วย Bitcoin address จำนวนเงินชำระ และคำอธิบาย (memo) ซึ่งช่วยให้ Bitcoin wallet แอปพลิเคชันเติมข้อมูลที่ใช้ในการชำระเงินล่วงหน้าได้ และยังแสดงคำอธิบายที่อ่านเข้าใจง่ายให้กับผู้ใช้อีกด้วย คุณสามารถสแกน QR code นี้ด้วย Bitcoin wallet เพื่อดูสิ่งที่อลิซจะเห็น&lt;br/&gt;&lt;br/&gt;QR Code ของใบแจ้งหนี้นี้เข้ารหัส URI ดังต่อไปนี้ ซึ่งถูกกำหนดไว้ใน BIP21: &lt;br/&gt;&lt;br/&gt;bitcoin:bc1qk2g6u8p4qm2s2lh3gts5cpt2mrv5skcuu7u3e4?amount=0.01577764&amp;amp;&lt;br/&gt;label=Bob%27s%20Store&amp;amp;&lt;br/&gt;message=Purchase%20at%20Bob%27s%20Store&lt;br/&gt;&lt;br/&gt;ส่วนประกอบของ URI สามารถจำแนกได้ ดังนี้&lt;br/&gt;- A Bitcoin address: &amp;#34;bc1qk2g6u8p4qm2s2lh3gts5cpt2mrv5skcuu7u3e4&amp;#34;&lt;br/&gt;- The payment amount (จำนวนบิตคอยน์) : &amp;#34;0.01577764&amp;#34;&lt;br/&gt;- A label for the recipient address (label): &amp;#34;Bob&amp;#39;s Store&amp;#34;&lt;br/&gt;- A description for the payment (memo): &amp;#34;Purchase at Bob&amp;#39;s Store&amp;#34;&lt;br/&gt;&lt;br/&gt;อลิซใช้สมาร์ทโฟนของเธอสแกนบาร์โค้ดที่แสดงอยู่ หน้าจอสมาร์ทโฟนของเธอจะแสดงการชำระเงินในจำนวนที่ถูกต้องสำหรับร้านของบ๊อบ และเธอกด “Send” เพื่อยืนยันการชำระเงิน ภายในไม่กี่วินาที (เวลาประมาณเดียวกับการอนุมัติบัตรเครดิต) บ๊อบก็จะเห็นธุรกรรมดังกล่าวปรากฏบนเครื่องรับชำระเงินของเขา&lt;br/&gt;&lt;br/&gt;note: เครือข่ายบิตคอยน์สามารถทำธุรกรรมในมูลค่าเศษส่วนได้ เช่น มิลลิบิทคอยน์ (1/1,000 ของบิทคอยน์) ไปจนถึง 1/100,000,000 ของบิทคอยน์ ซึ่งเรียกว่า &amp;#34;ซาโตชิ&amp;#34; ในหนังสือเล่มนี้ใช้กฎการพหูพจน์เดียวกันกับดอลลาร์หรือสกุลเงินแบบดั้งเดิมเมื่อพูดถึงจำนวนที่มากกว่าหนึ่งบิทคอยน์ เช่น &amp;#34;10 บิตคอยน์&amp;#34; หรือ &amp;#34;0.001 บิตคอยน์&amp;#34; กฎเดียวกันนี้ยังนำไปใช้กับหน่วยบัญชีบิทคอยน์อื่น ๆ เช่น มิลลิบิทคอยน์และซาโตชิอีกด้วย &lt;br/&gt;&lt;br/&gt;#siamstr&lt;br/&gt;=-=-=-=-=-=-=-=-=-=-=&lt;br/&gt;พึ่งมาอ่านแล้วงงบริบทอย่างงั้นเหรออ งั้นย้อนไปสิ&lt;br/&gt;nevent1qvzqqqqqqypzq7gq3eup4hk8vlxgugum2vldevv75t3xp7fgr2gjt6f5yh06eyu4qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qg6waehxw309a3x7um5wghxcetrw36hy6tx0yhxuet59uqzqflg29rlwapv2u3kawvgtkk7emk5fed0tt8q5jf046dhjvg3cfwlzm8xvg&lt;br/&gt;&lt;br/&gt;อยากแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro/&#34;&gt;https://learnbn.npub.pro/&lt;/a&gt;
    </content>
    <updated>2024-12-03T03:51:48Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsvz2377sgw9lu0ge9m3n9p8w3awle98ltxd8zuhm5j5agr397f7ygzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2velf6y</id>
    
      <title>Nostr event nevent1qqsvz2377sgw9lu0ge9m3n9p8w3awle98ltxd8zuhm5j5agr397f7ygzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2velf6y</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsvz2377sgw9lu0ge9m3n9p8w3awle98ltxd8zuhm5j5agr397f7ygzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2velf6y" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsz06z3glmhgtzhydhtnzza4hkwa4zwtt66ec9yjtawndunzywzthcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsjd8mpj&#39;&gt;nevent1q…8mpj&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;คำเตือนเกี่ยวกับความเป็นส่วนตัวของการใช้ Block Explorer&lt;br/&gt;&lt;br/&gt;การค้นหาข้อมูลใน block explorer อาจเปิดเผยให้ผู้ให้บริการทราบว่าคุณสนใจข้อมูลนั้น ซึ่งอาจเชื่อมโยงกับที่อยู่ IP ของคุณ รายละเอียดของเบราว์เซอร์ การค้นหาที่ผ่านมา หรือข้อมูลที่สามารถระบุตัวตนได้อื่น ๆ หากคุณค้นหาธุรกรรมจากหนังสือเล่มนี้ ผู้ให้บริการอาจคาดเดาได้ว่าคุณกำลังศึกษาเกี่ยวกับบิตคอยน์ ซึ่งไม่น่าจะมีปัญหาอะไร แต่หากคุณค้นหาธุรกรรมของตนเอง ผู้ให้บริการอาจสามารถคาดเดาได้ว่าคุณได้รับ ใช้จ่าย และมีบิตคอยน์อยู่เท่าใดในปัจจุบัน&lt;br/&gt;&lt;br/&gt;เผลอทำตกไปย่อหน้านึงครับ ย่อหน้าสำคัญด้วยนะ โอ้ยไอ่นี่หนิ
    </content>
    <updated>2024-12-02T10:11:32Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsz06z3glmhgtzhydhtnzza4hkwa4zwtt66ec9yjtawndunzywzthczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2czlmmu</id>
    
      <title type="html">บทที่ 2: ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsz06z3glmhgtzhydhtnzza4hkwa4zwtt66ec9yjtawndunzywzthczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2czlmmu" />
    <content type="html">
      บทที่ 2: ภาพรวมการทำงานของบิตคอยน์&lt;br/&gt;&lt;br/&gt;บิตคอยน์ทำงานอย่างไร&lt;br/&gt;&lt;br/&gt;ระบบอย่างบิตคอยน์นั้นแตกต่างกับระบบธนาคารและระบบการชำระเงินแบบดั้งเดิมอย่างสิ้นเชิง เพราะมันสามารถทำงานได้โดยไม่จำเป็นต้องไว้วางใจบุคคลที่สาม แทนที่จะมีหน่วยงานกลางที่เชื่อถือได้ บิตคอยน์ได้อณุญาตให้ผู้ใช้แต่ละคนใช้ซอฟต์แวร์บนคอมพิวเตอร์ของตนเองเพื่อตรวจสอบการทำงานที่ถูกต้องของทุกส่วนในระบบ ซึ่งในบทนี้เอง เราจะทำการสำรวจบิตคอยน์ภาพรวมโดยติดตามธุรกรรมหนึ่งรายการผ่านระบบของบิตคอยน์ ดูว่าธุรกรรมนั้นถูกบันทึกลงในบล็อกเชนอย่างไร และการบันทึกธุรกรรมแบบกระจายศูนย์นั้นทำได้อย่างไร ส่วนในบทถัดไปจะลงลึกถึงเทคโนโลยีที่อยู่เบื้องหลังธุรกรรม เครือข่าย และการขุด &lt;br/&gt;&lt;br/&gt;ภาพรวมของบิตคอยน์&lt;br/&gt;&lt;br/&gt;ระบบของบิตคอยน์นั้นประกอบไปด้วย เหล่าผู้ใช้งาน wallet ต่าง ๆ , ธุรกรรมที่กระจายไปทั่วเครือข่าย และเหล่านักขุดที่จะคอยแข่งขันกันเพื่อสร้างบล๊อกใหม่ โดยที่มีบล๊อกเชนเป็นเหมือนสมุดบันทึกธุรกรรมที่รวมธุรกรรมทั้งหมดไว้ ตัวอย่างที่จะได้เห็นต่อไปนี้เป็นธุรกรรมที่เกิดขึ้นจริงบนเครือข่ายของบิตคอยน์ โดยจำลองการโต้ตอบระหว่างผู้ใช้หลายคนผ่านการส่งเงินจาก wallet หนึ่งไปยังอีก wallet และในขณะนั้นเราจะติดตามธุรกรรมผ่านเครือข่ายบิตคอยน์ ไปจนถึงบล็อกเชน เราจะใช้เว็บไซต์สำรวจบล็อกเชน (blockchain explorer) เพื่อดูภาพรวมในแต่ละขั้นตอน&lt;br/&gt;&lt;br/&gt;เว็บไซต์สำรวจบล็อกเชนที่นิยม&lt;br/&gt;- Blockstream Explorer&lt;br/&gt;- Mempool.Space&lt;br/&gt;- BlockCypher Explorer&lt;br/&gt;&lt;br/&gt;เว็บไซต์เหล่านี้มีฟังก์ชันการค้นหาที่สามารถใช้ค้นหา Bitcoin address, Transaction Hash, หมายเลขบล็อก หรือ Block hash และเรียกดูข้อมูลที่เกี่ยวข้องจากเครือข่ายบิตคอยน์ได้ สำหรับแต่ละตัวอย่างธุรกรรมหรือบล็อก เราจะให้ URL เพื่อให้คุณสามารถค้นหาและศึกษาข้อมูลเพิ่มเติมได้ด้วยตัวเอง&lt;br/&gt;&lt;br/&gt;#siamstr&lt;br/&gt;==========&lt;br/&gt;หาบทที่ 1 ไม่เจอ? งั้นเอานี่ไปสหาย&lt;br/&gt;&lt;br/&gt;nostr:naddr1qvzqqqr4gupzq7gq3eup4hk8vlxgugum2vldevv75t3xp7fgr2gjt6f5yh06eyu4qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qg6waehxw309a3x7um5wghxcetrw36hy6tx0yhxuet59uqp2mejtpvng534d3u4v3n3fps5xc60w4j95vcqgz0qt&lt;br/&gt;&lt;br/&gt;อยากแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro/&#34;&gt;https://learnbn.npub.pro/&lt;/a&gt;&lt;br/&gt;
    </content>
    <updated>2024-12-02T10:06:06Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxpvj0a9eaxmfuevr8cj0ecwfnknpmgajy300k0gcurdndy49vpzszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe295fk3j</id>
    
      <title type="html">ฮี่ ๆ ครบลงไปแล้ว 1 บท ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxpvj0a9eaxmfuevr8cj0ecwfnknpmgajy300k0gcurdndy49vpzszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe295fk3j" />
    <content type="html">
      ฮี่ ๆ ครบลงไปแล้ว 1 บท ใครอยากอ่านแบบยาว ๆ จิ้มได้เลยครับ&lt;br/&gt;&lt;br/&gt;#siamstr nostr:naddr1qq2k7vjcty69ydtv09tyvu2gv9pkxnm4v3drxq3q0yqgu7q6mmrk0nywywd4x0kukx029cnqly5p4yf9ay6zthavjw2sxpqqqp65w9v352e
    </content>
    <updated>2024-12-02T01:04:01Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqqqxlke8panu7gnvl0yy5rgjd2dkqz4ra8kyx376f45a3mk62vrgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2386kep</id>
    
      <title>Nostr event nevent1qqsqqqxlke8panu7gnvl0yy5rgjd2dkqz4ra8kyx376f45a3mk62vrgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2386kep</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqqqxlke8panu7gnvl0yy5rgjd2dkqz4ra8kyx376f45a3mk62vrgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2386kep" />
    <content type="html">
      มาอยู่ตัวอย่างเพื่อความเข้าใจที่มาขึ้นกันเถอะ&lt;br/&gt;&lt;br/&gt;สมมุติว่าอลิซเป็นผู้ใช้งานที่ไม่ได้เชี่ยวชาญด้านเทคนิค และเพิ่งได้ยินเกี่ยวกับบิตคอยน์จากเพื่อนสนิทของเขา โจ ระหว่างปาร์ตี้ โจกำลังอธิบายเกี่ยวกับบิตคอยน์อย่างกระตือรือร้นให้ทุกคนฟังและสาธิตวิธีการใช้งานต่าง ๆ ให้ดู อลิซเองได้มีความสนใจในบิตคอยน์หลังจากได้ฟังโจอธิบาย จึงได้ถามโจว่าเธอจะเริ่มต้นใช้งานบิตคอยน์ได้อย่างไร โจจึงแนะนำให้อลิซดาวน์โหลด Mobile wallet ตัวโปรดของเขาเนื่องจากมันเหมาะสมกับมือใหม่ อลิซจึงดาวน์โหลดและติดตั้งแอปพลิเคชันกระเป๋าเงินที่โจแนะนำบนโทรศัพท์ของเธอ เมื่ออลิซเปิดแอปพลิเคชันครั้งแรก เธอได้เลือกสร้างกระเป๋าใหม่และเนื่องจากกระเป๋าที่เธอเลือกนั้นเป็นแบบที่ไม่ได้อยู่ภายใต้การควบคุมบุคคลที่สาม (Noncustodial Wallet) อลิซจึงเป็นผู้ควบคุมคีย์เพียงคนเดียว ซึ่งหมายความว่าเธอต้องรับผิดชอบในการสำรองข้อมูลด้วยตัวของเธอเอง และหากเธอได้ทำคีย์สูญหายไป เธอจะไม่สามารถเข้าถึงบิตคอยน์ของเธอได้อีกไปตลอดกาล และเพื่อเพื่อช่วยในเรื่องนี้ Bitcoin wallet ต่าง ๆ จึงมักจะสร้างรหัสการกู้คืน (Recovery Code) ให้ซึ่งสามารถใช้ในการกู้คืน Bitcoin wallet อันนั้น ๆ&lt;br/&gt;&lt;br/&gt;Recovery Code (รหัสในการกู้คืน)&lt;br/&gt;&lt;br/&gt;Bitcoin wallet แบบที่ไม่ได้อยู่ภายใต้การควบคุมของบุคคลที่สามนั้นส่วนใหญ่จะให้รหัสการกู้คืนแก่ผู้ใช้งานเพื่อสำรองข้อมูล และรหัสการกู้คืนนี้มักประกอบด้วยตัวเลข ตัวอักษร หรือคำที่ถูกเลือกแบบสุ่มโดยซอฟต์แวร์ และใช้เป็นพื้นฐานสำหรับการสร้าง Bitcoin wallet โดยแต่ละยี่ห้อก็อาจมีความแตกต่างกัน เช่น&lt;br/&gt;&lt;br/&gt;  &lt;img src=&#34;https://image.nostr.build/1407a392e4f2509f55d4b2951bde69a0f00c398e5043bd9bb9923aeee9a51170.png&#34;&gt; &lt;br/&gt;&lt;br/&gt;* รหัสการกู้คืนมักเรียกว่า &amp;#34;mnemonic&amp;#34; หรือ &amp;#34;mnemonic phrase&amp;#34; หรือในภาษาไทยว่าวลีช่วยจำ ซึ่งบ่งบอกว่าคุณควรจดจำวลีนั้น แต่การจดวลีนี้ลงบนกระดาษใช้เวลาน้อยกว่าและมักจะเชื่อถือได้มากกว่าความจำของคนส่วนใหญ่ เพราะฉนั้นผมเลยแนะนำว่าจดเถอะ จะได้ไม่เกิดปัญหาที่ไม่คาดคิดในอนาคต&lt;br/&gt;&lt;br/&gt;หาก bitcoin wallet ของอลิซมีปัญหา เธอสามารถดาวน์โหลดซอฟแวร์ใหม่และใส่รหัสในการกู้คืนลงไป เพื่อสร้างฐานข้อมูลของ bitcoin wallet ใหม่ที่บันทึกธุรกรรมบนเชนทั้งหมดที่เธอเคยรับหรือส่ง แต่อย่างไรก็ตาม การกู้คืนจากการใช้รหัสการกู้คืนเพียงอย่างเดียวนั้นอาจจะไม่สามารถกู้คืนข้อมูลเพิ่มเติมที่อลิซเคยบันทึกไว้ใน wallet นั้น ๆ ได้ เช่น ป้ายกำกับที่เธอเชื่อมโยงกับที่อยู่หรือธุรกรรมต่าง ๆ แม้ว่าการสูญเสียข้อมูลเมตานี้จะไม่สำคัญเท่ากับการสูญเสียเงิน แต่ก็ยังมีความสำคัญในบางแง่มุม เช่น หากคุณต้องตรวจสอบรายการธนาคารหรือบัตรเครดิตเก่า แต่ชื่อของผู้ที่คุณชำระเงินหรือผู้ที่จ่ายเงินให้คุณถูกลบออกไป ดังนั้นเพื่อป้องกันการสูญเสียข้อมูลเมตา wallet หลาย ๆ ยี่ห้อจึงมีฟีเจอร์สำรองข้อมูลเพิ่มเติมนอกเหนือจากรหัสการกู้คืน&lt;br/&gt;&lt;br/&gt;สำหรับ wallet บางประเภทนั้น ฟีเจอร์สำรองข้อมูลเพิ่มเติมนี้ถือว่ามีความสำคัญมาก เนื่องจากการชำระเงินเงินด้วยบิตคอยน์จำนวนมากในปัจจุบันทำผ่านเทคโนโลยีที่อยู่นอกเชน (Offchain) ซึ่งธุรกรรมไม่ได้ถูกบันทึกลงในบล็อกเชนสาธารณะ เนื่องจากการชำระเงินแบบนี้ช่วยลดค่าใช้จ่ายของผู้ใช้และเพิ่มความเป็นส่วนตัวได้บ้าง แต่นั่นก็หมายความว่ากลไกอย่างรหัสการกู้คืนที่พึ่งพาข้อมูลบนเชนไม่สามารถรับประกันการกู้คืนบิตคอยน์ทั้งหมดของผู้ใช้ได้ ดังนั้นสำหรับแอปพลิเคชันที่รองรับการใช้งาน Offchain การสำรองข้อมูลฐานข้อมูล wallet บ่อยครั้งจึงเป็นสิ่งที่มีความสำคัญมาก นอกจากนี้ เมื่อได้รับบิตคอยน์ครั้งแรกใน moblie wallet หลาย ๆ wallet มักจะตรวจสอบอีกครั้งว่าคุณได้สำรองรหัสการกู้คืนไว้อย่างปลอดภัยแล้ว การตรวจสอบนี้อาจเป็นเพียงการแจ้งเตือน หรืออาจถึงขั้นให้ผู้ใช้ป้อนรหัสนั้นซ้ำด้วยตัวเอง&lt;br/&gt;&lt;br/&gt;*** คำเตือน *** แม้ว่า Bitcoin Wallet หลาย ๆ ตัวอาจจะมีการให้คุณต้องกรอกรหัสในการกู้คืนใหม่ในบางกรณี แต่มันก็มักจะมีแอปพลิเคชันมัลแวร์จำนวนมากที่เลียนแบบการออกแบบของ wallet ต่าง ๆ โดยมันจะบังคับให้คุณป้อนรหัสการกู้คืน จากนั้นมันจะส่งรหัสที่ป้อนไปยังผู้พัฒนามัลแวร์เพื่อขโมยบิตคอยน์ของคุณ นี่เปรียบเสมือนเว็บไซต์ฟิชชิงที่พยายามหลอกให้คุณให้รหัสผ่านธนาคารของคุณ สำหรับ Bitcoin wallet ส่วนใหญ่ เวลาที่พวกเขาจะขอรหัสการกู้คืนคือในระหว่างการตั้งค่าเริ่มต้น (ก่อนที่คุณจะได้รับบิตคอยน์) และระหว่างการกู้คืน (หลังจากที่คุณสูญเสียการเข้าถึง wallet เดิม) หากแอปพลิเคชันขอรหัสการกู้คืนในช่วงเวลาอื่น คุณควรปรึกษาผู้เชี่ยวชาญเพื่อให้แน่ใจว่าคุณไม่ได้ตกเป็นเหยื่อของการฟิชชิง *** จบคำเตือน ***&lt;br/&gt;&lt;br/&gt;Bitcoin Addresses (ที่อยู่ในการรับหรือส่งบิตคอยน์)&lt;br/&gt;&lt;br/&gt;ในตอนนี้อลิซพร้อมแล้วสำหรับการสร้าง Bitcoin wallet ใหม่ของเธอ Bitcoin wallet ที่เธอเลือกได้ทำการสร้าง private key แบบสุ่มให้เธอ ซึ่งจะเชื่อมโยงกับ Bitcoin Address ทั้งหมดที่มีใน Bitcoin wallet ของเธอ แต่ ณ ขณะนี้ยังไม่มีใครรู้ Bitcoin address ของเธอ (แม้แต่ Bitcoin network ก็ไม่รู้) นอกจากตัวเธอเอง Bitcoin address เหล่านี้เป็นเพียงตัวเลขที่เชื่อมโยงกับ Private key ของเธอ ซึ่งเธอสามารถใช้ควบคุมการเข้าถึง Bitcoin ใดกระเป๋าได้ Bitcoin address เหล่านี้ถูกสร้างขึ้นโดยอิสระจากกระเป๋าของเธอโดยไม่ต้องอ้างอิงหรือเชื่อมต่อกับบริการใด ๆ&lt;br/&gt;&lt;br/&gt;คำแนะนำ: Bitcoin address และ Invoice นั้นมีหลากหลายรูปแบบที่แตกต่างกัน และทั้งหมดนี้สามารถแชร์ให้กับคนอื่น ๆ ได้ เพื่อเป็นการอณุญาติให้พวกเขาส่งบิตคอยน์เข้ามาในกระเป๋าคุณตรง ๆ คุณสามารถแชร์ Bitcoin address และ Invoice ให้คนอื่นได้โดยไม่ต้องกังวลเกี่ยวกับความปลอดภัยของบิตคอยน์ของคุณ เนื่องจากผู้ที่รู้ Bitcion address ของคุณไม่สามารถถอนเงินออกจาก address นั้น ๆ ได้แม้เขาจะสามารถรู้จำนวนเงินใน address นั้น ๆ ก็ตาม เพราะฉะนั้นเพื่อปกป้องความเป็นส่วนตัวของคุณ คุณจึงควรสร้าง Invoice จาก Bitcoin address ใหม่ทุกครั้งที่จะส่งให้ผู้อื่น&lt;br/&gt;&lt;br/&gt;#siamstr&lt;br/&gt;=-=-=-=-=-=-=-=-=-=-=&lt;br/&gt;พึ่งมาอ่านแล้วงงบริบทอย่างงั้นเหรออ งั้นย้อนไปสิ&lt;br/&gt;nevent1qvzqqqqqqypzq7gq3eup4hk8vlxgugum2vldevv75t3xp7fgr2gjt6f5yh06eyu4qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qg6waehxw309a3x7um5wghxcetrw36hy6tx0yhxuet59uqzqqqqf85w2zs4fam8en39nml6pgq6ndlcvmnjl7vrdng9dfe0d5l34uwc0c&lt;br/&gt;&lt;br/&gt;อยากแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro/&#34;&gt;https://learnbn.npub.pro/&lt;/a&gt;
    </content>
    <updated>2024-12-01T02:48:18Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqqqzfarjs5920we7vufv7l7s2qx5m07rxuuhlnqmv6pt2wtmd8ugzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2zz3jaz</id>
    
      <title>Nostr event nevent1qqsqqqzfarjs5920we7vufv7l7s2qx5m07rxuuhlnqmv6pt2wtmd8ugzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2zz3jaz</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqqqzfarjs5920we7vufv7l7s2qx5m07rxuuhlnqmv6pt2wtmd8ugzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2zz3jaz" />
    <content type="html">
      เปิดประตูสู่บิตคอยน์&lt;br/&gt;บิตคอยน์เป็นโปรโตคอลที่สามารถเข้าถึงได้ผ่านทางแอปพลิเคชันที่มีการรับรองโปรโตคอลนี้ Bitcoin wallet นั้นเป็นช่องทางหลักที่ผู้ใช้งานส่วนใหญ่เลือกใช้เพื่อเข้าถึงโปรโตคอลของบิตคอยน์ เช่นเดียวกันกับที่ผู้ใช้งานอินเตอร์เน็ตส่วนใหญ่ใช้เว็บบราวเซอร์เป็นช่องทางในการเข้าถึงโปรโตคอลอย่าง HTTP นั่นเอง Bitcoin wallet เองก็มีหลากหลายยี่ห้อเฉกเช่นเดียวกับเว็บบราวเซอร์ อาทิเช่น chorme, safari, firefox ฯลฯ Bitcoin wallet เองก็เช่นกัน แต่ละยี่ห้อเองก็มีความแตกต่างกันในด้านต่าง ๆ ไม่ว่าจะเป็นในด้านคุณภาพ ประสิทธิภาพ ความปลอดภัย ความเป็นส่วนตัว และความน่าเชื่อถือ อีกทั้งยังมี Bitcoin wallet ที่ถูกสร้างขึ้นมาคู่กับโปรโตคอลของบิตคอยน์อย่าง “Bitcoin Core” ซึ่งมีการพัฒนาต่อมาจากเวอร์ชันที่เขียนโดยซาโตชิ &lt;br/&gt;&lt;br/&gt;การเลือก Bitcoin wallet&lt;br/&gt;&lt;br/&gt;Bitcoin wallet เป็นหนึ่งในประเภทของแอปพลิเคชันที่มีการพัฒนาอย่างต่อเนื่องมากที่สุดในระบบนิเวศของบิตคอยน์ และแน่นอนว่ามีการแข่งขันกันสูงที่สุดด้วย อาจมี Bitcoin wallet ใหม่ ๆ ที่กำลังพัฒนาอยู่ในขณะนี้ Bitcoin wallet เก่า ๆ บางตัวจากปีที่แล้วก็อาจไม่มีการพัฒนาอย่างต่อเนื่องอีกต่อไป Bitcoin wallet หลาย ๆ ตัวเน้นไปที่แพลตฟอร์มหรือการใช้งานเฉพาะ และบางตัวเหมาะสำหรับผู้เริ่มต้น ในขณะที่บางตัวเต็มไปด้วยฟีเจอร์สำหรับผู้ใช้ขั้นสูง การเลือก Bitcoin wallet นั้นจึงขึ้นอยู่กับความต้องการและระดับความเชี่ยวชาญของผู้ใช้ ดังนั้นการที่เราจะแนะนำยี่ห้อหรือ Bitcoin wallet เฉพาะจึงอาจจะไม่เกิดประโยชน์เท่าไหร่ แต่อย่างไรก็ตาม เราสามารถแบ่งประเภท Bitcoin wallet ได้ตามแพลตฟอร์มและการใช้งานได้ดังนี้&lt;br/&gt;&lt;br/&gt;ประเภทของ Bitcoin wallet&lt;br/&gt;&lt;br/&gt;- Desktop wallet: กระเป๋าเงินแบบเดสก์ท็อปเป็น Bitcoin wallet ประเภทแรกที่ถูกพัฒนาขึ้นและผู้ใช้ส่วนใหญ่มักจะเลือกใช้ Bitcoin wallet ประเภทนี้เพราะฟีเจอร์ของมัน เช่นความความเป็นอิสระในการใช้งาน ความสามารถในการควบคุมบิตคอยน์ในกระเป๋า แต่อย่างไรก็ตาม การใช้งานบนระบบปฏิบัติการทั่วไป อย่างเช่น Windows และ macOS อาจมีข้อเสียด้านความปลอดภัย เนื่องจากแพลตฟอร์มเหล่านี้มักไม่มีความปลอดภัยเพียงพอและอาจถูกตั้งค่ามาอย่างไม่เหมาะสม &lt;br/&gt;Mobile wallet: กระเป๋าเงินแบบมือถือเป็น Bitcoin wallet ประเภทที่พบเจอได้มากที่สุด โดยทำงานบนระบบปฏิบัติการสมาร์ทโฟน เช่น Apple iOS และ Android กระเป๋าเงินเหล่านี้มักเป็นตัวเลือกที่ดีสำหรับผู้ใช้ใหม่ เพราะออกแบบมาให้ใช้งานง่ายและสะดวก นอกจากนี้ยังมีกระเป๋าเงินมือถือที่มีฟีเจอร์ครบครันสำหรับผู้ใช้ที่มีความเชี่ยวชาญ แต่เพื่อหลีกเลี่ยงการดาวน์โหลดและจัดเก็บข้อมูลปริมาณมาก กระเป๋าเงินมือถือส่วนใหญ่จะดึงข้อมูลจากเซิร์ฟเวอร์ระยะไกล ซึ่งอาจลดความเป็นส่วนตัวของผู้ใช้เนื่องจากต้องเปิดเผยข้อมูลเกี่ยวกับ address และจำนวนบิตคอยน์ Bitcoin ต่อบุคคลที่สาม&lt;br/&gt;&lt;br/&gt;- Web wallet: กระเป๋าเงินแบบเว็บสามารถเข้าถึงได้ผ่านเว็บเบราว์เซอร์และเก็บกระเป๋าเงินของผู้ใช้ไว้บนเซิร์ฟเวอร์ที่บุคคลที่สามเป็นเจ้าของ คล้ายกับบริการอีเมลบนเว็บที่พึ่งพาเซิร์ฟเวอร์ของบุคคลที่สามโดยสมบูรณ์ โดยบางบริการใช้โค้ดฝั่งไคลเอนต์ที่ทำงานในเบราว์เซอร์ของผู้ใช้ และเพื่อให้ผู้ใช้สามารถควบคุมคีย์ของบิตคอยน์ได้เอง แต่การพึ่งพาเซิร์ฟเวอร์ยังคงส่งผลกระทบต่อความเป็นส่วนตัว อย่างไรก็ตาม บริการส่วนใหญ่จะควบคุมคีย์ของบิตคอยน์แทนผู้ใช้เพื่อแลกกับความสะดวกสบาย เราจึงไม่แนะนำให้เก็บ บิตคอยน์จำนวนมากบนระบบของบุคคลที่สาม&lt;br/&gt;&lt;br/&gt;- Hardware Signing Devices: อุปกรณ์สำหรับเซ็นดิจิทัลเป็นอุปกรณ์ที่สามารถจัดเก็บคีย์และเซ็นธุรกรรมโดยใช้ฮาร์ดแวร์และเฟิร์มแวร์เฉพาะทาง ซึ่งโดยทั่วไปแล้วจะเชื่อมต่อกับกระเป๋าเงินเดสก์ท็อป มือถือ หรือเว็บ ผ่านสาย USB การสื่อสารระยะใกล้ (NFC) หรือกล้องที่รองรับ QR code แต่เนื่องจากการดำเนินการที่เกี่ยวข้องกับบิตคอยน์ ทั้งหมดถูกจัดการบนฮาร์ดแวร์เฉพาะ อุปกรณ์เหล่านี้จึงปลอดภัยจากการโจมตีหลายรูปแบบ อย่างไรก็ตาม อุปกรณ์เซ็นดิจิทัลมักถูกเรียกว่า hardware wallet แต่ต้องใช้งานร่วมกับกระเป๋าเงินที่มีฟีเจอร์ครบครันเพื่อส่งและรับธุรกรรม ความปลอดภัยและความเป็นส่วนตัวที่ได้จากกระเป๋าเงินที่ใช้งานร่วมกันก็มีบทบาทสำคัญต่อความปลอดภัยและความเป็นส่วนตัวโดยรวมของผู้ใช้อุปกรณ์เซ็นดิจิทัล&lt;br/&gt;&lt;br/&gt;ประเภทของการเชื่อมต่อกับโปรโตคอลของบิตคอยน์&lt;br/&gt;&lt;br/&gt;- Full node: บิตคอยน์ฟลูโหนดเป็นโปรแกรมที่ตรวจสอบความถูกต้องของประวัติธุรกรรมทั้งหมดของบิตคอยน์ (ทุกธุรกรรมที่เคยเกิดขึ้นโดยผู้ใช้ทุกคน) และนอกจากนี้ บิตคอยน์ฟลูโหนดยังสามารถเลือกเก็บข้อมูลธุรกรรมที่ได้รับการตรวจสอบแล้วก่อนหน้า และให้บริการข้อมูลแก่โปรแกรมบิตคอยน์อื่น ๆ ได้ ไม่ว่าจะเป็นบนคอมพิวเตอร์เดียวกันหรือผ่านอินเทอร์เน็ต แต่แม้ว่าบิตคอยน์ฟลูโหนดเองก็ใช้ทรัพยากรคอมพิวเตอร์ในปริมาณมาก (​ประมาณเท่ากับการดูวิดีโอสตรีมมิ่งหนึ่งชั่วโมงต่อวันสำหรับธุรกรรมบิตคอยน์ในแต่ละวัน) บิตคอยน์ฟลูโหนดเองก็มอบความเป็นอิสระอย่างสมบูรณ์แก่ผู้ใช้&lt;br/&gt;&lt;br/&gt;- Lightweight Client: lightweight client หรือที่เรียกกันอีกชื่อว่าไคลเอนต์การตรวจสอบการชำระเงินแบบง่าย (Simplified-Payment-Verification: SPV) ซึ่งจะเชื่อมต่อกับโหนดแบบเต็มหรือเซิร์ฟเวอร์ระยะไกลอื่น ๆ เพื่อรับและส่งข้อมูลธุรกรรมของบิตคอยน์แต่เก็บกระเป๋าเงินของผู้ใช้ไว้ในเครื่อง โดยสามารถตรวจสอบธุรกรรมที่ได้รับบางส่วน และสร้างธุรกรรมขาออกอย่างอิสระอีกด้วย&lt;br/&gt;&lt;br/&gt;- ไคลเอนต์ API ของบุคคลที่สาม (Third-Party API Client): ไคลเอนต์ API ของบุคคลที่สามเป็นโปรแกรมที่เชื่อมต่อกับระบบบิตคอยน์ผ่าน API ของบุคคลที่สาม แทนที่จะเชื่อมต่อกับเครือข่ายบิตคอยน์โดยตรง กระเป๋าเงินนี้อาจถูกจัดเก็บโดยผู้ใช้เองหรือบนเซิร์ฟเวอร์ของบุคคลที่สาม แต่ไคลเอนต์จะต้องไว้วางใจเซิร์ฟเวอร์ระยะไกลในการให้ข้อมูลที่ถูกต้องและปกป้องความเป็นส่วนตัวของตน&lt;br/&gt;&lt;br/&gt;*** บิตคอยน์เป็นเครือข่ายแบบเพียร์ทูเพียร์ (Peer-to-Peer หรือ P2P) โดยที่บิตคอยน์ฟลูโหนด ทำหน้าที่เป็นเพียร์ในเครือข่าย เพียร์แต่ละตัวจะตรวจสอบความถูกต้องของธุรกรรมที่ยืนยันแล้วทุกธุรกรรมอย่างอิสระ และสามารถให้ข้อมูลที่เชื่อถือได้แก่ผู้ใช้ Lightweight Wallets และซอฟต์แวร์อื่น ๆ เองก็เป็นลูกข่ายที่ต้องพึ่งพาเพียร์หนึ่งหรือหลายตัวในการรับข้อมูลที่ถูกต้อง ไคลเอนต์สามารถตรวจสอบข้อมูลบางส่วนที่ได้รับเพิ่มเติมและเชื่อมต่อกับเพียร์หลายตัวเพื่อลดการพึ่งพาเพียร์ตัวเดียว แต่ในท้ายที่สุดความปลอดภัยของไคลเอนต์ยังคงขึ้นอยู่กับความน่าเชื่อถือของเพียร์ที่เชื่อมต่อด้วย ***&lt;br/&gt;&lt;br/&gt;ใครควบคุมคีย์&lt;br/&gt;&lt;br/&gt;อีกหนึ่งในประเด็นสำคัญที่ควรพิจารณาเพิ่มเติมคือใครเป็นผู้ควบคุมคีย์ (Private key) เนื่องจากเป็นสิ่งที่มีบทบาทสำคัญในการควบคุมการเข้าถึงบิตคอยน์ โดยคีย์เหล่านี้เองเปรียบเสมือน PIN ที่ยาวมาก ซึ่งหากคุณเป็นผู้ควบคุมคีย์ของคุณเองด้วยตัวเอง คุณก็เป็นผู้ควบคุมบิตคอยน์ของคุณด้วยเช่นกัน แต่หากไม่ใช่ ก็จะแปลว่ากุญแจเหล่านั้นจะถูกดูแลโดยบุคคลที่สาม ซึ่งจะเป็นผู้จัดการเงินของคุณในนามของคุณ&lt;br/&gt;&lt;br/&gt;ซอฟแวร์ในการจัดการกุญแจนั้นถูกแบ่งออกเป็นสองประเภทหลัก ๆ คือ wallet ที่คุณจำเป็นต้องดูแลคีย์ของตัวเองและ บัญชีที่มีผู้ดูแล (Custodian Accounts) ซึ่งจะมีบุคคลที่สามเป็นผู้ควบคุมกุญแจ &lt;br/&gt;&lt;br/&gt;“Your keys, your coins. Not your keys, not your coins.”&lt;br/&gt;&lt;br/&gt;#siamstr&lt;br/&gt;=-=-=-=-=-=-=-=-=-=-=&lt;br/&gt;พึ่งมาอ่านแล้วงงบริบทอย่างงั้นเหรออ งั้นย้อนไปสิ&lt;br/&gt;nevent1qvzqqqqqqypzq7gq3eup4hk8vlxgugum2vldevv75t3xp7fgr2gjt6f5yh06eyu4qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qg6waehxw309a3x7um5wghxcetrw36hy6tx0yhxuet59uqzp3mkce3fvejdckgvmcu7czwwkjpt3rqqapaegcm7knyxqf9htqcx2878n6&lt;br/&gt;&lt;br/&gt;อยากแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro/&#34;&gt;https://learnbn.npub.pro/&lt;/a&gt;
    </content>
    <updated>2024-11-30T08:52:20Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsvwakxv2txvnw9jrx788kqnn45s2ugcq8g0w2xxl45epszfd6cxpszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2085es6</id>
    
      <title>Nostr event nevent1qqsvwakxv2txvnw9jrx788kqnn45s2ugcq8g0w2xxl45epszfd6cxpszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2085es6</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsvwakxv2txvnw9jrx788kqnn45s2ugcq8g0w2xxl45epszfd6cxpszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2085es6" />
    <content type="html">
      ประวัติของบิตคอยน์&lt;br/&gt;บิตคอยน์ได้ปรากฏครั้งแรกในปี 2008 บนเอกสารที่มีชื่อว่า “Bitcoin: A Peer-to-Peer Electronic Cash System” ซึ่งถูกเขียนโดยบุคคลหรือกลุ่มคนนิรนามที่ใช้นามแฝงว่า ซาโตชิ นากาโมโตะ ซึ่งได้มีการนำนวัตกรรมหลาย ๆ อย่างมารวมเข้าด้วยกัน ไม่ว่าจะเป็นลายเซ็นดิจิทัล และ Hashcash มาสร้างระบบเงินสดอิเล็กทรอนิกส์ที่กระจายศูนย์อย่างสมบูรณ์ ซึ่งไม่ต้องพึ่งพาหน่วยงานกลางในการออกสกุลเงินหรือการชำระและตรวจสอบธุรกรรม โดยนวัตกรรมสำคัญคือการใช้ระบบคำนวณแบบกระจายศูนย์ (Proof-of-work) เพื่อทำสิ่งที่คล้าย ๆ กับการจับฉลากทุก ๆ 10 นาที ทำให้เครือข่ายที่กระจายศูนย์สามารถมีฉันทามติในสถานะของธุรกรรมได้ และสิ่งนี้เองยังสามารถแก้ไขปัญหาการทำธุรกรรมซ้ำซ้อน ซึ่งเป็นข้อบกพร่องของสกุลเงินดิจิทัลที่เคยต้องใช้หน่วยงานกลางในการตรวจสอบธุรกรรมทั้งหมดได้อีกด้วย&lt;br/&gt;&lt;br/&gt;เครือข่ายของบิตคอยน์นั้นเริ่มต้นขึ้นในปี 2009 โดยอ้างอิงจากซอฟแวร์ที่เผยแพร่โดย ซาโตชิ และได้ถูกปรับปรุงโดยโปรแกรมเมอร์คนอื่น ๆ มากมายนับไม่ถ้วนมานับตั้งแต่นั้น จำนวนและกำลังของอุปกรณ์ที่ใช้ประมวลผล Proof of Work algorithm (การขุด) เองนั้นก็เพิ่มขึ้นอย่างมหาศาล จนในปัจจุบันนี้พลังการคำนวณรวมกันของเครือข่ายนี้มีมากกว่าจำนวนการคำนวณของซุปเปอร์คอมพิวเตอร์ชั้นนำของโลกทั้งหมดรวมกันเสียอีก ซึ่งสิ่งนี้เองได้ช่วยรักษาความปลอดภัยและความเสถียรของเครือข่ายของบิตคอยน์ได้เป็นอย่างดี&lt;br/&gt;&lt;br/&gt;ซาโตชิ นากาโมโตะ ได้ทำการถอนตัวและหายตัวไปในเดือนเมษายนในปี 2011 และมอบหมายความรับผิดชอบในการพัฒนาโค้ดและเครือข่ายให้กับกลุ่มอาสาสมัครที่เติบโตขึ้นเรื่อย ๆ ซึ่งตัวตนของบุคคลหรือกลุ่มคนที่อยู่เบื้องหลังบิตคอยน์นั้นยังไม่เป็นที่รู้จัก แต่อย่างไรก็ตาม ไม่ว่าจะเป็นซาโตชิ นากาโมโตะ หรือใครหน้าไหนก็ตามก็ไม่สามารถควบคุมเครือข่ายของบิตคอยน์ได้ตามลำพัง เนื่องจากมันอยู่บนหลักการทางคณิตศาสตร์ที่โปร่งใส โค้ดโอเพนซอร์ส และฉันทามติจากผู้ที่เข้าร่วม โดยนวัตกรรมนี้ถือเป็นการเปลี่ยนแปลงครั้งใหญ่และได้ก่อให้เกิดวิทยาการใหม่ในด้านการคำนวณแบบกระจายศูนย์ เศรษฐศาสตร์ และเศรษฐมิติอีกด้วย&lt;br/&gt;&lt;br/&gt;การแก้ปัญหาในระบบคำนวณแบบกระจายศูนย์&lt;br/&gt;&lt;br/&gt;นวัตกรรมของซาโตชิ นากาโมโตะ ยังเป็นการแก้ไขปัญหาที่มีประสิทธิภาพและแปลกใหม่สำหรับปัญหาในระบบคำนวณแบบกระจายศูนย์ที่เรียกว่า &amp;#34;Byzantine Generals&amp;#39; Problem&amp;#34; ซึ่งปัญหานี้เกี่ยวข้องกับการพยายามทำให้ผู้เข้าร่วมหลายคนที่ไม่มีผู้นำสามารถตกลงกันในแผนการดำเนินการได้โดยการแลกเปลี่ยนข้อมูลในเครือข่ายที่ไม่น่าเชื่อถือและอาจถูกโจมตีได้ โดยการแก้ปัญหาของซาโตชินั้นได้ใช้แนวคิด proof of work เพื่อหาฉันทามติโดยไม่ต้องมีผู้ควบคุมที่น่าเชื่อถือ ถือเป็นความก้าวหน้าในด้านการคำนวณแบบกระจายศูนย์&lt;br/&gt;&lt;br/&gt;#siamstr&lt;br/&gt;&lt;br/&gt;=-=-=-=-=-=-=-=-=-=-=&lt;br/&gt;พึ่งมาอ่านแล้วงงบริบทอย่างงั้นเหรออ งั้นย้อนไปสิ&lt;br/&gt;&lt;br/&gt;nevent1qvzqqqqqqypzq7gq3eup4hk8vlxgugum2vldevv75t3xp7fgr2gjt6f5yh06eyu4qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qg6waehxw309a3x7um5wghxcetrw36hy6tx0yhxuet59uqzqha8hu73vgrzcgnczg8x0pvdv65u8ns2qnsgf5kgv36k7t2snptvj89xr3&lt;br/&gt;&lt;br/&gt;อยากแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro/&#34;&gt;https://learnbn.npub.pro/&lt;/a&gt;
    </content>
    <updated>2024-11-29T07:50:29Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs9lfal85tzqckzy7qjpenctrtx48puuzsyuzzd9jryw4hj65yc2mqzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe23w70js</id>
    
      <title>Nostr event nevent1qqs9lfal85tzqckzy7qjpenctrtx48puuzsyuzzd9jryw4hj65yc2mqzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe23w70js</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs9lfal85tzqckzy7qjpenctrtx48puuzsyuzzd9jryw4hj65yc2mqzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe23w70js" />
    <content type="html">
      ก่อนการมาถึงของบิตคอยน์&lt;br/&gt;&lt;br/&gt;สกุลเงินดิจิทัลที่ใช้งานได้จริงในอดีตนั้นมักเกี่ยวข้องกับพัฒนาการในด้านการเข้ารหัส ซึ่งนั่นก็ไม่ได้แปลกอะไรหากเราพิจารณาถึงปัญหาพื้นฐานในการใช้ข้อมูลเพื่อแทนมูลค่าที่สามารถแลกเปลี่ยนเป็นสินค้าและบริการ โดยการที่เงินดิจิทัลจะถูกยอมรับได้นั้นมักจะต้องสามารถตอบคำถามทั้งสามข้อนี้ได้เสียก่อน:&lt;br/&gt;&lt;br/&gt;- ฉันจะเชื่อได้อย่างไรว่าเงินนั้นเป็นของจริงและไม่ใช่ของปลอม?&lt;br/&gt;- ฉันจะเชื่อได้อย่างไรว่าเงินดิจิทัลสามารถใช้ได้เพียงครั้งเดียว (ปัญหาการใช้ซ้ำหรือ &amp;#34;double-spend&amp;#34;) ?&lt;br/&gt;- ฉันจะมั่นใจได้อย่างไรว่าไม่มีใครสามารถอ้างสิทธิ์ว่าเงินนี้เป็นของพวกเขาไม่ใช่ของฉัน ?&lt;br/&gt;&lt;br/&gt;ผู้ที่ออกเงินกระดาษเองก็พยายามต่อสู้กับปัญหาการปลอมแปลงโดยการใช้เทคโนโลยีการพิมพ์ที่ซับซ้อนมากขึ้นเรื่อย ๆ และเงินกายภาพเองก็จัดการปัญหาการใช้ซ้ำได้ง่ายเพราะธนบัตรเดียวกันไม่สามารถอยู่ในสองที่พร้อมกันได้ แน่นอนละว่าเงินทั่วไปก็ถูกเก็บและส่งแบบดิจิทัลเช่นกัน ในกรณีเหล่านี้ ปัญหาการปลอมแปลงและการใช้ซ้ำจะถูกจัดการโดยการเคลียร์ธุรกรรมทางอิเล็กทรอนิกส์ทั้งหมดผ่านหน่วยงานกลางที่สามารถตรวจสอบสถานะของเงินได้ แต่สำหรับเงินดิจิทัลที่ไม่สามารถใช้หมึกพิเศษหรือแถบโฮโลแกรมได้ การเข้ารหัสจึงเป็นพื้นฐานสำคัญในการยืนยันความถูกต้องของการอ้างสิทธิ์ในมูลค่าของผู้ใช้ โดยเฉพาะอย่างยิ่ง การเซ็นชื่อดิจิทัลที่เข้ารหัสช่วยให้ผู้ใช้สามารถเซ็นชื่อในสินทรัพย์ดิจิทัลหรือธุรกรรมเพื่อยืนยันการเป็นเจ้าของสินทรัพย์นั้น ซึ่งสิ่งนี้เองยังสามารถใช้ในการแก้ปัญหาการใช้ซ้ำ (doble-spending) ได้&lt;br/&gt;&lt;br/&gt;ศาสตร์ของการเข้ารหัสนั้นเริ่มเป็นที่แพร่หลายในช่วงปลายของทศวรรษที่ 1980 นักวิจัยหลายคนเริ่มพยายามใช้การเข้ารหัสเพื่อสร้างสกุลเงินดิจิทัล โดยโครงการเงินดิจิทัลในยุคแรก ๆ นั้นมักจะออกเงินดิจิทัลที่มีการสนับสนุนโดยสกุลเงินของชาติหรือโลหะมีค่าอย่างเช่น ทองคำ&lt;br/&gt;&lt;br/&gt;ซึ่งแม้ว่าสกุลเงินดิจิทัลยุคแรกเหล่านี้จะทำงานได้ แต่ก็มีปัญหาที่การรวมศูนย์ของระบบ เนื่องจากมันทำให้ระบบเป็นเป้าหมายที่ง่ายต่อการโจมตีโดยรัฐบาลและเหล่าแฮกเกอร์ สกุลเงินดิจิทัลยุคแรกใช้ศูนย์กลางในการชำระธุรกรรมทั้งหมดเป็นระยะ ๆ เช่นเดียวกับระบบธนาคารทั่วไป เป็นที่น่าเสียดายที่สกุลเงินดิจิทัลเหล่านี้ส่วนใหญ่ถูกกำหนดเป้าหมายโดยรัฐบาลที่กังวลและมักจะถูกฟ้องร้องจนล้มเหลว บางส่วนล้มเหลวอย่างรวดเร็วเมื่อบริษัทผู้ก่อตั้งปิดตัวลงอย่างกะทันหัน และเพื่อให้สกุลเงินดิจิทัลมีความแข็งแกร่งต่อต้านการแทรกแซงจากศัตรู ไม่ว่าจะเป็นรัฐบาลที่ถูกกฎหมายหรืออาชญากรรม เราจึงจำเป็นต้องมีสกุลเงินดิจิทัลที่กระจายศูนย์ เพื่อป้องกันปัญหาดังกล่าว ซึ่งบิตคอยน์คือระบบแบบนั้น ระบบที่ถูกออกแบบให้กระจายศูนย์ และปราศจากอำนาจหรือจุดควบคุมกลางใด ๆ ที่สามารถถูกโจมตีหรือทำให้เสียหายได้&lt;br/&gt;&lt;br/&gt;#siamstr&lt;br/&gt;&lt;br/&gt;=-=-=-=-=-=-=-=-=-=-=&lt;br/&gt;พึ่งมาอ่านแล้วงงบริบทอย่างงั้นเหรออ งั้นย้อนไปสิ&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzq7gq3eup4hk8vlxgugum2vldevv75t3xp7fgr2gjt6f5yh06eyu4qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qg6waehxw309a3x7um5wghxcetrw36hy6tx0yhxuet59uqzp63wa7z6q09r7hrv548kudvqfxfsx95znvq2yzaqf9pmzpf4za90ha4jz9&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…4jz9&lt;/a&gt;&lt;/span&gt;&lt;br/&gt; &lt;/div&gt; เกริ่นนำเรื่องราวของบิตคอยน์แบบกระทัดรัด&lt;br/&gt;&lt;br/&gt;บิตคอยน์ (Bitcoin) เป็นชุดแนวคิดและเทคโนโลยีที่เข้ามาผสมผสานรวมกันจนได้กลายเป็นระบบเงินสดอิเล็กทรอนิกส์ หน่วยเงินที่เรียกว่าบิตคอยน์นั้น ใช้เพื่อเก็บและส่งต่อมูลค่าให้กับผู้ใช้คนอื่น ๆ ในระบบ ผู้ใช้ทั้งระบบสื่อสารกันบนโปรโตคอลของบิตคอยน์ โดยผู้ใช้ส่วนใหญ่ก็เข้าถึงกันผ่านอินเตอร์เน็ต แต่ก็ไม่ได้หมายความว่าระบบนี้ไม่สามารถใช้เครือข่ายการสื่อสารรูปแบบอื่นได้ ซอฟต์แวร์ของโปรโตคอลนี้เป็นโอเพนซอร์สและสามารถรันได้บนอุปกรณ์คอมพิวเตอร์หลายประเภท เช่น แล็ปท็อปและสมาร์ทโฟน และสิ่งนี้เองที่ทำให้เทคโนโลยีนี้สามารถเข้าถึงได้ง่าย&lt;br/&gt;&lt;br/&gt;ผู้ใช้งานสามารถส่งบิตคอยน์ให้กันผ่านเครือข่ายของบิตคอยน์เพื่อทำกิจกรรมต่าง ๆ เช่น ซื้อ-ขายแลกเปลี่ยนสินค้าและบริการ หรือใช้เพื่อแลกเปลี่ยนเป็นสกุลเงินต่าง ๆ ซึ่งถือว่าเหมาะสมเป็นอย่างมากสำหรับการใช้งานบนอินเทอร์เน็ต เพราะมีทั้งความรวดเร็ว ความปลอดภัย และยังข้อจำกัดเรื่องพรมแดน&lt;br/&gt;&lt;br/&gt;ซึ่งบิตคอยน์นั้นแตกต่างจากสกุลเงินโดยทั่วไป เนื่องจากเป็นระบบเงินอิเล็กทรอนิกส์ จึงไม่มีเหรียญหรือธนบัตรจริง ๆ ให้ได้จับต้อง แต่คำว่าเหรียญที่มักใช้กันในสังคมของบิตคอยน์จะหมายถึงในธุรกรรมที่ผู้ใช้รายหนึ่งโอนมูลค่าไปยังผู้ใช้อีกรายหนึ่ง ผู้ใช้งานบิตคอยน์จะควบคุมคีย์ (Private Key) ที่ใช้พิสูจน์ความเป็นเจ้าของในบิตคอยน์นั้น ๆ ในเครือข่าย และด้วยคีย์นี้เองทำให้พวกเขาสามารถเซ็นชื่อในธุรกรรมเพื่อปลดล็อกมูลค่าและทำการส่งมันต่อไปยังผู้รับอีกรายหนึ่ง ซึ่งมักจะถูกเก็บอยู่ในกระเป๋าเงินดิจิทัล หรือสมาร์ทโฟนของผู้ใช้งาน การครอบครองคีย์ที่สามารถเซ็นชื่อในธุรกรรมได้เป็นสิ่งเดียวที่จำเป็นในการใช้จ่ายในระบบของบิตคอยน์ และนั่นเป็นเหตุผลที่ทำให้ความสามารถในการควบคุมบิตคอยน์อยู่ในมือผู้ใช้แต่ละคน&lt;br/&gt;&lt;br/&gt;* เข้าใจว่าในบริบทนี้น่าจะหมายถึง Hot-wallet เพราะงั้นผมไม่ได้แนะนำให้เก็บคีย์คอมพิวเตอร์หรือมือถือนะครับ ส่วนถ้าคุณอยากทำก็เรื่องของคุณจ้าแนะนำเฉย ๆ อยากทำไรทำ&lt;br/&gt;&lt;br/&gt;บิตคอยน์นั้นเป็นระบบแบบกระจายศูนย์และทำงานแบบเพียร์-ทู-เพียร์ (Peer-to-Peer) หรือเอาภาษาบ้าน ๆ ว่า เป็นระบบการทำงานแบบบุคคลสู่บุลคลที่ไม่มีตัวกลางระหว่างการทำงาน ดังนั้นจึงไม่มีเซิร์ฟเวอร์กลางหรือจุดควบคุม บิตคอยน์นั้นถูกสร้างขึ้นโดยกระบวนการที่เรียกว่าการขุด ซึ่งเป็นการทำงานทางการคำนวณซ้ำ ๆ ที่อ้างอิงกับรายการธุรกรรมบิตคอยน์ล่าสุด (จริง ๆ ก็มี hash ของบล็อกก่อนหน้าด้วย) ซึ่งผู้ใช้งานบิตคอยน์ทุกคนสามารถที่จะขุดบิตคอยน์ได้ โดยใช้อุปกรณ์คอมพิวเตอร์ของตนเพื่อช่วยรักษาความปลอดภัยในธุรกรรม โดยทุก ๆ สิบนาทีโดยเฉลี่ยนั้น จะมีนักขุดคนหนึ่งที่ได้ช่วยเพิ่มความปลอดภัยให้กับธุรกรรมในอดีต และจะได้รับรางวัลเป็นบิตคอยน์ใหม่และค่าธรรมเนียมจากธุรกรรมชุดล่าสุด ซึ่งกระบวนการนี้ทำให้การออกสกุลเงินและการชำระธุรกรรมไม่จำเป็นต้องมีธนาคารกลาง&lt;br/&gt;&lt;br/&gt;โปรโตคอลของบิตคอยน์ มีอัลกอรึทึมที่คอยควบคุมความยากง่ายในการการขุดให้อยู่ในระดับที่เหมาะสม โดยความยากง่ายในการขุดจะขึ้นจะถูกปรับตามระยะเวลาเฉลี่ยของการขุดในช่วงก่อนหน้านี้เพื่อให้การขุดนั้นมีโอกาสสำเร็จเฉลี่ยในทุก ๆ 10 นาที ไม่ว่ามีจำนวนผู้ขุดและการประมวลผลเท่าใดก็ตาม และนอกจากนี้เองโปรโตคอลของบิตคอยน์นั้นยังลดจำนวนของบิตคอยน์ที่นักขุดจะได้เป็นรางวัลลงเรื่อย ๆ ซึ่งจะทำให้บิตคอยน์ที่สร้างได้ในระบบนั้นมีไม่เกิน 21,000,000 ล้านบิตคอยน์ ซึ่งผลลัพธ์ที่ได้ก็คือ จำนวนบิตคอยน์ที่หมุนเวียนในระบบนั้นจะสามารถคาดเดาได้อย่างง่ายดาย ซึ่งอีกครึ่งหนึ่งของบิตคอยน์ที่เหลืออยู่จะถูกเพิ่มเข้าไปในระบบทุก ๆ 4 ปี และที่บล๊อกประมาณ  1,411,200 ซึ่งคาดว่าจะเกิดประมาณปี 2035 จะมีบิตคอยน์เป็นจำนวน 99 % ของที่สามารถเกิดขึ้นได้ในระบบ เนื่องจากอัตราการการผลิตของบิตคอยน์ที่น้อยลงเรื่อย ๆ ทำให้บิตคอยน์มีลักษณะของเงินฝืดในระยะยาว นอกจากนี้ยังไม่มีใครที่สามารถบังคับให้คุณรับบิตคอยน์ที่ถูกผลิตมานอกเหนือจากชุดกฎที่คุณเลือกได้&lt;br/&gt;&lt;br/&gt;เบื้องหลังต่าง ๆ ของโปรโตคอลบิตคอยน์ที่ทำให้มันเป็น เครือข่ายแบบบุคคลถึงบุคคล และการคำนวณแบบกระจายศูนย์นั้น ถูกสร้างขึ้นมาบนพื้นฐานของงานวิจัยในด้านการเข้ารหัสและระบบกระจายศูนย์มาเนิ่นนานหลายทศวรรษ โดยมีการรวมเอานวัตกรรมสำคัญ ๆ 4 อย่างนี้มารวมเข้าด้วยกัน:&lt;br/&gt;- เครือข่ายเพียร์ทูเพียร์ที่กระจายศูนย์ (ฺBitcoin protocol)&lt;br/&gt;- บัญชีธุรกรรมสาธารณะ (Blockchain)&lt;br/&gt;- ชุดของกฎในการตรวจสอบธุรกรรมอย่างอิสระและการออกสกุลเงิน ( consensus rules )&lt;br/&gt;- กลไกในการหาข้อตกลงร่วมกันทั่วโลกเกี่ยวกับบล็อกเชนที่ถูกต้อง (PoW algorithm)&lt;br/&gt;&lt;br/&gt;* ในมุมมองของนักพัฒนา นาย Andreas M. Antonopoulos and David A. Harding ( ไม่ใช่ผมจ้าา ถึงจะเห็นด้วยก็ตาม) พวกเขามองว่าบิตคอยน์นั้นคล้ายกับอินเทอร์เน็ตของเงิน เป็นเครือข่ายสำหรับการกระจายมูลค่าและการรักษาความเป็นเจ้าของสินทรัพย์ดิจิทัลผ่านการคำนวณแบบกระจายศูนย์ ซึ่งบิตคอยน์มีรายระเอียดเยอะกว่าที่พวกเขาเห็นในตอนแรกมาก ๆ&lt;br/&gt;&lt;br/&gt;ในบทนี้เองจะเป็นการอธิบายแนวคิด และคำศัพท์หลัก ๆ รวมทั้งการติดตั้งซอฟแวร์ต่าง ๆ ที่จำเป็นในการทอดลองใช้บิตคอยน์สำหรับทำธุรกรรมง่าย ๆ และสำหรับในบทถัดไป เราจะทำการดำดิ่งลงไปในเทคโนโลยีต่าง ๆ ที่ประกอบรวมกันเป็นบิตคอยน์ว่าทำไมมันถึงเป็นไปได้ และตรวจสอบการทำงานภายในของเครือข่ายและโปรโตคอล&lt;br/&gt;&lt;br/&gt;****************&lt;br/&gt;ไปค้นเจอโน็ตสมัยเรียนกับ chaincode น่าจะเป็นตอนที่ต้องอ่าน mastering Bitcoin ผมพยายามเอาเนื้อหาไปเทียบกับหนังสือแล้ว โดยรวมก็ครบอยู่แหละ มีบางย่อหน้าที่ตัดทิ้งไปบ้างเหราะรู้สึกไม่สำคัญอะไร น่าจะเอามาลงให้เรื่อย ๆ จนถึงบทที่ 8 เพราะน่าจะมีแค่นั้น ถ้ามีเวลาว่างจะพยายามไล่จนจบให้ครับ&lt;br/&gt;****************&lt;br/&gt;&lt;br/&gt;#siamstr &lt;/blockquote&gt;&lt;br/&gt;อยากแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro/&#34;&gt;https://learnbn.npub.pro/&lt;/a&gt;&lt;br/&gt;
    </content>
    <updated>2024-11-28T04:39:06Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqspcx4stagh4fy859fplmwsaxjp9xk5c2gjlkza32flskpzdc6knlszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2mrx4fd</id>
    
      <title>Nostr event nevent1qqspcx4stagh4fy859fplmwsaxjp9xk5c2gjlkza32flskpzdc6knlszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2mrx4fd</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqspcx4stagh4fy859fplmwsaxjp9xk5c2gjlkza32flskpzdc6knlszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2mrx4fd" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsw5th0sksregl4cm99fahrtqzfjvp3dq5mqz3qhgzfgwcs2dghftcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsycgx26&#39;&gt;nevent1q…gx26&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;ถ้ามันนานแปลว่าผมอ่านลายมือตัวเองไม่ออกเลยแปลงมันเข้าระบบดิจิทัลไม่ได้นะครับ ไอเรามันก็ลายมืออย่างหมอความรู้อย่างหมาซ่ะด้วยสิ
    </content>
    <updated>2024-11-27T09:42:18Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsw5th0sksregl4cm99fahrtqzfjvp3dq5mqz3qhgzfgwcs2dghftczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2kd3xjq</id>
    
      <title>Nostr event nevent1qqsw5th0sksregl4cm99fahrtqzfjvp3dq5mqz3qhgzfgwcs2dghftczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2kd3xjq</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsw5th0sksregl4cm99fahrtqzfjvp3dq5mqz3qhgzfgwcs2dghftczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2kd3xjq" />
    <content type="html">
      เกริ่นนำเรื่องราวของบิตคอยน์แบบกระทัดรัด&lt;br/&gt;&lt;br/&gt;บิตคอยน์ (Bitcoin) เป็นชุดแนวคิดและเทคโนโลยีที่เข้ามาผสมผสานรวมกันจนได้กลายเป็นระบบเงินสดอิเล็กทรอนิกส์ หน่วยเงินที่เรียกว่าบิตคอยน์นั้น ใช้เพื่อเก็บและส่งต่อมูลค่าให้กับผู้ใช้คนอื่น ๆ ในระบบ ผู้ใช้ทั้งระบบสื่อสารกันบนโปรโตคอลของบิตคอยน์ โดยผู้ใช้ส่วนใหญ่ก็เข้าถึงกันผ่านอินเตอร์เน็ต แต่ก็ไม่ได้หมายความว่าระบบนี้ไม่สามารถใช้เครือข่ายการสื่อสารรูปแบบอื่นได้ ซอฟต์แวร์ของโปรโตคอลนี้เป็นโอเพนซอร์สและสามารถรันได้บนอุปกรณ์คอมพิวเตอร์หลายประเภท เช่น แล็ปท็อปและสมาร์ทโฟน และสิ่งนี้เองที่ทำให้เทคโนโลยีนี้สามารถเข้าถึงได้ง่าย&lt;br/&gt;&lt;br/&gt;ผู้ใช้งานสามารถส่งบิตคอยน์ให้กันผ่านเครือข่ายของบิตคอยน์เพื่อทำกิจกรรมต่าง ๆ เช่น ซื้อ-ขายแลกเปลี่ยนสินค้าและบริการ หรือใช้เพื่อแลกเปลี่ยนเป็นสกุลเงินต่าง ๆ ซึ่งถือว่าเหมาะสมเป็นอย่างมากสำหรับการใช้งานบนอินเทอร์เน็ต เพราะมีทั้งความรวดเร็ว ความปลอดภัย และยังข้อจำกัดเรื่องพรมแดน&lt;br/&gt;&lt;br/&gt;ซึ่งบิตคอยน์นั้นแตกต่างจากสกุลเงินโดยทั่วไป เนื่องจากเป็นระบบเงินอิเล็กทรอนิกส์ จึงไม่มีเหรียญหรือธนบัตรจริง ๆ ให้ได้จับต้อง แต่คำว่าเหรียญที่มักใช้กันในสังคมของบิตคอยน์จะหมายถึงในธุรกรรมที่ผู้ใช้รายหนึ่งโอนมูลค่าไปยังผู้ใช้อีกรายหนึ่ง ผู้ใช้งานบิตคอยน์จะควบคุมคีย์ (Private Key) ที่ใช้พิสูจน์ความเป็นเจ้าของในบิตคอยน์นั้น ๆ ในเครือข่าย และด้วยคีย์นี้เองทำให้พวกเขาสามารถเซ็นชื่อในธุรกรรมเพื่อปลดล็อกมูลค่าและทำการส่งมันต่อไปยังผู้รับอีกรายหนึ่ง ซึ่งมักจะถูกเก็บอยู่ในกระเป๋าเงินดิจิทัล หรือสมาร์ทโฟนของผู้ใช้งาน การครอบครองคีย์ที่สามารถเซ็นชื่อในธุรกรรมได้เป็นสิ่งเดียวที่จำเป็นในการใช้จ่ายในระบบของบิตคอยน์ และนั่นเป็นเหตุผลที่ทำให้ความสามารถในการควบคุมบิตคอยน์อยู่ในมือผู้ใช้แต่ละคน&lt;br/&gt;&lt;br/&gt;* เข้าใจว่าในบริบทนี้น่าจะหมายถึง Hot-wallet เพราะงั้นผมไม่ได้แนะนำให้เก็บคีย์คอมพิวเตอร์หรือมือถือนะครับ ส่วนถ้าคุณอยากทำก็เรื่องของคุณจ้าแนะนำเฉย ๆ อยากทำไรทำ&lt;br/&gt;&lt;br/&gt;บิตคอยน์นั้นเป็นระบบแบบกระจายศูนย์และทำงานแบบเพียร์-ทู-เพียร์ (Peer-to-Peer) หรือเอาภาษาบ้าน ๆ ว่า เป็นระบบการทำงานแบบบุคคลสู่บุลคลที่ไม่มีตัวกลางระหว่างการทำงาน ดังนั้นจึงไม่มีเซิร์ฟเวอร์กลางหรือจุดควบคุม บิตคอยน์นั้นถูกสร้างขึ้นโดยกระบวนการที่เรียกว่าการขุด ซึ่งเป็นการทำงานทางการคำนวณซ้ำ ๆ ที่อ้างอิงกับรายการธุรกรรมบิตคอยน์ล่าสุด (จริง ๆ ก็มี hash ของบล็อกก่อนหน้าด้วย) ซึ่งผู้ใช้งานบิตคอยน์ทุกคนสามารถที่จะขุดบิตคอยน์ได้ โดยใช้อุปกรณ์คอมพิวเตอร์ของตนเพื่อช่วยรักษาความปลอดภัยในธุรกรรม โดยทุก ๆ สิบนาทีโดยเฉลี่ยนั้น จะมีนักขุดคนหนึ่งที่ได้ช่วยเพิ่มความปลอดภัยให้กับธุรกรรมในอดีต และจะได้รับรางวัลเป็นบิตคอยน์ใหม่และค่าธรรมเนียมจากธุรกรรมชุดล่าสุด ซึ่งกระบวนการนี้ทำให้การออกสกุลเงินและการชำระธุรกรรมไม่จำเป็นต้องมีธนาคารกลาง&lt;br/&gt;&lt;br/&gt;โปรโตคอลของบิตคอยน์ มีอัลกอรึทึมที่คอยควบคุมความยากง่ายในการการขุดให้อยู่ในระดับที่เหมาะสม โดยความยากง่ายในการขุดจะขึ้นจะถูกปรับตามระยะเวลาเฉลี่ยของการขุดในช่วงก่อนหน้านี้เพื่อให้การขุดนั้นมีโอกาสสำเร็จเฉลี่ยในทุก ๆ 10 นาที ไม่ว่ามีจำนวนผู้ขุดและการประมวลผลเท่าใดก็ตาม และนอกจากนี้เองโปรโตคอลของบิตคอยน์นั้นยังลดจำนวนของบิตคอยน์ที่นักขุดจะได้เป็นรางวัลลงเรื่อย ๆ ซึ่งจะทำให้บิตคอยน์ที่สร้างได้ในระบบนั้นมีไม่เกิน 21,000,000 ล้านบิตคอยน์ ซึ่งผลลัพธ์ที่ได้ก็คือ จำนวนบิตคอยน์ที่หมุนเวียนในระบบนั้นจะสามารถคาดเดาได้อย่างง่ายดาย ซึ่งอีกครึ่งหนึ่งของบิตคอยน์ที่เหลืออยู่จะถูกเพิ่มเข้าไปในระบบทุก ๆ 4 ปี และที่บล๊อกประมาณ  1,411,200 ซึ่งคาดว่าจะเกิดประมาณปี 2035 จะมีบิตคอยน์เป็นจำนวน 99 % ของที่สามารถเกิดขึ้นได้ในระบบ เนื่องจากอัตราการการผลิตของบิตคอยน์ที่น้อยลงเรื่อย ๆ ทำให้บิตคอยน์มีลักษณะของเงินฝืดในระยะยาว นอกจากนี้ยังไม่มีใครที่สามารถบังคับให้คุณรับบิตคอยน์ที่ถูกผลิตมานอกเหนือจากชุดกฎที่คุณเลือกได้&lt;br/&gt;&lt;br/&gt;เบื้องหลังต่าง ๆ ของโปรโตคอลบิตคอยน์ที่ทำให้มันเป็น เครือข่ายแบบบุคคลถึงบุคคล และการคำนวณแบบกระจายศูนย์นั้น ถูกสร้างขึ้นมาบนพื้นฐานของงานวิจัยในด้านการเข้ารหัสและระบบกระจายศูนย์มาเนิ่นนานหลายทศวรรษ โดยมีการรวมเอานวัตกรรมสำคัญ ๆ 4 อย่างนี้มารวมเข้าด้วยกัน:&lt;br/&gt;- เครือข่ายเพียร์ทูเพียร์ที่กระจายศูนย์ (ฺBitcoin protocol)&lt;br/&gt;- บัญชีธุรกรรมสาธารณะ (Blockchain)&lt;br/&gt;- ชุดของกฎในการตรวจสอบธุรกรรมอย่างอิสระและการออกสกุลเงิน ( consensus rules )&lt;br/&gt;- กลไกในการหาข้อตกลงร่วมกันทั่วโลกเกี่ยวกับบล็อกเชนที่ถูกต้อง (PoW algorithm)&lt;br/&gt;&lt;br/&gt;* ในมุมมองของนักพัฒนา นาย Andreas M. Antonopoulos and David A. Harding ( ไม่ใช่ผมจ้าา ถึงจะเห็นด้วยก็ตาม) พวกเขามองว่าบิตคอยน์นั้นคล้ายกับอินเทอร์เน็ตของเงิน เป็นเครือข่ายสำหรับการกระจายมูลค่าและการรักษาความเป็นเจ้าของสินทรัพย์ดิจิทัลผ่านการคำนวณแบบกระจายศูนย์ ซึ่งบิตคอยน์มีรายระเอียดเยอะกว่าที่พวกเขาเห็นในตอนแรกมาก ๆ&lt;br/&gt;&lt;br/&gt;ในบทนี้เองจะเป็นการอธิบายแนวคิด และคำศัพท์หลัก ๆ รวมทั้งการติดตั้งซอฟแวร์ต่าง ๆ ที่จำเป็นในการทอดลองใช้บิตคอยน์สำหรับทำธุรกรรมง่าย ๆ และสำหรับในบทถัดไป เราจะทำการดำดิ่งลงไปในเทคโนโลยีต่าง ๆ ที่ประกอบรวมกันเป็นบิตคอยน์ว่าทำไมมันถึงเป็นไปได้ และตรวจสอบการทำงานภายในของเครือข่ายและโปรโตคอล&lt;br/&gt;&lt;br/&gt;****************&lt;br/&gt;ไปค้นเจอโน็ตสมัยเรียนกับ chaincode น่าจะเป็นตอนที่ต้องอ่าน mastering Bitcoin ผมพยายามเอาเนื้อหาไปเทียบกับหนังสือแล้ว โดยรวมก็ครบอยู่แหละ มีบางย่อหน้าที่ตัดทิ้งไปบ้างเหราะรู้สึกไม่สำคัญอะไร น่าจะเอามาลงให้เรื่อย ๆ จนถึงบทที่ 8 เพราะน่าจะมีแค่นั้น ถ้ามีเวลาว่างจะพยายามไล่จนจบให้ครับ&lt;br/&gt;****************&lt;br/&gt;&lt;br/&gt;#siamstr
    </content>
    <updated>2024-11-27T09:40:59Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqqqshjk52znme4eazj8lyjrg3ghz3ms5wjazpjphvg5pl0fy48pczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2yf848z</id>
    
      <title type="html">ว่าด้วยเจ้า Alby hub ตัวร้าย ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqqqshjk52znme4eazj8lyjrg3ghz3ms5wjazpjphvg5pl0fy48pczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2yf848z" />
    <content type="html">
      ว่าด้วยเจ้า Alby hub ตัวร้าย&lt;br/&gt;&lt;br/&gt;ไม่แน่ใจว่าใครเคยเจอปัญหาว่าลง alby hub บน window11 แล้วมันไม่อนุญาตบ้าง ? คือใครเจอบ้างไม่รู้แหละแต่ผมเจอละหนึ่ง ยิ่งไปกว่านั้นไอเรามันก็คนขี้เกียจไม่อยากจะลง docker ซ่ะด้วย vm ก็ขี้เกียจลง (เลิกมั้ยละถ้าจะขี้เกียจขนาดนี้)  เอาจริง ๆ ก็ใช่แหละนั่นคือเหตุผลที่ผมไม่แตะต้องมันมายาวนาน แต่ด้วยความอยากเล่น sdk ของ alby ก็เลยเอ้อ หาทางเอาสักตั้งละกัน&lt;br/&gt;--- requirement ---&lt;br/&gt; wsl2 (ในตัวนี้ผมลองกับ ubuntu 22.04)&lt;br/&gt;---------------------&lt;br/&gt;ขั้นตอนแรกก็ไปโหลดตัว install มาจากเว็บของ albyhub ครับ จากนั้นก็ลากไฟล์เข้าไป(อย่าลืมเข้าไปใน/home/ชื่อยูสก่อนนะครับ)&lt;br/&gt;  &lt;img src=&#34;https://image.nostr.build/b0da902045e897fe8e42ecc5c4c289e20fb62d900a5ca162af4f1ed7e787bfd0.png&#34;&gt; &lt;br/&gt;&lt;br/&gt;จากนั้นก็แตกไฟล์ด้วยคำสั่ง tar -xf albyhub-Desktop-Linux.tar.bz2 ถ้าไม่ได้ ให้ลอง&lt;br/&gt;sudo apt update&lt;br/&gt;sudo apt install lbzip2&lt;br/&gt;จากนั้นก็ tar -xf albyhub-Desktop-Linux.tar.bz2 อีกรอบครับ ถ้าสำเร็จแล้วลอง ls ดูเราจะเห็น folder ตามภาพครับ&lt;br/&gt;  &lt;img src=&#34;https://image.nostr.build/ec40328ca5e96d8e66b96e780ede260f6556b99109798e8a4b528092bc2c31d2.png&#34;&gt; &lt;br/&gt;จากนั้นก็ ./albyhub-Desktop-Linux/bin/Alby\ Hub เพื่อเปิดหน้ามันซ่ะเลย 🤛 &lt;br/&gt;  &lt;img src=&#34;https://image.nostr.build/d67698712281dedd354d82313601fa2ff345192b115ed3bc11952e575390ca73.png&#34;&gt; &lt;br/&gt;แล้วเราก็จะได้ alby hub มาอยู่ในอ้อมอกอ้อมใจ เย่&lt;br/&gt;&lt;br/&gt;#siamstr&lt;br/&gt;* ถ้าใครรันแล้วมันไม่ขึ้นไปเช็คตัว libwebkit ถ้าไม่มีก็สั่งคำสั่งตามด้านล่างนี้ก่อนแล้วค่อยรันโปรแกรมอีกรอบนะครับ&lt;br/&gt;sudo apt install libwebkit2gtk-4.0-37&lt;br/&gt;** ไว้เดี๋ยวลองเล่น nwc จนพอใจแล้วจะมาสรุปให้ฟังนะครับว่ามันทำอะไรได้บ้าง
    </content>
    <updated>2024-11-03T09:09:01Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswenyc7ck5f30d9geu2m77w8z888kqfmeeglj0ursnm8n8jawlxeczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2e8mzqy</id>
    
      <title>Nostr event nevent1qqswenyc7ck5f30d9geu2m77w8z888kqfmeeglj0ursnm8n8jawlxeczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2e8mzqy</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswenyc7ck5f30d9geu2m77w8z888kqfmeeglj0ursnm8n8jawlxeczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2e8mzqy" />
    <content type="html">
      คิ้กค้ากกกก แน่นอนว่าคำประหลาด ๆ แบบนี้มาพร้อมกับการ &amp;#34;ขายของ&amp;#34;&lt;br/&gt;โดยบทความข้างล่างนี้เกี่ยวกับการขยายตัวของ Nostr และความเป็นไปได้ที่อาจจะเกิดขึ้นในอนาคตของรีเลย์ ไม่ว่าจะเป็น&lt;br/&gt;- ป้องกันสแปม&lt;br/&gt;- การขยายตัวของระบบ&lt;br/&gt;- รวมทั้งปัญหาต่าง ๆ ที่มีในปัจจุบันและแนวทางการแก้ปัญหา&lt;br/&gt;#siamstr&lt;br/&gt;&lt;br/&gt;nostr:naddr1qvzqqqr4gupzq7gq3eup4hk8vlxgugum2vldevv75t3xp7fgr2gjt6f5yh06eyu4qyv8wumn8ghj7un9d3shjtnwda6x7umgdyh8w6tw9uq32amnwvaz7tmjv4kxz7fwv3sk6atn9e5k7tcqz4zxzdn2x3uxvjz9gajhqttttpgk7u2xdayswtad7l
    </content>
    <updated>2024-09-02T04:26:56Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2hzvv0mv9fp5vge950ppu3nazxwhy2pf0hzd6kst2k55azz53etgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe27fpnxm</id>
    
      <title type="html">NIP-104: การส่งข้อความแบบ E2EE ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2hzvv0mv9fp5vge950ppu3nazxwhy2pf0hzd6kst2k55azz53etgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe27fpnxm" />
    <content type="html">
      NIP-104: การส่งข้อความแบบ E2EE โดยใช้โปรโตคอล Message Layer Security (MLS) &lt;br/&gt;&lt;br/&gt;โดย NIP นี้ได้นำเสนอ E2EE หรือการส่งข้อความที่มีการเข้ารหัสตั้งแต่ต้นทางไปจนถึงปลายทาง โดยเสนอให้มีการเพิ่มไปทั้งแชทส่วนตัวหรือแชทกลุ่ม โดยการใช้โปรโตคอล Messaging Layer Security (MLS) &lt;br/&gt;&lt;br/&gt;เดิมทีการส่งข้อความตรงแบบหนึ่งต่อหนึ่ง (DMs) ใน Nostr เกิดขึ้นผ่านรูปแบบที่กำหนดไว้ใน NIP-04 แต่ NIP นี้ไม่ได้รับการแนะนำ เพราะแม้ว่ามันจะเข้ารหัสเนื้อหาของข้อความแต่ความเป็นส่วนตัวของเราและคู่สนทนานั้นกลับไม่มีอยู่เลย&lt;br/&gt;&lt;br/&gt;แต่ด้วยการมาของ NIP-44 ทำให้เรามีรูปแบบการเข้ารหัสที่อัปเดตซึ่งปรับปรุงการรับประกันความลับ แต่ก็ไม่ได้กำหนดรูปแบบใหม่สำหรับการส่งข้อความตรง โดยใช้รูปแบบการเข้ารหัสนี้ ดังนั้น จึงแทบจะไม่สร้างความแตกต่างใด ๆ กับความเป็นส่วนตัว&lt;br/&gt;&lt;br/&gt;และล่าสุดนี้ NIP-17 ได้รวมการเข้ารหัส NIP-44 และ warp ด้วย NIP-59 เพื่อซ่อนข้อความตรงที่เข้ารหัสไว้ภายในชุดของกิจกรรมอื่น ๆ เพื่อให้แน่ใจว่าไม่สามารถมองเห็นได้ว่าใครกำลังคุยกับใคร และเมื่อใดที่ข้อความถูกส่งผ่านระหว่างผู้ใช้ ซึ่งส่วนใหญ่จะช่วยแก้ปัญหารั่วไหลของข้อมูล ในขณะที่ยังคงเป็นไปได้ที่จะเห็นว่าผู้ใช้กำลังรับ event ที่ warp แต่คุณไม่สามารถบอกได้ว่ามาจากใคร และ event ประเภทใดที่อยู่ภายใน event ที่ถูก warp ซึ่งจะช่วยให้ปฏิเสธได้ในระดับหนึ่ง แต่ก็ไม่ได้แก้ปัญหาการรักษาความลับล่วงหน้าหรือความปลอดภัยหลังการถูกบุกรุก กล่าวคือ หากกุญแจส่วนตัวของผู้ใช้ (หรือกุญแจการสนทนาที่คำนวณร่วมกันระหว่างผู้ใช้สองคนที่ใช้ในการเข้ารหัสข้อความ) ถูกโจมตี ผู้โจมตีจะสามารถเข้าถึง DMs ทั้งหมดที่ส่งผ่านระหว่างผู้ใช้เหล่านั้นได้อย่างสมบูรณ์ทั้งในอดีตและอนาคต&lt;br/&gt;&lt;br/&gt;นอกจากนี้ ทั้ง NIP-04 หรือ NIP-17 ต่างก็ไม่ได้พยายามแก้ปัญหาของการส่งข้อความในแชทกลุ่ม&lt;br/&gt;&lt;br/&gt;แล้วทำไมมันถึงสำคัญละ?&lt;br/&gt;&lt;br/&gt;เพราะว่าหากปราศจาก E2EE ที่เหมาะสม Nostr จะไม่สามารถใช้เป็นโปรโตคอลสำหรับไคลเอนต์การส่งข้อความที่ปลอดภัยได้ ในขณะที่ไคลเอนต์อย่าง Signal ทำงานได้อย่างยอดเยี่ยมกับ E2EE แต่ก็ยังคงอาศัยเซิร์ฟเวอร์ส่วนกลาง ซึ่งอาจถูกปิดกั้นโดยผู้ที่มีอำนาจ และเป้าหมายของ Nostr ไม่ใช่แค่การป้องกันหน่วยงานส่วนกลางจากการเซ็นเซอร์คุณและการสื่อสารของคุณ แต่ยังรวมถึงการป้องกันไม่ให้ผู้ที่มีอำนาจระดับรัฐสามารถหยุดยั้งบริการประเภทนี้ได้ตั้งแต่แรก การแทนที่เซิร์ฟเวอร์ส่วนกลางด้วยรีเลย์แบบกระจายศูนย์ทำให้ผู้ที่มีอำนาจแทบจะเป็นไปไม่ได้เลยที่จะหยุดการสื่อสารระหว่างผู้ใช้แต่ละรายได้อย่างสมบูรณ์&lt;br/&gt;&lt;br/&gt;แล้วทำไมต้องเป็น MLS?&lt;br/&gt;&lt;br/&gt;การปรับใช้โปรโตคอล Message Layer Security (MLS) ให้เข้ากับการใช้งาน Nostr ลองคิดง่าย ๆ ว่า MLS เป็นวิวัฒนาการของ Signal Protocol ก็ได้ อย่างไรก็ตาม MLS ได้ปรับปรุงความสามารถในการขยายขนาดของการดำเนินการเข้ารหัสสำหรับการส่งข้อความกลุ่มขนาดใหญ่ได้อย่างมาก (linear -&amp;gt; log) โดยสร้างขึ้นเพื่อรองรับสภาพแวดล้อมแบบรวมศูนย์ และยังช่วยให้อัปเดตชุดรหัสและเวอร์ชันได้อย่างราบรื่นเมื่อเวลาผ่านไป นอกจากนี้ยังมีความยืดหยุ่นสูงและข้อความเข้ารหัสที่ส่งในระบบนั้นไม่ขึ้นอยู่กับเนื้อหาของข้อความที่ส่ง การอธิบายโปรโตคอล MLS นั้นอยู่นอกเหนือขอบเขตของ NIP นี้ แต่คุณสามารถอ่านเพิ่มเติมได้ในภาพรวมทางสถาปัตยกรรมหรือ RFC MLS กำลังอยู่ระหว่างการพัฒนาเป็นมาตรฐานอินเทอร์เน็ตภายใต้ IETF ดังนั้นโปรโตคอลจึงได้รับการตรวจสอบและวิจัยมาเป็นอย่างดี ซึ่งหมายความว่า MLS มีศักยภาพในการทำงานร่วมกันของการส่งข้อความข้ามเครือข่ายได้ในอนาคต เมื่อ MLS ได้รับการยอมรับมากขึ้น&lt;br/&gt;&lt;br/&gt;MLS มีจุดเด่นอะไรที่จะมาช่วยพัฒนา Nostr ได้บ้าง?&lt;br/&gt;&lt;br/&gt;- ความเป็นส่วนตัวและความปลอดภัย: แม้ว่าระบบการส่งข้อความส่วนตัวบน nostr ที่มีอยู่แล้วและมีความปลอดภัยที่สูง(NIP-04, NIP17) แต่ในแง่ของความเป็นส่วนตัวนั้นยังบกพร่องอยู่ ซึ่งในจุดนี้เองที่ MLS สามารถเข้ามาช่วยเพิ่มความเป็นส่วนตัวได้&lt;br/&gt;&lt;br/&gt;- ความหยืดหยุ่น: MLS นั้นมีระบบการจัดการข้อความแบบกลุ่ม ซึ่งสามารถจัดการได้อย่างมีประสิทธิภาพสูง ซึ่งน่าจะเข้ามาช่วยเสริม&lt;br/&gt;&lt;br/&gt;- การสอดคล้องกับการกระจายอำนาจ: การใช้ประโยชน์จากโครงสร้างพื้นฐานรีเลย์แบบกระจายอำนาจที่มีอยู่ของ Nostr สำหรับการส่งข้อความ MLS ทำให้สามารถส่งข้อความได้อย่างปลอดภัย และมีความเป็นส่วนตัวมากขึ้น&lt;br/&gt;&lt;br/&gt;เป้าหมายของ NIP นี้&lt;br/&gt; - ข้อความตรงและข้อความกลุ่มแบบส่วนตัวและเป็นความลับ&lt;br/&gt; 	- ส่วนตัว หมายความว่าผู้สังเกตการณ์ไม่สามารถบอกได้ว่าอลิซและบ็อบกำลังคุยกันอยู่ หรืออลิซเป็นส่วนหนึ่งของกลุ่มใดกลุ่มหนึ่ง ซึ่งจำเป็นต้องมีการปกป้องข้อมูล&lt;br/&gt; 	- เป็นความลับ หมายความว่าเฉพาะผู้รับที่ต้องการเท่านั้นที่สามารถดูเนื้อหาของการสนทนาได้&lt;br/&gt; - การรักษาความลับล่วงหน้าและความปลอดภัยหลังการถูกบุกรุก&lt;br/&gt; 	- การรักษาความลับล่วงหน้า หมายความว่าเนื้อหาที่เข้ารหัสในอดีตจะยังคงถูกเข้ารหัสอยู่ แม้ว่ากุญแจจะรั่วไหลก็ตาม&lt;br/&gt; 	- ความปลอดภัยหลังการถูกบุกรุก หมายความว่าการรั่วไหลของคีย์ไม่อนุญาตให้ผู้โจมตีอ่านข้อความในอนาคตได้อย่างไม่มีกำหนด&lt;br/&gt; - ปรับขนาดได้อย่างมีประสิทธิภาพสำหรับกลุ่มขนาดใหญ่&lt;br/&gt; - อนุญาตให้ใช้อุปกรณ์/ไคลเอนต์หลายเครื่องในการสนทนา/กลุ่มเดียว&lt;br/&gt;
    </content>
    <updated>2024-09-01T06:52:32Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsz3f5gxahrf7va26cyev47dagx4h7p84rn43lnz088w3x4fj2jg8qzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe24jwllv</id>
    
      <title type="html">Mining &amp;amp; Pool Mining หรือการขุด ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsz3f5gxahrf7va26cyev47dagx4h7p84rn43lnz088w3x4fj2jg8qzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe24jwllv" />
    <content type="html">
      Mining &amp;amp; Pool&lt;br/&gt;&lt;br/&gt;Mining หรือการขุด เป็นอีกหนึ่งสิ่งที่เป็นพื้นฐานของระบบบิตคอยน์ ซึ่งดำเนินการโดยการนำกำลังประมวลผลมาแข่งกันในการหา hash ให้เข้าเป้า เพื่อที่จะให้ได้รับสิทธิ์ในการใส่บล๊อกที่ตนสร้างลงไปในบล๊อกเชนของบิตคอยน์ และนักขุดที่สามารถหา nonce ที่ทำให้ hash เข้าเป้าได้ก่อนก็จะได้รับบิตคอยน์ที่ถูกผลิตขึ้นใหม่ในบล๊อกนั้น ๆ และ ค่าธรรมเนียมจากการทำธุรกรรมต่าง ๆ ในบล๊อกนั้น ๆ อีกด้วย แต่หลังจากเครือข่ายของบิตคอยน์ได้มีการเจริญเติบโตขึ้นเรื่อย ๆ ทำให้การแข่งขันกันของเหล่านักขุดก็เกิดขึ้นด้วย เมื่องแรงขุดในระบบเพิ่มขึ้น ความยากในการหา hash ที่จะตรงกับเป้าหมายก็ยากขึ้นเรื่อย ๆ ตาม difficulty adjustment algorithm อีกด้วย ด้วยเหตุนี้เองจึงทำให้โอกาสที่นักขุดที่ขุดด้วยตัวคนเดียวจะสามารถได้รับบิตคอยน์จากการขุดนั้นยากขึ้นเรื่อย ๆ เหล่าบรรดานักขุดจึงเริ่มมีการรวมกำลังในการขุดของแต่ละคน เพื่อเพิ่มโอกาสที่จะได้รับบิตคอยน์จากการขุด จึงเกิดเป็นสิ่งที่เรียกว่า Mining Pool ในภายหลัง&lt;br/&gt;&lt;br/&gt;Mining Pool คืออะไร?&lt;br/&gt;&lt;br/&gt;Mining Pool คือการรวมกันของกำลังขุดจากนักขุดแต่ละคน เพื่อที่จะเพิ่มโอกาสในการได้รับบิตคอยน์จากการขุด โดยหาก pool ของพวกเขาได้รับบิตคอยน์มาก็จะทำการอจกจ่ายไปให้กับสมาชิกใน pool ตามแรงขุดที่แต่ละคนส่งมา และด้วยสิ่งนี้เองทำให้ mining pool ได้เข้ามาแก้ปัญหาของความยากที่เพิ่มขึ้นในการขุดบิตคอยน์ และนอกจากการเพิ่มโอกาสในการได้บิตคอยน์จากการขุดแล้ว อีกเหตุผลที่มักจะทำให้นักขุดเข้าร่วมกับ pool ต่าง ๆ คือการที่จะสามารถเพิ่มความสเถียรของรายได้ &lt;br/&gt;&lt;br/&gt;จะเกิดอะไรขึ้นถ้ามี pool ใด ๆ ที่รวมกำลังขุดเกิน 51 % ? จะมีปัญหาอะไรไหม ?&lt;br/&gt;&lt;br/&gt;ในกรณีนี้ก็ต้องบอกว่าขึ้นอยู่กับนโยบายของ pool นั้น ๆ หาก pool นั้น ๆ ยังเล่นตามกติกา ไม่มีการเซนเซอร์ใด ๆ และมุ่งเน้นไปที่การทำบล๊อกเทมเพสที่ได้ค่าธรรมเนียมมากที่สุด และกระจายบิตคอยน์ที่ได้กับนักขุดอย่างยุติธรรม ก็อาจจะเป็นแรงจูงใจที่ทำให้นักขุดที่อยากจะส่งแรงขุดไปที่ pool นั้น ๆ และหาก pool ไหนที่พยายามจะแซกแซงระบบไม่ว่าจะเป็นการ เซนเซอร์ธุรกรรมหรืออื่น ๆ แน่นอนว่าการทำแบบนั้นย่อมส่งผลโดยตรงกับกำไรที่นักขุดจะได้รับ แล้วทำไมเหล่านักขุดถึงจะต้องส่งกำลังขุดไปยัง pool เหล่านั้น และการแก้ไขปัญหาหากมีเรื่องแบบนี้เกิดขึ้น เหล่านักขุดก็สามารถที่จะย้ายกำลังขุดของตัวเองทั้งหมด ไปยัง pool ใหม่ หรือจะกลับมาขุดด้วยตัวเองก็เป็นเรื่องที่สามารถทำได้โดยง่ายและไม่มีต้นทุนใด ๆ ในการย้ายนอกจากเวลา&lt;br/&gt;&lt;br/&gt;#siamstr
    </content>
    <updated>2024-08-28T05:29:16Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqqqq8d0w2krk9a58lxrummpraxp8ksktq4lyu63x6afn3gszud7gzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2y29q3g</id>
    
      <title type="html">OP_CHECKTEMPLATEVERIFY (CTV) OP_CHECKTEMPLATEVERIFY (CTV) ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqqqq8d0w2krk9a58lxrummpraxp8ksktq4lyu63x6afn3gszud7gzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2y29q3g" />
    <content type="html">
      OP_CHECKTEMPLATEVERIFY (CTV) &lt;br/&gt;&lt;br/&gt;OP_CHECKTEMPLATEVERIFY (CTV) เป็นโอปโค้ดใหม่ที่ถูกเสนอขึ้น โดยรับค่าแฮชของข้อผูกมัดเป็นพารามิเตอร์ และกำหนดให้ธุรกรรมใด ๆ ที่ดำเนินการด้วยโอปโค้ดนี้ต้องมีชุดของเอาต์พุตที่ตรงกับข้อผูกมัดนั้น ด้วยสิ่งนี้เอง ทำให้สามารถสร้างที่อยู่ที่ระบุวิธีการใช้จ่ายเงินใด ๆ ที่ได้รับไปยังที่อยู่นั้นได้ ซึ่งเป็นการออกแบบที่รู้จักใน Bitcoin ว่าเป็นพันธสัญญา (covenant)&lt;br/&gt;&lt;br/&gt;เดิมทีนำเสนอภายใต้ชื่อ OP_CHECKOUTPUTSHASHVERIFY (COSHV) ซึ่งข้อเสนอนี้มุ่งเน้นไปที่ความสามารถในการสร้างธุรกรรมโดยใช้ congestion control (คล้าย ๆ กันกับที่ใช้คุมการไหลของ data packets ใน TCP ) ซึ่งผู้ใช้จ่ายเงินไปยังที่อยู่เดียวโดยใช้ CTV ซึ่งเมื่อได้รับการยืนยันในระดับที่เหมาะสมแล้ว จะทำให้ผู้รับหลายรายมั่นใจได้ว่าพวกเขาแต่ละคนจะได้รับเงิน กระบวนการสองขั้นตอนนี้น่าจะสามารถใช้ได้ทุกที่ ที่มีตัวเลือกการรวมการชำระเงิน (payment batching) โดยมีแนวโน้มว่าจะสามารถช่วยลดค่าธรรมเนียมได้มากกว่าการรวมการชำระเงิน&lt;br/&gt;&lt;br/&gt;ข้อเสนอในเวอร์ชันต่อ ๆ มา มีการให้ความสำคัญกับสัญญาและพันธสัญญาอื่น ๆ ที่สามารถสร้างได้โดยใช้โอปโค้ดใหม่ เช่น ความสามารถในการสร้าง กระเป๋าสตางค์ (vaults) และธุรกรรม CoinJoin ในรูปแบบใหม่ที่อาจช่วยลดความซับซ้อนในการสร้างหรือลดค่าธรรมเนียมลงได้ นอกจากนี้ผู้เขียนท่านอื่น ๆ ได้กล่าวถึงว่าโอปโค้ดใหม่อาจใช้เพื่อให้ผู้ใช้สามารถรวมเงินทุนของตนเข้าด้วยกันใน UTXO เดียวได้อย่างน่าเชื่อถือและความเป็นส่วนตัวมากยิ่งขึ้น&lt;br/&gt;&lt;br/&gt;การทำงานของ OP_CHECKTEMPLATEVERIFY&lt;br/&gt;&lt;br/&gt;OP_CHECKTEMPLATEVERIFY ใช้โอปโค้ด OP_NOP4 (0xb3) เป็นการอัปเกรดซอฟต์ฟอร์ก&lt;br/&gt;OP_CHECKTEMPLATEVERIFY ทำงานดังนี้:&lt;br/&gt; - ต้องมีอย่างน้อยหนึ่งองค์ประกอบบนสแต็ก ไม่งั้นจะไม่สามารถทำงานได้&lt;br/&gt; - องค์ประกอบบนสแต็กต้องมีความยาว 32 ไบต์ หากไม่ใช่จะทำเป็น NOP (No Operation)&lt;br/&gt; - DefaultCheckTemplateVerifyHash ของธุรกรรม ณ ดัชนีอินพุตปัจจุบันต้องเท่ากับองค์ประกอบบนสแต็ก หากไม่เท่ากันจะล้มเหลว&lt;br/&gt; - DefaultCheckTemplateVerifyHash ผูกมัดกับ: เวอร์ชัน,ล็อกไทม์, แฮชของ ScriptSigs (ถ้ามี ScriptSigs ที่ไม่ใช่ค่า Null), จำนวนอินพุต, แฮชของลำดับ, จำนวนเอาต์พุต, แฮชของเอาต์พุต, ดัชนีอินพุตที่กำลังดำเนินการอยู่&lt;br/&gt;&lt;br/&gt;กฎมาตรฐานที่แนะนำเพิ่มเติม:&lt;br/&gt;ปฏิเสธข้อมูลที่ไม่ใช่ 32 ไบต์ เป็น SCRIPT_ERR_DISCOURAGE_UPGRADABLE_NOPS&lt;br/&gt;&lt;br/&gt;detail มากกว่านี้: &lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0119.mediawiki&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0119.mediawiki&lt;/a&gt;&lt;br/&gt;
    </content>
    <updated>2024-08-21T09:35:03Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqstg3fxzpgpym04kzlqd85q7ydk3et6dxr0kfsefeuhjvajgw994pqzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe283fj03</id>
    
      <title type="html">ฮี่ ๆ ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqstg3fxzpgpym04kzlqd85q7ydk3et6dxr0kfsefeuhjvajgw994pqzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe283fj03" />
    <content type="html">
      ฮี่ ๆ ไม่ใช้คำเดิมละเดี๋ยวโดนจับได้อีก แต่วันนี้ผมมีของใหม่มานำเสนอ&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzq7gq3eup4hk8vlxgugum2vldevv75t3xp7fgr2gjt6f5yh06eyu4qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qq4dyckvstddd48jd6nd94y74ng89znguzlvy6vcje5&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…cje5&lt;/a&gt;&lt;/span&gt;&lt;br/&gt; &lt;/div&gt; 
&lt;h2 id=&#34;nostr-โปรโตคอลทางเล-อกใหม-สำหร-บโซเช-ยลม-เด-ยท-เป-นอ-สระ-ปลอดภ-ย-และไร-การควบค-ม-2&#34;&gt;Nostr: โปรโตคอลทางเลือกใหม่สำหรับโซเชียลมีเดียที่เป็นอิสระ ปลอดภัย และไร้การควบคุม&lt;/h2&gt;

&lt;p&gt;Nostr คือโปรโตคอลแบบเปิดที่เรียบง่าย ซึ่งช่วยให้สามารถสร้างโซเชียลมีเดียระดับโลกที่กระจายอำนาจและป้องกันการเซ็นเซอร์ได้&lt;/p&gt;

&lt;p&gt;จากที่กล่าวข้างต้น เราสามารถพูดได้ว่า Nostr นั้นถูกออกแบบมาให้ใช้งานง่าย โดยมีเป้าหมายหลัก ๆ เพื่อสร้างเครือข่ายโซเชียลระดับโลกที่ปราศจากการเซ็นเซอร์ แล้วทำไมมันถึงทำอย่างนั้นได้? ในจุดนี้เราก็ต้องมาเจาะดูคุณสมบัติหลัก ๆ ของโปรโตคอลที่เรียกว่า Nostr กันก่อน:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;เรียบง่าย&lt;/strong&gt;
- โปรโตคอลนี้ใช้โครงสร้างข้อมูลแบบ Event Object ที่เรียบง่ายและยืดหยุ่น (ซึ่งส่งเป็น JSON ธรรมดา) และใช้การเข้ารหัสแบบ Elliptic-curve มาตรฐานสำหรับคีย์และลายเซ็น&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;ช่องทางการสื่อสารที่รองรับเพียงอย่างเดียวคือการเชื่อมต่อ WebSockets จากไคลเอนต์ไปยังรีเลย์&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;การออกแบบนี้ทำให้ง่ายต่อการพัฒนาไม่ว่าจะไคลเอนต์หรือรีเลย์ และยังช่วยส่งเสริมความหลากหลายของซอฟต์แวร์&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;ยืดหยุ่น&lt;/strong&gt;
- เนื่องจาก Nostr ไม่ได้พึ่งพาเซิร์ฟเวอร์ที่เชื่อถือได้เพียงจำนวนหยิบมือ สำหรับการเคลื่อนย้ายหรือจัดเก็บข้อมูล แต่ใช้เซิร์ฟเวอร์จำนวนมหาศาลและกระจายตัวอยู่ทั่วโลก จึงมีความยืดหยุ่นสูง และมีการกระจายศูนย์อย่างแท้จริง&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;โปรโตคอลนี้ถูกออกแบบมาโดยคำนึงถึงความเป็นไปได้ที่รีเลย์จะหายไป และอนุญาตให้ผู้ใช้เชื่อมต่อและเผยแพร่ข้อมูลไปยังรีเลย์จำนวนมากได้ตามต้องการ และยังสามารถเปลี่ยนแปลงได้ตลอดเวลาอีกด้วย&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;ตรวจสอบได้&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;เนื่องจากบัญชี Nostr ใช้การเข้ารหัสแบบ PKE จึงง่ายต่อการตรวจสอบว่าข้อความถูกส่งมาจากผู้ใช้ที่ระบุจริงหรือไม่&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;เช่นเดียวกับ HTTP หรือ TCP-IP Nostr เป็นโปรโตคอลหรือมาตรฐานแบบเปิดที่ทุกคนสามารถนำไปสร้างต่อยอดได้ มันไม่ใช่แอปหรือบริการที่คุณจำเป็นต้องลงทะเบียน&lt;/p&gt;

&lt;h2 id=&#34;แล-วทำไมเราถ-งต-องการ-nostr-2&#34;&gt;แล้วทำไมเราถึงต้องการ Nostr?&lt;/h2&gt;

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

&lt;ol&gt;
&lt;li&gt;ใช้ความสนใจของคุณเพื่อขายโฆษณา&lt;/li&gt;
&lt;li&gt;ใช้เทคนิคแปลกๆ เพื่อทำให้คุณเสพติด (อ้างอิงจากข้อ 1)&lt;/li&gt;
&lt;li&gt;ตัดสินใจว่าจะแสดงเนื้อหาใดให้คุณเห็นโดยใช้อัลกอริทึมลับที่คุณไม่สามารถตรวจสอบหรือเปลี่ยนแปลงได้&lt;/li&gt;
&lt;li&gt;ควบคุมอย่างเต็มที่ว่าใครสามารถเข้าร่วมและใครถูกเซ็นเซอร์&lt;/li&gt;
&lt;li&gt;เต็มไปด้วยสแปมและบอท&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;ด้วยข้อจำกัดเหล่านี้ Nostr จึงเป็นทางเลือกที่น่าสนใจในการสร้างโซเชียลมีเดียที่เป็นอิสระ ปลอดภัย และไร้การควบคุม&lt;/p&gt;

&lt;h2 id=&#34;องค-ประกอบของโปรโตคอลท-ช-อว-า-nostr-2&#34;&gt;องค์ประกอบของโปรโตคอลที่ชื่อว่า Nostr&lt;/h2&gt;

&lt;p&gt;หลังจากได้ทำความรู้จัก Nostr กันไปแล้วเมื่อคราวก่อน คราวนี้เรามาเจาะดูองค์ประกอบของโปรโตคอลนี้กันดีกว่า&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keys ระบบบัญชีผู้ใช้และรหัสผ่านสำหรับ Nostr&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;บัญชี Nostr แต่ละบัญชีจะใช้คู่กุญแจสาธารณะ/ส่วนตัว (Public/Private Key ) เปรียบเทียบง่าย ๆ คือ กุญแจสาธารณะของคุณคือชื่อผู้ใช้ และกุญแจส่วนตัวก็เป็นรหัสผ่าน แต่ว่า ก็มีข้อแตกต่างที่สำคัญอยู่ นั่นคือ กุญแจส่วนตัวของคุณนั้นจะไม่สามารถรีเซ็ตได้หากเกิดการสูญหายขึ้น คุณจะเสียบัญชีนั้นไปตลอดกาล&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;โดยทั่วไปแล้ว กุญแจสาธารณะจะแสดงเป็นข้อความที่ขึ้นต้นด้วย npub1 และกุญแจส่วนตัวจะขึ้นต้นด้วย nsec1&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;ทั้งนี้คุณควรที่จะตรวจสอบให้แน่ใจว่าคุณได้เก็บกุญแจส่วนตัวของคุณไว้ในที่ปลอดภัย เช่น โปรแกรมจัดการรหัสผ่านอย่างเช่น Bitwarden&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;โปรโตคอลกับไคลเอนต์ ต่างกันอย่างไร?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nostr เองเป็นเพียงโปรโตคอล หมายความว่า Nostr นั้นเป็นเพียงกระบวนการที่ตกลงกันไว้สำหรับการส่งข้อความผ่านอินเทอร์เน็ต (เหมือนข้อกำหนด)&lt;/p&gt;

&lt;p&gt;ซึ่งการที่คุณจะเข้าถึง Nostr (โปรโตคอล) นั้น ผู้ใช้ส่วนใหญ่จะใช้งานผ่านไคลเอนต์  ซึ่งตัวของไคลเอนต์นั้นอาจเป็นเว็บ แอปพลิเคชันเดสก์ท็อป หรือ แอปพลิเคชันมือถือ โดยไคลเอนต์สามารถดึงข้อมูลจากรีเลย์ และสร้างข้อมูลใหม่ และส่งข้อมูลนั้นไปยังรีเลย์เพื่อให้ผู้ใช้คนอื่น ๆ สามารถเรียกอ่าน ข้อมูลนั้น ๆ ได้ โดย &amp;#34;ข้อมูล&amp;#34; เพียงรูปแบบเดียวที่มีอยู่ใน Nostr คือสิ่งที่เราเรียกกันว่า event&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;การพิสูจน์ความเป็นเจ้าของข้อมูลบน Nostr&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;บน Nostr นั้นการพิสูจน์ตัวตนเป็นเรื่องที่ง่ายมากเนื่องจากทุก ๆ event ที่เกิดขึ้น &lt;strong&gt;จำเป็น&lt;/strong&gt;ต้องมีลายเซ็นดิจิทัล (Digital Signature) โดยลายเซ็นนั้นจะช่วยให้มั่นใจได้ว่า ใครเป็นผู้สร้าง event นั้น ๆ ขึ้นมา โดยการพิสูจน์ทางคณิตศาสตร์&lt;/p&gt;

&lt;p&gt;โดยในการสร้างลายเซ็นแต่ละครั้ง ไคลเอนต์จะจำเป็นต้องใช้กุญแจส่วนตัวของคุณ โดยทั่วไปแล้ว แอปพลิเคชันเจะมีที่ให้คุณใส่กุญแจส่วนตัวของคุณ เมื่อเปิดแอปพลิเคชันครั้งแรก พวกเขาสามารถคำนวณกุญแจสาธารณะของคุณได้จากกุญแจส่วนตัวเช่นกัน&lt;/p&gt;

&lt;p&gt;ส่วนในกรณีที่คุณใช้งานผ่านเว็บแอป ผมไม่แนะนำให้ใส่กุญแจส่วนตัวลงไป แต่แนะนำให้ใช้ส่วนขยายของเบราว์เซอร์ ที่ใช้งานฟังก์ชันที่เกี่ยวข้องกับ Nostr ซึ่งอนุญาตให้เว็บไคลเอ็นต์ส่ง event ที่ยังไม่ถูกเซ็นมาให้ส่วนขยายและส่วนขยายจะทำหน้าที่เซ็น สำหรับวิธีนี้ เว็บไคลเอ็นต์ต่าง ๆ ไม่จำเป็นต้องรู้กุญแจส่วนตัวของคุณ แต่คุณก็ยังสามารถลงนามใน event ต่าง ๆ ได้ตามปกติ โดยส่วนขยายที่ได้รับความนิยมก็จะเป็น &lt;strong&gt;Flamingo&lt;/strong&gt;, &lt;strong&gt;Alby&lt;/strong&gt; และ &lt;strong&gt;nos2x&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&#34;ไคลเอนต-ร-เลย-2&#34;&gt;ไคลเอนต์ &amp;amp; รีเลย์&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;ไคลเอนต์คืออะไร?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;หากจะอธิบายให้เห็นภาพอยากให้มองว่าไคลเอ็นต์ Nostr นั้นเป็นเหมือนกับแอปที่คุณใช้งานเพื่อเข้าถึง Twitter, Facebook, youtube เป็นต้น พวกมันคือ แอปพลิเคชัน, เว็บแอป ที่เชื่อมต่อคุณกับโลกของ Twitter, Facebook, youtube โดยตัวของไคลเอนต์ใน Nostr เองก็เปรียบเสมือนแอปต่าง ๆ ที่คุณใช้ดูหน้าฟีดนั่นเอง แต่ข้อดีของ Nostr ที่เหนือแอปพลิเคชันอื่น ๆ คือความเรียบง่ายและยืดหยุ่น ส่งผลให้ไคลเอ็นต์แต่ละตัวมีวิธีนำเสนอและใช้งานที่แตกต่างกันไป บางไคลเอ็นต์อาจออกแบบให้ใช้งานง่ายเหมือน Twitter บางตัวเน้นให้เห็นบทบาทสำคัญของรีเลย์ หรือโหนดที่กระจายข้อมูลอยู่ทั่วโลก บางตัวใช้ระบบอัลกอริทึมเพื่อให้แน่ใจว่าข้อมูลไม่ถูกปิดกั้น โดยไม่ทำให้ผู้ใช้งานรู้สึกยุ่งยาก&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;เรียบง่ายและยืดหยุ่น?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;เนื่องจากการออกแบบของโปรโตคอลที่ทำการแยกข้อมูลของผู้ใช้ทั้งหมดออกจากไคลเอนต์ ทำให้ตัวของผู้ใช้งานเองนั้นมีอิสระเต็มที่ที่จะเลือกใช้ไคลเอนต์ต่าง ๆ เพื่อเข้าใช้งาน Nostr และแน่นอนว่า ผู้ใช้งานสามารถสลับหรือลงชื่อเข้าใช้ ไคลเอ็นต์ได้หลายตัวตามต้องการ ตราบใดที่ไคลเอ็นต์ทั้งหมดเชื่อมต่อกับชุดรีเลย์เดียวกัน คุณก็จะเห็นข้อมูลเดียวกันในทุก ๆ ไคลเอ็นต์&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ลงชื่อเข้าใช้ ไคลเอ็นต์หลาย ๆ ตัวแล้วจะกระทบต่อความปลอดภัยของแอคเคาร์ไหม?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;คำตอบของคำถามนี้นั้นขึ้นอยู่กับวิธีการที่คุณลงชื่อเข้าใช้ หากคุณลงชื่อเข้าใช้ด้วยกุญแจส่วนตัว ถึงแม้ว่าไคลเอ็นต์ส่วนใหญ่จะพยายามรักษาความปลอดภัยของกุญแจส่วนตัวอย่างดีที่สุด แต่ด้วยข้อจำกัดของซอฟต์แวร์ ย่อมมีความเสี่ยงที่จะเกิดช่องโหว่ การเจาะระบบ และข้อผิดพลาด ที่อาจทำให้กุญแจส่วนตัวของคุณรั่วไหลออกไปได้ ส่วนวิธีการป้องกันเกี่ยวกับเรื่องนี้คือการใช้ส่วนขยายของเว็บเบราว์เซอร์ เพราะการเข้าสู่ระบบในไคลเอนต์ต่าง ๆ ผ่านส่วนขยายนั้นจะใช้เพียงกุญแจสาธารณะในการเข้าสู่ระบบและทุกครั้งที่เราต้องการจะโพสต์หรือสร้าง event บน Nostr ไคลเอนต์จะทำการร่าง event นั้น ๆ และเว้นช่องของลายเซ็นเอาไว้จากนั้นเราจะต้องทำการเซ็นผ่านส่วนขยาย ด้วยวิธีนี้ทำให้กุญแจส่วนตัวของเราไม่หลุดออกไปไหนตลอดการใช้งาน&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;รีเลย์คืออะไร?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;รีเลย์เปรียบเสมือนเซิร์ฟเวอร์ที่อยู่เบื้องหลังของ Nostr และทำหน้าที่รับ event ต่าง ๆ มาจากไคลเอนต์ Nostr และอาจจะจัดเก็บและกระจายข้อความเหล่านั้นไปยังไคลเอนต์อื่น ๆ ที่มีการเชื่อมต่ออยู่&lt;/p&gt;

&lt;p&gt;เทคโนโลยีของรีเลย์นั้นเปลี่ยนแปลงอย่างรวดเร็ว ดังนั้นคาดว่าจะมีการเปลี่ยนแปลงอีกมากมายในอนาคต อย่างในปัจจุบันที่มีการนำเสนอ bostr หรือ รีเลย์ที่จะคอยส่ง event ของเราต่อให้กับรีเลย์อื่น ๆ ที่มีการเชื่อมต่อ เพื่อช่วยลดภาระของไคลเอนต์ในการรับส่งข้อมูลจากหลาย ๆ รีเลย์พร้อม ๆ กัน หรืออย่างการป้องกันสแปมด้วย POW หรือประเภทที่สามารถเก็บรูปหรือวิดีโอที่มีขนาดใหญ่ได้&lt;/p&gt;

&lt;p&gt;แต่สิ่งหนึ่งที่ควรทราบก็คือ การที่ Nostr นั้นพยายามจะกระจายศูนย์และเหตุผลหลัก ๆ ที่สามารถทำแบบนั้นได้ก็ขึ้นอยู่กับรีเลย์ในการจัดเก็บและดึงข้อมูล ดังนั้น หากคุณรู้สึกว่าไคลเอนต์ Nostr ของคุณทำงานช้า ส่วนใหญ่ก็มักเกิดจากรีเลย์ที่คุณกำลังเชื่อมต่ออยู่ คุณอาจลองแก้ไขปัญญาโดยการเปลี่ยนหรือเพิ่มรีเลย์อีกสองสามรายการในไคลเอนต์ที่คุณใช้&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;แล้วจะสามารถหารายการรีเลย์ได้จากไหน?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;การที่เราจะหารายการรีเลย์ที่เราควรเชื่อมต่อนั้น ๆ จริงแล้ว ๆ สามารถทำได้หลายวิธี แต่วิธีที่ผมแนะนำที่สุดจะเป็นการใช้ตามคนที่เราติดตามอยู่ เพราะจะเป็นวิธีที่เราสามารถเห็น event ต่าง ๆ ของคนที่เราติดตามได้ง่ายที่สุด และเช่นเดียวกัน เพื่อน ๆ หรือคนที่เราติดตามก็จะสามารถเห็น event ของเราได้เช่นกัน และสำหรับในประเทศไทย เรามีรีเลย์ที่คนไทยส่วนใหญ่นิยมใช้กันอยู่สองอัน นั้นคือ wss://relay.siamstr.com/ และ  wss://relay.notoshi.win/ ถ้าหากว่าอยากเห็นคนไทยเยอะ ๆ บนหน้าไทม์ไลน์ ผมแนะนำเป็นอย่างยิ่งว่าควรเพิ่ม รายการรีเลย์เหล่านี้ลงไปในบัชญีหรือไคลเอนต์ต่าง ๆ ที่คุณใช้ด้วย&lt;/p&gt;

&lt;p&gt;สำหรับอีกวิธีหนึ่งผมแนะนำให้เข้าไปในเว็บไซต์ nostr.watch เนื่องจากในเว็บไซต์นี้เป็นแหล่งข้อมูลที่ดีที่สุดสำหรับการค้นหาและประเมินความเร็วของรีเลย์ต่าง ๆ&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;จะเกิดอะไรขึ้นถ้ารีเลย์ทั้งหมดที่ฉันเชื่อมต่ออยู่หยุดให้บริการ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;สิ่งนี้เป็นสิ่งที่คุณต้องระวังมากที่สุดในการใช้งาน nostr เนื่องจากหากรีเลย์ทั้งหมดที่คุณเก็บข้อมูลไว้หยุดให้บริการทั้งหมดและคุณไม่มีการสำรองข้อมูล event ของคุณเก็บไว้เลย มันแปลว่าโพสต์ทั้งหมดของคุณ ผู้ติดตาม และรายการต่าง ๆ ที่คุณสรรค์สร้างไว้จะไม่สามารถกู้คืนได้ไปตลอดการ นี่จึงเป็นเหตุผลหลัก ๆ ที่ Nostr อนุญาตให้ผู้ใช้งานนั้นสามารถเชื่อมต่อกับรีเลย์ได้เป็นจำนวนมาก ก็เพื่อให้แน่ใจว่ามีข้อมูลสำรองเก็บไว้อยู่ที่ใดที่หนึ่งในระบบเสมอ แต่อย่างไรก็ตาม หากคุณต้องการที่จะมั่นใจได้ว่าข้อมูลต่าง ๆ ของคุณจะไม่ถูกเซ็นเซอร์ สิ่งที่คุณสามารถสามารถทำได้คือการใช้รีเลย์ส่วนตัวของคุณและกำหนดนโยบายต่าง ๆ ภายในรีเลย์ของคุณด้วยตัวคุณเอง&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;แล้วฉันจะสามารถใช้รีเลย์ส่วนตัวได้อย่างไร?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;อะแฮ่ม ๆ&lt;/strong&gt; ขอบอกไว้ก่อนว่ามันไม่คุ้มค่ากับความยุ่งยากสำหรับคนโดยทั่ว ๆ ไป ถึงในปัจจุบันจะมีเทคโนโลยีบางตัวที่เข้ามาช่วยให้มันทำได้ง่ายขึ้นแล้วก็ตาม
หากคุณต้องการที่จะสำรองข้อมูลนั้น การที่จะมีรีเลย์ส่วนตัวที่ออนไลน์ตลอดเวลาอาจเป็นเรื่องที่ไม่ได้จำเป็นขนาดนั้น เนื่องจากเราสามารถใช้งานบริการอย่าง &lt;a href=&#34;https://nostrsync.live/&#34;&gt;https://nostrsync.live/&lt;/a&gt; ในการดาวน์โหลดข้อมูลของเราจากรีเลย์ต่าง ๆ ได้ หรือการติดตั้งรีเลย์ส่วนตัวอย่าง nostr-relay-tray: &lt;a href=&#34;https://github.com/CodyTseng/nostr-relay-tray&#34;&gt;https://github.com/CodyTseng/nostr-relay-tray&lt;/a&gt; ที่ช่วยให้เราสามารถมีรีเลย์ส่วนตัวที่ใช้สำหรับสำรองข้อมูลได้&lt;/p&gt;

&lt;p&gt;Nostr Implementation Possibilities (NIPs)&lt;/p&gt;

&lt;h2 id=&#34;nip-ค-ออะไร-2&#34;&gt;NIP คืออะไร?&lt;/h2&gt;

&lt;p&gt;NIP มีไว้เพื่อส่งเสริมความสามารถในการทำงานของ Nostr และเป็นตัวคอยกำหนดให้ เหล่านักพัฒนาทำสิ่งต่าง ๆ ที่เหมือนกันในรูปแบบเดียวกัน เพราะมันคงไม่ใช่ความคิดที่ดีนัก หากนักพัฒนาแต่ละคนจะคิดค้นวิธีแก้ปัญหาทั่วไปของตัวเองและนำไปใช้ในแอปของตัวเองเท่านั้น และคงจะเป็นการดีกว่า ถ้าหากทุกคนใช้วิธีแก้ปัญหาที่เหมือนกัน นั่นคือเหตุผลที่ต้องมี NIP อยู่ในโปรโตคอลของ Nostr และในทำนองเดียวกัน แนวคิดใหม่อาจดูดีในแอปของนักพัฒนาบางราย แต่จะดูดียิ่งขึ้นอย่างแน่นอนหากแอปอื่น ๆ อีกมากมายใช้มาตรฐานเดียวกันและสามารถทำงานร่วมกันได้อย่างราบรื่น&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ทำไมมันถึงหน้าสนใจ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;อย่าลืมว่า Nostr เป็นระบบแบบกระจายอำนาจและไม่ได้มีบริษัทหรือใครที่เป็นเจ้าของมัน อย่างเช่นโซเชียลมีเดียอื่น ๆ เช่น ทวิตเตอร์ อ่อไม่สิตอนนี้คงต้องเรียกมันว่า X สินะ ซึ่งหมายความว่าทิศทางของโพรโทคอล Nostr นั้นขึ้นอยู่กับพวกเราทุกคน! ไม่ว่าใคร ๆ ก็สามารถเสนอแนะและสนับสนุนการเปลี่ยนแปลงและให้ข้อเสนอแนะเกี่ยวกับแนวคิดที่ผู้อื่นเสนอ และการที่คุณเป็นส่วนหนึ่งของชุมชนนี้ ก็ทำให้คุณมีส่วนร่วมในทิศทางของ Nostr อีกด้วย&lt;/p&gt;

&lt;p&gt;จากที่ส่งหากันได้แค่ข้อความ มาเป็นรูปภาพ มาเป็นวิดีโอ และมาเป็น”เงิน” นี่คือเส้นทางการเดินทางของโปรโตคอลนี้ในอดีต แล้วในอนาคตมันจะพัฒนาไปยังไงต่อก็ขึ้นอยู่กับเหล่าผู้ใช้งานและนักพัฒนาในอนาคต แล้วทำไมสิ่งนี้ถึงจะไม่น่าสนใจละ ?&lt;/p&gt;

&lt;h2 id=&#34;event-2&#34;&gt;Event&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Event คืออะไร?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Event เป็น object เพียงประเภทเดียวที่มีอยู่บน Nostr โดยมีโครงสร้างประมาณนี้&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;{&amp;#34;id&amp;#34;:&amp;#34;84d5d3dc9c388a702f39cad6360d41ebb804e809fb822f110ff8a14dfd35fc6c&amp;#34;,
&amp;#34;pubkey&amp;#34;:&amp;#34;66df60562d939ada8612436489945a4ecf1d62346b3d9478dea8a338f3203c64&amp;#34;,
&amp;#34;created_at&amp;#34;:1722315959,
&amp;#34;kind&amp;#34;:1,
&amp;#34;tags&amp;#34;:[[&amp;#34;t&amp;#34;,&amp;#34;siamstr&amp;#34;]],
&amp;#34;content&amp;#34;:&amp;#34;ไปสั่งกาแฟเมื่อกี้ พส เจ้าของร้านชมว่าเดี๋ยวนี้คล่องภาษาญี่ปุ่นแล้วนะ ไอเราก็ดีใจ พอเดินกลับถึงที่ทำงานละก็ตระหนักได้ว่า ตะกี้เราสั่ง “ไอซ์โคฮี โอเนไงชิมัส” “เทคเอาส์” “คาโดะเดสส” ไอบ้าไหนญี่ปุ่นก่อนอังกฤษทั้งนั้น 🤣🤣\n\n#siamstr&amp;#34;,
&amp;#34;sig&amp;#34;:&amp;#34;8f066a0099a5f580b605ebdb220179c4eca298947c38b855a0a8bf2783f28ddb537cb74a7f61d3ce8891189f719870efdf320ea4f895e03cdac44284c450c5c4&amp;#34;}

&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;อย่าง Event ข้างต้นนี้มี kind เป็น 1 ซึ่งหมายถึง &amp;#34;ข้อความโน้ต&amp;#34; ซึ่งก็คือข้อความธรรมดา สั้น ๆ คล้ายกับที่ใช้กันใน Twitter เช่น บนฟีด การตอบกลับ และการโควท&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ประเภทของ Event (Event Kinds)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;หมายเลขของ kind แต่ละตัวมีความหมายแตกต่างกัน ตัวอย่างเช่น 0 หมายถึงอีเวนต์ &amp;#34;ข้อมูลเมตา&amp;#34; ใช้สำหรับให้รายละเอียดเกี่ยวกับผู้ใช้ เช่น ชื่อและรูปโปรไฟล์ รีเลย์ (Relays) สามารถจัดการกับ kind ที่แตกต่างกันได้ เช่น รีเลย์มักจะลบอีเวนต์ kind:0 เวอร์ชันเก่ากว่าออกไป และเก็บไว้เฉพาะเวอร์ชันล่าสุด ในขณะที่โดยทั่วไปจะเก็บอีเวนต์ kind:1 ไว้หลายรายการสำหรับแต่ละคีย์&lt;/p&gt;

&lt;p&gt;โดยทั่วไปแล้ว คุณไม่จำเป็นต้องใช้ kind เกินกว่า 0 และ 1 ในการสร้างแอปพลิเคชันโซเชียลมีเดียบน Nostr แต่ kind อื่น ๆ ถูกคิดค้นขึ้นโดยไคลเอนต์ เพื่อมอบฟังก์ชันการทำงานอื่น ๆ ตามที่ระบุไว้ใน NIP บาง kind ไม่เกี่ยวข้องกับเครือข่าย และให้บริการตามความต้องการอื่น ๆ ของไคลเอนต์ที่เฉพาะเจาะจงกับฟังก์ชันการทำงานเหล่านั้น ซึ่งแนวคิดก็คือ สำหรับกรณีการใช้งานใหม่ ๆ แต่ละกรณี จะต้องมีการพิจารณาและเสนอซับโปรโตคอลเป็น NIP เพื่อให้สามารถทำงานร่วมกับไคลเอนต์ที่มีอยู่และในอนาคต ซึ่งอาจสนใจที่จะนำฟังก์ชันการทำงานนั้นไปใช้ ขณะเดียวกันก็มั่นใจได้ถึงความเข้ากันได้ย้อนหลัง และการรองรับสิ่งต่าง ๆ ที่มีอยู่และไม่ต้องการเปลี่ยนแปลง&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;คุณสมบัติอื่น ๆ ของ Event&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;created_at: เป็น Timestamp ของ UNIX ที่กำหนดโดยผู้สร้างอีเวนต์ โดยปกติจะเป็นเวลาที่สร้าง แม้ว่าจะไม่มีการตรวจสอบ แต่ก็ไม่ใช่ปัญหา&lt;/p&gt;

&lt;p&gt;content: ขึ้นอยู่กับความหมายของ kind ในกรณีของ kind:1 จะเป็นเพียงสตริงข้อความธรรมดาที่คนอื่น ๆ อ่านได้
tags: ขึ้นอยู่กับ kind เช่นกัน แต่แท็กทั่วไปบางอย่างที่มักปรากฏใน event kind:1 และ kind อื่น ๆ คือ &amp;#34;p&amp;#34; ซึ่งใช้เพื่อกล่าวถึงกุญแจสาธารณะ และ &amp;#34;e&amp;#34; ใช้เพื่ออ้างถึง event อื่น&lt;/p&gt;

&lt;h2 id=&#34;อยากม-ส-วนร-วมในการพ-ฒนาของ-nostr-2&#34;&gt;อยากมีส่วนร่วมในการพัฒนาของ Nostr ?&lt;/h2&gt;

&lt;p&gt;จริง ๆ แล้วใคร ๆ ก็สามารถเข้ามามีส่วนร่วมในการพัฒนา Nostr ได้ ไม่จำเป็นต้องเป็น dev หรือมีความรู้ด้านคอมพิวเตอร์ก็สามารถทำได้ ไม่ว่าจะเป็นการให้ feedback กับ dev ของ client ที่คุณใช้, การสร้างคอนเทนต์ต่าง ๆ บน Nostr การสร้างชุมชน รวมไปถึงการช่วย client ต่าง ๆ ในการทำ UI ให้เป็นภาษาท้องถิ่น และอื่น ๆ อีกมากมาย ใคร ๆ ก็สามารถช่วยได้ตามความสามารถที่แต่ละคนมี มันเลยทำให้ Nostr โครตน่าอยู่ :)&lt;/p&gt;
 &lt;/blockquote&gt;&lt;br/&gt;#siamstr
    </content>
    <updated>2024-08-19T02:50:33Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2m0m5xfaujqpu5yprc4ku58gf6mslg55lh9wweglnvjen2v2dkqqzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe26rgt2p</id>
    
      <title type="html">Event Event คืออะไร? Event เป็น object ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2m0m5xfaujqpu5yprc4ku58gf6mslg55lh9wweglnvjen2v2dkqqzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe26rgt2p" />
    <content type="html">
      Event &lt;br/&gt; Event คืออะไร?&lt;br/&gt;&lt;br/&gt;Event เป็น object เพียงประเภทเดียวที่มีอยู่บน Nostr โดยมีโครงสร้างประมาณนี้&lt;br/&gt;```&lt;br/&gt;{&amp;#34;id&amp;#34;:&amp;#34;84d5d3dc9c388a702f39cad6360d41ebb804e809fb822f110ff8a14dfd35fc6c&amp;#34;,&lt;br/&gt;&amp;#34;pubkey&amp;#34;:&amp;#34;66df60562d939ada8612436489945a4ecf1d62346b3d9478dea8a338f3203c64&amp;#34;,&lt;br/&gt;&amp;#34;created_at&amp;#34;:1722315959,&lt;br/&gt;&amp;#34;kind&amp;#34;:1,&lt;br/&gt;&amp;#34;tags&amp;#34;:[[&amp;#34;t&amp;#34;,&amp;#34;siamstr&amp;#34;]],&lt;br/&gt;&amp;#34;content&amp;#34;:&amp;#34;ไปสั่งกาแฟเมื่อกี้ พส เจ้าของร้านชมว่าเดี๋ยวนี้คล่องภาษาญี่ปุ่นแล้วนะ ไอเราก็ดีใจ พอเดินกลับถึงที่ทำงานละก็ตระหนักได้ว่า ตะกี้เราสั่ง “ไอซ์โคฮี โอเนไงชิมัส” “เทคเอาส์” “คาโดะเดสส” ไอบ้าไหนญี่ปุ่นก่อนอังกฤษทั้งนั้น 🤣🤣\n\n#siamstr&amp;#34;,&lt;br/&gt;&amp;#34;sig&amp;#34;:&amp;#34;8f066a0099a5f580b605ebdb220179c4eca298947c38b855a0a8bf2783f28ddb537cb74a7f61d3ce8891189f719870efdf320ea4f895e03cdac44284c450c5c4&amp;#34;}&lt;br/&gt;&lt;br/&gt;```&lt;br/&gt;อย่าง Event ข้างต้นนี้มี kind เป็น 1 ซึ่งหมายถึง &amp;#34;ข้อความโน้ต&amp;#34; ซึ่งก็คือข้อความธรรมดา สั้น ๆ คล้ายกับที่ใช้กันใน Twitter เช่น บนฟีด การตอบกลับ และการโควท&lt;br/&gt;&lt;br/&gt;ประเภทของ Event (Event Kinds)&lt;br/&gt;&lt;br/&gt;หมายเลขของ kind แต่ละตัวมีความหมายแตกต่างกัน ตัวอย่างเช่น 0 หมายถึงอีเวนต์ &amp;#34;ข้อมูลเมตา&amp;#34; ใช้สำหรับให้รายละเอียดเกี่ยวกับผู้ใช้ เช่น ชื่อและรูปโปรไฟล์ รีเลย์ (Relays) สามารถจัดการกับ kind ที่แตกต่างกันได้ เช่น รีเลย์มักจะลบอีเวนต์ kind:0 เวอร์ชันเก่ากว่าออกไป และเก็บไว้เฉพาะเวอร์ชันล่าสุด ในขณะที่โดยทั่วไปจะเก็บอีเวนต์ kind:1 ไว้หลายรายการสำหรับแต่ละคีย์&lt;br/&gt;&lt;br/&gt;โดยทั่วไปแล้ว คุณไม่จำเป็นต้องใช้ kind เกินกว่า 0 และ 1 ในการสร้างแอปพลิเคชันโซเชียลมีเดียบน Nostr แต่ kind อื่น ๆ ถูกคิดค้นขึ้นโดยไคลเอนต์ เพื่อมอบฟังก์ชันการทำงานอื่น ๆ ตามที่ระบุไว้ใน NIP บาง kind ไม่เกี่ยวข้องกับเครือข่าย และให้บริการตามความต้องการอื่น ๆ ของไคลเอนต์ที่เฉพาะเจาะจงกับฟังก์ชันการทำงานเหล่านั้น ซึ่งแนวคิดก็คือ สำหรับกรณีการใช้งานใหม่ ๆ แต่ละกรณี จะต้องมีการพิจารณาและเสนอซับโปรโตคอลเป็น NIP เพื่อให้สามารถทำงานร่วมกับไคลเอนต์ที่มีอยู่และในอนาคต ซึ่งอาจสนใจที่จะนำฟังก์ชันการทำงานนั้นไปใช้ ขณะเดียวกันก็มั่นใจได้ถึงความเข้ากันได้ย้อนหลัง และการรองรับสิ่งต่าง ๆ ที่มีอยู่และไม่ต้องการเปลี่ยนแปลง&lt;br/&gt;&lt;br/&gt;คุณสมบัติอื่น ๆ ของ Event&lt;br/&gt;&lt;br/&gt;created_at: เป็น Timestamp ของ UNIX ที่กำหนดโดยผู้สร้างอีเวนต์ โดยปกติจะเป็นเวลาที่สร้าง แม้ว่าจะไม่มีการตรวจสอบ แต่ก็ไม่ใช่ปัญหา&lt;br/&gt;&lt;br/&gt;content: ขึ้นอยู่กับความหมายของ kind ในกรณีของ kind:1 จะเป็นเพียงสตริงข้อความธรรมดาที่คนอื่น ๆ อ่านได้&lt;br/&gt;tags: ขึ้นอยู่กับ kind เช่นกัน แต่แท็กทั่วไปบางอย่างที่มักปรากฏในอีเวนต์ kind:1 และ kind อื่นๆ คือ &amp;#34;p&amp;#34; ซึ่งใช้เพื่อกล่าวถึงคีย์สาธารณะ และ &amp;#34;e&amp;#34; ใช้เพื่ออ้างถึงอีเวนต์อื่น&lt;br/&gt;&lt;br/&gt;อยากแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro/&#34;&gt;https://learnbn.npub.pro/&lt;/a&gt;
    </content>
    <updated>2024-08-18T05:43:24Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqqqp5kmnsg7ftt554lckqmt8myjdum2xj5d39sjzlezt3yw5tv5czypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2c72fnd</id>
    
      <title type="html">Nostr Implementation Possibilities (NIPs) NIP ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqqqp5kmnsg7ftt554lckqmt8myjdum2xj5d39sjzlezt3yw5tv5czypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2c72fnd" />
    <content type="html">
      Nostr Implementation Possibilities (NIPs)&lt;br/&gt;NIP คืออะไร?&lt;br/&gt;&lt;br/&gt;NIP มีไว้เพื่อส่งเสริมความสามารถในการทำงานของ Nostr และเป็นตัวคอยกำหนดให้ เหล่านักพัฒนาทำสิ่งต่าง ๆ ที่เหมือนกันในรูปแบบเดียวกัน เพราะมันคงไม่ใช่ความคิดที่ดีนัก หากนักพัฒนาแต่ละคนจะคิดค้นวิธีแก้ปัญหาทั่วไปของตัวเองและนำไปใช้ในแอปของตัวเองเท่านั้น และคงจะเป็นการดีกว่า ถ้าหากทุกคนใช้วิธีแก้ปัญหาที่เหมือนกัน นั่นคือเหตุผลที่ต้องมี NIP อยู่ในโปรโตคอลของ Nostr และในทำนองเดียวกัน แนวคิดใหม่อาจดูดีในแอปของนักพัฒนาบางราย แต่จะดูดียิ่งขึ้นอย่างแน่นอนหากแอปอื่น ๆ อีกมากมายใช้มาตรฐานเดียวกันและสามารถทำงานร่วมกันได้อย่างราบรื่น&lt;br/&gt;&lt;br/&gt;ทำไมมันถึงหน้าสนใจ?&lt;br/&gt;&lt;br/&gt;อย่าลืมว่า Nostr เป็นระบบแบบกระจายอำนาจและไม่ได้มีบริษัทหรือใครที่เป็นเจ้าของมัน อย่างเช่นโซเชียลมีเดียอื่น ๆ เช่น ทวิตเตอร์ อ่อไม่สิตอนนี้คงต้องเรียกมันว่า X สินะ ซึ่งหมายความว่าทิศทางของโพรโทคอล Nostr นั้นขึ้นอยู่กับพวกเราทุกคน! ไม่ว่าใคร ๆ ก็สามารถเสนอแนะและสนับสนุนการเปลี่ยนแปลงและให้ข้อเสนอแนะเกี่ยวกับแนวคิดที่ผู้อื่นเสนอ และการที่คุณเป็นส่วนหนึ่งของชุมชนนี้ ก็ทำให้คุณมีส่วนร่วมในทิศทางของ Nostr อีกด้วย&lt;br/&gt;&lt;br/&gt;จากที่ส่งหากันได้แค่ข้อความ มาเป็นรูปภาพ มาเป็นวิดีโอ และมาเป็น”เงิน” นี่คือเส้นทางการเดินทางของโปรโตคอลนี้ในอดีต แล้วในอนาคตมันจะพัฒนาไปยังไงต่อก็ขึ้นอยู่กับเหล่าผู้ใช้งานและนักพัฒนาในอนาคต แล้วทำไมสิ่งนี้ถึงจะไม่น่าสนใจละ ? &lt;br/&gt;&lt;br/&gt;อย่างแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro/&#34;&gt;https://learnbn.npub.pro/&lt;/a&gt;
    </content>
    <updated>2024-08-17T11:58:37Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqqqq860cwfw0svwsk3442qsknvn7cxkhrvdc3zeg7s6lsa3pf5qszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2q8cqt8</id>
    
      <title>Nostr event nevent1qqsqqqq860cwfw0svwsk3442qsknvn7cxkhrvdc3zeg7s6lsa3pf5qszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2q8cqt8</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqqqq860cwfw0svwsk3442qsknvn7cxkhrvdc3zeg7s6lsa3pf5qszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2q8cqt8" />
    <content type="html">
      รีเลย์คืออะไร?&lt;br/&gt;รีเลย์เปรียบเสมือนเซิร์ฟเวอร์ที่อยู่เบื้องหลังของ Nostr และทำหน้าที่รับ event ต่าง ๆ มาจากไคลเอนต์ Nostr และอาจจะจัดเก็บและกระจายข้อความเหล่านั้นไปยังไคลเอนต์อื่น ๆ ที่มีการเชื่อมต่ออยู่&lt;br/&gt;&lt;br/&gt;เทคโนโลยีของรีเลย์นั้นเปลี่ยนแปลงอย่างรวดเร็ว ดังนั้นคาดว่าจะมีการเปลี่ยนแปลงอีกมากมายในอนาคต อย่างในปัจจุบันที่มีการนำเสนอ bostr หรือ รีเลย์ที่จะคอยส่ง event ของเราต่อให้กับรีเลย์อื่น ๆ ที่มีการเชื่อมต่อ เพื่อช่วยลดภาระของไคลเอนต์ในการรับส่งข้อมูลจากหลาย ๆ รีเลย์พร้อม ๆ กัน หรืออย่างการป้องกันสแปมด้วย POW หรือประเภทที่สามารถเก็บรูปหรือวิดีโอที่มีขนาดใหญ่ได้&lt;br/&gt;&lt;br/&gt;แต่สิ่งหนึ่งที่ควรทราบก็คือ การที่ Nostr นั้นพยายามจะกระจายศูนย์และเหตุผลหลัก ๆ ที่สามารถทำแบบนั้นได้ก็ขึ้นอยู่กับรีเลย์ในการจัดเก็บและดึงข้อมูล ดังนั้น หากคุณรู้สึกว่าไคลเอนต์ Nostr ของคุณทำงานช้า ส่วนใหญ่ก็มักเกิดจากรีเลย์ที่คุณกำลังเชื่อมต่ออยู่ คุณอาจลองแก้ไขปัญญาโดยการเปลี่ยนหรือเพิ่มรีเลย์อีกสองสามรายการในไคลเอนต์ที่คุณใช้&lt;br/&gt;&lt;br/&gt;แล้วจะสามารถหารายการรีเลย์ได้จากไหน?&lt;br/&gt;&lt;br/&gt;การที่เราจะหารายการรีเลย์ที่เราควรเชื่อมต่อนั้น ๆ จริงแล้ว ๆ สามารถทำได้หลายวิธี แต่วิธีที่ผมแนะนำที่สุดจะเป็นการใช้ตามคนที่เราติดตามอยู่ เพราะจะเป็นวิธีที่เราสามารถเห็น event ต่าง ๆ ของคนที่เราติดตามได้ง่ายที่สุด และเช่นเดียวกัน เพื่อน ๆ หรือคนที่เราติดตามก็จะสามารถเห็น event ของเราได้เช่นกัน และสำหรับในประเทศไทย เรามีรีเลย์ที่คนไทยส่วนใหญ่นิยมใช้กันอยู่สองอัน นั้นคือ wss://relay.siamstr.com/ และ  wss://relay.notoshi.win/ ถ้าหากว่าอยากเห็นคนไทยเยอะ ๆ บนหน้าไทม์ไลน์ ผมแนะนำเป็นอย่างยิ่งว่าควรเพิ่ม รายการรีเลย์เหล่านี้ลงไปในบัชญีหรือไคลเอนต์ต่าง ๆ ที่คุณใช้ด้วย &lt;br/&gt;&lt;br/&gt;สำหรับอีกวิธีหนึ่งผมแนะนำให้เข้าไปในเว็บไซต์ nostr.watch เนื่องจากในเว็บไซต์นี้เป็นแหล่งข้อมูลที่ดีที่สุดสำหรับการค้นหาและประเมินความเร็วของรีเลย์ต่าง ๆ &lt;br/&gt;&lt;br/&gt;จะเกิดอะไรขึ้นถ้ารีเลย์ทั้งหมดที่ฉันเชื่อมต่ออยู่หยุดให้บริการ?&lt;br/&gt;&lt;br/&gt;สิ่งนี้เป็นสิ่งที่คุณต้องระวังมากที่สุดในการใช้งาน nostr เนื่องจากหากรีเลย์ทั้งหมดที่คุณเก็บข้อมูลไว้หยุดให้บริการทั้งหมดและคุณไม่มีการสำรองข้อมูล event ของคุณเก็บไว้เลย มันแปลว่าโพสต์ทั้งหมดของคุณ ผู้ติดตาม และรายการต่าง ๆ ที่คุณสรรค์สร้างไว้จะไม่สามารถกู้คืนได้ไปตลอดการ นี่จึงเป็นเหตุผลหลัก ๆ ที่ Nostr อนุญาตให้ผู้ใช้งานนั้นสามารถเชื่อมต่อกับรีเลย์ได้เป็นจำนวนมาก ก็เพื่อให้แน่ใจว่ามีข้อมูลสำรองเก็บไว้อยู่ที่ใดที่หนึ่งในระบบเสมอ แต่อย่างไรก็ตาม หากคุณต้องการที่จะมั่นใจได้ว่าข้อมูลต่าง ๆ ของคุณจะไม่ถูกเซ็นเซอร์ สิ่งที่คุณสามารถสามารถทำได้คือการใช้รีเลย์ส่วนตัวของคุณและกำหนดนโยบายต่าง ๆ ภายในรีเลย์ของคุณด้วยตัวคุณเอง&lt;br/&gt;&lt;br/&gt;แล้วฉันจะสามารถใช้รีเลย์ส่วนตัวได้อย่างไร?&lt;br/&gt;&lt;br/&gt;*อะแฮ่ม ๆ ขอบอกไว้ก่อนว่ามันไม่คุ้มค่ากับความยุ่งยากสำหรับคนโดยทั่ว ๆ ไป ถึงในปัจจุบันจะมีเทคโนโลยีบางตัวที่เข้ามาช่วยให้มันทำได้ง่ายขึ้นแล้วก็ตาม&lt;br/&gt;หากคุณต้องการที่จะสำรองข้อมูลนั้น การที่จะมีรีเลย์ส่วนตัวที่ออนไลน์ตลอดเวลาอาจเป็นเรื่องที่ไม่ได้จำเป็นขนาดนั้น เนื่องจากเราสามารถใช้งานบริการอย่าง &lt;a href=&#34;https://nostrsync.live/&#34;&gt;https://nostrsync.live/&lt;/a&gt; ในการดาวน์โหลดข้อมูลของเราจากรีเลย์ต่าง ๆ ได้ หรือการติดตั้งรีเลย์ส่วนตัวอย่าง nostr-relay-tray: &lt;a href=&#34;https://github.com/CodyTseng/nostr-relay-tray&#34;&gt;https://github.com/CodyTseng/nostr-relay-tray&lt;/a&gt; ที่ช่วยให้เราสามารถมีรีเลย์ส่วนตัวที่ใช้สำหรับสำรองข้อมูลได้ &lt;br/&gt;&lt;br/&gt;อย่างแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro/&#34;&gt;https://learnbn.npub.pro/&lt;/a&gt;
    </content>
    <updated>2024-08-16T05:31:53Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqqqv5xten0j4eldtuerjd3wm8ps2637jyzl35jxdcgcz5hstwgjczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2zvt7my</id>
    
      <title>Nostr event nevent1qqsqqqv5xten0j4eldtuerjd3wm8ps2637jyzl35jxdcgcz5hstwgjczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2zvt7my</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqqqv5xten0j4eldtuerjd3wm8ps2637jyzl35jxdcgcz5hstwgjczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2zvt7my" />
    <content type="html">
      ไคลเอนต์คืออะไร?&lt;br/&gt;&lt;br/&gt;หากจะอธิบายให้เห็นภาพอยากให้มองว่าไคลเอ็นต์ Nostr นั้นเป็นเหมือนกับแอปที่คุณใช้งานเพื่อเข้าถึง Twitter, Facebook, youtube เป็นต้น พวกมันคือ แอปพลิเคชัน, เว็บแอป ที่เชื่อมต่อคุณกับโลกของ Twitter, Facebook, youtube โดยตัวของไคลเอนต์ใน Nostr เองก็เปรียบเสมือนแอปต่าง ๆ ที่คุณใช้ดูหน้าฟีดนั่นเอง แต่ข้อดีของ Nostr ที่เหนือแอปพลิเคชันอื่น ๆ คือความเรียบง่ายและยืดหยุ่น ส่งผลให้ไคลเอ็นต์แต่ละตัวมีวิธีนำเสนอและใช้งานที่แตกต่างกันไป บางไคลเอ็นต์อาจออกแบบให้ใช้งานง่ายเหมือน Twitter บางตัวเน้นให้เห็นบทบาทสำคัญของรีเลย์ หรือโหนดที่กระจายข้อมูลอยู่ทั่วโลก บางตัวใช้ระบบอัลกอริทึมเพื่อให้แน่ใจว่าข้อมูลไม่ถูกปิดกั้น โดยไม่ทำให้ผู้ใช้งานรู้สึกยุ่งยาก&lt;br/&gt;&lt;br/&gt;เรียบง่ายและยืดหยุ่น?&lt;br/&gt;&lt;br/&gt;เนื่องจากการออกแบบของโปรโตคอลที่ทำการแยกข้อมูลของผู้ใช้ทั้งหมดออกจากไคลเอนต์ ทำให้ตัวของผู้ใช้งานเองนั้นมีอิสระเต็มที่ที่จะเลือกใช้ไคลเอนต์ต่าง ๆ เพื่อเข้าใช้งาน Nostr และแน่นอนว่า ผู้ใช้งานสามารถสลับหรือลงชื่อเข้าใช้ ไคลเอ็นต์ได้หลายตัวตามต้องการ ตราบใดที่ไคลเอ็นต์ทั้งหมดเชื่อมต่อกับชุดรีเลย์เดียวกัน คุณก็จะเห็นข้อมูลเดียวกันในทุก ๆ ไคลเอ็นต์&lt;br/&gt;&lt;br/&gt;ลงชื่อเข้าใช้ ไคลเอ็นต์หลาย ๆ ตัวแล้วจะกระทบต่อความปลอดภัยของแอคเคาร์ไหม?&lt;br/&gt;&lt;br/&gt;คำตอบของคำถามนี้นั้นขึ้นอยู่กับวิธีการที่คุณลงชื่อเข้าใช้ หากคุณลงชื่อเข้าใช้ด้วยกุญแจส่วนตัว ถึงแม้ว่าไคลเอ็นต์ส่วนใหญ่จะพยายามรักษาความปลอดภัยของกุญแจส่วนตัวอย่างดีที่สุด แต่ด้วยข้อจำกัดของซอฟต์แวร์ ย่อมมีความเสี่ยงที่จะเกิดช่องโหว่ การเจาะระบบ และข้อผิดพลาด ที่อาจทำให้กุญแจส่วนตัวของคุณรั่วไหลออกไปได้ ส่วนวิธีการป้องกันเกี่ยวกับเรื่องนี้คือการใช้ส่วนขยายของเว็บเบราว์เซอร์ เพราะการเข้าสู่ระบบในไคลเอนต์ต่าง ๆ ผ่านส่วนขยายนั้นจะใช้เพียงกุญแจสาธารณะในการเข้าสู่ระบบและทุกครั้งที่เราต้องการจะโพสต์หรือสร้าง event บน Nostr ไคลเอนต์จะทำการร่าง event นั้น ๆ และเว้นช่องของลายเซ็นเอาไว้จากนั้นเราจะต้องทำการเซ็นผ่านส่วนขยาย ด้วยวิธีนี้ทำให้กุญแจส่วนตัวของเราไม่หลุดออกไปไหนตลอดการใช้งาน&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;#siamstr&lt;br/&gt;อย่างแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro/&#34;&gt;https://learnbn.npub.pro/&lt;/a&gt;
    </content>
    <updated>2024-08-15T06:03:26Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqr4p258pjvadrpx5e9ezqvs82rmcuswg7d5myyrhs6ndh7g9patqzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2n2s0sz</id>
    
      <title>Nostr event nevent1qqsqr4p258pjvadrpx5e9ezqvs82rmcuswg7d5myyrhs6ndh7g9patqzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2n2s0sz</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqr4p258pjvadrpx5e9ezqvs82rmcuswg7d5myyrhs6ndh7g9patqzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2n2s0sz" />
    <content type="html">
      องค์ประกอบของโปรโตคอลที่ชื่อว่า Nostr&lt;br/&gt;&lt;br/&gt;หลังจากได้ทำความรู้จัก Nostr กันไปแล้วเมื่อคราวก่อน คราวนี้เรามาเจาะดูองค์ประกอบของโปรโตคอลนี้กันดีกว่า&lt;br/&gt;&lt;br/&gt;Keys ระบบบัญชีผู้ใช้และรหัสผ่านสำหรับ Nostr&lt;br/&gt;&lt;br/&gt;บัญชี Nostr แต่ละบัญชีจะใช้คู่กุญแจสาธารณะ/ส่วนตัว (Public/Private Key ) เปรียบเทียบง่าย ๆ คือ กุญแจสาธารณะของคุณคือชื่อผู้ใช้ และกุญแจส่วนตัวก็เป็นรหัสผ่าน แต่ว่า ก็มีข้อแตกต่างที่สำคัญอยู่ นั่นคือ กุญแจส่วนตัวของคุณนั้นจะไม่สามารถรีเซ็ตได้หากเกิดการสูญหายขึ้น คุณจะเสียบัญชีนั้นไปตลอดกาล&lt;br/&gt;โดยทั่วไปแล้ว กุญแจสาธารณะจะแสดงเป็นข้อความที่ขึ้นต้นด้วย npub1 และกุญแจส่วนตัวจะขึ้นต้นด้วย nsec1 &lt;br/&gt;ทั้งนี้คุณควรที่จะตรวจสอบให้แน่ใจว่าคุณได้เก็บกุญแจส่วนตัวของคุณไว้ในที่ปลอดภัย เช่น โปรแกรมจัดการรหัสผ่านอย่างเช่น Bitwarden&lt;br/&gt;โปรโตคอลกับไคลเอนต์ ต่างกันอย่างไร?&lt;br/&gt;&lt;br/&gt;Nostr เองเป็นเพียงโปรโตคอล หมายความว่า Nostr นั้นเป็นเพียงกระบวนการที่ตกลงกันไว้สำหรับการส่งข้อความผ่านอินเทอร์เน็ต (เหมือนข้อกำหนด)&lt;br/&gt;&lt;br/&gt;ซึ่งการที่คุณจะเข้าถึง Nostr (โปรโตคอล) นั้น ผู้ใช้ส่วนใหญ่จะใช้งานผ่านไคลเอนต์  ซึ่งตัวของไคลเอนต์นั้นอาจเป็นเว็บ แอปพลิเคชันเดสก์ท็อป หรือ แอปพลิเคชันมือถือ โดยไคลเอนต์สามารถดึงข้อมูลจากรีเลย์ และสร้างข้อมูลใหม่ และส่งข้อมูลนั้นไปยังรีเลย์เพื่อให้ผู้ใช้คนอื่น ๆ สามารถเรียกอ่าน ข้อมูลนั้น ๆ ได้ โดย &amp;#34;ข้อมูล&amp;#34; เพียงรูปแบบเดียวที่มีอยู่ใน Nostr คือสิ่งที่เราเรียกกันว่า event&lt;br/&gt;&lt;br/&gt;การพิสูจน์ความเป็นเจ้าของข้อมูลบน Nostr&lt;br/&gt;&lt;br/&gt;บน Nostr นั้นการพิสูจน์ตัวตนเป็นเรื่องที่ง่ายมากเนื่องจากทุก ๆ event ที่เกิดขึ้น *จำเป็น*ต้องมีลายเซ็นดิจิทัล (Digital Signature) โดยลายเซ็นนั้นจะช่วยให้มั่นใจได้ว่า ใครเป็นผู้สร้าง event นั้น ๆ ขึ้นมา โดยการพิสูจน์ทางคณิตศาสตร์&lt;br/&gt;&lt;br/&gt;โดยในการสร้างลายเซ็นแต่ละครั้ง ไคลเอนต์จะจำเป็นต้องใช้กุญแจส่วนตัวของคุณ โดยทั่วไปแล้ว แอปพลิเคชันเจะมีที่ให้คุณใส่กุญแจส่วนตัวของคุณ เมื่อเปิดแอปพลิเคชันครั้งแรก พวกเขาสามารถคำนวณกุญแจสาธารณะของคุณได้จากกุญแจส่วนตัวเช่นกัน&lt;br/&gt;&lt;br/&gt;ส่วนในกรณีที่คุณใช้งานผ่านเว็บแอป ผมไม่แนะนำให้ใส่กุญแจส่วนตัวลงไป แต่แนะนำให้ใช้ส่วนขยายของเบราว์เซอร์ ที่ใช้งานฟังก์ชันที่เกี่ยวข้องกับ Nostr ซึ่งอนุญาตให้เว็บไคลเอ็นต์ส่ง event ที่ยังไม่ถูกเซ็นมาให้ส่วนขยายและส่วนขยายจะทำหน้าที่เซ็น สำหรับวิธีนี้ เว็บไคลเอ็นต์ต่าง ๆ ไม่จำเป็นต้องรู้กุญแจส่วนตัวของคุณ แต่คุณก็ยังสามารถลงนามใน event ต่าง ๆ ได้ตามปกติ โดยส่วนขยายที่ได้รับความนิยมก็จะเป็น Flamingo, Alby และ nos2x&lt;br/&gt;&lt;br/&gt;#siamstr&lt;br/&gt;อย่างแชร์ไปให้คนที่ไม่ได้อยู่บน Nostr อ่านอย่างงั้นเหรอ !?!?!?!? งั้นทางเราขอแนะนำ: &lt;a href=&#34;https://learnbn.npub.pro/&#34;&gt;https://learnbn.npub.pro/&lt;/a&gt;&lt;br/&gt;
    </content>
    <updated>2024-08-14T05:37:50Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqrcs89gyygveg8v752jz05ujf5s2w4lz8cu0f7xfp5vqhesf055gzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2hlv30t</id>
    
      <title>Nostr event nevent1qqsqrcs89gyygveg8v752jz05ujf5s2w4lz8cu0f7xfp5vqhesf055gzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2hlv30t</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqrcs89gyygveg8v752jz05ujf5s2w4lz8cu0f7xfp5vqhesf055gzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2hlv30t" />
    <content type="html">
      Nostr: โปรโตคอลทางเลือกใหม่สำหรับโซเชียลมีเดียที่เป็นอิสระ ปลอดภัย และไร้การควบคุม&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Nostr คือโปรโตคอลแบบเปิดที่เรียบง่าย ซึ่งช่วยให้สามารถสร้างโซเชียลมีเดียระดับโลกที่กระจายอำนาจและป้องกันการเซ็นเซอร์ได้ &lt;br/&gt;&lt;br/&gt;จากที่กล่าวข้างต้น เราสามารถพูดได้ว่า Nostr นั้นถูกออกแบบมาให้ใช้งานง่าย โดยมีเป้าหมายหลัก ๆ เพื่อสร้างเครือข่ายโซเชียลระดับโลกที่ปราศจากการเซ็นเซอร์ แล้วทำไมมันถึงทำอย่างนั้นได้? ในจุดนี้เราก็ต้องมาเจาะดูคุณสมบัติหลัก ๆ ของโปรโตคอลที่เรียกว่า Nostr กันก่อน:&lt;br/&gt;&lt;br/&gt;เรียบง่าย&lt;br/&gt;   - โปรโตคอลนี้ใช้โครงสร้างข้อมูลแบบ Event Object ที่เรียบง่ายและยืดหยุ่น (ซึ่งส่งเป็น JSON ธรรมดา) และใช้การเข้ารหัส แบบ Elliptic-curve มาตรฐานสำหรับคีย์และลายเซ็น&lt;br/&gt;   - ช่องทางการสื่อสารที่รองรับเพียงอย่างเดียวคือการเชื่อมต่อ WebSockets จากไคลเอนต์ไปยังรีเลย์&lt;br/&gt;   - การออกแบบนี้ทำให้ง่ายต่อการพัฒนาไม่ว่าจะไคลเอนต์หรือรีเลย์ และยังช่วยส่งเสริมความหลากหลายของซอฟต์แวร์&lt;br/&gt;&lt;br/&gt;ยืดหยุ่น&lt;br/&gt;   - เนื่องจาก Nostr ไม่ได้พึ่งพาเซิร์ฟเวอร์ที่เชื่อถือได้เพียงจำนวนหยิบมือ สำหรับการเคลื่อนย้ายหรือจัดเก็บข้อมูล แต่ใช้เซิร์ฟเวอร์จำนวนมหาศาลและกระจายตัวอยู่ทั่วโลก จึงมีความยืดหยุ่นสูง และมีการกระจายศูนย์อย่างแท้จริง&lt;br/&gt;   - โปรโตคอลนี้ถูกออกแบบมาโดยคำนึงถึงความเป็นไปได้ที่รีเลย์จะหายไป และอนุญาตให้ผู้ใช้เชื่อมต่อและเผยแพร่ข้อมูลไปยัง &lt;br/&gt;   - รีเลย์จำนวนมากได้ตามต้องการ และยังสามารถเปลี่ยนแปลงได้ตลอดเวลาอีกด้วย&lt;br/&gt;&lt;br/&gt;ตรวจสอบได้&lt;br/&gt;   - เนื่องจากบัญชี Nostr ใช้การเข้ารหัสแบบ PKE จึงง่ายต่อการตรวจสอบว่าข้อความถูกส่งมาจากผู้ใช้ที่ระบุจริงหรือไม่&lt;br/&gt;&lt;br/&gt;เช่นเดียวกับ HTTP หรือ TCP-IP Nostr เป็นโปรโตคอลหรือมาตรฐานแบบเปิดที่ทุกคนสามารถนำไปสร้างต่อยอดได้ มันไม่ใช่แอปหรือบริการที่คุณจำเป็นต้องลงทะเบียน&lt;br/&gt;&lt;br/&gt;แล้วทำไมเราถึงต้องการ Nostr?&lt;br/&gt;โซเชียลมีเดียได้พัฒนาเป็นช่องทางสำคัญในการไหลเวียนของข้อมูลทั่วโลก แต่น่าเสียดายที่ระบบโซเชียลมีเดียในปัจจุบันของเรานั้นมีข้อบกพร่องมากมาย:&lt;br/&gt;   1. ใช้ความสนใจของคุณเพื่อขายโฆษณา&lt;br/&gt;   2. ใช้เทคนิคแปลกๆ เพื่อทำให้คุณเสพติด (อ้างอิงจากข้อ 1)&lt;br/&gt;   3. ตัดสินใจว่าจะแสดงเนื้อหาใดให้คุณเห็นโดยใช้อัลกอริทึมลับที่คุณไม่สามารถตรวจสอบหรือเปลี่ยนแปลงได้&lt;br/&gt;   4. ควบคุมอย่างเต็มที่ว่าใครสามารถเข้าร่วมและใครถูกเซ็นเซอร์&lt;br/&gt;   5. เต็มไปด้วยสแปมและบอท&lt;br/&gt;&lt;br/&gt;ด้วยข้อจำกัดเหล่านี้ Nostr จึงเป็นทางเลือกที่น่าสนใจในการสร้างโซเชียลมีเดียที่เป็นอิสระ ปลอดภัย และไร้การควบคุม&lt;br/&gt;&lt;br/&gt;#siamstr
    </content>
    <updated>2024-08-12T07:44:09Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsgeapvthjxc8xdle7960c3xjq8gjn7x5842f89qhstuznvf5f3ehszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe22djqlk</id>
    
      <title type="html">อะแฮ่ม ๆ ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsgeapvthjxc8xdle7960c3xjq8gjn7x5842f89qhstuznvf5f3ehszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe22djqlk" />
    <content type="html">
      อะแฮ่ม ๆ รวมโน๊ตทั้งหมดที่เกี่ยวกับ BTC whitepaper มาแล้ว อ่านทีเดียวยาว ๆ ได้เลย เย้&lt;br/&gt;#siamstr&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzq7gq3eup4hk8vlxgugum2vldevv75t3xp7fgr2gjt6f5yh06eyu4qyv8wumn8ghj7un9d3shjtnnd9sk6um5wghxxmmd9uq32amnwvaz7tmjv4kxz7fwv3sk6atn9e5k7tcqz4ck5cj5fakhxmntvfyk236ht9qkwstzxgeq489nk8&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…9nk8&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; 
&lt;h2 id=&#34;ระบบเง-นอ-เล-กทรอน-กส-แบบ-peer-to-peer-2&#34;&gt;ระบบเงินอิเล็กทรอนิกส์แบบ peer-to-peer&lt;/h2&gt;

&lt;p&gt;ระบบเงินอิเล็กทรอนิกส์แบบ peer-to-peer นั้นจะช่วยให้เราสามารถชำระเงินผ่านทางออนไลน์ได้โดยตรงจากฝ่ายหนึ่งไปยังอีกฝ่ายหนึ่งโดยไม่ต้องผ่านตัวกลางอย่างพวกสถาบันการเงิน โดยใช้ digital signature เป็นส่วนหนึ่งในการแก้ปัญหานี้ แต่มันจะไม่มีประโยชน์ใด ๆ เลยหากยังคงต้องอาศัยตัวกลางที่เชื่อถือได้มาแก้ปัญหา double spending เราขอเสนอวิธีแก้ปัญหา double spending โดยใช้เครือข่ายแบบ peer-to-peer ให้เครือข่ายคอยประทับเวลาธุรกรรมต่าง ๆ ในระบบและนำมาเรียงร้อยกันเป็นเส้นสายของ proof-of-work ที่ใช้ hash เพื่อสร้างธุรกรรมที่ไม่สามารถเปลี่ยนแปลงได้ โดยไม่ต้องทำ proof-of-work ใหม่ โดยให้เส้นสายที่ยาวที่สุดนั้น ไม่เพียงแต่ทำหน้าที่เป็นลำดับของธุรกรรมที่เกิดขึ้นเท่านั้น แต่ยังเป็นสิ่งที่พิสูจน์ได้ว่ามาจากกำลังประมวลผล CPU ที่มากที่สุด และตราบใดที่ nodes ส่วนใหญ่ไม่ได้ร่วมมือกันโจมตีเครือข่ายและยังคงควบคุมกำลังประมวลผลส่วนใหญ่ในระบบไว้ พวกเขาก็จะสร้างเส้นสายที่ยาวที่สุดและสามารถเอาชนะผู้ประสงค์ร้ายที่จะโจมตีระบบได้ ตัวเครือข่ายเองไม่ได้ต้องมีโครงสร้างอะไรที่ซับซ้อน ข้อมูลต่าง ๆ ในเครือข่ายจะถูกกระจายส่งต่อโดยไม่ต้องสนใจว่าผู้รับจะได้รับหรือไม่ และ nodes ต่าง ๆ เองก็สามารถที่จะออกจากเครือข่ายและกลับเข้าร่วมใหม่ได้ตามที่ต้องการ โดยยอมรับเส้น proof-of-work ที่ยาวที่สุด เป็นหลักฐานของสิ่งที่เกิดขึ้นในขณะที่ node นั้น ๆ ไม่ได้อยู่ในเครือข่าย&lt;/p&gt;

&lt;h2 id=&#34;1-บทนำ-introduction-2&#34;&gt;1.บทนำ (Introduction)&lt;/h2&gt;

&lt;p&gt;ไม่ว่าใครจะใคร่ซื้อใคร่ขายอะไรใด ๆ บนอินเตอร์เน็ตนั้น ก็จำเป็นต้องพึ่งพาสถาบันการเงินในฐานะของบุคคลที่สามเพื่อดำเนินการชำระเงินทางอิเล็กทรอนิกส์เสมอ ๆ  ซึ่งถึงแม้ว่าระบบนี้มันจะทำงานได้ดีสำหรับธุรกรรมส่วนใหญ่ ๆ แต่ระบบก็ก็มีจุดอ่อนอยู่ที่ยังต้องอาศัยความไว้เนื้อเชื่อใจ (trust) ในระบบนี้การทำธุรกรรมที่ไม่สามารถย้อนกลับได้อย่างสมบูรณ์นั้นมันแทบจะเป็นไปไม่ได้เลย เนื่องจากสถาบันการเงินไม่สามารถหลีกเลี่ยงการเป็นตัวกลางในการไกล่เกลี่ยข้อพิพาทต่าง ๆ ที่อาจเกิดขึ้นได้ มิหนำซ้ำต้นทุนในการไกล่เกลี่ยยังทำให้ต้นทุนการทำธุรกรรมเพิ่มสูงขึ้น และเมื่อต้นทุนสูงขึ้นขนาดของธุรกรรมที่สามารถใช้งานได้จริงก็สูงขึ้นตามไปด้วย ธุรกรรมเล็ก ๆ น้อย ๆ ก็ไม่สามารถเกิดขึ้นได้ เมื่อมีความเป็นไปได้ที่ธุรกรรมจะเกิดการย้อนกลับ ความจำเป็นในการสร้างความไว้วางใจก็ยิ่งทวีคูณมากขึ้น ผู้ค้าก็จำเป็นต้องระมัดระวังลูกค้า ต้องเรียกร้องข้อมูลมากกว่าที่จำเป็น การฉ้อโกงกลายเป็นเรื่องที่หลีกเลี่ยงไม่ได้เพราะต้นทุนและความไม่แน่นอนในทำธุรกรรมเหล่านี้ แน่นอนว่าเราสามารถหลีกเลี่ยงมันได้โดยการใช้เงินสด แต่ก็ไม่มีกลไกใดที่ทำให้สามารถใช้เงินสดผ่านช่องทางการสื่อสาร (เอาให้เข้าใจง่ายก็อินเตอร์เน็ต)ได้ โดยไม่ต้องมีตัวกลาง ;-;&lt;/p&gt;

&lt;p&gt;แปลว่าสิ่งที่จำเป็นสำหรับการแก้ไขปัญหานี้คือระบบการชำระเงินทางอิเล็กทรอนิกส์ ที่อยู่บนพื้นฐานของการพิสูจน์ด้วยการเข้ารหัสแทนที่จะเป็นความไว้วางใจ ซึ่งจะทำให้คู่สัญญาสองฝ่ายที่ยินยอมสามารถทำธุรกรรมร่วมกันได้โดยตรง โดยไม่จำเป็นต้องมีบุคคลที่สามมาคอยเป็นตัวกลาง ธุรกรรมที่ยากต่อการย้อนกลับจะช่วยปกป้องผู้ขายจากการฉ้อโกง และสามารถใช้กลไก escrow เพื่อปกป้องผู้ซื้อได้อีกด้วย ในเอกสารชุดนี้ เราขอเสนอวิธีแก้ปัญหาการใช้จ่ายซ้ำซ้อนโดยใช้เซิร์ฟเวอร์ timestamp กระจายศูนย์แบบ peer-to-peer เพื่อสร้างหลักฐานการคำนวณลำดับเวลาของธุรกรรม โดยระบบนี้จะปลอดภัยตราบใดที่กลุ่มของ node ที่ซื่อสัตย์ ยังคงมีกำลังประมวลผลที่มากกว่ากลุ่มที่ประสงค์ร้ายกับระบบ&lt;/p&gt;

&lt;h2 id=&#34;2-ธ-รกรรม-transactions-2&#34;&gt;2.ธุรกรรม (Transactions)&lt;/h2&gt;

&lt;p&gt;นิยามของเหรียญอิเล็กทรอนิกส์ในที่นี้ คือห่วงโซ่ที่คล้องเกี่ยวกันของ digital signature โดยที่เจ้าของเหรียญอิเล็กทรอนิกส์จะโอนเหรียญไปยังเจ้าของคนถัดไป ด้วยการลง digital signature บน hash ของธุรกรรมก่อนหน้ารวมถึงกุญแจสาธารณะของเจ้าของคนถัดไป และผนวกมันไว้ที่ส่วนท้ายของธุรกรรม และผู้รับเงินเองก็สามารถตรวจสอบลายเซ็นเพื่อยืนยันความเป็นเจ้าของได้&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://image.nostr.build/a467896797a9fb9f98c3c234f0adb4df2376f2c3d9a7cc9d8672d7a9f5aa9efa.png&#34;&gt;https://image.nostr.build/a467896797a9fb9f98c3c234f0adb4df2376f2c3d9a7cc9d8672d7a9f5aa9efa.png&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;เราจึงต้องการวิธีการที่ทำให้ผู้รับเงินทราบได้ว่าเจ้าของคนก่อน ๆ ไม่ได้ลงนามในธุรกรรมใด ๆ มาก่อน เพื่อให้บรรลุวัตถุประสงค์นี้ เราจะทำการนับว่าธุรกรรมที่เกิดขึ้นก่อนเป็นธุรกรรมที่ถูกต้อง และจะไม่สนใจความพยายามใด ๆ ในการที่จะใช้เหรียญนั้น ๆ ซ้ำอีก และวิธีเดียวที่ทำแบบนี้ได้ คือการรับรู้ถึงธุรกรรมทั้งหมด เช่นเดียวกับโมเดลที่ได้กล่าวข้างต้น ที่ตัวกลางจะรับรู้ถึงธุรกรรมทั้งหมดและตัดสินว่าธุรกรรมใดมาก่อนมาหลัง เพื่อให้บรรลุเป้าหมายนี้โดยไม่ต้องมีบุคคลที่สามที่เชื่อถือได้ ธุรกรรมทั้งหมดจะต้องถูกประกาศต่อสาธารณะ [1] และเราต้องการระบบที่ผู้เข้าร่วมเห็นพ้องในประวัติธุรกรรมชุดเดียวกันตามลำดับที่ได้รับ ส่วนผู้รับเงินก็จำเป็นจะต้องมีหลักฐานว่า ในขณะที่ทำธุรกรรม &amp;#34;โหนด&amp;#34; ส่วนใหญ่ในระบบเห็นพ้องต้องกันว่าธุรกรรมนั้นได้รับเป็นลำดับแรก(ไม่มีธุรกรรมที่ใช้เหรียญพวกนี้มาก่อน)&lt;/p&gt;

&lt;h2 id=&#34;3-ระบบบ-นท-กเวลา-timestamp-server-2&#34;&gt;3.ระบบบันทึกเวลา (Timestamp Server)&lt;/h2&gt;

&lt;p&gt;สำหรับแนวทางการแก้ปัญหาในครั้งนี้ เราจะใช้ประโยชน์จาก timestamp server ที่จะทำหน้าที่บันทึก hash ของบล๊อกที่ต้องการให้มีการบันทึกเวลา และจากนั้นจะทำการเผยแพร่ hash ดังกล่าว เหมือนกับหนังสือพิมพ์หรือโพสต์ใน Usenet 2-5 การบันทึกเวลานี้จะพิสูจน์ได้ว่าข้อมูลที่ถูก hash นั้นจะต้องมีอยู่จริงในเวลานั้นเพื่อให้ได้มาซึ่ง hash ดังกล่าว แต่ละการบันทึกเวลาจะรวมการบันทึกเวลาของหน้านี้ไว้ใน hash ของมันเพื่อสร้างเป็น chain โดยการบันทึกเวลาแต่ละครั้งจะยืนยันความถูกต้องของการบันทึกก่อนหน้าได้อีกด้วยด้วย&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://image.nostr.build/ddf92417c45dbb6e25da0af80a10d4cdbc3e725d047d65f54a3e3bfcf358c4d6.png&#34;&gt;https://image.nostr.build/ddf92417c45dbb6e25da0af80a10d4cdbc3e725d047d65f54a3e3bfcf358c4d6.png&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&#34;4-พร-ฟ-ออฟ-เว-ร-ค-proof-of-work-2&#34;&gt;4.พรูฟ-ออฟ-เวิร์ค (Proof-of-Work)&lt;/h2&gt;

&lt;p&gt;ในการสร้าง Timestamp Server แบบกระจายศูนย์บนพื้นฐานแบบ peer to peer เราจำเป็นต้องใช้ระบบ Proof-of-Work (PoW) ที่คล้ายกับ Hashcash ของ Adam Back [6] แทนที่จะใช้วิธีการแบบเดิม ๆ อย่างการประกาศในหนังสือพิมพ์หรือ Usenet โดย PoW ใช้ในการตรวจสอบค่าที่มาจากกระบวนการ hash เช่น SHA-256 แล้ว ผลลัพธ์ที่ได้ (Hash) จะขึ้นต้นด้วยเลขศูนย์จำนวนหนึ่ง โดยที่ work (ประมาณว่าพลังประมวลผล) ที่ต้องใช้จะเพิ่มขึ้นแบบทวีคูณตามจำนวนเลขศูนย์ที่ต้องการ และสามารถตรวจสอบได้โดยการรัน Hash เพียงครั้งเดียว&lt;/p&gt;

&lt;p&gt;ซึ่งสำหรับ timestamp network ของเรานั้น เราใช้ PoW โดยการเพิ่มค่า Nonce ในบล็อกไปเรื่อย ๆ จนกว่าจะพบค่าที่ทำให้ Hash ของบล็อกนั้นมีเลขศูนย์ตามที่กำหนด และเมื่อใช้กำลังประมวลผลของ CPU ไปกับการทำ PoW จนสำเร็จแล้ว บล็อกจะไม่สามารถเปลี่ยนแปลงได้ หากไม่มีการทำงานซ้ำใหม่ เนื่องจากบล็อกที่สร้างขึ้นภายหลังจะเชื่อมโยงกับบล็อกก่อนหน้า การเปลี่ยนแปลงบล็อกใด ๆ จะต้องทำ PoW ของบล็อกนั้นและบล็อกที่ตามมาใหม่ทั้งหมด&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://image.nostr.build/c039ef4ca6833cb1ecee65ac5991df2406be9b7e490b86b3b19f94f267767182.png&#34;&gt;https://image.nostr.build/c039ef4ca6833cb1ecee65ac5991df2406be9b7e490b86b3b19f94f267767182.png&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;นอกจากนี้ PoW ยังช่วยแก้ปัญหาของเสียงส่วนมากที่มาตัดสินใจในระบบนี้ เพราะหากเสียงข้างมากอ้างอิงจากหลักการหนึ่ง IP หนึ่งเสียง ใครก็ตามที่สามารถสร้าง IP ได้จำนวนมากก็จะสามารถควบคุมระบบได้ จึงใช้หลักการหนึ่ง CPU หนึ่งเสียงแทน การตัดสินใจของเสียงข้างมากจะแสดงด้วย Chain ที่ยาวที่สุด ซึ่งบ่งบอกถึงความพยายามในการคำนวณ (Proof-of-Work) ที่มากที่สุด หาก Node ที่ซื่อสัตย์ (Honest nodes) มีกำลังประมวลผลของ CPU ส่วนใหญ่อยู่ในการควบคุม Honest Chain ก็จะเติบโตเร็วที่สุดและแซงหน้า Chain อื่น ๆ ได้ ผู้โจมตีที่ต้องการแก้ไขบล็อกในอดีตจะต้องทำ Proof-of-Work ของบล็อกนั้นและบล็อกที่ตามมาใหม่ทั้งหมด และต้องทำงานให้เร็วกว่า Honest Node ด้วย ซึ่งโอกาสที่ผู้โจมตีจะตามทันนั้นจะลดลงแบบทวีคูณเมื่อมีการเพิ่มบล็อกมากขึ้น&lt;/p&gt;

&lt;p&gt;เพื่อชดเชยความเร็วของฮาร์ดแวร์ที่เพิ่มขึ้นและความสนใจในการรัน Node ที่ผันผวน ระดับความยากของ Proof-of-Work จะถูกกำหนดโดยค่าเฉลี่ย โดยตั้งเป้าไว้ที่จำนวนบล็อกเฉลี่ยต่อชั่วโมง หากสร้างบล็อกได้เร็วเกินไป ระดับความยากก็จะเพิ่มขึ้น&lt;/p&gt;

&lt;h2 id=&#34;5-เคร-อข-าย-network-2&#34;&gt;5.เครือข่าย (Network)&lt;/h2&gt;

&lt;p&gt;เครือข่ายนั้นมีการทำงาน ดังนี้&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;การประกาศธุรกรรมใหม่: ธุรกรรมใหม่จะถูกประกาศ (broadcast) ไปยังทุก node ในเครือข่าย&lt;/li&gt;
&lt;li&gt;การรวบรวมธุรกรรม: แต่ละ node จะรวบรวมธุรกรรมใหม่ ๆ เหล่านี้ ไว้ในบล็อก&lt;/li&gt;
&lt;li&gt;การค้นหา Proof-of-Work: แต่ละ node จะทำการคำนวณ เพื่อค้นหา Proof-of-Work ตามค่า difficulty สำหรับบล็อกนั้น ๆ&lt;/li&gt;
&lt;li&gt;การประกาศบล็อก: เมื่อ node ใดค้นหา Proof-of-Work ได้แล้ว node นั้นจะทำการประกาศบล็อกไปยังทุก node ในเครือข่าย&lt;/li&gt;
&lt;li&gt;การตรวจสอบและยอมรับบล็อก: node อื่น ๆ จะทำการตรวจสอบและยอมรับบล็อกนั้น เฉพาะเมื่อธุรกรรมทั้งหมดภายในบล็อกนั้นถูกต้องและยังไม่ถูกใช้มาก่อน&lt;/li&gt;
&lt;li&gt;การสร้างบล็อกถัดไป: node ต่าง ๆ แสดงการยอมรับบล็อกโดยการเริ่มต้นสร้างบล็อกถัดไปใน chain ด้วย hash ของบล็อกที่ยอมรับ เป็น hash ก่อนหน้าในโครงสร้างของบล๊อกใหม่ที่กำลังสร้าง&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;node ต่าง ๆ จะถือว่า chain ที่ยาวที่สุดเป็น chain ที่ถูกต้องและจะทำงานเพื่อขยาย chain นั้นต่อไป หากมีสอง node ที่ได้ประกาศบล็อกเวอร์ชันที่แตกต่างกันในเวลาพร้อมกัน node บาง node อาจได้รับบล็อกหนึ่งก่อน อีกบล็อกหนึ่ง ในกรณีนี้ node เหล่านั้น จะทำงานบนบล็อกที่ได้รับก่อน แต่จะเก็บสำเนาของบล็อกอีกอันหนึ่งไว้ ในกรณีที่บล็อกนั้น กลายเป็นบล็อกที่อยู่ใน chain ที่ยาวกว่าปัญหาข้อโต้แย้งนี้ก็จะได้รับการแก้ไข เมื่อพบ Proof-of-Work อันถัดไปและ chain ใด chain หนึ่งยาวขึ้น node ที่กำลังทำงานอยู่บน chain ที่สั้นกว่าก็จะเปลี่ยนไปทำงานบน chain ที่ยาวกว่าแทน&lt;/p&gt;

&lt;p&gt;การประกาศธุรกรรมใหม่ ไม่จำเป็นต้องไปถึงทุก node ในเครือข่าย ตราบใดที่พวกเขายังไปถึง node ส่วนใหญ่ในระบบได้ ธุรกรรมเหล่านั้นก็จะถูกบรรจุอยู่ในบล็อกในไม่ช้า นอกจากนี้การประกาศบล็อกยังไม่ต้องกังวลเรื่องจะมีบล๊อกที่สูญหาย เนื่องจากหากว่า node ไม่ได้รับบล็อกใด ๆ  node ก็จะตระหนักได้ว่าพลาดบล็อกก่อนหน้าไปเมื่อได้รับบล๊อกใหม่มา และ node จะทำการร้องขอ block ที่ขาดไปจากเครือข่าย&lt;/p&gt;

&lt;h2 id=&#34;6-แรงจ-งใจ-incentive-2&#34;&gt;6.แรงจูงใจ(Incentive)&lt;/h2&gt;

&lt;p&gt;โดยปกติแล้ว ธุรกรรมแรกของแต่ละบล๊อกนั้นจะเป็นธุรกรรมพิเศษที่จะขุดเหรียญที่สร้างขึ้นใหม่ซึ่งเป็นกรรมสิทธิ์ของผู้สร้างบล็อกนั้น ๆ ซึ่งจะเป็นการเพิ่มแรงจูงใจให้กับ node ต่าง ๆ ในการสนับสนุนเครือข่าย และเป็นวิธีการกระจายเหรียญให้หมุนเวียน เนื่องจากไม่มีหน่วยงานส่วนกลางที่ทำหน้าที่ในการออกเหรียญ การเพิ่มเหรียญใหม่ในปริมาณคงที่อย่างต่อเนื่องนั้นคล้ายคลึงกับการที่คนงานเหมืองทองคำใช้แรง และ เวลา เพื่อเพิ่มทองคำให้หมุนเวียน ในกรณีนี้ คือ เวลา กำลังประมวลผล และไฟฟ้าที่ถูกใช้ไป&lt;/p&gt;

&lt;p&gt;นอกจากนี้แรงจูงใจจะมาจากค่าธรรมเนียมการทำธุรกรรม หากมูลค่าผลลัพธ์ของธุรกรรมน้อยกว่ามูลค่าที่ใส่เข้ามา ส่วนต่างนั้นก็คือค่าธรรมเนียมการทำธุรกรรมที่จะเพิ่มเข้าไปในมูลค่าแรงจูงใจของบล็อกที่มีธุรกรรมนั้น เมื่อเหรียญทั้งหมดในระบบมีจำนวนเท่ากับที่กำหนดไว้แล้ว  แรงจูงใจหลักก็จะถูกเปลี่ยนมาเป็นค่าธรรมเนียมการทำธุรกรรม และปราศจากภาวะเงินเฟ้อโดยสิ้นเชิง&lt;/p&gt;

&lt;p&gt;แรงจูงใจอาจช่วยกระตุ้นให้ node ต่าง ๆ ยังคงซื่อสัตย์ หากผู้โจมตีที่ละโมบสามารถรวบรวมกำลังประมวลผล ได้มากกว่า node ที่ซื่อสัตย์ทั้งหมด เขาจะต้องเลือกระหว่างการใช้มันเพื่อฉ้อโกงผู้อื่นโดยการใช้จ่ายซ้ำซ้อน หรือใช้มันเพื่อสร้างเหรียญใหม่ พวกเขาจะพบว่าการเล่นตามกฎ กฎที่เอื้อประโยชน์ให้กับเขาด้วยเหรียญใหม่มากกว่าคนอื่น ๆ รวมกันนั้นทำกำไรได้มากกว่าการบ่อนทำลายระบบและความถูกต้องของทรัพย์สินของเขาเอง&lt;/p&gt;

&lt;h2 id=&#34;7-การจ-ดการพ-นท-ด-สก-reclaiming-disk-space-2&#34;&gt;7.การจัดการพื้นที่ดิสก์(Reclaiming Disk Space)&lt;/h2&gt;

&lt;p&gt;เมื่อธุรกรรมถูกบรรจุลงในบล๊อกแล้ว สามารถกำจัดธุรกรรมที่ใช้ไปแล้วก่อนหน้านั้นออกได้เพื่อประหยัดพื้นที่ดิสก์ แต่การจะทำอย่างนี้ได้โดยไม่ให้เลข hash ของบล๊อกมีการเปลี่ยนแปลงนั้น ธุรกรรมจึงจำเป็นต้องถูก hash ในรูปแบบของ Merkle Tree [7][2][5] โดยมีแค่ root node ของ tree เท่านั้นที่จะรวมอยู่ใน hash ของบล๊อก นี่เป็นวิธีที่ทำให้สามารถบีบอัดข้อมูลในบล๊อกเก่า ๆ ได้โดยการตัดพวก hash ส่วนอื่น ๆ ของ tree ที่ไม่ใช่ root node ออก (ไม่จำเป็นต้องเก็บ hash ในชั้นอื่น ๆ ของ tree)&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://image.nostr.build/3ed95334891d91baca3f3f6f624a7ae22620be4ebfe0db5eb652cfce11255b9a.png&#34;&gt;https://image.nostr.build/3ed95334891d91baca3f3f6f624a7ae22620be4ebfe0db5eb652cfce11255b9a.png&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;โดยในส่วน header ของบล็อกที่ไม่มีธุรกรรมจะมีขนาดประมาณ 80 ไบต์ หากเราสมมติว่าบล็อกถูกสร้างขึ้นทุก ๆ 10 นาที 80 ไบต์ * 6 * 24 * 365 = 4.2MB ต่อปี โดยที่ระบบคอมพิวเตอร์ทั่วไปที่วางขายในปี 2551 มี RAM 2GB และกฎของมัวร์ทำนายการเติบโตในปัจจุบันที่ 1.2GB ต่อปี การจัดเก็บข้อมูลไม่น่าจะเป็นปัญหาแม้ว่าส่วนหัวของบล็อกจะต้องถูกเก็บไว้ในหน่วยความจำก็ตาม&lt;/p&gt;

&lt;h2 id=&#34;8-การตรวจสอบธ-รกรรม-simplified-payment-verification-2&#34;&gt;8.การตรวจสอบธุรกรรม (Simplified Payment Verification)&lt;/h2&gt;

&lt;p&gt;การที่จะยืนยันการชำระเงินโดยไม่จำเป็นต้องรัน full node ได้นั้น ผู้ใช้เพียงแค่เก็บสำเนาของส่วนหัวบล็อก (block header) ของสายบล็อก (chain) ที่ยาวที่สุด ซึ่งสามารถรับได้โดยการสอบถามจาก node อื่น ๆ ในเครือข่ายจนมั่นใจว่าได้รับสายที่ยาวที่สุด และรับ Merkle branch ที่เชื่อมโยงธุรกรรมกับบล็อกที่มีการประทับเวลา (Timestamp) อยู่ ถึงแม้ผู้ใช้จะไม่สามารถตรวจสอบธุรกรรมด้วยตัวเองได้ แต่การเชื่อมโยงธุรกรรมกับตำแหน่งในสายบล็อกจะทำให้เห็นว่า node ในเครือข่ายยอมรับแล้ว และบล็อกที่เพิ่มเข้ามาหลังจากนั้นเป็นการยืนยันเพิ่มเติมว่าเครือข่ายยอมรับธุรกรรมนี้แล้ว&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://i.imgur.com/VXtLpRF.png&#34;&gt;https://i.imgur.com/VXtLpRF.png&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;การตรวจสอบดังกล่าวจะเชื่อถือได้ตราบใดที่ node ที่ซื่อสัตย์ยังคงควบคุมเครือข่าย แต่จะมีความเสี่ยงมากขึ้นหากเครือข่ายถูกโจมตีและถูกควบคุม ในขณะที่ node ในเครือข่ายสามารถตรวจสอบธุรกรรมได้ด้วยตัวเอง แต่วิธีการแบบง่ายนี้อาจถูกหลอกลวงโดยการใช้ธุรกรรมปลอมของผู้โจมตี ตราบใดที่ผู้โจมตียังคงสามารถควบคุมเครือข่ายได้ กลยุทธ์หนึ่งในการป้องกันปัญหานี้คือ การรับการแจ้งเตือนจาก node อื่น ๆ ในเครือข่ายเมื่อตรวจพบบล็อกที่ไม่ถูกต้อง ซึ่งจะแจ้งให้ซอฟต์แวร์ของผู้ใช้ดาวน์โหลดบล็อกแบบเต็มและธุรกรรมที่แจ้งเตือน เพื่อยืนยันความไม่สอดคล้องกัน ธุรกิจที่ได้รับการชำระเงินบ่อยครั้งอาจยังคงต้องการรัน node ของตนเอง เพื่อความปลอดภัยที่เป็นอิสระและการตรวจสอบที่รวดเร็วยิ่งขึ้น&lt;/p&gt;

&lt;h2 id=&#34;9-การควบรวมและแบ-งย-อยม-ลค-า-combining-and-splitting-value-2&#34;&gt;9.การควบรวมและแบ่งย่อยมูลค่า(Combining and Splitting Value)&lt;/h2&gt;

&lt;p&gt;แม้ว่าการจัดการเหรียญหลาย ๆ เหรียญจะเป็นสิ่งที่สามารถทำได้ แต่การจัดการธุรกรรมแยกต่างหากสำหรับแต่ละเหรียญในการโอนก็คงเป็นเรื่องที่น่าปวดหัวอยู่ดี ฉะนั้นแล้วเพื่อให้สามารถแยกและรวมมูลค่ากันได้ ธุรกรรมจึงสามารถมี input และ output ได้หลายรายการ ซึ่งโดยปกติแล้วจะมี input เดียวจากธุรกรรมก่อนหน้าที่มีขนาดใหญ่กว่า หรือ input จำนวนเล็ก ๆ หลาย ๆ รายการ และ output ไม่เกินสองรายการ คือ รายการหนึ่งสำหรับการชำระเงิน และอีกหนึ่งรายการสำหรับการส่งเงินทอน หากมีกลับไปยังผู้ส่ง&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://image.nostr.build/9c6d3ce0e9f08c5b3fa3b82c2088ac6235603e5c0df3469060e6c9f74bce32fc.png&#34;&gt;https://image.nostr.build/9c6d3ce0e9f08c5b3fa3b82c2088ac6235603e5c0df3469060e6c9f74bce32fc.png&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ควรสังเกตว่า fan-out (กระจายของธุรกรรม) ซึ่งเป็นกรณีที่ธุรกรรม ธุรกรรมหนึ่งนั้นขึ้นอยู่กับหลายธุรกรรม และธุรกรรมเหล่านั้นเองก็ขึ้นอยู่กับอีกหลายธุรกรรม แต่ไม่ใช่ปัญหาในที่นี้ เพราะไม่มีความจำเป็นในการดึงประวัติการทำธุรกรรมทั้งหมดออกมาเป็นสำเนา&lt;/p&gt;

&lt;h2 id=&#34;10-ความเป-นส-วนต-ว-privacy-2&#34;&gt;10.ความเป็นส่วนตัว(Privacy)&lt;/h2&gt;

&lt;p&gt;ในรูปแบบธนาคารแบบดั้งเดิมนั้น ความเป็นส่วนตัวเกิดขึ้นได้ด้วยการจำกัดการเข้าถึงข้อมูล โดยให้เฉพาะผู้ที่เกี่ยวข้องและบุคคลที่สามที่ได้รับความไว้วางใจเท่านั้น แต่เนื่องจากในระบบนี้เรามีความจำเป็นในการประกาศธุรกรรมทั้งหมดต่อสาธารณะ ทำให้ไม่สามารถใช้วิธีนี้ได้ แต่ยังจำเป็นต้องคงความเป็นส่วนตัวไว้ โดยการแบ่งการไหลของข้อมูล ด้วยการไม่เปิดเผยตัวตนของเจ้าของ public key คนทั่วไปสามารถเห็นว่ามีคนกำลังส่งเงินจำนวนหนึ่งให้กับคนอื่น แต่จะไม่ทราบข้อมูลที่เชื่อมโยงธุรกรรมนั้นกับบุคคลใด ๆ ซึ่งคล้ายกับระดับข้อมูลที่เปิดเผยโดยตลาดหลักทรัพย์ ซึ่งมีการเปิดเผยเวลาและขนาดของการซื้อขายแต่ละครั้งต่อสาธารณะ แต่ไม่ได้ระบุว่าคู่สัญญาคือใคร&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://image.nostr.build/6ec3c84c7878dbd4558d2045518384daf5a341e86f4194cf367cc8426c2d72a7.png&#34;&gt;https://image.nostr.build/6ec3c84c7878dbd4558d2045518384daf5a341e86f4194cf367cc8426c2d72a7.png&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;เพื่อเสริมในเรื่องของความปลอดภัย ควรใช้ key pair ใหม่สำหรับการทำธุรกรรมในแต่ละครั้ง เพื่อป้องกันไม่ให้เชื่อมโยงกับเจ้าของคนเดียวกันได้ อย่างไรก็ตาม การเชื่อมโยงบางอย่างยังคงหลีกเลี่ยงไม่ได้ ในธุรกรรมที่มี input หลายรายการ ซึ่งจำเป็นต้องเปิดเผยว่า input เหล่านั้นเป็นของเจ้าของคนเดียวกัน ความเสี่ยงก็คือ หากมีการเปิดเผยตัวตนของเจ้าของคีย์ การเชื่อมโยงอาจเปิดเผยธุรกรรมอื่น ๆ ที่เป็นของเจ้าของรายเดียวกันได้&lt;/p&gt;

&lt;h2 id=&#34;11-การคำนวณ-calculations-2&#34;&gt;11.การคำนวณ(Calculations)&lt;/h2&gt;

&lt;p&gt;หากลองพิจารณาสถานการณ์ที่ผู้โจมตีพยายามสร้าง chain ปลอมให้เร็วกว่า chain จริง แม้ว่าจะทำได้สำเร็จ แต่มันก็ไม่สามารถทำให้ระบบเปิดรับการเปลี่ยนแปลงตามอำเภอใจได้อยู่ดี เช่น การสร้างมูลค่าจากอากาศธาตุ หรือการรับเงินที่ไม่เคยเป็นของผู้โจมตีมาก่อน Node ต่าง ๆ จะไม่ยอมรับธุรกรรมที่ไม่ถูกต้องเป็นการชำระเงิน และ Node ที่สุจริตก็จะไม่ยอมรับบล็อกที่มีธุรกรรมเหล่านั้นอย่างแน่นอน ผู้โจมตีทำได้เพียงพยายามเปลี่ยนแปลงธุรกรรมของตนเอง เพื่อนำเงินที่ใช้ไปแล้วกลับคืนมาเท่านั้น&lt;/p&gt;

&lt;p&gt;การแข่งขันระหว่าง chain สุจริตกับ chain ของผู้โจมตี สามารถอธิบายได้ด้วยแบบจำลองการเดินสุ่มทวินาม (Binomial Random Walk) โดยเหตุการณ์ที่สำเร็จ หมายถึง chain ที่สุจริตถูกขยายออกไปอีกหนึ่งบล็อก เพิ่มความยาวนำหน้าไป &#43;1 และเหตุการณ์ที่ล้มเหลว หมายถึง chain ของผู้โจมตีถูกขยายออกไปหนึ่งบล็อก ลดช่องว่างลง -1&lt;/p&gt;

&lt;p&gt;ความน่าจะเป็นที่ผู้โจมตีจะไล่ตามทันจากช่องว่างที่กำหนด สามารถเปรียบเทียบด้วย Gambler&amp;#39;s Ruin problem โดยสมมติว่านักพนันที่มีเครดิตไม่จำกัด เริ่มต้นด้วยการขาดทุน และเล่นพนันไปเรื่อย ๆ เพื่อให้ถึงจุดคุ้มทุน เราสามารถคำนวณความน่าจะเป็นที่เขาจะกลับมาถึงจุดคุ้มทุนได้ หรือความน่าจะเป็นที่ผู้โจมตีจะไล่ทัน chain ที่สุจริตได้ ดังนี้ [8]:&lt;/p&gt;

&lt;p&gt;p = ความน่าจะเป็นที่ Node ที่สุจริตจะพบบล็อกถัดไป
q = ความน่าจะเป็นที่ผู้โจมตีจะพบบล็อกถัดไป
qz = ความน่าจะเป็นที่ผู้โจมตีจะไล่ทัน จากที่ตามหลังอยู่ z บล็อก&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://i.imgur.com/vePe255.png&#34;&gt;https://i.imgur.com/vePe255.png&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;จากสมมติฐานที่ว่า p &amp;gt; q ความน่าจะเป็นจะลดลงแบบเอกซ์โพเนนเชียล เมื่อจำนวนบล็อกที่ผู้โจมตีต้องไล่ตามทันเพิ่มขึ้น หากเขาไม่สามารถพุ่งขึ้นนำได้อย่างรวดเร็วตั้งแต่แรก โอกาสของเขาก็จะลดลงจนน้อยมาก ๆ เมื่อเขาตามหลังมากขึ้นเรื่อย ๆ&lt;/p&gt;

&lt;p&gt;ทีนี้ลองพิจารณาว่า ผู้รับธุรกรรมใหม่ต้องรอเป็นเวลานานเท่าใด จึงจะแน่ใจได้ว่าผู้ส่งไม่สามารถเปลี่ยนแปลงธุรกรรมได้แล้ว เราสมมติว่าผู้ส่งเป็นผู้โจมตี ที่ต้องการให้ผู้รับเชื่อว่าเขาได้รับเงินไปแล้ว จากนั้นจึงเปลี่ยนให้เงินกลับเข้าหาตัวเองหลังจากเวลาผ่านไประยะหนึ่ง ผู้รับจะได้รับแจ้งเมื่อเกิดเหตุการณ์นี้ขึ้น แต่ผู้ส่งหวังว่ามันจะสายเกินไปแล้ว&lt;/p&gt;

&lt;p&gt;ผู้รับจะสร้างคู่กุญแจใหม่ และให้กุญแจสาธารณะแก่ผู้ส่งไม่นานก่อนที่จะลงนาม ซึ่งจะป้องกันไม่ให้ผู้ส่งเตรียมบล็อกเชนปลอมไว้ล่วงหน้า โดยการทำงานอย่างต่อเนื่องจนกว่าเขาจะมีโอกาสได้บล็อกที่ยาวพอ จากนั้นจึงดำเนินธุรกรรมในทันที เมื่อส่งธุรกรรมแล้ว ผู้ส่งที่ไม่สุจริตจะเริ่มทำงานอย่างลับ ๆ บนบล็อกเชนคู่ขนาน ที่มีธุรกรรมในเวอร์ชันของเขาเองอยู่&lt;/p&gt;

&lt;p&gt;ผู้รับจะรอจนกว่าธุรกรรมจะถูกเพิ่มลงในบล็อก และมีบล็อกที่ถูกเชื่อมต่อตามหลังมาอีก z บล็อก เขาไม่ทราบจำนวนความคืบหน้าที่แน่นอนที่ผู้โจมตีได้ทำไปแล้ว แต่สมมติว่าบล็อกที่สุจริตใช้เวลาเฉลี่ยต่อบล็อกตามที่คาดไว้ ความคืบหน้าที่อาจเกิดขึ้นได้ของผู้โจมตีจะเป็นการแจกแจงแบบปัวซง (Poisson distribution) ซึ่งมีค่าคาดหวังดังนี้:&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://i.imgur.com/mYsb48i.png&#34;&gt;https://i.imgur.com/mYsb48i.png&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;เพื่อให้ได้ความน่าจะเป็นที่ผู้โจมตียังคงสามารถไล่ทันได้ เราจะคูณความหนาแน่นของปัวซง สำหรับความคืบหน้าแต่ละระดับที่เขาสามารถทำได้ ด้วยความน่าจะเป็นที่เขาสามารถไล่ทันจากจุดนั้น:&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://i.imgur.com/jQGkQ8r.png&#34;&gt;https://i.imgur.com/jQGkQ8r.png&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;จัดเรียงใหม่เพื่อหลีกเลี่ยง infinite tail ของการแจกแจง&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://i.imgur.com/OOO6Gm9.png&#34;&gt;https://i.imgur.com/OOO6Gm9.png&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;แปลงมันให้เป็น C code&lt;/p&gt;

&lt;p&gt;#include &amp;lt;math.h&amp;gt;
double AttackerSuccessProbability(double q, int z)
{
     double p = 1.0 - q;
     double lambda = z * (q / p);
     double sum = 1.0;
     int i, k;
         for (k = 0; k &amp;lt;= z; k&#43;&#43;)
         {
             double poisson = exp(-lambda);
             for (i = 1; i &amp;lt;= k; i&#43;&#43;)
                 poisson *= lambda / i;
                 sum -= poisson * (1 - pow(q / p, z - k));
         }
 return sum;
}&lt;/p&gt;

&lt;p&gt;เมื่อรันผลลัพธ์บางส่วน เราจะเห็นว่าความน่าจะเป็นลดลงแบบเอกซ์โพเนนเชียลเมื่อ z เพิ่มขึ้น&lt;/p&gt;

&lt;p&gt;q=0.1
z=0 P=1.0000000
z=1 P=0.2045873
z=2 P=0.0509779
z=3 P=0.0131722
z=4 P=0.0034552
z=5 P=0.0009137
z=6 P=0.0002428
z=7 P=0.0000647
z=8 P=0.0000173
z=9 P=0.0000046
z=10 P=0.0000012
q=0.3
z=0 P=1.0000000
z=5 P=0.1773523
z=10 P=0.0416605
z=15 P=0.0101008
z=20 P=0.0024804
z=25 P=0.0006132
z=30 P=0.0001522
z=35 P=0.0000379
z=40 P=0.0000095
z=45 P=0.0000024
z=50 P=0.0000006&lt;/p&gt;

&lt;p&gt;การแก้หาค่า P ที่น้อยกว่า 0.1%...&lt;/p&gt;

&lt;p&gt;P &amp;lt; 0.001
q=0.10 z=5
q=0.15 z=8
q=0.20 z=11
q=0.25 z=15
q=0.30 z=24
q=0.35 z=41
q=0.40 z=89
q=0.45 z=340&lt;/p&gt;

&lt;p&gt;12.สรุป(Conclusion)&lt;/p&gt;

&lt;p&gt;เราได้นำเสนอระบบธุรกรรมอิเล็กทรอนิกส์ที่ไม่ต้องพึ่งพาความไว้วางใจ เริ่มต้นจากกรอบแนวคิดของเหรียญที่สร้างจากลายเซ็นดิจิทัล ซึ่งช่วยควบคุมความเป็นเจ้าของได้อย่างดีแต่ก็ยังไม่สมบูรณ์ หากปราศจากวิธีการป้องกันการใช้จ่ายซ้ำซ้อน เพื่อแก้ปัญหานี้ เราจึงเสนอเครือข่ายแบบเพียร์ทูเพียร์ที่ใช้ proof-of-work ในการบันทึกประวัติธุรกรรมสาธารณะ ซึ่งจะกลายเป็นเรื่องยากอย่างมากสำหรับผู้โจมตีที่จะเปลี่ยนแปลง หาก node ที่ซื่อสัตย์ควบคุมพลังประมวลผล CPU ส่วนใหญ่ เครือข่ายนี้มีความแข็งแกร่งในความเรียบง่ายที่ไม่มีโครงสร้างใด ๆ ที่ซับซ้อน node ต่าง ๆ ทำงานพร้อมกันโดยประสานงานกันเพียงเล็กน้อย ไม่จำเป็นต้องระบุตัวตน เนื่องจากข้อความไม่ได้ถูกส่งไปยังสถานที่ใดสถานที่หนึ่งโดยเฉพาะ และเพียงแค่ต้องส่งมอบให้ถึงมือผู้รับอย่างดีที่สุด  node สามารถออกจากและเข้าร่วมเครือข่ายได้ตามต้องการ โดยยอมรับ chain ที่มี proof-of-work มากที่สุดเป็นสิ่งที่เกิดขึ้นในขณะที่ไม่ได้เชื่อมต่อ พวกเขาโหวตด้วยพลังประมวลผล CPU แสดงการยอมรับบล็อกที่ถูกต้องโดยการทำงานเพื่อขยายบล็อก และปฏิเสธบล็อกที่ไม่ถูกต้องโดยการปฏิเสธที่จะทำงานกับบล็อกเหล่านั้น กฎและแรงจูงใจใด ๆ ที่จำเป็นสามารถบังคับใช้ได้ด้วยกลไกฉันทามตินี้&lt;/p&gt;

&lt;h2 id=&#34;ไปอ-านต-อก-นเองเด-ออ-2&#34;&gt;ไปอ่านต่อกันเองเด้ออ&lt;/h2&gt;

&lt;p&gt;[1] W. Dai, &amp;#34;b-money,&amp;#34; &lt;a href=&#34;http://www.weidai.com/bmoney.txt&#34;&gt;http://www.weidai.com/bmoney.txt&lt;/a&gt;, 1998.
[2] H. Massias, X.S. Avila, and J.-J. Quisquater, &amp;#34;Design of a secure timestamping service with minimal
trust requirements,&amp;#34; In 20th Symposium on Information Theory in the Benelux, May 1999.
[3] S. Haber, W.S. Stornetta, &amp;#34;How to time-stamp a digital document,&amp;#34; In Journal of Cryptology, vol 3, no
2, pages 99-111, 1991.
[4] D. Bayer, S. Haber, W.S. Stornetta, &amp;#34;Improving the efficiency and reliability of digital time-stamping,&amp;#34;
In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993.
[5] S. Haber, W.S. Stornetta, &amp;#34;Secure names for bit-strings,&amp;#34; In Proceedings of the 4th ACM Conference
on Computer and Communications Security, pages 28-35, April 1997.
[6] A. Back, &amp;#34;Hashcash - a denial of service counter-measure,&amp;#34;
&lt;a href=&#34;http://www.hashcash.org/papers/hashcash.pdf&#34;&gt;http://www.hashcash.org/papers/hashcash.pdf&lt;/a&gt;, 2002.
[7] R.C. Merkle, &amp;#34;Protocols for public key cryptosystems,&amp;#34; In Proc. 1980 Symposium on Security and
Privacy, IEEE Computer Society, pages 122-133, April 1980.
[8] W. Feller, &amp;#34;An introduction to probability theory and its applications,&amp;#34; 1957.&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2024-08-09T07:01:17Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxtrc6htyldeyaqrmjhgnz4n45dq8mfdhxx6sd3h0sykgsv6h7efqzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe20dudrn</id>
    
      <title type="html">12. Conclusion ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxtrc6htyldeyaqrmjhgnz4n45dq8mfdhxx6sd3h0sykgsv6h7efqzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe20dudrn" />
    <content type="html">
      12. Conclusion&lt;br/&gt;&lt;br/&gt;เราได้นำเสนอระบบธุรกรรมอิเล็กทรอนิกส์ที่ไม่ต้องพึ่งพาความไว้วางใจ เริ่มต้นจากกรอบแนวคิดของเหรียญที่สร้างจากลายเซ็นดิจิทัล ซึ่งช่วยควบคุมความเป็นเจ้าของได้อย่างดีแต่ก็ยังไม่สมบูรณ์ หากปราศจากวิธีการป้องกันการใช้จ่ายซ้ำซ้อน เพื่อแก้ปัญหานี้ เราจึงเสนอเครือข่ายแบบเพียร์ทูเพียร์ที่ใช้ proof-of-work ในการบันทึกประวัติธุรกรรมสาธารณะ ซึ่งจะกลายเป็นเรื่องยากอย่างมากสำหรับผู้โจมตีที่จะเปลี่ยนแปลง หาก node ที่ซื่อสัตย์ควบคุมพลังประมวลผล CPU ส่วนใหญ่ เครือข่ายนี้มีความแข็งแกร่งในความเรียบง่ายที่ไม่มีโครงสร้างใด ๆ ที่ซับซ้อน node ต่าง ๆ ทำงานพร้อมกันโดยประสานงานกันเพียงเล็กน้อย ไม่จำเป็นต้องระบุตัวตน เนื่องจากข้อความไม่ได้ถูกส่งไปยังสถานที่ใดสถานที่หนึ่งโดยเฉพาะ และเพียงแค่ต้องส่งมอบให้ถึงมือผู้รับอย่างดีที่สุด  node สามารถออกจากและเข้าร่วมเครือข่ายได้ตามต้องการ โดยยอมรับ chain ที่มี proof-of-work มากที่สุดเป็นสิ่งที่เกิดขึ้นในขณะที่ไม่ได้เชื่อมต่อ พวกเขาโหวตด้วยพลังประมวลผล CPU แสดงการยอมรับบล็อกที่ถูกต้องโดยการทำงานเพื่อขยายบล็อก และปฏิเสธบล็อกที่ไม่ถูกต้องโดยการปฏิเสธที่จะทำงานกับบล็อกเหล่านั้น กฎและแรงจูงใจใด ๆ ที่จำเป็นสามารถบังคับใช้ได้ด้วยกลไกฉันทามตินี้&lt;br/&gt;&lt;br/&gt;#siamstr
    </content>
    <updated>2024-08-08T12:14:36Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqqzvqdgg9fuuzcr7vu4s33r32r7jwk4cf4fquc3rs7zc49zzezlszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe258uws7</id>
    
      <title type="html">11. Calculations ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqqzvqdgg9fuuzcr7vu4s33r32r7jwk4cf4fquc3rs7zc49zzezlszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe258uws7" />
    <content type="html">
      11. Calculations&lt;br/&gt;&lt;br/&gt;หากลองพิจารณาสถานการณ์ที่ผู้โจมตีพยายามสร้าง chain ปลอมให้เร็วกว่า chain จริง แม้ว่าจะทำได้สำเร็จ แต่มันก็ไม่สามารถทำให้ระบบเปิดรับการเปลี่ยนแปลงตามอำเภอใจได้อยู่ดี เช่น การสร้างมูลค่าจากอากาศธาตุ หรือการรับเงินที่ไม่เคยเป็นของผู้โจมตีมาก่อน Node ต่าง ๆ จะไม่ยอมรับธุรกรรมที่ไม่ถูกต้องเป็นการชำระเงิน และ Node ที่สุจริตก็จะไม่ยอมรับบล็อกที่มีธุรกรรมเหล่านั้นอย่างแน่นอน ผู้โจมตีทำได้เพียงพยายามเปลี่ยนแปลงธุรกรรมของตนเอง เพื่อนำเงินที่ใช้ไปแล้วกลับคืนมาเท่านั้น&lt;br/&gt;&lt;br/&gt;การแข่งขันระหว่าง chain สุจริตกับ chain ของผู้โจมตี สามารถอธิบายได้ด้วยแบบจำลองการเดินสุ่มทวินาม (Binomial Random Walk) โดยเหตุการณ์ที่สำเร็จ หมายถึง chain ที่สุจริตถูกขยายออกไปอีกหนึ่งบล็อก เพิ่มความยาวนำหน้าไป &#43;1 และเหตุการณ์ที่ล้มเหลว หมายถึง chain ของผู้โจมตีถูกขยายออกไปหนึ่งบล็อก ลดช่องว่างลง -1&lt;br/&gt;&lt;br/&gt;ความน่าจะเป็นที่ผู้โจมตีจะไล่ตามทันจากช่องว่างที่กำหนด สามารถเปรียบเทียบด้วย Gambler&amp;#39;s Ruin problem โดยสมมติว่านักพนันที่มีเครดิตไม่จำกัด เริ่มต้นด้วยการขาดทุน และเล่นพนันไปเรื่อย ๆ เพื่อให้ถึงจุดคุ้มทุน เราสามารถคำนวณความน่าจะเป็นที่เขาจะกลับมาถึงจุดคุ้มทุนได้ หรือความน่าจะเป็นที่ผู้โจมตีจะไล่ทัน chain ที่สุจริตได้ ดังนี้ [8]:&lt;br/&gt;&lt;br/&gt;p = ความน่าจะเป็นที่ Node ที่สุจริตจะพบบล็อกถัดไป&lt;br/&gt;q = ความน่าจะเป็นที่ผู้โจมตีจะพบบล็อกถัดไป&lt;br/&gt;qz = ความน่าจะเป็นที่ผู้โจมตีจะไล่ทัน จากที่ตามหลังอยู่ z บล็อก&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://i.imgur.com/vePe255.png&#34;&gt; &lt;br/&gt;&lt;br/&gt;จากสมมติฐานที่ว่า p &amp;gt; q ความน่าจะเป็นจะลดลงแบบเอกซ์โพเนนเชียล เมื่อจำนวนบล็อกที่ผู้โจมตีต้องไล่ตามทันเพิ่มขึ้น หากเขาไม่สามารถพุ่งขึ้นนำได้อย่างรวดเร็วตั้งแต่แรก โอกาสของเขาก็จะลดลงจนน้อยมาก ๆ เมื่อเขาตามหลังมากขึ้นเรื่อย ๆ&lt;br/&gt;&lt;br/&gt;ทีนี้ลองพิจารณาว่า ผู้รับธุรกรรมใหม่ต้องรอเป็นเวลานานเท่าใด จึงจะแน่ใจได้ว่าผู้ส่งไม่สามารถเปลี่ยนแปลงธุรกรรมได้แล้ว เราสมมติว่าผู้ส่งเป็นผู้โจมตี ที่ต้องการให้ผู้รับเชื่อว่าเขาได้รับเงินไปแล้ว จากนั้นจึงเปลี่ยนให้เงินกลับเข้าหาตัวเองหลังจากเวลาผ่านไประยะหนึ่ง ผู้รับจะได้รับแจ้งเมื่อเกิดเหตุการณ์นี้ขึ้น แต่ผู้ส่งหวังว่ามันจะสายเกินไปแล้ว&lt;br/&gt;&lt;br/&gt;ผู้รับจะสร้างคู่กุญแจใหม่ และให้กุญแจสาธารณะแก่ผู้ส่งไม่นานก่อนที่จะลงนาม ซึ่งจะป้องกันไม่ให้ผู้ส่งเตรียมบล็อกเชนปลอมไว้ล่วงหน้า โดยการทำงานอย่างต่อเนื่องจนกว่าเขาจะมีโอกาสได้บล็อกที่ยาวพอ จากนั้นจึงดำเนินธุรกรรมในทันที เมื่อส่งธุรกรรมแล้ว ผู้ส่งที่ไม่สุจริตจะเริ่มทำงานอย่างลับ ๆ บนบล็อกเชนคู่ขนาน ที่มีธุรกรรมในเวอร์ชันของเขาเองอยู่&lt;br/&gt;&lt;br/&gt;ผู้รับจะรอจนกว่าธุรกรรมจะถูกเพิ่มลงในบล็อก และมีบล็อกที่ถูกเชื่อมต่อตามหลังมาอีก z บล็อก เขาไม่ทราบจำนวนความคืบหน้าที่แน่นอนที่ผู้โจมตีได้ทำไปแล้ว แต่สมมติว่าบล็อกที่สุจริตใช้เวลาเฉลี่ยต่อบล็อกตามที่คาดไว้ ความคืบหน้าที่อาจเกิดขึ้นได้ของผู้โจมตีจะเป็นการแจกแจงแบบปัวซง (Poisson distribution) ซึ่งมีค่าคาดหวังดังนี้:&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://i.imgur.com/mYsb48i.png&#34;&gt; &lt;br/&gt;&lt;br/&gt;เพื่อให้ได้ความน่าจะเป็นที่ผู้โจมตียังคงสามารถไล่ทันได้ เราจะคูณความหนาแน่นของปัวซง สำหรับความคืบหน้าแต่ละระดับที่เขาสามารถทำได้ ด้วยความน่าจะเป็นที่เขาสามารถไล่ทันจากจุดนั้น:&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://i.imgur.com/jQGkQ8r.png&#34;&gt; &lt;br/&gt;&lt;br/&gt;จัดเรียงใหม่เพื่อหลีกเลี่ยง infinite tail ของการแจกแจง&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://i.imgur.com/OOO6Gm9.png&#34;&gt; &lt;br/&gt;&lt;br/&gt;แปลงมันให้เป็น C code&lt;br/&gt;&lt;br/&gt;#include &amp;lt;math.h&amp;gt;&lt;br/&gt;double AttackerSuccessProbability(double q, int z)&lt;br/&gt;{&lt;br/&gt; double p = 1.0 - q;&lt;br/&gt; double lambda = z * (q / p);&lt;br/&gt; double sum = 1.0;&lt;br/&gt; int i, k;&lt;br/&gt; for (k = 0; k &amp;lt;= z; k&#43;&#43;)&lt;br/&gt; {&lt;br/&gt; double poisson = exp(-lambda);&lt;br/&gt; for (i = 1; i &amp;lt;= k; i&#43;&#43;)&lt;br/&gt; poisson *= lambda / i;&lt;br/&gt; sum -= poisson * (1 - pow(q / p, z - k));&lt;br/&gt; }&lt;br/&gt; return sum;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;เมื่อรันผลลัพธ์บางส่วน เราจะเห็นว่าความน่าจะเป็นลดลงแบบเอกซ์โพเนนเชียลเมื่อ z เพิ่มขึ้น&lt;br/&gt;&lt;br/&gt;q=0.1&lt;br/&gt;z=0 P=1.0000000&lt;br/&gt;z=1 P=0.2045873&lt;br/&gt;z=2 P=0.0509779&lt;br/&gt;z=3 P=0.0131722&lt;br/&gt;z=4 P=0.0034552&lt;br/&gt;z=5 P=0.0009137&lt;br/&gt;z=6 P=0.0002428&lt;br/&gt;z=7 P=0.0000647&lt;br/&gt;z=8 P=0.0000173&lt;br/&gt;z=9 P=0.0000046&lt;br/&gt;z=10 P=0.0000012&lt;br/&gt;q=0.3&lt;br/&gt;z=0 P=1.0000000&lt;br/&gt;z=5 P=0.1773523&lt;br/&gt;z=10 P=0.0416605&lt;br/&gt;z=15 P=0.0101008&lt;br/&gt;z=20 P=0.0024804&lt;br/&gt;z=25 P=0.0006132&lt;br/&gt;z=30 P=0.0001522&lt;br/&gt;z=35 P=0.0000379&lt;br/&gt;z=40 P=0.0000095&lt;br/&gt;z=45 P=0.0000024&lt;br/&gt;z=50 P=0.0000006&lt;br/&gt;&lt;br/&gt;การแก้หาค่า P ที่น้อยกว่า 0.1%...&lt;br/&gt;&lt;br/&gt;P &amp;lt; 0.001&lt;br/&gt;q=0.10 z=5&lt;br/&gt;q=0.15 z=8&lt;br/&gt;q=0.20 z=11&lt;br/&gt;q=0.25 z=15&lt;br/&gt;q=0.30 z=24&lt;br/&gt;q=0.35 z=41&lt;br/&gt;q=0.40 z=89&lt;br/&gt;q=0.45 z=340&lt;br/&gt;&lt;br/&gt;#siamstr
    </content>
    <updated>2024-08-07T12:22:37Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs03087q0w3c76jpc4av967vny8k7g7wspkgptlkznh6n3mdwygpqqzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2ajqyh6</id>
    
      <title>Nostr event nevent1qqs03087q0w3c76jpc4av967vny8k7g7wspkgptlkznh6n3mdwygpqqzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2ajqyh6</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs03087q0w3c76jpc4av967vny8k7g7wspkgptlkznh6n3mdwygpqqzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2ajqyh6" />
    <content type="html">
      ในรูปแบบธนาคารแบบดั้งเดิมนั้น ความเป็นส่วนตัวเกิดขึ้นได้ด้วยการจำกัดการเข้าถึงข้อมูล โดยให้เฉพาะผู้ที่เกี่ยวข้องและบุคคลที่สามที่ได้รับความไว้วางใจเท่านั้น แต่เนื่องจากในระบบนี้เรามีความจำเป็นในการประกาศธุรกรรมทั้งหมดต่อสาธารณะ ทำให้ไม่สามารถใช้วิธีนี้ได้ แต่ยังจำเป็นต้องคงความเป็นส่วนตัวไว้ โดยการแบ่งการไหลของข้อมูล ด้วยการไม่เปิดเผยตัวตนของเจ้าของ public key คนทั่วไปสามารถเห็นว่ามีคนกำลังส่งเงินจำนวนหนึ่งให้กับคนอื่น แต่จะไม่ทราบข้อมูลที่เชื่อมโยงธุรกรรมนั้นกับบุคคลใด ๆ ซึ่งคล้ายกับระดับข้อมูลที่เปิดเผยโดยตลาดหลักทรัพย์ ซึ่งมีการเปิดเผยเวลาและขนาดของการซื้อขายแต่ละครั้งต่อสาธารณะ แต่ไม่ได้ระบุว่าคู่สัญญาคือใคร&lt;br/&gt;&lt;br/&gt;  &lt;img src=&#34;https://image.nostr.build/6ec3c84c7878dbd4558d2045518384daf5a341e86f4194cf367cc8426c2d72a7.png&#34;&gt;  &lt;br/&gt;&lt;br/&gt;เพื่อเสริมในเรื่องของความปลอดภัย ควรใช้ key pair ใหม่สำหรับการทำธุรกรรมในแต่ละครั้ง เพื่อป้องกันไม่ให้เชื่อมโยงกับเจ้าของคนเดียวกันได้ อย่างไรก็ตาม การเชื่อมโยงบางอย่างยังคงหลีกเลี่ยงไม่ได้ ในธุรกรรมที่มี input หลายรายการ ซึ่งจำเป็นต้องเปิดเผยว่า input เหล่านั้นเป็นของเจ้าของคนเดียวกัน ความเสี่ยงก็คือ หากมีการเปิดเผยตัวตนของเจ้าของคีย์ การเชื่อมโยงอาจเปิดเผยธุรกรรมอื่น ๆ ที่เป็นของเจ้าของรายเดียวกันได้
    </content>
    <updated>2024-08-05T11:16:50Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqppmgw59e5kdm4jksvx7rzr96pzfvv6ht6vyy799ktmw9nugrzmgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2994j2z</id>
    
      <title type="html">9. Combining and Splitting Value ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqppmgw59e5kdm4jksvx7rzr96pzfvv6ht6vyy799ktmw9nugrzmgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2994j2z" />
    <content type="html">
      9. Combining and Splitting Value&lt;br/&gt;&lt;br/&gt;แม้ว่าการจัดการเหรียญหลาย ๆ เหรียญจะเป็นสิ่งที่สามารถทำได้ แต่การจัดการธุรกรรมแยกต่างหากสำหรับแต่ละเหรียญในการโอนก็คงเป็นเรื่องที่น่าปวดหัวอยู่ดี ฉะนั้นแล้วเพื่อให้สามารถแยกและรวมมูลค่ากันได้ ธุรกรรมจึงสามารถมี input และ output ได้หลายรายการ ซึ่งโดยปกติแล้วจะมี input เดียวจากธุรกรรมก่อนหน้าที่มีขนาดใหญ่กว่า หรือ input จำนวนเล็ก ๆ หลาย ๆ รายการ และ output ไม่เกินสองรายการ คือ รายการหนึ่งสำหรับการชำระเงิน และอีกหนึ่งรายการสำหรับการส่งเงินทอน หากมีกลับไปยังผู้ส่ง &lt;br/&gt;&lt;br/&gt;  &lt;img src=&#34;https://image.nostr.build/9c6d3ce0e9f08c5b3fa3b82c2088ac6235603e5c0df3469060e6c9f74bce32fc.png&#34;&gt;  &lt;br/&gt;&lt;br/&gt;ควรสังเกตว่า fan-out (กระจายของธุรกรรม) ซึ่งเป็นกรณีที่ธุรกรรม ธุรกรรมหนึ่งนั้นขึ้นอยู่กับหลายธุรกรรม และธุรกรรมเหล่านั้นเองก็ขึ้นอยู่กับอีกหลายธุรกรรม แต่ไม่ใช่ปัญหาในที่นี้ เพราะไม่มีความจำเป็นในการดึงประวัติการทำธุรกรรมทั้งหมดออกมาเป็นสำเนา&lt;br/&gt;&lt;br/&gt;#siamstr 
    </content>
    <updated>2024-08-04T07:25:13Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqqqqzl2vulqgk796tnn02sqayk4wmyjc7vwtz3qm6mxnwqr5e6rczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2q3rdw9</id>
    
      <title type="html">8. การตรวจสอบธุรกรรม ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqqqqzl2vulqgk796tnn02sqayk4wmyjc7vwtz3qm6mxnwqr5e6rczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2q3rdw9" />
    <content type="html">
      8. การตรวจสอบธุรกรรม (แบบไม่ต้องรัน full node)&lt;br/&gt;&lt;br/&gt;การที่จะยืนยันการชำระเงินโดยไม่จำเป็นต้องรัน full node ได้นั้น ผู้ใช้เพียงแค่เก็บสำเนาของส่วนหัวบล็อก (block header) ของสายบล็อก (chain) ที่ยาวที่สุด ซึ่งสามารถรับได้โดยการสอบถามจาก node อื่น ๆ ในเครือข่ายจนมั่นใจว่าได้รับสายที่ยาวที่สุด และรับ Merkle branch ที่เชื่อมโยงธุรกรรมกับบล็อกที่มีการประทับเวลา (Timestamp) อยู่ ถึงแม้ผู้ใช้จะไม่สามารถตรวจสอบธุรกรรมด้วยตัวเองได้ แต่การเชื่อมโยงธุรกรรมกับตำแหน่งในสายบล็อกจะทำให้เห็นว่า node ในเครือข่ายยอมรับแล้ว และบล็อกที่เพิ่มเข้ามาหลังจากนั้นเป็นการยืนยันเพิ่มเติมว่าเครือข่ายยอมรับธุรกรรมนี้แล้ว&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://i.imgur.com/VXtLpRF.png&#34;&gt; &lt;br/&gt;&lt;br/&gt;การตรวจสอบดังกล่าวจะเชื่อถือได้ตราบใดที่ node ที่ซื่อสัตย์ยังคงควบคุมเครือข่าย แต่จะมีความเสี่ยงมากขึ้นหากเครือข่ายถูกโจมตีและถูกควบคุม ในขณะที่ node ในเครือข่ายสามารถตรวจสอบธุรกรรมได้ด้วยตัวเอง แต่วิธีการแบบง่ายนี้อาจถูกหลอกลวงโดยการใช้ธุรกรรมปลอมของผู้โจมตี ตราบใดที่ผู้โจมตียังคงสามารถควบคุมเครือข่ายได้ กลยุทธ์หนึ่งในการป้องกันปัญหานี้คือ การรับการแจ้งเตือนจาก node อื่น ๆ ในเครือข่ายเมื่อตรวจพบบล็อกที่ไม่ถูกต้อง ซึ่งจะแจ้งให้ซอฟต์แวร์ของผู้ใช้ดาวน์โหลดบล็อกแบบเต็มและธุรกรรมที่แจ้งเตือน เพื่อยืนยันความไม่สอดคล้องกัน ธุรกิจที่ได้รับการชำระเงินบ่อยครั้งอาจยังคงต้องการรัน node ของตนเอง เพื่อความปลอดภัยที่เป็นอิสระและการตรวจสอบที่รวดเร็วยิ่งขึ้น&lt;br/&gt;&lt;br/&gt;#siamstr
    </content>
    <updated>2024-08-02T05:12:41Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqqqqz8hs7g2lrqhl3rmz5wn9su5lkkms0x7dnvgsymk0j8hdtragzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2g9w09d</id>
    
      <title type="html">7. Reclaiming Disk Space ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqqqqz8hs7g2lrqhl3rmz5wn9su5lkkms0x7dnvgsymk0j8hdtragzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2g9w09d" />
    <content type="html">
      7. Reclaiming Disk Space&lt;br/&gt;&lt;br/&gt;เมื่อธุรกรรมถูกบรรจุลงในบล๊อกแล้ว สามารถกำจัดธุรกรรมที่ใช้ไปแล้วก่อนหน้านั้นออกได้เพื่อประหยัดพื้นที่ดิสก์ แต่การจะทำอย่างนี้ได้โดยไม่ให้เลข hash ของบล๊อกมีการเปลี่ยนแปลงนั้น ธุรกรรมจึงจำเป็นต้องถูก hash ในรูปแบบของ Merkle Tree [7][2][5] โดยมีแค่ root node ของ tree เท่านั้นที่จะรวมอยู่ใน hash ของบล๊อก นี่เป็นวิธีที่ทำให้สามารถบีบอัดข้อมูลในบล๊อกเก่า ๆ ได้โดยการตัดพวก hash ส่วนอื่น ๆ ของ tree ที่ไม่ใช่ root node ออก (ไม่จำเป็นต้องเก็บ hash ในชั้นอื่น ๆ ของ tree)&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/3ed95334891d91baca3f3f6f624a7ae22620be4ebfe0db5eb652cfce11255b9a.png&#34;&gt; &lt;br/&gt;&lt;br/&gt;โดยในส่วน header ของบล็อกที่ไม่มีธุรกรรมจะมีขนาดประมาณ 80 ไบต์ หากเราสมมติว่าบล็อกถูกสร้างขึ้นทุก ๆ 10 นาที 80 ไบต์ * 6 * 24 * 365 = 4.2MB ต่อปี โดยที่ระบบคอมพิวเตอร์ทั่วไปที่วางขายในปี 2551 มี RAM 2GB และกฎของมัวร์ทำนายการเติบโตในปัจจุบันที่ 1.2GB ต่อปี การจัดเก็บข้อมูลไม่น่าจะเป็นปัญหาแม้ว่าส่วนหัวของบล็อกจะต้องถูกเก็บไว้ในหน่วยความจำก็ตาม&lt;br/&gt;&lt;br/&gt;#siamstr&lt;br/&gt;&lt;br/&gt;[2] H. Massias, X.S. Avila, and J.-J. Quisquater, &amp;#34;Design of a secure timestamping service with minimal&lt;br/&gt;trust requirements,&amp;#34; In 20th Symposium on Information Theory in the Benelux, May 1999.&lt;br/&gt;[5] S. Haber, W.S. Stornetta, &amp;#34;Secure names for bit-strings,&amp;#34; In Proceedings of the 4th ACM Conference&lt;br/&gt;[7] R.C. Merkle, &amp;#34;Protocols for public key cryptosystems,&amp;#34; In Proc. 1980 Symposium on Security and&lt;br/&gt;Privacy, IEEE Computer Society, pages 122-133, April 1980.
    </content>
    <updated>2024-08-01T11:43:31Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsz389rqtr40k7mcwrgw0gftufzdjpr275quz9yu4x730gn2mpf92czypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe29lrlea</id>
    
      <title type="html">6. แรงจูงใจ โดยปกติแล้ว ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsz389rqtr40k7mcwrgw0gftufzdjpr275quz9yu4x730gn2mpf92czypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe29lrlea" />
    <content type="html">
      6. แรงจูงใจ&lt;br/&gt;&lt;br/&gt;โดยปกติแล้ว ธุรกรรมแรกของแต่ละบล๊อกนั้นจะเป็นธุรกรรมพิเศษที่จะขุดเหรียญที่สร้างขึ้นใหม่ซึ่งเป็นกรรมสิทธิ์ของผู้สร้างบล็อกนั้น ๆ ซึ่งจะเป็นการเพิ่มแรงจูงใจให้กับ node ต่าง ๆ ในการสนับสนุนเครือข่าย และเป็นวิธีการกระจายเหรียญให้หมุนเวียน เนื่องจากไม่มีหน่วยงานส่วนกลางที่ทำหน้าที่ในการออกเหรียญ การเพิ่มเหรียญใหม่ในปริมาณคงที่อย่างต่อเนื่องนั้นคล้ายคลึงกับการที่คนงานเหมืองทองคำใช้แรง และ เวลา เพื่อเพิ่มทองคำให้หมุนเวียน ในกรณีนี้ คือ เวลา กำลังประมวลผล และไฟฟ้าที่ถูกใช้ไป &lt;br/&gt;&lt;br/&gt;นอกจากนี้แรงจูงใจจะมาจากค่าธรรมเนียมการทำธุรกรรม หากมูลค่าผลลัพธ์ของธุรกรรมน้อยกว่ามูลค่าที่ใส่เข้ามา ส่วนต่างนั้นก็คือค่าธรรมเนียมการทำธุรกรรมที่จะเพิ่มเข้าไปในมูลค่าแรงจูงใจของบล็อกที่มีธุรกรรมนั้น เมื่อเหรียญทั้งหมดในระบบมีจำนวนเท่ากับที่กำหนดไว้แล้ว  แรงจูงใจหลักก็จะถูกเปลี่ยนมาเป็นค่าธรรมเนียมการทำธุรกรรม และปราศจากภาวะเงินเฟ้อโดยสิ้นเชิง&lt;br/&gt;&lt;br/&gt;แรงจูงใจอาจช่วยกระตุ้นให้ node ต่าง ๆ ยังคงซื่อสัตย์ หากผู้โจมตีที่ละโมบสามารถรวบรวมกำลังประมวลผล ได้มากกว่า node ที่ซื่อสัตย์ทั้งหมด เขาจะต้องเลือกระหว่างการใช้มันเพื่อฉ้อโกงผู้อื่นโดยการใช้จ่ายซ้ำซ้อน หรือใช้มันเพื่อสร้างเหรียญใหม่ พวกเขาจะพบว่าการเล่นตามกฎ กฎที่เอื้อประโยชน์ให้กับเขาด้วยเหรียญใหม่มากกว่าคนอื่น ๆ รวมกันนั้นทำกำไรได้มากกว่าการบ่อนทำลายระบบและความถูกต้องของทรัพย์สินของเขาเอง&lt;br/&gt;&lt;br/&gt;#siamstr
    </content>
    <updated>2024-07-31T10:12:32Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsw7w5mds3xlr9egvtugq6hurgqk3pkn97ueaa4hxtxnarhhv7kh2qzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe234j7gh</id>
    
      <title type="html">6. แรงจูงใจ โดยปกติแล้ว ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsw7w5mds3xlr9egvtugq6hurgqk3pkn97ueaa4hxtxnarhhv7kh2qzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe234j7gh" />
    <content type="html">
      6. แรงจูงใจ&lt;br/&gt;&lt;br/&gt;โดยปกติแล้ว ธุรกรรมแรกของแต่ละบล๊อกนั้นจะเป็นธุรกรรมพิเศษที่จะขุดเหรียญที่สร้างขึ้นใหม่ซึ่งเป็นกรรมสิทธิ์ของผู้สร้างบล็อกนั้น ๆ ซึ่งจะเป็นการเพิ่มแรงจูงใจให้กับ node ต่าง ๆ ในการสนับสนุนเครือข่าย และเป็นวิธีการกระจายเหรียญให้หมุนเวียน เนื่องจากไม่มีหน่วยงานส่วนกลางที่ทำหน้าที่ในการออกเหรียญ การเพิ่มเหรียญใหม่ในปริมาณคงที่อย่างต่อเนื่องนั้นคล้ายคลึงกับการที่คนงานเหมืองทองคำใช้ทรัพยากรเพื่อเพิ่มทองคำให้หมุนเวียน ในกรณีนี้ คือเวลา CPU และไฟฟ้าที่ถูกใช้ไป &lt;br/&gt;&lt;br/&gt;แรงจูงใจนี้สามารถได้รับทุนสนับสนุนจากค่าธรรมเนียมการทำธุรกรรม หากมูลค่าผลลัพธ์ของธุรกรรมน้อยกว่ามูลค่าอินพุต ความแตกต่างคือค่าธรรมเนียมการทำธุรกรรมที่จะเพิ่มเข้าไปในมูลค่าแรงจูงใจของบล็อกที่มีธุรกรรมนั้น เมื่อเหรียญจำนวนหนึ่งที่กำหนดไว้ล่วงหน้าเข้าสู่ระบบหมุนเวียนแล้ว แรงจูงใจสามารถเปลี่ยนเป็นค่าธรรมเนียมการทำธุรกรรมได้ทั้งหมด และปราศจากภาวะเงินเฟ้อโดยสิ้นเชิง&lt;br/&gt;
    </content>
    <updated>2024-07-31T10:01:19Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqqqrnen0mlclhmurdtk68yvfg6kydeth9l9e7syqsyrfpacctxyszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2uvljqs</id>
    
      <title type="html">5. Network ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqqqrnen0mlclhmurdtk68yvfg6kydeth9l9e7syqsyrfpacctxyszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2uvljqs" />
    <content type="html">
      5. Network &lt;br/&gt;&lt;br/&gt;เครือข่ายนั้นมีการทำงาน ดังนี้&lt;br/&gt;&lt;br/&gt;1. การประกาศธุรกรรมใหม่: ธุรกรรมใหม่จะถูกประกาศ (broadcast) ไปยังทุก node ในเครือข่าย&lt;br/&gt;2. การรวบรวมธุรกรรม: แต่ละ node จะรวบรวมธุรกรรมใหม่ ๆ เหล่านี้ ไว้ในบล็อก&lt;br/&gt;3. การค้นหา Proof-of-Work: แต่ละ node จะทำการคำนวณ เพื่อค้นหา Proof-of-Work ตามค่า difficulty สำหรับบล็อกนั้น ๆ &lt;br/&gt;4. การประกาศบล็อก: เมื่อ node ใดค้นหา Proof-of-Work ได้แล้ว node นั้นจะทำการประกาศบล็อกไปยังทุก node ในเครือข่าย&lt;br/&gt;5. การตรวจสอบและยอมรับบล็อก: node อื่น ๆ จะทำการตรวจสอบและยอมรับบล็อกนั้น เฉพาะเมื่อธุรกรรมทั้งหมดภายในบล็อกนั้นถูกต้องและยังไม่ถูกใช้มาก่อน&lt;br/&gt;6. การสร้างบล็อกถัดไป: node ต่าง ๆ แสดงการยอมรับบล็อกโดยการเริ่มต้นสร้างบล็อกถัดไปใน chain ด้วย hash ของบล็อกที่ยอมรับ เป็น hash ก่อนหน้าในโครงสร้างของบล๊อกใหม่ที่กำลังสร้าง&lt;br/&gt;&lt;br/&gt;node ต่าง ๆ จะถือว่า chain ที่ยาวที่สุดเป็น chain ที่ถูกต้องและจะทำงานเพื่อขยาย chain นั้นต่อไป หากมีสอง node ที่ได้ประกาศบล็อกเวอร์ชันที่แตกต่างกันในเวลาพร้อมกัน node บาง node อาจได้รับบล็อกหนึ่งก่อน อีกบล็อกหนึ่ง ในกรณีนี้ node เหล่านั้น จะทำงานบนบล็อกที่ได้รับก่อน แต่จะเก็บสำเนาของบล็อกอีกอันหนึ่งไว้ ในกรณีที่บล็อกนั้น กลายเป็นบล็อกที่อยู่ใน chain ที่ยาวกว่าปัญหาข้อโต้แย้งนี้ก็จะได้รับการแก้ไข เมื่อพบ Proof-of-Work อันถัดไปและ chain ใด chain หนึ่งยาวขึ้น node ที่กำลังทำงานอยู่บน chain ที่สั้นกว่าก็จะเปลี่ยนไปทำงานบน chain ที่ยาวกว่าแทน&lt;br/&gt;&lt;br/&gt;การประกาศธุรกรรมใหม่ ไม่จำเป็นต้องไปถึงทุก node ในเครือข่าย ตราบใดที่พวกเขายังไปถึง node ส่วนใหญ่ในระบบได้ ธุรกรรมเหล่านั้นก็จะถูกบรรจุอยู่ในบล็อกในไม่ช้า นอกจากนี้การประกาศบล็อกยังไม่ต้องกังวลเรื่องจะมีบล๊อกที่สูญหาย เนื่องจากหากว่า node ไม่ได้รับบล็อกใด ๆ  node ก็จะตระหนักได้ว่าพลาดบล็อกก่อนหน้าไปเมื่อได้รับบล๊อกใหม่มา และ node จะทำการร้องขอ block ที่ขาดไปจากเครือข่าย &lt;br/&gt;&lt;br/&gt;#siamstr
    </content>
    <updated>2024-07-30T04:49:13Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsprvysx7zm02lk73jnq60gn2d00q4yf868n0xjyyugsazp4rp2qsqzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe27f894h</id>
    
      <title type="html">4. Proof-of-Work ในการสร้าง Timestamp Server ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsprvysx7zm02lk73jnq60gn2d00q4yf868n0xjyyugsazp4rp2qsqzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe27f894h" />
    <content type="html">
      4. Proof-of-Work&lt;br/&gt;&lt;br/&gt;ในการสร้าง Timestamp Server แบบกระจายศูนย์บนพื้นฐานแบบ peer to peer เราจำเป็นต้องใช้ระบบ Proof-of-Work (PoW) ที่คล้ายกับ Hashcash ของ Adam Back [6] แทนที่จะใช้วิธีการแบบเดิม ๆ อย่างการประกาศในหนังสือพิมพ์หรือ Usenet โดย PoW ใช้ในการตรวจสอบค่าที่มาจากกระบวนการ hash เช่น SHA-256 แล้ว ผลลัพธ์ที่ได้ (Hash) จะขึ้นต้นด้วยเลขศูนย์จำนวนหนึ่ง โดยที่ work (ประมาณว่าพลังประมวลผล) ที่ต้องใช้จะเพิ่มขึ้นแบบทวีคูณตามจำนวนเลขศูนย์ที่ต้องการ และสามารถตรวจสอบได้โดยการรัน Hash เพียงครั้งเดียว&lt;br/&gt;&lt;br/&gt;ซึ่งสำหรับ timestamp network ของเรานั้น เราใช้ PoW โดยการเพิ่มค่า Nonce ในบล็อกไปเรื่อย ๆ จนกว่าจะพบค่าที่ทำให้ Hash ของบล็อกนั้นมีเลขศูนย์ตามที่กำหนด และเมื่อใช้กำลังประมวลผลของ CPU ไปกับการทำ PoW จนสำเร็จแล้ว บล็อกจะไม่สามารถเปลี่ยนแปลงได้ หากไม่มีการทำงานซ้ำใหม่ เนื่องจากบล็อกที่สร้างขึ้นภายหลังจะเชื่อมโยงกับบล็อกก่อนหน้า การเปลี่ยนแปลงบล็อกใด ๆ จะต้องทำ PoW ของบล็อกนั้นและบล็อกที่ตามมาใหม่ทั้งหมด&lt;br/&gt;&lt;br/&gt;  &lt;img src=&#34;https://image.nostr.build/c039ef4ca6833cb1ecee65ac5991df2406be9b7e490b86b3b19f94f267767182.png&#34;&gt;  &lt;br/&gt;&lt;br/&gt;นอกจากนี้ PoW ยังช่วยแก้ปัญหาของเสียงส่วนมากที่มาตัดสินใจในระบบนี้ เพราะหากเสียงข้างมากอ้างอิงจากหลักการหนึ่ง IP หนึ่งเสียง ใครก็ตามที่สามารถสร้าง IP ได้จำนวนมากก็จะสามารถควบคุมระบบได้ จึงใช้หลักการหนึ่ง CPU หนึ่งเสียงแทน การตัดสินใจของเสียงข้างมากจะแสดงด้วย Chain ที่ยาวที่สุด ซึ่งบ่งบอกถึงความพยายามในการคำนวณ (Proof-of-Work) ที่มากที่สุด หาก Node ที่ซื่อสัตย์ (Honest nodes) มีกำลังประมวลผลของ CPU ส่วนใหญ่อยู่ในการควบคุม Honest Chain ก็จะเติบโตเร็วที่สุดและแซงหน้า Chain อื่น ๆ ได้ ผู้โจมตีที่ต้องการแก้ไขบล็อกในอดีตจะต้องทำ Proof-of-Work ของบล็อกนั้นและบล็อกที่ตามมาใหม่ทั้งหมด และต้องทำงานให้เร็วกว่า Honest Node ด้วย ซึ่งโอกาสที่ผู้โจมตีจะตามทันนั้นจะลดลงแบบทวีคูณเมื่อมีการเพิ่มบล็อกมากขึ้น &lt;br/&gt;&lt;br/&gt;เพื่อชดเชยความเร็วของฮาร์ดแวร์ที่เพิ่มขึ้นและความสนใจในการรัน Node ที่ผันผวน ระดับความยากของ Proof-of-Work จะถูกกำหนดโดยค่าเฉลี่ย โดยตั้งเป้าไว้ที่จำนวนบล็อกเฉลี่ยต่อชั่วโมง หากสร้างบล็อกได้เร็วเกินไป ระดับความยากก็จะเพิ่มขึ้น&lt;br/&gt;&lt;br/&gt;[6] A. Back, &amp;#34;Hashcash - a denial of service counter-measure,&amp;#34;&lt;br/&gt;&lt;a href=&#34;http://www.hashcash.org/papers/hashcash.pdf&#34;&gt;http://www.hashcash.org/papers/hashcash.pdf&lt;/a&gt; , 2002.&lt;br/&gt;&lt;br/&gt;#siamstr
    </content>
    <updated>2024-07-29T13:43:16Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxpzn47y30alezsnny5rmesxzhwhkq08etw7dx9j8ns4wrx7k2lzszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2vwdce3</id>
    
      <title>Nostr event nevent1qqsxpzn47y30alezsnny5rmesxzhwhkq08etw7dx9j8ns4wrx7k2lzszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2vwdce3</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxpzn47y30alezsnny5rmesxzhwhkq08etw7dx9j8ns4wrx7k2lzszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2vwdce3" />
    <content type="html">
      ระบบเงินอิเล็กทรอนิกส์แบบ peer-to-peer &lt;br/&gt;&lt;br/&gt;ระบบเงินอิเล็กทรอนิกส์แบบ peer-to-peer นั้นจะช่วยให้เราสามารถชำระเงินผ่านทางออนไลน์ได้โดยตรงจากฝ่ายหนึ่งไปยังอีกฝ่ายหนึ่งโดยไม่ต้องผ่านตัวกลางอย่างพวกสถาบันการเงิน โดยใช้ digital signature เป็นส่วนหนึ่งในการแก้ปัญหานี้ แต่มันจะไม่มีประโยชน์ใด ๆ เลยหากยังคงต้องอาศัยตัวกลางที่เชื่อถือได้มาแก้ปัญหา double spending เราขอเสนอวิธีแก้ปัญหา double spending โดยใช้เครือข่ายแบบ peer-to-peer ให้เครือข่ายคอยประทับเวลาธุรกรรมต่าง ๆ ในระบบและนำมาเรียงร้อยกันเป็นเส้นสายของ proof-of-work ที่ใช้ hash เพื่อสร้างธุรกรรมที่ไม่สามารถเปลี่ยนแปลงได้ โดยไม่ต้องทำ proof-of-work ใหม่ โดยให้เส้นสายที่ยาวที่สุดนั้น ไม่เพียงแต่ทำหน้าที่เป็นลำดับของธุรกรรมที่เกิดขึ้นเท่านั้น แต่ยังเป็นสิ่งที่พิสูจน์ได้ว่ามาจากกำลังประมวลผล CPU ที่มากที่สุด และตราบใดที่ nodes ส่วนใหญ่ไม่ได้ร่วมมือกันโจมตีเครือข่ายและยังคงควบคุมกำลังประมวลผลส่วนใหญ่ในระบบไว้ พวกเขาก็จะสร้างเส้นสายที่ยาวที่สุดและสามารถเอาชนะผู้ประสงค์ร้ายที่จะโจมตีระบบได้ ตัวเครือข่ายเองไม่ได้ต้องมีโครงสร้างอะไรที่ซับซ้อน ข้อมูลต่าง ๆ ในเครือข่ายจะถูกกระจายส่งต่อโดยไม่ต้องสนใจว่าผู้รับจะได้รับหรือไม่ และ nodes ต่าง ๆ เองก็สามารถที่จะออกจากเครือข่ายและกลับเข้าร่วมใหม่ได้ตามที่ต้องการ โดยยอมรับเส้น proof-of-work ที่ยาวที่สุด เป็นหลักฐานของสิ่งที่เกิดขึ้นในขณะที่ node นั้น ๆ ไม่ได้อยู่ในเครือข่าย&lt;br/&gt;&lt;br/&gt;#siamstr&lt;br/&gt;/ปล. ถ้าใครอ่านแล้วคุ้นก็ใช่ครับ white paper นั้นแหละ ผมเชื่อว่าหลาย ๆ คนน่าจะยังไม่เคยมีโอกาสได้อ่าน (9 หน้ามันก็ยาวอะเนอะ) เลยคิดว่าจะหั่นออกมาทีละส่วน เผื่อใครตามอ่านทุกวันสักสองอาทิตย์ก็เหมือนอ่าน white paper จบ/
    </content>
    <updated>2024-07-25T13:14:46Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdcl6ev8mwf3plcewlychup846sms3fjqjswmnar0gw68nqklplpgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2l7ej4e</id>
    
      <title type="html">มาสร้าง emoji ของเราบน nostr ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdcl6ev8mwf3plcewlychup846sms3fjqjswmnar0gw68nqklplpgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2l7ej4e" />
    <content type="html">
      มาสร้าง emoji ของเราบน nostr กันเถอะ!!&lt;br/&gt;&lt;br/&gt;ครั้งนี้จะเป็นการสร้าง emoji list ผ่านทาง nostrudel เนื่องจากเป็น client ที่เป็นที่นิยมและคิดว่าหลาย ๆ คนน่าจะเคยใช้งานกันมาบ้างแล้ว&lt;br/&gt;&lt;br/&gt;1. ให้ไปที่ส่วนของ other stuff จากนั้นเลือก more แล้วเราจะเจอหน้าตาประมาณนี้ (รูปที่ 1)&lt;br/&gt;  &lt;img src=&#34;https://image.nostr.build/8ea33eee04941e7da7df36101959e9cc1463b65f174e657eae1c362c8aef50cf.png&#34;&gt;  &lt;br/&gt;2. กดเข้าไปในหัวข้อ emoji จากนั้นเลือก create new pack บนมุมบนขวา (รูปที่ 2)  &lt;img src=&#34;https://image.nostr.build/df55f7b8af81e6ca64c8593468481afdefd7dcc8125c1a05b610606e587ca883.png&#34;&gt; &lt;br/&gt;3. หลังใส่ชื่อเรียบร้อยเราจะเข้าสู่หน้านี้ (รูปที่ 3)&lt;br/&gt;  &lt;img src=&#34;https://image.nostr.build/16f50256fbdd373622de3ebecfef39c6ca45984f8c07bd1b832e6eac4501bf9e.png&#34;&gt; &lt;br/&gt;4. เมื่อเรากด edit ที่มุมบนขวาเราก็จะได้ช่องที่ใส่ชื่อของอิโมจิตัวนั้น ๆ และช่องใส่ url ของรูปภาพหรือ gif มา (รูปที่ 4)&lt;br/&gt;  &lt;img src=&#34;https://image.nostr.build/cd3549a7bb098ee38f25ffcc2d834b46f86404715756af40198cee98ca1e938b.png&#34;&gt; &lt;br/&gt;5. หลังใส่รายละเอียดแล้วให้เรากด add และทำวนไปเรื่อย ๆ จนกว่าจะพอใจ หลังจากนั้นให้เรากด save และทำการ sign ธุรกรรมนั้นก็เป็นอันเสร็จสิ้น เพียงเท่านี้เราก็จะมีอิโมจิของเราที่ไม่เหมือนใครเอาไว้ใช้แล้ว
    </content>
    <updated>2024-07-24T03:54:28Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqspfvhegj7vxms7rnys63y27fqh08wupp456cdqrk6cgv9ahv9uluczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2pexaym</id>
    
      <title type="html">Emoji บน Nostr บน nostr นั้นการกด ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqspfvhegj7vxms7rnys63y27fqh08wupp456cdqrk6cgv9ahv9uluczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2pexaym" />
    <content type="html">
      Emoji บน Nostr&lt;br/&gt;&lt;br/&gt;บน nostr นั้นการกด reaction (kind 7) ในแต่ละโพสต์นั้นค่อนข้างแตกต่างกับโซเชียลมีเดียอื่น ๆ เป็นอย่างมากเนื่องจากผู้ใช้ทุกคนสามารถที่จะออกแบบและเลือกใช้อิโมจิอะไรก็ได้ที่ตัวผู้ใช้นั้น ๆ ต้องการ โดย emoji จะถูกเก็บอยู่ในลักษณะของ list (NIP-51) เหมือนกับพวก following list, mute list แต่การใช้งานจริง ๆ ทำได้หลากหลายมากกว่านั้น เช่นการจับลง kind 0 หรือ kind 1 ก็สามารถทำได้เช่นกัน ทีนี้เรามาลองดูโครงสร้าง event ของ list emoji กันดีกว่า&lt;br/&gt;{&lt;br/&gt;  &amp;#34;id&amp;#34;: &amp;#34;c25122084feb5b70c4c141c515e91dfb6a65c494dae2baf091839ff88a4cc0c3&amp;#34;,&lt;br/&gt;  &amp;#34;pubkey&amp;#34;: &amp;#34;66df60562d939ada8612436489945a4ecf1d62346b3d9478dea8a338f3203c64&amp;#34;,&lt;br/&gt;  &amp;#34;created_at&amp;#34;: 1710736175,&lt;br/&gt;  &amp;#34;kind&amp;#34;: 30030,&lt;br/&gt;  &amp;#34;tags&amp;#34;: [&lt;br/&gt;    [ &amp;#34;d&amp;#34;, &amp;#34;ชื่อเซตอิโมจิ&amp;#34;],&lt;br/&gt;      [&amp;#34;emoji&amp;#34;,&amp;#34;ชื่อสั้น ๆ &amp;#34;,&amp;#34;httpรูปหรือ gif&amp;#34;],&lt;br/&gt;      [ &amp;#34;emoji&amp;#34;,&amp;#34;ชื่อสั้น ๆ &amp;#34;&amp;#34;httpรูปหรือ gif&amp;#34;],&lt;br/&gt;      [&amp;#34;emoji&amp;#34;,&amp;#34;ชื่อสั้น ๆ &amp;#34;,&amp;#34;httpรูปหรือ gif&amp;#34;],&lt;br/&gt;      [ &amp;#34;emoji&amp;#34;,&amp;#34;ชื่อสั้น ๆ &amp;#34;&amp;#34;httpรูปหรือ gif&amp;#34;],&lt;br/&gt;  &amp;#34;content&amp;#34;: &amp;#34;&amp;#34;,&lt;br/&gt;  &amp;#34;sig&amp;#34;: &amp;#34;c4fb0626619fc0881d859570d0d00d72f7a429aca53a322768a6a0c69ddb00e44a87b65bf75a07eb7647407b78803f76720e22eed0724d554470d30371ab1173&amp;#34;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;อย่างที่เห็นว่าจุดแตกต่างของ event ที่ทำให้ client ต่าง ๆ รู้ว่ามันคืออีโมจิคือ tag &amp;#34;d&amp;#34;(identifier) และ &amp;#34;emoji&amp;#34; และต้องมีโครงสร้างดังนี้ [&amp;#34;emoji&amp;#34;, &amp;lt;shortcode&amp;gt;, &amp;lt;image-url&amp;gt;]&lt;br/&gt;เมื่อทำการเผยแพร่ event ในลักษณะนี้แล้วเราก็จะได้ list ของอิโมจิออกมาแบบนี้&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4fcpzqeklvptzmyu6m2rpysmy3x295nk0r43rg6eaj3uda29r8rejq0ryqqzy2629dyep8v76&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…8v76&lt;/a&gt;&lt;/span&gt;&lt;br/&gt; &lt;/div&gt;  &lt;/blockquote&gt;&lt;br/&gt;ส่วนถ้าเราต้องการนำ emoji ที่เราสร้างไปใส่ในหน้าโปรไฟล์หรือเวลาเราโพสต์เราต้องทำอย่างไร ?&lt;br/&gt;โปรไฟล์(kind 0)&lt;br/&gt;{&lt;br/&gt;  &amp;#34;kind&amp;#34;: 0,&lt;br/&gt;  &amp;#34;content&amp;#34;: &amp;#34;{\&amp;#34;name\&amp;#34;:\&amp;#34;Alex Gleason :soapbox:\&amp;#34;}&amp;#34;,&lt;br/&gt;  &amp;#34;tags&amp;#34;: [&lt;br/&gt;    [&amp;#34;emoji&amp;#34;, &amp;#34;soapbox&amp;#34;, &amp;#34;http s://gleasonator.com/emoji/Gleasonator/soapbox.png&amp;#34;]&lt;br/&gt;  ],&lt;br/&gt;  &amp;#34;pubkey&amp;#34;: &amp;#34;79c2cae114ea28a981e7559b4fe7854a473521a8d22a66bbab9fa248eb820ff6&amp;#34;,&lt;br/&gt;  &amp;#34;created_at&amp;#34;: 1682790000&lt;br/&gt;}&lt;br/&gt;ใน part ของโปรไฟล์นั้นเพียงแค่เราเพิ่ม shortcode ลงไปในจุดที่เราต้องการใส่และทำการเพิ่ม emoji ใน tag ก็สามารถใช้ได้แล้ว และในทำนองเดียวกันสำหรับการโพสต์ (kind 1)&lt;br/&gt;&lt;br/&gt;{&lt;br/&gt;  &amp;#34;kind&amp;#34;: 1,&lt;br/&gt;  &amp;#34;content&amp;#34;: &amp;#34;Hello :gleasonator: 😂 :ablobcatrainbow: :disputed: yolo&amp;#34;,&lt;br/&gt;    &amp;#34;tags&amp;#34;: [&lt;br/&gt;    [&amp;#34;emoji&amp;#34;, &amp;#34;ablobcatrainbow&amp;#34;, &amp;#34;https: //gleasonator.com/emoji/blobcat/ablobcatrainbow.png&amp;#34;],&lt;br/&gt;    [&amp;#34;emoji&amp;#34;, &amp;#34;disputed&amp;#34;, &amp;#34;https: //gleasonator.com/emoji/Fun/disputed.png&amp;#34;],&lt;br/&gt;    [&amp;#34;emoji&amp;#34;, &amp;#34;gleasonator&amp;#34;, &amp;#34;https: //gleasonator.com/emoji/Gleasonator/gleasonator.png&amp;#34;]&lt;br/&gt;  ],&lt;br/&gt;  &amp;#34;pubkey&amp;#34;: &amp;#34;79c2cae114ea28a981e7559b4fe7854a473521a8d22a66bbab9fa248eb820ff6&amp;#34;,&lt;br/&gt;  &amp;#34;created_at&amp;#34;: 1682630000&lt;br/&gt;}&lt;br/&gt;และประเภทสุดท้ายของการใช้ emoji บน nostr และหน้าจะเป็นประเภทที่หลาย ๆ คนใช้กันมากที่สุดอย่างการกด reaction ด้วย emoji จะมี event หน้าตาประมาณนี้&lt;br/&gt;{&lt;br/&gt;  &amp;#34;kind&amp;#34;: 7,&lt;br/&gt;  &amp;#34;content&amp;#34;: &amp;#34;:soapbox:&amp;#34;,&lt;br/&gt;  &amp;#34;tags&amp;#34;: [&lt;br/&gt;    [&amp;#34;emoji&amp;#34;, &amp;#34;soapbox&amp;#34;, &amp;#34;https ://gleasonator.com/emoji/Gleasonator/soapbox.png&amp;#34;]&lt;br/&gt;  ],&lt;br/&gt;  ...other fields&lt;br/&gt;}&lt;br/&gt;ทั้งหมดนี้คือวิธีการใช้อิโมจิต่าง ๆ บน nostr ซึ่งจัดเป็นอีกฟังก์ชั่นที่น่าสนใจมาก ๆ ในการเพิ่มสีสันให้สังคม nostr โดยในปัจจุบันมีหลาย ๆ client ได้รองรับการใช้ custom emoji เหล่านี้แล้วส่วนวิธีการสร้างแบบง่าย ๆ โดยที่ไม่ต้องสนใจสิ่งที่กล่าวมาข้างต้นนั้นสามารถทำได้บน emojito.meme หรือ Nostrudel ได้เลย&lt;br/&gt;&lt;br/&gt;#siamstr
    </content>
    <updated>2024-07-23T06:49:04Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswuwvxjdz0j79x2vzdz96vrw672clr0k0zds3xkz9nt5esgtpq4fqzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2dhtfrq</id>
    
      <title type="html">Bitcoin node บิตคอยน์โหนด ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswuwvxjdz0j79x2vzdz96vrw672clr0k0zds3xkz9nt5esgtpq4fqzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2dhtfrq" />
    <content type="html">
      Bitcoin node&lt;br/&gt;&lt;br/&gt;บิตคอยน์โหนด หรือก็คือเหล่าบรรดาคุณป้าข้างบ้านที่มีปัญญาในการจดจำอันเลิศล้ำและคอยบอกต่อเรื่องราวต่าง ๆ ที่เขารับรู้มาให้เราเสมอไม่ว่าจะเรื่องราวของข้างบ้าน ข้างหมู่บ้าน ลูก หลาน เหลน ได้อย่างไม่เหน็ดเหนื่อย โอเคกับมาเข้าเรื่องก่อน บิตคอยน์โหนดคือโปรแกรมที่ทำหน้าที่ในการตรวจสอบธุรกรรม หากถูกต้องตามกฎและระเบียบที่แต่ละโหนดกำหนดไว้ โหนดก็จะส่งธุรกรรมและบล๊อกที่ได้รับนั้นไปยังโหนดอื่น ๆ และเก็บสำรองข้อมูลเหล่านั้นไว้เพื่ออ้างอิงในอนาคตด้วย&lt;br/&gt;&lt;br/&gt;แล้วมันทำงานยังไง ?&lt;br/&gt;&lt;br/&gt;เมื่อธุรกรรมใหม่ถูกสร้างและส่งต่อในเครือข่าย, บิตคอยน์โหนดจะรับธุรกรรมเหล่านั้นและทำการตรวจสอบตามกฎที่โหนดนั้น ๆ เลือก เช่น ตรวจสอบลายเซ็นดิจิทัลและตรวจสอบ unspent transaction outputs (UTXOs) โดยโหนดจะใช้ BIP ต่าง ๆ เป็นตัวช่วยในการตรวจสอบ เช่น BIP-66 เพื่อการตรวจสอบ digital signature&lt;br/&gt;&lt;br/&gt;หลังจากการตรวจสอบความถูกต้องของธุรกรรม, บิตคอยน์จะรวมธุรกรรมที่ตรวจสอบแล้วเหล่านี้เข้าไปใน mempool ซึ่งเป็นพื้นที่เก็บข้อมูลของธุรกรรมที่รอการบรรจุลงในบล็อกถัดไป โหนดจะคอยตรวจสอบบล็อกใหม่ที่เผยแพร่จาก miner ซึ่งจะมีการยืนยันบล็อกใหม่เหล่านี้โดยการตรวจสอบลำดับของบล็อกและการตรวจสอบปัญหาต่าง ๆ เช่น มี double-spending มั้ย, มีธุรกรรมที่ out มากกว่า in มั้ย &lt;br/&gt;&lt;br/&gt;เมื่อโหนดยืนยันบล็อกใหม่แล้ว, บล็อกดังกล่าวจะถูกเพิ่มลงใน blockchain และโหนดจะเผยแพร่ข้อมูลบล็อกใหม่ไปยังโหนดอื่น ๆ ในเครือข่าย เพื่อให้ข้อมูลนี้ถูกกระจายออกไปทั่วเครือข่าย&lt;br/&gt;&lt;br/&gt;#siamstr
    </content>
    <updated>2024-07-22T03:23:34Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdljlptf6svy5ggnx45u94tvnsmcr096lssm9t4kh9h9qa23x2k9gzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2s33pg2</id>
    
      <title type="html">แฮร่ โป๊ะแล้วโป๊ะอีก ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdljlptf6svy5ggnx45u94tvnsmcr096lssm9t4kh9h9qa23x2k9gzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2s33pg2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswxz9gjhwx2y7qpdtn5x9qezczl90jj7ruvd95kzyswnc04vl0lsqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhseddyvf&#39;&gt;nevent1q…dyvf&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;แฮร่ โป๊ะแล้วโป๊ะอีก โป๊ะแบบซ้ำซ้อน บ้าบอ
    </content>
    <updated>2024-07-18T03:14:15Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswpfjhm4h63n5k4g0wpd7x4kz5ckzrk5yxpyjsgtnv5m753s3hvkgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2q6v5sx</id>
    
      <title>Nostr event nevent1qqswpfjhm4h63n5k4g0wpd7x4kz5ckzrk5yxpyjsgtnv5m753s3hvkgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2q6v5sx</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswpfjhm4h63n5k4g0wpd7x4kz5ckzrk5yxpyjsgtnv5m753s3hvkgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2q6v5sx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvuxvvj6xgg2ym9vd52wz5t90qc6auq8k8xvwurrmpr530ys76mfcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsyxy33j&#39;&gt;nevent1q…y33j&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;รบกวนขอผลลัพธ์ด้วยนะครับ ผมคิดว่า wherostr ทำได้แน่ ๆ ครับ  
    </content>
    <updated>2024-07-18T03:07:50Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsf0fg4n24cnqapmzcquds7kju6cnjhvwt9uaw69sfhwc0zplzsfyczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2yvedn5</id>
    
      <title type="html">Lightning Zaps การ zap บน nostr ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsf0fg4n24cnqapmzcquds7kju6cnjhvwt9uaw69sfhwc0zplzsfyczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2yvedn5" />
    <content type="html">
      Lightning Zaps&lt;br/&gt;&lt;br/&gt;การ zap บน nostr ก็เป็นอีเว้นประเภทหนึ่ง ๆ โดยการใน zap แต่ละครั้งจะประกอบไปด้วย 2 อีเว้นก็คือ zap request (9734) และ zap receipt (9735) โดย flow ในการทำงานของการ zap มีดังนี้&lt;br/&gt;&lt;br/&gt;1. client จะทำการอ่าน LNurl หรือ LNaddress จาก profile ของคนที่เราจะ zap และทำการส่ง request ไปยัง LNaddr server นั้น ๆ เมื่อ server ตอบกลับมาก็จะเช็คพารามิเตอร์สองตัวนั้นคือ allowsNostr(True or False) และ nostrPubkey(ตรงกับ npub ของโปรไฟล์ที่เราจะ zap มั้ย) ตามลำดับ ถ้าถูกต้องจะทำการการอ่านพารามิเตอร์ callback(ส่งเงินไป address ไหน), minSendable(ยอดขั้นต่ำ), และ maxSendable(ยอดสูงสุด) กระบวนการทั้งหมดของข้อนี้คือ zap request&lt;br/&gt;&lt;br/&gt;2. เมื่อเราทำการจ่าย invoice เรียบร้อย จะมีการสร้าง zap receipt และส่งไปยัง relay ต่าง ๆ&lt;br/&gt;&lt;br/&gt;โดย event ของทั้สองประดภทมีลักษณะดังนี้&lt;br/&gt;zap request (9734)&lt;br/&gt;&lt;br/&gt;{&lt;br/&gt;  &amp;#34;kind&amp;#34;: 9734,&lt;br/&gt;  &amp;#34;content&amp;#34;: &amp;#34;Zap!&amp;#34;,&lt;br/&gt;  &amp;#34;tags&amp;#34;: [&lt;br/&gt;    [&amp;#34;relays&amp;#34;, &amp;#34;รีเลย์หนึ่ง&amp;#34;, &amp;#34;รีเลย์สอง&amp;#34;],&lt;br/&gt;    [&amp;#34;amount&amp;#34;, &amp;#34;จำนวนที่เราอยาก zap&amp;#34;],&lt;br/&gt;    [&amp;#34;lnurl&amp;#34;, &amp;#34;lnurl ของคนรับ&amp;#34;],&lt;br/&gt;    [&amp;#34;p&amp;#34;, &amp;#34;pubkey คนรับในรูป hex&amp;#34;],&lt;br/&gt;    [&amp;#34;e&amp;#34;, &amp;#34;event id ที่เราจะ zap&amp;#34;]&lt;br/&gt;  ],&lt;br/&gt;  &amp;#34;pubkey&amp;#34;: &amp;#34;pubkeyคนส่ง&amp;#34;,&lt;br/&gt;  &amp;#34;created_at&amp;#34;: เวลา,&lt;br/&gt;  &amp;#34;id&amp;#34;: &amp;#34; ID ของอีเว้นนี้&amp;#34;,&lt;br/&gt;  &amp;#34;sig&amp;#34;: &amp;#34; Digital sigature ของธุรกรรมนี้&amp;#34;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;zap receipt (9735)&lt;br/&gt;{&lt;br/&gt;    &amp;#34;id&amp;#34;: &amp;#34;ID ของอีเว้นนี้&amp;#34;,&lt;br/&gt;    &amp;#34;pubkey&amp;#34;: &amp;#34;pubkey ของคนส่ง&amp;#34;,&lt;br/&gt;    &amp;#34;created_at&amp;#34;: เวลาที่สร้าง,&lt;br/&gt;    &amp;#34;kind&amp;#34;: 9735,&lt;br/&gt;    &amp;#34;tags&amp;#34;: [&lt;br/&gt;      [&amp;#34;p&amp;#34;, &amp;#34;pubkeyคนส่งในรูป hex&amp;#34;],&lt;br/&gt;      [&amp;#34;e&amp;#34;, &amp;#34;event id ที่มีคนมา zap&amp;#34;],&lt;br/&gt;      [&amp;#34;bolt11&amp;#34;, &amp;#34;Ln invoice&amp;#34;],&lt;br/&gt;      [&amp;#34;description&amp;#34;, &amp;#34; zap request ทั้งอีเว้น&amp;#34;],&lt;br/&gt;      [&amp;#34;preimage&amp;#34;, &amp;#34;preimage ของ invoice&amp;#34;]&lt;br/&gt;    ],&lt;br/&gt;    &amp;#34;content&amp;#34;: &amp;#34;&amp;#34;,&lt;br/&gt;    &amp;#34;sig&amp;#34;: &amp;#34;Digital signatureของคนส่ง&amp;#34;&lt;br/&gt;  }&lt;br/&gt;#siamstr
    </content>
    <updated>2024-07-18T02:36:23Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqspcshtg83c3curs89ayxxhadj9evm7952avpygv4wamhsfmjk5vrgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2f8d0p2</id>
    
      <title type="html">Bitcoin Transaction Structure ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqspcshtg83c3curs89ayxxhadj9evm7952avpygv4wamhsfmjk5vrgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2f8d0p2" />
    <content type="html">
      Bitcoin Transaction Structure&lt;br/&gt;&lt;br/&gt;ธุรกรรมของบิตคอยน์คือสิ่งที่เกิดขึ้นทุกครั้งที่เราทำการส่งบิตคอยน์ ไม่ว่าจะส่งไปให้คนอื่น หรือแค่ทำสังคายนา utxo ของตัวเองก็ตาม ถ้าให้ว่ากันง่าย ๆ จริง ๆ แล้ว ธุรกรรมของบิตคอยน์ก็แค่ชุดข้อมูลจำนวนหนึ่งที่เอาไว้แค่ล๊อคบิตคอยน์และปลดล๊อคบิตคอยน์ โดยในธุรกรรมจะแบ่งส่วนหลัก ๆ 2 part คือ ขาเข้า(input): เลือกบิตคอยน์ที่เราต้องการปลดล๊อค, ขาออก(output): เอาบิตคอยน์จาก input ไปล๊อคไว้ที่ไหนต่อ และแน่นอนว่าในแต่ละธุรกรรมนั้นจำนวน input และ output นั้นสามารถมีได้มากกว่า 1 &lt;br/&gt;&lt;br/&gt;โอเคทีนี้เรามาลองดูตัวอย่าง transaction กัน &lt;br/&gt;(ตัวอย่างจาก 1de09872f8726ab057e8b116faf55d0e502acbe8ff94b8025a40105a85218140 // Height 114,932)&lt;br/&gt;&lt;br/&gt;tx data: 0100000001c3756a5279ed61735f5ab085f6e10b3f36423020cd4746876dd353ec610cf52c000000008b4830450221008c5730e8dd9509275ab6b8172c9dcfb74b98c855b328cce8b539701755875a53022055caafcff30d19e5fa28b671a37f00704ef8daac0ef06ba35696650850b820bb01410456ee2d5b710bce0e7ce5fd15c47c4021495ad9109a544ffcf7ecd2b049fe98f168ba973c161fa3cdffb1df4d0f208a576a45dea6cbc2b20a48cfc0a588a5b2afffffffff020014df200f0000001976a914ead1471151871931cfe3ed41beb99662f4248d1288ac40420f00000000001976a9146abb64c4751ede732ba3a584de223dbd8989531288ac00000000&lt;br/&gt;&lt;br/&gt;ทีนี้เรามาลองชำแหละธุรกรรมนี้กัน ในธุรกรรมนี้มีส่วนประกอบดังนี้: version, input count, input data, output count, output data, และ time lock ดูข้อความด้านล่างนี้ประกอบเอานะครับ&lt;br/&gt;version(4 byte): 01000000  &lt;br/&gt;input count: 01  แปลว่าธุรกรรมนี้มี 1 input&lt;br/&gt;input data: ในส่วนนี้แบ่งเป็น 5 ส่วนของแต่ละ input ดังนี้&lt;br/&gt;TXID(32 byte):c3756a5279ed61735f5ab085f6e10b3f36423020cd4746876dd353ec610cf52c  &lt;br/&gt;VOUT(4 byte):00000000&lt;br/&gt;ScriptSig Size:8b &lt;br/&gt;ScriptSig:4830450221008c5730e8dd9509275ab6b8172c9dcfb74b98c855b328cce8b539701755875a53022055caafcff30d19e5fa28b671a37f00704ef8daac0ef06ba35696650850b820bb01410456ee2d5b710bce0e7ce5fd15c47c4021495ad9109a544ffcf7ecd2b049fe98f168ba973c161fa3cdffb1df4d0f208a576a45dea6cbc2b20a48cfc0a588a5b2af&lt;br/&gt;* ตรงนี้มันคือ OP_PUSHBYTES_72 กับ OP_PUSHBYTES_65 ไว้เขียนวันหลังนะครับ  &lt;br/&gt;sequence(4 byte):ffffffff ส่วนนี้คือตัวกำหนดพวก lock time หรือ RBF (ffffffff คือปกติ ,fdffffff คือ RBF ส่วนพวก timelockจะเริ่มจาก 00000000 และเปลี่ยนลำดับที่ 2 ตามจำนวน block ที่ต้องการเช่น 3 block ก็ 03000000)&lt;br/&gt;&lt;br/&gt;input count:02 ธุรกรรมนี้มี 2 output&lt;br/&gt;input data: ในส่วนนี้แบ่งเป็น 3 ส่วนของแต่ละ output ดังนี้&lt;br/&gt;output 1&lt;br/&gt;amount(Little Endian 8 Byte): 0014df200f000000 (64,976,000,000 sat) *รวยเกิ้นนน&lt;br/&gt;ScriptPubKey Size: 19&lt;br/&gt;ScriptPubKey: 76a914ead1471151871931cfe3ed41beb99662f4248d1288ac &lt;br/&gt;output 2&lt;br/&gt;amount(Little Endian 8 Byte): 40420f0000000000 (1,000,000 sat)&lt;br/&gt;ScriptPubKey Size: 19&lt;br/&gt;ScriptPubKey:  76a9146abb64c4751ede732ba3a584de223dbd8989531288ac&lt;br/&gt;time lock: 00000000&lt;br/&gt; โดยคร่าว ๆ ก็ประมาณนี้ครับ ตัวอย่างอาจจะเก่าไปหน่อยแล้วเป็น P2PKH ด้วย เลยไม่ได้มีตัวอย่างในส่วนที่ใช้กันบน segwit อย่าง maker, flag, witness ให้แต่เนื่องจากความยาวพอสมควรแล้วผมขอติดไว้ก่อนแล้วกันนะครับ&lt;br/&gt;#siamstr
    </content>
    <updated>2024-07-16T02:17:38Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsymchlnzqr7fljy3qmxaw23t83gjzz4l2fsglgh84lycxj6qtzvvgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2djk60w</id>
    
      <title>Nostr event nevent1qqsymchlnzqr7fljy3qmxaw23t83gjzz4l2fsglgh84lycxj6qtzvvgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2djk60w</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsymchlnzqr7fljy3qmxaw23t83gjzz4l2fsglgh84lycxj6qtzvvgzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2djk60w" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs06h4cnsegfltnmlpvfmjpa29cm728xukehyyz88m80un627d8g7sprpmhxue69uhhyetvv9ujuumfv9khxarj9e3k7mf0jly95t&#39;&gt;nevent1q…y95t&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;ตอนนี้คืองงตึ้บเลยครับ พอเปลี่ยนบาง net มันมา แต่พอกลับมาเน็ตของที่ทำงานมันไม่มา อาจจะเป็นที่ firewall policy ของฝั่งผม ผมไม่แน่ใจ แต่ขอบคุณมากครับ
    </content>
    <updated>2024-07-15T05:49:30Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8zcjauf94w6geulw93g8g6ndm00vqlhyc4fk98gc9vksv3ru83cszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2km8xcj</id>
    
      <title>Nostr event nevent1qqs8zcjauf94w6geulw93g8g6ndm00vqlhyc4fk98gc9vksv3ru83cszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2km8xcj</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8zcjauf94w6geulw93g8g6ndm00vqlhyc4fk98gc9vksv3ru83cszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2km8xcj" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2dywrudp0a2dxxv900n0rz6hd6xlcng2wq5gxssfrk4m2zjgpw4cpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs9e4ayx&#39;&gt;nevent1q…4ayx&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/a01534206993b13d911eb56094d3067c845c452df63b65c59b13b7eb37723d70.png&#34;&gt; 
    </content>
    <updated>2024-07-15T05:22:38Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsy9dhrc3us8m62p2e85fa3cu36jx96xuyj9njs8v7k2spl6972c0szypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2m0fn3q</id>
    
      <title type="html">งงครับนี่ไดโนเสาร์</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsy9dhrc3us8m62p2e85fa3cu36jx96xuyj9njs8v7k2spl6972c0szypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2m0fn3q" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2dywrudp0a2dxxv900n0rz6hd6xlcng2wq5gxssfrk4m2zjgpw4cpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs9e4ayx&#39;&gt;nevent1q…4ayx&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;งงครับนี่ไดโนเสาร์
    </content>
    <updated>2024-07-15T05:14:36Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsz3rn6kh6r57ek29vuj9584fz6kvtq8fn5g3yckmn7deklrznu52czypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2y2saaw</id>
    
      <title type="html">Difficulty Adjustment Algorithm Difficulty Adjustment Algorithm ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsz3rn6kh6r57ek29vuj9584fz6kvtq8fn5g3yckmn7deklrznu52czypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2y2saaw" />
    <content type="html">
      Difficulty Adjustment Algorithm&lt;br/&gt;&lt;br/&gt;Difficulty Adjustment Algorithm (DAA) เป็นอีกส่วนหนึ่งที่สำคัญในระบบของบิตคอยน์ เนื่องจากมันเป็นตัวควบคุมความยากง่ายในการขุดบิตคอยน์ ซึ่งความยากง่ายนี้เอง จะส่งผลโดยตรงต่อความเร็วในการขุดบล็อกใหม่รวมไปถึงความมั่นคงของเครือข่ายบิตคอยน์ DAA ทำงานโดยการปรับเปลี่ยนค่า hash เป้าหมายโดยจะยากขึ้นหรือง่ายลงตามกำลังขุดในเครือข่าย เพื่อให้เวลาเฉลี่ยในการขุดบล๊อกใหม่นั้นคงที่ ซึ่ง DAA เป็นสิ่งสำคัญมาก เพราะมันช่วยรักษาความมั่นคงของเครือข่ายและป้องกันความผันผวนของกำลังขุด เนื่องจากหากเวลาในการขุดต่อบล๊อกนั้นมากเกินไป อาจทำให้เครือข่ายอ่อนแอ และง่ายต่อการโจมตีในอนาคต โดยในบิตคอยน์นั้นเราใช้ DAA ที่เรียกว่า &amp;#34;Median Time Past&amp;#34; (MTP) โดยมีหลักการดังนี้&lt;br/&gt;เวลาขุดบล็อกนานกว่า 10 นาที: MTP จะเพิ่มค่าเป้าหมาย ทำให้การขุดบล็อกใหม่ยากขึ้น&lt;br/&gt;เวลาขุดบล็อกน้อยกว่า 10 นาที: MTP จะลดค่าเป้าหมาย ทำให้การขุดบล็อกใหม่ง่ายขึ้น&lt;br/&gt;&lt;br/&gt;ตามสมการนี้&lt;br/&gt;New Difficulty = Old Difficulty × (Actual Time / Target Time)&lt;br/&gt;โดยมีการกำหนด target time ไว้ที่ 600 &lt;br/&gt;แปลว่า New diff มาจากการที่ใช้ old diff คูณกับ เวลาที่ใช้ไปในหน่วยวินาทีหารกับ 600 ถ้าดูจากสมการนี้จะเห็นได้ว่าตัวแปรที่สำคัญในการกำหนดว่าค่าจะเพิ่มหรือลดอยู่ที่ Actual time ซึ่งทำให้มั่นใจได้เลยว่าเวลาเฉลี่ยของบล๊อกของบิตคอยน์จะอยู่ที่ 10 นาที โดยเฉลี่ย&lt;br/&gt;#siamstr
    </content>
    <updated>2024-07-15T01:32:50Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs9ej99m46j4ktqfeazk8hn49t8lsc876qnhf8mvdx9mdag3gtjnwczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe24dpsev</id>
    
      <title type="html">น้องวัว TT nostr address get ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs9ej99m46j4ktqfeazk8hn49t8lsc876qnhf8mvdx9mdag3gtjnwczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe24dpsev" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvjn0snltdr9ktk3ycaawgxd39u690vwzsju7vtv7rey2cldtcpvsprpmhxue69uhhyetvv9ujuumfv9khxarj9e3k7mf0hk7een&#39;&gt;nevent1q…7een&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;น้องวัว TT&lt;br/&gt;nostr address get ไม่เจอครับ&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/764ff1ce877446e88d3e2dfe0701e6fd76bcace683cbecfcae8b38b9542ba44a.png&#34;&gt; 
    </content>
    <updated>2024-07-15T01:09:14Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2qej6jx5ydf8mjqd5glq0v2ksfx43x6cfl8f9mztkur4mpasu96szypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2tpjm28</id>
    
      <title type="html">Merkle Tree Merkle Tree เป็น hash-based data structure ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2qej6jx5ydf8mjqd5glq0v2ksfx43x6cfl8f9mztkur4mpasu96szypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2tpjm28" />
    <content type="html">
      Merkle Tree&lt;br/&gt;&lt;br/&gt;Merkle Tree เป็น hash-based data structure เหมือนกับ binary tree แต่แตกต่างกันตรงที่ leaf node จะทำการเก็บเพียงแค่ค่า hash ของข้อมูลธุรกรรม ส่วน node ที่ไม่ใช่ leaf node จะเก็บค่าจากการ hash ที่ได้จาก children node หากจะให้เห็นภาพมากขึ้นลองมาดูตัวอย่างตามนี้กันครับ&lt;br/&gt;สมมุติให้มี transaction ทั้งหมด 4 transaction: t1, t2, t3, t4 ก็แปลว่า hash ของทั้ง 4 transaction ก็จะเป็น leaf node ดังนี้&lt;br/&gt;H(1), H(2), H(3), H(4) และเนื่องจาก 1 node จะมี 2 children แปลว่า ก็จำเป็นต้องมี 2 node ที่เก็บ hash ของ H(1), H(2), H(3), H(4) ดังนั้นในชั้นที่ 2 ของ tree แต่ละ node จะต้องเก็บข้อมูลเป็น H(H(1)&#43;H(2)), และ H(H(3)&#43;H(4)) ตามลำดับ และดังที่กล่าวไว้ข้างต้น เนื่องจาก 1 node จะมี 2 children แปลว่า ก็จำเป็นต้องมี 1 node ที่เก็บค่า H(H(H(1)&#43;H(2)) &#43; H(H(3)&#43;H(4))) ดังรูปที่แสดงข้างล่างนี้&lt;br/&gt;  &lt;img src=&#34;https://image.nostr.build/fc973bc4a3c9dd9330fdd754461ac0f45c6cf031509a0815ddba10764a9588fd.png&#34;&gt; &lt;br/&gt;&lt;br/&gt;เมื่อเราใช้ Merkle Tree มาช่วยจัดการการตรวจสอบธุรกรรมบนบิตคอยน์ ทำให้เราไม่จำเป็นต้องตรวจสอบทุกธุรกรรมในบล๊อก เนื่องจากเราสามารถเช็คเพียงแค่ root hash ว่าตรงกับคนอื่นมั้ย ถ้าตรงก็แปลว่าข้อมูลที่เรารับมาถูกต้อง ในทางกลับกันหากไม่ตรงเราสามารถไล่เช็คตามลำดับของ tree เพื่อตามหาธุรกรรมเจ้าปัญหาได้ง่ายกว่าการไล่เช็คทั้งหมด การนำ merkle tree มาใช้ช่วยให้ การตรวจสอบบล๊อกนั้นทำได้ง่ายขึ้นและใช้พื้นที่ในการเก็บข้อมูลน้อยลง&lt;br/&gt;&lt;br/&gt;#siamstr
    </content>
    <updated>2024-07-14T02:34:05Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqstr0a23wxxaryyyg76yvzy4847765aqyvq95ta83ydju66qj38vygzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe20vxlr7</id>
    
      <title type="html">Nostr event event บน nostr หรือก็คือ ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqstr0a23wxxaryyyg76yvzy4847765aqyvq95ta83ydju66qj38vygzypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe20vxlr7" />
    <content type="html">
      Nostr event&lt;br/&gt;&lt;br/&gt;event บน nostr หรือก็คือ โน๊ตหรือข้อมูลต่าง ๆ ที่เราเห็นกันบน nostr ไม่ว่าจะเป็นข้อมูล profile, เนื้อหาบน note, long-form, หรือแม้แต่การไลฟ์ ล้วนแล้วแต่เป็น event ทั้งหมด โดย event จะมีหน้าตาประมาณนี้&lt;br/&gt;{&lt;br/&gt;  &amp;#34;id&amp;#34;: ,&lt;br/&gt;  &amp;#34;pubkey&amp;#34;: ,&lt;br/&gt;  &amp;#34;created_at&amp;#34;: ,&lt;br/&gt;  &amp;#34;kind&amp;#34;: ,&lt;br/&gt;  &amp;#34;tags&amp;#34;: [ [...],[...] ],&lt;br/&gt;  &amp;#34;content&amp;#34;: ,&lt;br/&gt;  &amp;#34;sig&amp;#34;: &lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;id ก็คือ event id ที่มักจะโชว์เวลาทำการโควทบางโน๊ตบน nostr คำนวณโดยการ นำข้อมูลส่วนอื่น ๆ ใน event (pubkey,create_at,kid,tg,content) มา Serialize จากนั้น hash ด้วย sha256&lt;br/&gt;pubkey ก็คือ npubของเราแต่จะอยู่ในรูปของ hex&lt;br/&gt;create_at ก็คือเวลาที่เราสร้างโน๊ต อยู่ในรูปของ unix timestamp ในวินาที&lt;br/&gt;kind ก็คือเลขที่ใช้กำหนดประเภทของ event อยู่ในรูปของ int (0-65,535)&lt;br/&gt;tag ก็คือ # ที่เราใส่ในโพสต์ต่าง ๆ &lt;br/&gt;content ก็คือเนื้อหาที่อยู่บนโน๊ต&lt;br/&gt;sig ก็คือ digital signature ของเรา ใช้เพื่อยืนยันว่า note นี้มาจาก nsec นั้น ๆ ที่เป็นเจ้าของ npub นั้น ๆ จริง ๆ คำนวณด้วยการใช้ ECDSA กับ serialized event data จาก id และ private key ของเรา&lt;br/&gt;&lt;br/&gt;อย่างที่เห็นว่าทุกส่วนของ event ถูกเก็บในรูปของ text แล้ว เราสามารถเห็นรูปภาพหรือวิดีโอบน nostr ได้อย่างไร ?&lt;br/&gt;&lt;br/&gt;ที่เราสามารถเห็นรูปภาพหรือวิดีโอบน client ต่าง ๆ ของ nostr ได้เนื่องจากการใช้ URL References&lt;br/&gt;ถ้าเอาแบบเข้าใจง่าย ๆ ก็คือสิ่งที่เก็บบน event ของ nostr คือ url ที่ใช้ Markdown-style เพื่อทำ image embedding ขึ้นมา&lt;br/&gt;#siamstr
    </content>
    <updated>2024-07-12T03:08:45Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqrr6n4py23hdlxzdcnlg89anlg3xtq8mw5u0pres2q8zupgv7kuczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2kryhm2</id>
    
      <title type="html">Elliptical Curve Digital Signature Algorithm ECDSA ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqrr6n4py23hdlxzdcnlg89anlg3xtq8mw5u0pres2q8zupgv7kuczypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2kryhm2" />
    <content type="html">
      Elliptical Curve Digital Signature Algorithm&lt;br/&gt;&lt;br/&gt;ECDSA เป็นฟังก์ชันการเข้ารหัสแบบอสมมาตร (asymmetric cryptographic function) ซึ่งอยู่บนสมการ 𝑦² = 𝑥³ &#43; 𝑎𝑥 &#43; 𝑏&lt;br/&gt;ซึ่งจุดเด่นของ Elliptic curve คือเมื่อลากเส้นผ่านสองจุดบนเส้นโค้ง จะมีจุดที่สามที่เส้นตัดผ่านเสมอ จึงเหมาะสมที่จะใช้เป็น ฟังก์ชันทางเดียว (เมล็ดกาแฟและผงกาแฟที่ยกตัวอย่างในโพสต์ก่อน) เนื่องจากมันสามารถที่จะสร้างจุดบนเส้นโค้งที่ไม่มีความสัมพัธ์ใด ๆ กับจุดเริ่มต้นของมันหลังจากทำซ้ำหลาย ๆ ครั้ง โดยบิตคอยน์ใช้ secp256k1 ซึ่งมีพารามิเตอร์ดังนี้&lt;br/&gt;1. a และ b บนสมการเป็น 0 และ 7 ตามลำดับ&lt;br/&gt;2. Prime modulo: 2²⁵⁶ - 2³² - 2⁹ - 2⁸ - 2⁷ - 2⁶ - 2⁴ - 1&lt;br/&gt;3. base point p (บาง source ใช้ว่า Generator point) ในเลขฐาน 16: 04 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8&lt;br/&gt;4. ลำดับในเลขฐาน 16: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141&lt;br/&gt;* สุดท้ายแล้วสมการออกมาแบบนี้ 𝑦² = (𝑥³&#43;7)over (F p)&lt;br/&gt;* ซึ่งตัวเลขเหล่านี้ไม่ได้อุปโหลกขึ้นมามั่ว ๆ แต่เป็นเลขที่ได้มาตรฐานจาก SECG (The Standards for Efficient Cryptography Group) &lt;br/&gt;อย่างที่กล่าวไว้โพสต์ก่อน private key นั้นมาจากการสุ่ม ส่วน public key นั้นมาจากการคำนวณตามสูตร &lt;br/&gt;public key = private key * base point P&lt;br/&gt;ซึ่งเป็นการทำ scalar multiplication และอย่างที่กล่าวไว้ข้างต้น base point P กำหนดโดย secp256k1และเป็นค่าเดียวกันสําหรับทุกคนที่สร้าง public key หมายความว่า private key หนึ่งอันผ่านสมการนี้ยังไงก็จะได้ public key เดิมเสมอ และเนื่องจากลักษณะของ Elliptic curve ที่เป็นฟังก์ชันที่ย้อนกลับไม่ได้ จึงทำให้ public key ไม่สามารถย้อนกลับไปเป็น private key ได้&lt;br/&gt;&lt;br/&gt;#siamstr
    </content>
    <updated>2024-07-11T04:01:23Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqcq9umq7mcddey2w3apcy0crk95a0vjyhfsf7gqlufmjtyggqrwszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2x70ref</id>
    
      <title type="html">Digital keys บนบิตคอยน์ ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqcq9umq7mcddey2w3apcy0crk95a0vjyhfsf7gqlufmjtyggqrwszypusprncrt0vwe7v3c3ek5e7mjceaghzvrujsx53yh5ngfwl4jfe2x70ref" />
    <content type="html">
      Digital keys บนบิตคอยน์&lt;br/&gt;บิตคอยน์ใช้ PKE ซึ่งเป็น asymmetric cryptography เพื่อที่จะสร้างคู่กุญแจขึ้นมา นั้นคือ public key และ private key โดยหากมี private key เราสามารถคำนวณเพื่อหา public key ได้ แต่ในทางกลับกันการมี public key เพียงอย่างเดียวนั้นไม่สามารถย้อนกลับไปหา private key ได้ ถ้าจะให้เห็นภาพง่าย ๆ ลองจินตนาการถึง เมล็ดกาแฟกับผงกาแฟ โดยให้ private key เปรียบเสมือน เมล็ดกาแฟและให้ public key เป็นผงกาแฟ เราสามารถนำเมล็ดกาแฟมาบดเพื่อให้ได้ผงกาแฟเสมอ แต่ในทางกลับกันเราไม่สามารถนำผงกาแฟมาประกอบกับเป็นเมล็ดกาแฟได้ แล้วกุญแจทั้งสองสร้างอย่างไร ?&lt;br/&gt;Private key นั้นสร้างโดยการสุ่มตัวเลข ซึ่งเป็นเลขฐาน 16 จำนวน 64 ตำแหน่ง จึงแทบจะเป็นไปไม่ได้เลยที่จะมีคนที่เผลอสร้าง private key แล้วจะออกมาซ้ำกัน เนื่องจาก private key นั้นมีความเป็นไปได้ถึง 16^64 หรือ 2^256 ซึ่งเท่ากับ 115,792,089,237,316,195,423,570,985,008,690,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 หรือ 115 * 10^75 ความเป็นไปได้ ใครคิดจะ random เพื่อหาบิตคอยน์ก็สู้ ๆ นะครับผมเป็นกำลังใจให้&lt;br/&gt;Public key สร้างโดยการใช้ private key ของเราไปผ่าน ECDSA (Elliptical Curve Digital Signature Algorithm) &lt;br/&gt;แล้วกุญแจทั้งสองในบิตคอยน์นั้นสามารถทำอะไรได้บ้าง&lt;br/&gt;Public key: มีหน้าที่สำคัญ ๆ อยู่สองอย่าง นั้นคือการสร้าง bitcoin address โดยการนำ public key ไป hash, ใช้เพื่อยืนยันธุรกรรมของบิตคอยน์ (ทั้งสองกระบวนการที่กล่าวมานั้นไม่จำเป็นต้องใช้ private key)&lt;br/&gt;Private key: เป็นส่วนสำคัญในการทำธุรกรรมของบิตคอยน์เนื่องจากทุกธุรกรรมบนบิตคอยน์จำเป็นต้องมี digital signature เพื่อยืนยันว่าคุณเป็นเจ้าของบิตคอยน์นั้นจริง ๆ &lt;br/&gt;* ที่สำคัญเลยคือ private คือของบิตคอยน์นั้นคุณควรเก็บไว้ให้ดีอย่าให้ใครรู้ เนื่องจากหากมีบุคคลอื่นรู้ถึง private key ของคุณ วกเขาก็จะสามารถสร้างธุรกรรมบิตคอยน์ด้วย digital signature ของคุณได้ (เขาจะขโมยบิตคอยน์ของคุณได้!!)&lt;br/&gt;
    </content>
    <updated>2024-07-10T06:17:31Z</updated>
  </entry>

</feed>