پول مجازی ( بیت کوین )

tiberium

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,057
امتیاز
1,052
نام مرکز سمپاد
شهید بهشتی سمنان
شهر
سمنان
سال فارغ التحصیلی
1389
مدال المپیاد
المپیاد کامپیوتر
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی فن آوری اطلاعات
hashing part 2 :

حالا این به چه دردی میخوره. شما فرض کنید می خواید یه پیامی رو بفرستید. و می خواید مطمئن شید که پیام تو راه تغییری نکرده. یکی از راه هاش اینه که شما پیام رو میفرستید و همراه باهاش HASH اون پیام هم ارسال می کنید ( دقت کنید که هر پیغام خودش یه رشته 0 1 هست ) حالا طرف مقابل که پیام رو میگیره . کافیه HASH پیام رو محاسبه کنه و بعد مقایسه کنه با خروجی HASH ای که شما فرستادین . اگر این دو برابر باشن یعنی پیام تغییری نگرده ولی حتی پیغام اگر یه بیت تغییر بکنه وقتی طرف مقابل HASH رو محاسبه می کنه میبینه با مقداری که شما فرستادین فرق کرده پس این رو به عنوان یه دیتای خراب به حساب میاره. حالا سوال اینجاست که مثلا شما یه پیغامی رو می خواید بفرستید . مثلا سلام! و من یه حمله کننده به سیستم هستم . من اگر بتونم یه پیغام دیگه مثل خداحافظ پیدا کنم با خروجی یکسان HASH با پیغام سلام قطعا خیلی اوضاع خراب میشه!!! ینی من میتونم پیغام رو دستکاری کنم ولی خروجی HASH یکسان باشه. اونوقت عملا میتونم خیلی مشکلات به وجود بیارم! برای همینه که میگیم نباید امکان پذیر باشه برای ما که همچین ورودی هایی رو پیدا کنیم.

پس این شد یه مقدمات خیلی خیلی جزئی راجع به hashing.
 

tiberium

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,057
امتیاز
1,052
نام مرکز سمپاد
شهید بهشتی سمنان
شهر
سمنان
سال فارغ التحصیلی
1389
مدال المپیاد
المپیاد کامپیوتر
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی فن آوری اطلاعات
خالا رمزنگاریه نامتقارن ! :
تو زمانای قدیم رمزنگاری اینجوری بود که یه کلید وجود داشت. که برای رمز نگاری و رمزگشایی از همین کلید باید استفاده میشد. مثلا بگیم برای اینکه عدد رو بفرستیم اونو همیشه *3 میکردیم. طرف مقابل برای بدست آوردن این عدده باید اونو به 3 تقسیم کنه و در کل باید این کلید که 3 هست رو بدونه. حالا سوال اینجا پیش اومد که اگر شما میتونید این کلید رو جایی به طرف بگید که امن هست ( مثلا چت ) خب عدد رو هم بهش بگید دیگه. چه کاریه:))

اینجاست که رمز نگاری نامتقارن مطرح شد . من خیلی به ریاضیاتش کاری ندارم ولی کلیت اینه که هر فردی 2 تا عدد تولید می کنه. یکیش public هست که همه به اون عدد دسترسی دارن و اونو میبینن و یکیش خصوصی هست و دست خود طرف هست فقط. اگر کسی بخواد پیغامی رو برای اون فرد بفرسته اون پیغام رو با publickey که همه میبیننش رمز می کنه. ولی برای رمزگشایی باید با اون عدد خصوصی اونو رمزگشایی کرد که کسی نداره!

