ورود به سایت ثبت نام در سایت فراموشی کلمه عبور
نام کاربری در این سایت می تواند هم فارسی باشد و هم انگلیسی





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





+ پاسخ به موضوع
نمایش نتایج: از 1 به 1 از 1
  1. #1
    تاریخ عضویت
    2017/09/11
    محل سکونت
    Tehran
    نوشته ها
    4,254
    135
    ناظم سایت

    طراحی یک اپ برای نشان دادن چگونگی عملکرد بلاکچین

    با توجه و استناد به ویکی پدیا، یک بلاکچین پایگاه داده توزیع شده ای ست که برای نگهداری و مراقبت از فهرستی دائمأ در حال رشد از سوابق و مدارک در بلاک ها، استفاده می شود.
    جالب به نظر می رسد، اما چگونه کار می کند؟
    برای روشن شدن مفهوم بلاکچین، از روش فرمان تِکستی متن باز توسط کاربر (command-line interface)، به نام Blockchain CLI استفاده می کنیم. (برای این کار، ورژن مبتنی بر مرورگر آن را نیز ساخته ام)
    نصب ورژن CLI
    ابتدا Node.js را نصب کرده وسپس فرمان زیر را اجرا کنید:
    npm install blockchain-cli –g
    blockchain
    سپس این متن را که آماده گرفتن فرمان است، مشاهده خواهید کرد:
    —› Blockchain و ! ? Welcome to Blockchain CLI

    یک بلاک چه شکلی ست؟
    برای دیدن بلاکچین فعلی خود، عبارت blockchain ویا bc را در بخش اعلان فرمان وارد کنید. یک بلاک همانند تصویر زیر مشاهده خواهید کرد:

    یک بلاک در بلاکچین

    • شاخص یا index (شماره بلاک): این کدام بلاک می باشد؟ (به عنوان مثال بلاک آغازین دارای شاخص ۰ است.)
    • هش: آیا بلاک معتبر است؟
    • هش قبلی: آیا بلاک قبلی معتبر است؟
    • زمان درج( Timestamp): کِی این بلاک اضافه شده است؟
    • داده: چه اطلاعاتی در بلاک ذخیره گردیده است؟
    • Nonce: تا قبل از یافتن یک بلاک معتبر،چند مرحلۀ تکرار(iterations) انجام داده ایم؟

    بلاک آغازین
    هر بلاکچین با بلاک آغازین «Genesis Block» شروع می شود. همانطور که متعاقبا مشاهده خواهید کرد، هر بلاک در بلاکچین به بلاک قبلی وابسته است، بنابراین برای استخراج اولین بلاک خود، به بلاک آغازین نیازمندیم.

    وقتی یک بلاک جدید استخراج می شود چه اتفاقی می افتد؟
    برای استخراج اولین بلاک، عبارت mine freeCodeCamp♥ را در قسمت فرمان وارد کنید.
    بلاکچین، برای مشخص کردن شاخص و هش قبلی، به آخرین بلاک در بلاکچین نگاه می کند. در این مورد بلاک آغازین، اخرین بلاک است.
    Index: o+1 = 1Previous Hash: ۰۰۰۰۰۱۸۰۳۵a828da0…Timestamp: When the block is addedData: freeCodeCamp❤Hash: ??Nonce: ??
    هش چگونه محاسبه می شود؟
    یک هش، یک مقدار عددی با طول ثابت است که یک داده انحصاری را شناسایی و مشخص می کند.
    یک هش، از طریق شاخص، هش بلاک قبلی،زمان درج، اطلاعات بلاک و nonce محاسبه می شود.
    CryptoJS.SHA256(index + previousHash + timestamp + data + nonce)
    با داده های فوق، الگوریتم SHA256 یک هش یکتا را محاسبه می کند. داده های مشابه همواره به هش های مشابه منجر خواهند شد.

    آیا به چهار صفرِ در ابتدای هش ِ بلاک توجه کردید؟
    این چهار صفر، حداقل الزام برای یک هش معتبر است. به تعداد صفر های اولیه لازم، سختی می گویند.
    }function isValidHashDifficulty(hash, difficulty)
    } for (var i = 0, b = hash.length; i < b; i ++)
    } if (hash[i] !== ‘0’)
    ; break
    {
    {
    ; return i >= difficulty
    {
    این به عنوان سیستم اثبات گواه کار (Proof-of-Work) نیز شناخته می شود.
    Nonceچیست؟
    Nonce عددی است که از آن برای پیدا کردن یک هش معتبر استفاده می شود.
    ;let nonce = 0
    ; let hash
    ; let input } while(!isValidHashDifficulty(hash))
    ; nonce = nonce + 1
    ; input = index + previousHash + timestamp + data + nonce
    hash = CryptoJS.SHA256(input)
    {
    Nonce تا رسیدن به هشِ معتبر، مرتبا تکرار می شود. در بحث ما، یک هش معتبر حداقل چهار صفر (۰) دارد. پردازش مربوط به پیدا کردن یک nonce که با یک هش معتبر مرتبط باشد را استخراج (mining) می گویند.

    با افزایش سختی، امکان این ارتباط با هش های معتبر کاهش می یابد. با کم شدن این امکان، پردازشگر قدرتمندتری برای پیدا کردن یک هش معتبر نیاز است.
    اهمیت موضوع در چیست؟
    اهمیت موضوع در «تغییر ناپذیر بودن بلاکچین» است.
    اگر ما بلاکچین C-B-A، شامل سه بلاک A و B و Cرا داشته باشیم و شخصی بخواهد اطلاعات بلاک A را تغییر دهد، این اتفاقی ست که می افتد:

    1. اطلاعات بلاک A تغییر خواهد کرد.
    2. هش بلاک A تغییر خواهد کرد، چرا که از داده ها برای محاسبه این هش استفاده شده است.
    3. بلاک A غیر معتبر می شود چون هش آن دیگر چهار صفر ابتدایی را ندارد.
    4. هش بلاک B تغییر پیدا می کند، چرا که از هش بلاک A برای محاسبه آن استفاده شده بود.
    5. بلاک B غیر معتبر می شود و دلیل آن این است که هش آن دیگر چهار صفر اولیه را ندارد.
    6. هش بلاک C عوض می شود، چرا که از هش بلاک Bبرای محاسبه آن استفاده گردیده بود.
    7. بلاک C غیر معتبر می شود به این دلیل که هش آن دیگر چهار صفر آغازین را ندارد.

    تنها راه تغییر دادن بلاک، استخراج دوباره آن و تمامی بلاک های بعد از آن است. و چون بلاک های جدید همواره در حال افزوده شدن هستند، تغییر دادن بلاکچین تقریبا غیر ممکن می گردد.
    امیدوارم این آموزش برای شما مفید واقع شده باشد.


    دیدگاه هایی که در این مقاله ارائه شده اند، متعلق به نویسنده می باشند و لزوماً مربوط به Coiniran نمی باشد و نباید به آن نسبت داده شود.


    https://coiniran.com/%d8%b7%d8%b1%d8...7%da%a9%da%86/
+ پاسخ به موضوع
نمایش نتایج: از 1 به 1 از 1

مجوز های ارسال و ویرایش