diff --git a/core/modules/block_content/src/BlockContentForm.php b/core/modules/block_content/src/BlockContentForm.php
index 2410c7c..383fa5d 100644
--- a/core/modules/block_content/src/BlockContentForm.php
+++ b/core/modules/block_content/src/BlockContentForm.php
@@ -170,6 +170,9 @@ public function save(array $form, FormStateInterface $form_state) {
     // Save as a new revision if requested to do so.
     if (!$form_state->isValueEmpty('revision')) {
       $block->setNewRevision();
+      // If a new revision is created, save the current user as revision author.
+      $block->setRevisionCreationTime(REQUEST_TIME);
+      $block->setRevisionUserId(\Drupal::currentUser()->id());
     }
 
     $insert = $block->isNew();
diff --git a/core/modules/block_content/src/BlockContentInterface.php b/core/modules/block_content/src/BlockContentInterface.php
index 4eefe28..0a38c22 100644
--- a/core/modules/block_content/src/BlockContentInterface.php
+++ b/core/modules/block_content/src/BlockContentInterface.php
@@ -4,11 +4,12 @@
 
 use Drupal\Core\Entity\ContentEntityInterface;
 use Drupal\Core\Entity\EntityChangedInterface;
+use Drupal\Core\Entity\RevisionLogInterface;
 
 /**
  * Provides an interface defining a custom block entity.
  */
-interface BlockContentInterface extends ContentEntityInterface, EntityChangedInterface {
+interface BlockContentInterface extends ContentEntityInterface, EntityChangedInterface, RevisionLogInterface {
 
   /**
    * Returns the block revision log message.
@@ -37,6 +38,9 @@ public function setInfo($info);
    *
    * @return \Drupal\block_content\BlockContentInterface
    *   The class instance that this method is called on.
+   *
+   * @deprecated in Drupal 8.2.0, will be removed before Drupal 9.0.0. Use
+   *   \Drupal\Core\Entity\RevisionLogInterface::setRevisionLogMessage() instead.
    */
   public function setRevisionLog($revision_log);
 
diff --git a/core/modules/block_content/src/Entity/BlockContent.php b/core/modules/block_content/src/Entity/BlockContent.php
index 958fc7a..935f574 100644
--- a/core/modules/block_content/src/Entity/BlockContent.php
+++ b/core/modules/block_content/src/Entity/BlockContent.php
@@ -6,8 +6,10 @@
 use Drupal\Core\Entity\EntityChangedTrait;
 use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\Core\Entity\EntityTypeInterface;
+use Drupal\Core\Entity\RevisionLogInterface;
 use Drupal\Core\Field\BaseFieldDefinition;
 use Drupal\block_content\BlockContentInterface;
+use Drupal\user\UserInterface;
 
 /**
  * Defines the custom block entity class.
@@ -204,6 +206,17 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
       ->setTranslatable(TRUE)
       ->setRevisionable(TRUE);
 
+    $fields['revision_created'] = BaseFieldDefinition::create('created')
+      ->setLabel(t('Revision create time'))
+      ->setDescription(t('The time that the current revision was created.'))
+      ->setRevisionable(TRUE);
+
+    $fields['revision_user'] = BaseFieldDefinition::create('entity_reference')
+      ->setLabel(t('Revision user'))
+      ->setDescription(t('The user ID of the author of the current revision.'))
+      ->setSetting('target_type', 'user')
+      ->setRevisionable(TRUE);
+
     $fields['revision_translation_affected'] = BaseFieldDefinition::create('boolean')
       ->setLabel(t('Revision translation affected'))
       ->setDescription(t('Indicates if the last edit of a translation belongs to current revision.'))
@@ -233,8 +246,63 @@ public function setInfo($info) {
    * {@inheritdoc}
    */
   public function setRevisionLog($revision_log) {
-    $this->set('revision_log', $revision_log);
+    return $this->setRevisionLogMessage($revision_log);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getRevisionCreationTime() {
+    return $this->get('revision_created')->value;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setRevisionCreationTime($timestamp) {
+    $this->set('revision_created', $timestamp);
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getRevisionUser() {
+    return $this->get('revision_user')->entity;
+  }
+
+  public function setRevisionUser(UserInterface $account) {
+    $this->set('revision_user', $account);
     return $this;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function getRevisionUserId() {
+    return $this->get('revision_user')->entity->id();
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setRevisionUserId($user_id) {
+    $this->set('revision_user', $user_id);
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getRevisionLogMessage() {
+    return $this->get('revision_log')->value;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setRevisionLogMessage($revision_log_message) {
+    $this->set('revision_log', $revision_log_message);
+    return $this;
+  }
 }