پس هر کسی این زوج عدد رو داره ( publickey , PrivateKey ). نکته اینجاست که شما اگر با هر کدوم یه چیزیو رمز کنید با اون یکی عدد میتونید رمزگشاییش کنید. یعنی میتونید با private هم رمز کنید و با public رمزگشایی کنید . ولی این اصلا کاربرد و دلیلی داره ؟ بله!!!
یه وقت هست شما میخواید یه پیامی رو بدید . مهم نیست که رمز شده باشه. و می خواید همه بفهمن. ولی میخواید مطمئن باشید که همه میدونن که این پیغام از طرف شما اومده . اگر یه تراکنش باشه بدین صورت که از فرد A مثلا 10 تا سکه بدید به B. این درخواست رو فقط A میتونه بده نه کس دیگه.
پس بقیه باید یه جوری مطمئن باشن که این پیام از A اومده. برای این کاز که بهش امضای دیجیتال هم میگیم
A پیام خودش رو با کلید خصوصی خودش رمز میکنه. حالا همه میتونن اونو با کلید عمومیش باز کنن و پیغام رو بخونن.
یه مثلا خیلی ساده . من مثلا بخوام بگم "سلام به همه". و رمزش می کنم با کلید خصوصیم و میشه "سشستاقثلییشسیشس". حالا همه با کلید عمومیم از "سشستاقثلییشسیشس" به "سلام به همه " میرسن. حالا اگر یکی بخواد این پیغام رو از طرف من بده چون کلید خصوصی من رو نداره مجبوره به کلید خودش این جمله رو رمز کنه و مثلا فرضا بشه " نتایشیعایدیتشدیش " .
حالا وقتی بقیه این کلمه رو با کلید عمومی من رمزگشایی میکنن میبینن به یه جمله بی معنی رسیدن! و قطعا به " سلام به همه " نمیرسن!
پس مفهوم امضای دیجیتال هم فهمیدیم به صورت کلی.

دیگه از پست بعدی میتونیم وارد این بشیم که بیت کوین چطوری داره کار می کنه! اینا فقط مقدماتین که باید بدونیم .
فعلا اگر کسی سوالی داره بپرسه که بعد وارد مساله بیت کوین بشیم.
 

امیرحسین

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,075
امتیاز
16,473
نام مرکز سمپاد
شهید بهشتی
شهر
بوشهر
سال فارغ التحصیلی
91
دانشگاه
خواجه نصیر
رشته دانشگاه
مهندسی برق
من یه سوالی که از همون اوّل درگیرش بودم این پول مجازی کار خلاف‌کارها و یا قاچاقیای مواد مخدر رو راحت‌تر نمی‌کنه؟
 

tiberium

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,057
امتیاز
1,052
نام مرکز سمپاد
شهید بهشتی سمنان
شهر
سمنان
سال فارغ التحصیلی
1389
مدال المپیاد
المپیاد کامپیوتر
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی فن آوری اطلاعات
چرا ! به چند روش. مساله ای که هست اینه که توی بیت کوین هیچ چیز مرکزی ای مثل بانک مثلا وجود نداره! تمامی تراکنش ها به صورت مستقیم از یه فرد به یه فرد دیگست . و مثلا هر کسی میتونه 10 تا آدرس داشته باشه و هیچ شناسه ای به فرد واقعی نداره! یعنی مثلا به اسم و فامیل و آدرس و ... اصلا کاری نداره دیگه. میتونید درجا برا خودتون یه آدرس درست کنید بدون نیاز به هیچ چیزی.
 

امیرحسین

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,075
امتیاز
16,473
نام مرکز سمپاد
شهید بهشتی
شهر
بوشهر
سال فارغ التحصیلی
91
دانشگاه
خواجه نصیر
رشته دانشگاه
مهندسی برق
چرا ! به چند روش. مساله ای که هست اینه که توی بیت کوین هیچ چیز مرکزی ای مثل بانک مثلا وجود نداره! تمامی تراکنش ها به صورت مستقیم از یه فرد به یه فرد دیگست . و مثلا هر کسی میتونه 10 تا آدرس داشته باشه و هیچ شناسه ای به فرد واقعی نداره! یعنی مثلا به اسم و فامیل و آدرس و ... اصلا کاری نداره دیگه. میتونید درجا برا خودتون یه آدرس درست کنید بدون نیاز به هیچ چیزی.
خب چرا باید با سرعت زیاد به استقبال همچین چیزی بریم؟ بهتر نیست اول مشکلات این‌چنینی حل بشه؟
 
آخرین ویرایش:
  • لایک
امتیازات: mhdl

tiberium

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,057
امتیاز
1,052
نام مرکز سمپاد
شهید بهشتی سمنان
شهر
سمنان
سال فارغ التحصیلی
1389
مدال المپیاد
المپیاد کامپیوتر
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی فن آوری اطلاعات
چون خیلی فواید زیادی داره روشش و برا این مشکل هم تا حدودی یه سری راهکار گذاشتن. مثل اینه که بگیم مثلا به استقبال انرژی هستی ای نریم چون میتونه باعث مرگ خیلیا بشه. خیلی فواید زیادی داره در کل.
 

امیرحسین

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,075
امتیاز
16,473
نام مرکز سمپاد
شهید بهشتی
شهر
بوشهر
سال فارغ التحصیلی
91
دانشگاه
خواجه نصیر
رشته دانشگاه
مهندسی برق
چون خیلی فواید زیادی داره روشش و برا این مشکل هم تا حدودی یه سری راهکار گذاشتن. مثل اینه که بگیم مثلا به استقبال انرژی هستی ای نریم چون میتونه باعث مرگ خیلیا بشه. خیلی فواید زیادی داره در کل.
من نگفتم نریم گفتم اول این مشکل حل بشه :-?
انرژی هسته‌ای هم باید اول امنیتش فراهم بشه. (البته فکر کنم در آینده انرژی‌های تجدید پذیر بیشتر رو بورس باشند حالا از بحث دور نشیم :)) )
 
آخرین ویرایش:

tiberium

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,057
امتیاز
1,052
نام مرکز سمپاد
شهید بهشتی سمنان
شهر
سمنان
سال فارغ التحصیلی
1389
مدال المپیاد
المپیاد کامپیوتر
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی فن آوری اطلاعات
حالا بریم سر اصل مطلب ! BlockChain part 1:
خب تا الان مقدمات رو فهمیدیم. حالا ببینیم این مفهوم چیه.

فعلا فرض کنیم هنوز هم بانک وجود داره و مثلا بانک میگه من 5 تا سکه تولید کردم و دارم. ( فعلا این رو فرض کنیم )
این داده به صورت یک بلوک هست. یه بخشش این اطلاعات هست که من 5 تا سکه تولید کردم . بعد این بلوک رو امضا می کنه ( همون امضای دیجیتال که گفتیم ) . این یعنی همه میتونن مطمئن باشن که این الکی نیست و واقعا بانک داره این رو میگه .

حالا بانک بخواد این رو بده من مثلا. میاد یه بلوک ایجاد می کنه با این اطلاعات که مثلا 5 سکه بده با آرمان . در ادامه ی این موضوع میاد Hash بلوکی که این پول رو تولید کرده ( همون بلوک قبلی ) اضافه می کنه و با پوینتر لینک میده به بلوک قبلی . و بعدشم میاد کل این بلوک رو امضا می کنه که همه مطمئن باشن الکی نیست !پس حالا این بررسی انجام میشه که آیا تراکنش معتبر هست . اگر بانک بگه 10 تا سکه بده مثلا نامعتبره دیگه! پس برا اینکه بفهمن معتبر هست با اون پوینتر میرن بلوکی که اشاره می کنه. میبینن بانک گفته 5 تا سکه تولید کرده. پس بانک 5 تا سکه داره! پس این تراکنش معتبره.



حالا من بخوام 5 سکه بدم به bob. میام یه بلوک ایجاد می کنم . که مثلا آرمان 5 سکه میده به Bob. و در ادامش میام به اون بلوکی که از بانک پول رو گرفتم اشاره می کنم ( با همون مکانیزم Hash و pointer ) . و در آخرم میام این بلوک رو با کلید خصوصی خودم امضا می کنم که همه بدونن من واقعا خواستم به Bob پول بدم! حالا اگر بخوان ببین من پول دارم اصلا یا نه میرن به اون لینک بعدی که میبینن بانک گفته 5 تا سکه بده به آرمان. ولی آیا بانک 5 تا سکه داره ؟ آره. چون معتبر شده بود تو مرحله قبل

این سیستم الان 100000000 تا باگ داره ولی حالا دونه دونه باگ هاشو میگیم با چه مکانیزم هایی برطرف کردن !
 

tiberium

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,057
امتیاز
1,052
نام مرکز سمپاد
شهید بهشتی سمنان
شهر
سمنان
سال فارغ التحصیلی
1389
مدال المپیاد
المپیاد کامپیوتر
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی فن آوری اطلاعات
هرجا سوال داشتین بپرسین که تا ۳ ۴ ساعت دیگه ۲ ۳ بخش دیگه ادامه بدیم:D
 
  • لایک
امتیازات: mhdl

hawjamir

امیرحسینم :))
ارسال‌ها
62
امتیاز
358
نام مرکز سمپاد
شهید بهشتی 1
شهر
ارومیه
سال فارغ التحصیلی
97
  • لایک
امتیازات: mhdl

tiberium

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,057
امتیاز
1,052
نام مرکز سمپاد
شهید بهشتی سمنان
شهر
سمنان
سال فارغ التحصیلی
1389
مدال المپیاد
المپیاد کامپیوتر
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی فن آوری اطلاعات
blockchain bitcoin part 2:

خب یکی از مسایلی که تو اون روش قبلی دیدیم که خیلی ایراد واضحی هست اینه که من میتونم پولی که دارم رو چند بار خرج کنم. اصطلاحا بهش double spending attack میگن. که تقریبا تو تمامی ارز های دیجیتال یکی از مهمترین مسایل حل این مساله هست. یعنی چی ؟
fdfp_crypto1.jpg

یعنی مثلا Alice پول رو همزمان به 2 نفر داده و الان هر کدوم اگر بررسی کنن میبینن این تراکنش ها معتبر هست. ولی مکانیزمی نیست که بهمیم که الان این پول یک باز استفاده شده و دیگه نمیشه ازش استفاده کرد .
برا توضیح این عکس . اون H() همون HASH هست. بخش امضاش که معلومه با PRIVATE KEY هست. بخش پرداخت هم متاسفانه با همون pk نشون داده ولی منظور برای پرداخت public key هست ( که همون آدرس طرف هم میشه تو بیت کوین) . برای حل این مشکل یه همچین راه کاری رو راه میندازیم.
اونی که بانک هست میاد مثل شکل زیر یه تاریخچه ای از تمام تراکنش ها میده . برای مسایل بهینه سازی به جای اینکه توی هر بلوک یه تراکنش قرار بده میاد چند تا تراکنش قرار میده. این تصویر رو ببینید.
crypto1.jpg

این جناب scrooge همون بانک هست :)) . حالا بخش trans دو حالت داره. یا این بانک داره به یه سری سکه میده. یا یه تبادلی بین 2 نفر ایجاد شده.

اول حالت 1 رو بررسی کنیم.
crypto2.jpg

خب همونطور که میبینید من مثلا به نفر اول 3.2 سکه دارم میدم. به نفر بعدی 1.4 سکه و به نفر بعدی 7.1 سکه. و recipient هم آدرس اوناییه که این سکه ها بهشون میرسه. اگر دقت کنید این تراکنش ها همه معتبرن . چرا ؟ چون بانک اینو تولید کرده و امضا می کنه. و همینطور وقتی این سکه ها تولید میشن یه coinID میگیرن. که فکر کنم معلومه سیستم این ID دادن.

حالا بلوک پرداخت بقیه به بقیه چطوریه ؟
crypto3.jpg


خب اون بخش signatures پایین یعنی امضای همه اونایی که می خواستن تراکنش انجام بدن. مثلا من که میخوام پول بدم به یکی باید امضای هم بکنم دیگه. و اون پولی که می خوام بدم رو باید ذکر کنم. مثلا می گم سکه ی 72(3) رو بفرست به این آدرس. اونوقت اگر coin قبلا استفاده نشده باشه اون coin از بین میره و یه coin دیگه با همون ارزش برای فرد گیرنده ساخته میشه .
شرایط معتبر بودن این بلوک هم معلومه. باید همه تراکنش ها توسط اون افراد امضا شده باشه. و سکه ای که قبلا مصرف شده دیگه دوباره نمیتونه مصرف بشه . چرا ؟ چون همه این تاریخچه کل پرداخت ها رو میبینن. وقتی یه coinID قبلا استفاده شده همه میفهمن که این double spend attack هست و این بلوک معتبر شناخته نمیشه .
خب ما الان تا حدودی مشکل double spend رو حل کردیم.


ولی هنوز خیلی مشکل هست !
هنوز این وسط فردی به اسم بانک وجود داره که داره این کارارو انجام میده! ما می خوایم بانک نباشه. هیچکس نمی خوایم این وسط قدرت تصمیم گیری مستقل داشته باشه.و از طرفی هیچکس هم به هیچکس اعتماد نداره.
مشکل بعدی هم اینه که این سیستم یکم عملیات چک کردنش سخته که سکه ای مصرف شده یا نه. و حالا خیلی مشکلات دیگه. حالا تا اینجارو بخونید و اگر سوالی هست بپرسید که فردا بخش بعدی رو اضافه می کنم :D.
فکر کنم تا 2 بخش دیگه حدودا دستتون میاد که بیت کوین داره چطوری کار می کنه.
 

tiberium

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,057
امتیاز
1,052
نام مرکز سمپاد
شهید بهشتی سمنان
شهر
سمنان
سال فارغ التحصیلی
1389
مدال المپیاد
المپیاد کامپیوتر
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی فن آوری اطلاعات
تا اینجا اگر همه چیز رو فهمیدید بگید که ادامه بدیم امروز یه بخش دیگه رو
 
  • لایک
امتیازات: mhdl

tiberium

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,057
امتیاز
1,052
نام مرکز سمپاد
شهید بهشتی سمنان
شهر
سمنان
سال فارغ التحصیلی
1389
مدال المپیاد
المپیاد کامپیوتر
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی فن آوری اطلاعات
خب قبل اینکه ادامه بدم بیاید یه brainstorm کنیم ببینیم کی چه ایده هایی داره برا حل این مشکل .
الان اصل مشکل اینه که یه فرد معتمد ( بانک ) داره همه ی این کارارو انجام میده. می میخوایم هیچ فردی این بین نباشه. و دقت کنید که به هیچ فردی توی این شبکه نمیتونیم اعتماد کنیم. کسی ایده ای داره ؟


پ.ن : چقدر خسته این شماها :))) یه چیزی بگین :))
 
آخرین ویرایش:

mrm

کاربر فعال
ارسال‌ها
46
امتیاز
265
نام مرکز سمپاد
فرزانگان زینب(س)
شهر
تهران
سال فارغ التحصیلی
94
اللن میخوایم بانک نباشه اعتبار (همون کوین آی دی)مونو از کی بگیریم؟ بالاخره باید یکی باشه که همه بهش اعتماد داشته باشن!؟
 
  • لایک
امتیازات: mhdl

tiberium

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,057
امتیاز
1,052
نام مرکز سمپاد
شهید بهشتی سمنان
شهر
سمنان
سال فارغ التحصیلی
1389
مدال المپیاد
المپیاد کامپیوتر
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی فن آوری اطلاعات
اللن میخوایم بانک نباشه اعتبار (همون کوین آی دی)مونو از کی بگیریم؟ بالاخره باید یکی باشه که همه بهش اعتماد داشته باشن!؟
فعلا برای سادگی کار فرض کنیم اول سکه ها رو گرفتین از یه جایی و حالا بدون بانک می خواید منتقل کنید .
 

tiberium

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,057
امتیاز
1,052
نام مرکز سمپاد
شهید بهشتی سمنان
شهر
سمنان
سال فارغ التحصیلی
1389
مدال المپیاد
المپیاد کامپیوتر
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی فن آوری اطلاعات
هیچ ایده ای نبود ؟:)))
 
  • لایک
امتیازات: mhdl

tiberium

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,057
امتیاز
1,052
نام مرکز سمپاد
شهید بهشتی سمنان
شهر
سمنان
سال فارغ التحصیلی
1389
مدال المپیاد
المپیاد کامپیوتر
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی فن آوری اطلاعات
خب تا شماها فکر می کنید راجع به مساله ی بالا من یه خبر جالب بدم.

بزرگترین دزدی ( با هک) دنیا 2 روز پیش اتفاق افتاد. بدین صورت که هکر با به دست آوردن private key یه سایت بزرگ خرید و فروش این کوین ها تونست بیشتر از 500 میلیون سکه ی NEM رو بدزده و برای خودش بفرسته! ارزشش خدودا 532 میلیون دلار هست که خیلی هست!
این آدرس هکره هست
NC4C6PSUW5CLTDT5SXAGJDQJGZNESKFK5MCN77OG
http://explorer.ournem.com/#/s_account?account=NC4C6PSUW5CLTDT5SXAGJDQJGZNESKFK5MCN77OG
اگر ببینید طرف اول برا خودش 10 تا سکه فرستاده ! بعد هر 100 میلیون 100 میلیون تا فرستاده . بعد از حدودا 530 میلیون تراکنش اومده اینا رو فرستاده برا یه سری آدرس های مختلف که احتمالا آدرس های دیگه هم برای خودش هست ! بعد 7 8 ساعت دوبازه اومده که باز هم بدزده :)))
متاسفانه پول از دست رفته هست و کاریش نمیشه کرد و چون این سیستم به فردی مثل بانک وابسته کسی نمیتونه کاری کنه!
اما ! شرکت NEM یه ایده ای الان زده و اومده آدرس این فرد رو به عنوان هکر ذخیره کرده و تو 1 2 ساعت سیستمی طراحی کرده که این فرد به هرکی هم این سکه هارو بفرسته آدرس اونا هم به عنوان دزد ذخیره میشه .

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

tiberium

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,057
امتیاز
1,052
نام مرکز سمپاد
شهید بهشتی سمنان
شهر
سمنان
سال فارغ التحصیلی
1389
مدال المپیاد
المپیاد کامپیوتر
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی فن آوری اطلاعات
خب من فردا یه سری پست جدید میزارم اینجا. برای بدست آوردن coin های مجانی یه سری راه هست که واقعا با قیمت های الان سود دهی ندارن. ولی مثلا یه سری هستن که شاید روزی نهایت 5 دقیقه وقتتون رو بگیرن و مثلا بعد مدتی بتونید روزی 1 دلار در بیارید با هیچ کاری! اگر قیمتا خیلی رشد کنه هم یهو دیدید این روزی 1 دلار شد چمیدونم 20 30 دلار! و خوبیش اینه که coin بدست میارید.
اگر کسی می خواد بهم خصوصی پیغام بده بگم بهش چی کار کنه.
 

tiberium

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,057
امتیاز
1,052
نام مرکز سمپاد
شهید بهشتی سمنان
شهر
سمنان
سال فارغ التحصیلی
1389
مدال المپیاد
المپیاد کامپیوتر
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی فن آوری اطلاعات
خب بریم پارت بعدی :


یه جمع بندی ای تا الان داشته باشیم. پس مساله این شد که ما باید بتونیم یه زنجیره از تراکنش ها داشته باشیم. که بتونیم جلوی double spend رو بگیریم. مساله ای که وجود داره اینه که از اونجایی که هیچ بانکی این وسط وجود نداره.
تمامی node های داخل این شبکه باید این زنجیره بلوکی تا حال حاضر رو دانلود کنن. مساله اینجاست که اگر کسی تراکنشی انجام میده همه باید مطمئن باشیم که این تراکنش یا همه جا ثبت میشه یا هیچ جا ثبت نمیشه. یعنی تو سیستم هر کس باید ثبت بشه. ( شاید براتون سوال پیش بیاد اینا مگه جا نمیگیره! چرا ولی یه سیستم هوشمندی هم وجود داره که اون بلوک هایی رو که کاملا استفاده شدن و دیگه قرار نیست بهشون پوینتری وارد بشه رو حذف می کنه از سیستم )

حالا چطور این عملیات ثبت صورت میگیره. یه pool وجود داره که هر کسی هر تراکنش که می خواد انجام بده رو اونجا اضافه می کنه. دقت کنید که بخاطر یه سری مسایل بهینه سازی داخل هر بلوک بجای یک تراکنش مثلا 30 40 تا تراکنش قرار میگیره.
حالا من که یکی از node های این شبکه هستم مثلا 30 تا از تراکنش های انجام نشده ای که توی pool هست رو برمیدارم و اینارو داخل بلوک قرار میدم و حالا باید این رو به کل شبکه اطلاع بدم که من می خوام این بلوک رو به این زنجیره اضافه کنم.
حالا چرا من ؟ لزومی نداره این فرد من باشم. قضیه اینجاست که هرکسی داخل این شبکه میتونه همچین کاری انجام بده. و همه موازی دارن این کار رو انجام میدن. قطعا میتونید درک کنید که خیلی اوضاع شیر تو شیری هست :)))
ولی یه سری مشکلات اصلی وجود داره تا الان

1-اگر این بلوک رو یه فرد متقلب اضافه کنه چی مبشه ؟ که 100% همچین اتفاقی ممکن هست بیفته !
2- اینکه همه همزمان امکان داره بلوک اضافه کنن تکلیف چیه ؟ و خیلی مسایل دیگه
 

tiberium

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,057
امتیاز
1,052
نام مرکز سمپاد
شهید بهشتی سمنان
شهر
سمنان
سال فارغ التحصیلی
1389
مدال المپیاد
المپیاد کامپیوتر
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی فن آوری اطلاعات
خب فرض کنید مشکل موازی بودن رو بعدا حل کنیم. می خوایم ببینیم یه حمله کننده به سیستم چه طور کار هایی ازش برمیاد
آیا میتونه از حساب شما چیزی بدزده ؟ نه نمیتونه! چون کلید خصوصیتون رو نداره
آیا میتونه جلوی تراکنش های شما رو بگیره ؟ آره! میتونه تراکنش هایی که از طرف آدرس شما هست رو تو بلوک قرار نده. ولی خب خودش که تنها نیست! پس این هم حمله ی جذابی نیست .

آیا میتونه حمله ای شبیه double spend انجام بده ؟ تحت یه سری شرایط خیلی خیلی خاص آره !
 
بالا